ClicInterceptorAPI: {
    addHeaderInput: ((input) => Promise<any>);
    addLineItems: ((lineItemIds) => Promise<any>);
    deleteLineItems: ((lineItemsIds) => Promise<any>);
    disableHeaderInputs: ((inputNames) => any);
    getHeaderInput: ((inputName) => Promise<ClicInput>);
    getHeaderInputValue: ((inputName) => Promise<any>);
    getHeaderOutput: ((outputName) => Promise<Output | undefined>);
    getHeaderOutputResult: ((outputName) => Promise<any>);
    getHeaderType: (() => string);
    getHeaderValue: ((name) => Promise<any>);
    getLineItemInput: ((queryData, name) => Promise<ClicInput>);
    getLineItemInputValue: ((queryData, name) => Promise<any>);
    getLineItemOutput: ((queryData, resultName) => Promise<Output>);
    getLineItemOutputResult: ((queryData, outputName) => Promise<Output>);
    getLineItems: ((queryData) => Promise<LineItem[]>);
    getLineItemsInPage: ((queryData, limit) => Promise<LineItemPage>);
    recalculate: ((forceAsync?) => Promise<any>);
    setDisabledButtons: ((buttons) => any);
    setHeaderInputValue: ((inputName, value) => Promise<any>);
    setHeaderOutputResult: ((outputName, value) => Promise<any>);
    setHeaderValue: ((name, value) => Promise<any>);
    setLineItemInputValue: ((queryData, name, value) => Promise<any>);
    setLineItemInputValues: ((queryData, inputsToAdd) => Promise<any>);
    setReadOnly: ((readOnly) => Promise<any>);
    updateHeader: ((values, inputValues) => any);
}

This is API for working with Quotes, Contracts, Rebate Agreements and Compensation Plans. It works with lists and details of these entities.

Name of this API will vary based on the module where you are using it. For quotes it will be:

export const quotesDetailAccountAssign = ({ quoteAPI }) => {
// code
}
  • Compensation Plans: compensationPlanAPI
  • Contracts: contractAPI
  • Rebate Agreements: rebateAgreementAPI
  • Quotes: quoteAPI

If you use the interceptor methods quotesDetailCreateNewRevision, quotesDetailCopy and the same alternatives for Contracts, Rebate Agreements and Compensation Plans, you will get this API under the names quoteOriginAPI, quoteNewRevisionAPI or quoteCopyAPI (similar pattern for others).

All these variables contains an object which implement this ClicInterceptorAPI type.

Type declaration

  • addHeaderInput: ((input) => Promise<any>)

    Adds an input to the CLIC header.

      • (input): Promise<any>
      • Parameters

        • input: Input

          The object of the input.

        Returns Promise<any>

  • addLineItems: ((lineItemIds) => Promise<any>)
      • (lineItemIds): Promise<any>
      • Parameters

        • lineItemIds: string[]

        Returns Promise<any>

  • deleteLineItems: ((lineItemsIds) => Promise<any>)

    Deletes line items from CLIC object. Please note that this method takes an array of line IDs as argument, since SKU is not unique. In order to properly delete line items, use "getLineItems" method and then use "lineId" field that is fetched from it.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    const lineItems = await quoteAPI.getLineItems();
    const response = await quoteAPI.deleteLineItems([lineItems[0].lineId]);
    console.log({ response }); // 1
    };
    }
      • (lineItemsIds): Promise<any>
      • Parameters

        • lineItemsIds: string[]

        Returns Promise<any>

  • disableHeaderInputs: ((inputNames) => any)

    Disables inputs at the CLIC header.

    CLIC Detail Only - In a list, this method does not make sense, so it is implemented just as an empty method there.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    await quoteAPI.disableHeaderInputs('Customer'); // or ['Customer', ...]
    }
      • (inputNames): any
      • Parameters

        • inputNames: string | string[]

        Returns any

  • getHeaderInput: ((inputName) => Promise<ClicInput>)

    Gets an input by inputName from the CLIC header.

    You can use dots to create a path to a nested input. For example if you have the input stringUserEntry1_collapsible_row1 inside row1 input, and it is inside collapsibleSectionWithRow input then the path will look like collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    const clicInput = await quoteAPI.getHeaderInput('Customer');
    console.log(clicInput); // {"name": "Customer", "label": "Customer", "value": "CD-0001", ...}
    }
      • (inputName): Promise<ClicInput>
      • Parameters

        • inputName: string

          The name of the input. You can use dots to create a path to a nested input. E.g. collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1

        Returns Promise<ClicInput>

  • getHeaderInputValue: ((inputName) => Promise<any>)

    Returns an input value from the CLIC header.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    const clicInputValue = await quoteAPI.getHeaderInputValue('Customer');
    console.log(clicInputValue); // 'CD-0001'
    }
      • (inputName): Promise<any>
      • Parameters

        • inputName: string

          The name of the input. You can use dots to create a path to a nested input. E.g. collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1

        Returns Promise<any>

  • getHeaderOutput: ((outputName) => Promise<Output | undefined>)

    Gets an output by outputName from the CLIC header.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    const clicOutput = await quoteAPI.getHeaderOutput('totalAmount');
    console.log(clicOutput); // {"resultName": "totalAmount", "resultLabel": "totalAmount", "result": 123456789.12345679, ...}
    }
      • (outputName): Promise<Output | undefined>
      • Parameters

        • outputName: string

          The name of the output.

        Returns Promise<Output | undefined>

  • getHeaderOutputResult: ((outputName) => Promise<any>)

    Returns an output result from the CLIC header.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    const clicOutputResult = await quoteAPI.getHeaderOutputResult('totalAmount');
    console.log(clicOutputResult); // 123456789.12345679
    }
      • (outputName): Promise<any>
      • Parameters

        • outputName: string

          The name of the output.

        Returns Promise<any>

  • getHeaderType: (() => string)

    Retrieves CLIC header type

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    const headerType = await quoteAPI.getHeaderType(); // 'Default_quote_type'
    }
      • (): string
      • Returns string

  • getHeaderValue: ((name) => Promise<any>)

    Gets a value from the CLIC header. Use it to obtain properties such as version, externalRef, calculationStatus, etc.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    const quoteStatus = await quoteAPI.getHeaderValue('quoteStatus');
    console.log(quoteStatus) // 'DRAFT'
    }
      • (name): Promise<any>
      • Parameters

        • name: string

          The name of the property which you want obtain.

        Returns Promise<any>

  • getLineItemInput: ((queryData, name) => Promise<ClicInput>)

    Returns an input by name from the first line item fetched by queryData.

      • (queryData, name): Promise<ClicInput>
      • Parameters

        • queryData: QueryData
        • name: string

          The name of input

        Returns Promise<ClicInput>

  • getLineItemInputValue: ((queryData, name) => Promise<any>)

    Returns a value from the input defined by name from a line item which is the first in the response defined by queryData.

      • (queryData, name): Promise<any>
      • Parameters

        • queryData: QueryData
        • name: string

          The name of the input.

        Returns Promise<any>

  • getLineItemOutput: ((queryData, resultName) => Promise<Output>)

    Returns an output by resultName from the first line item fetched by queryData.

      • (queryData, resultName): Promise<Output>
      • Parameters

        • queryData: QueryData
        • resultName: string

          The name of the output.

        Returns Promise<Output>

  • getLineItemOutputResult: ((queryData, outputName) => Promise<Output>)

    Returns a result from the output defined by outputName from a line item which is the first in the response defined by queryData.

      • (queryData, outputName): Promise<Output>
      • Parameters

        • queryData: QueryData
        • outputName: string

          The name of the output.

        Returns Promise<Output>

  • getLineItems: ((queryData) => Promise<LineItem[]>)

    Fetches items from CLIC by queryData.

      • (queryData): Promise<LineItem[]>
      • Parameters

        Returns Promise<LineItem[]>

  • getLineItemsInPage: ((queryData, limit) => Promise<LineItemPage>)

    Fetches items as a page from CLIC by queryData and limit.

  • recalculate: ((forceAsync?) => Promise<any>)

    Triggers a recalculation at the CLIC object.
    By default, it is decided if the recalculation is triggered as async by Async actions threshold, which is defined in Administration > Configuration >…. You can force the trigger as async by passing true to the forceAsync parameter.

      • (forceAsync?): Promise<any>
      • Parameters

        • Optional forceAsync: boolean

          The recalculation will we triggered as an async job.

        Returns Promise<any>

  • setDisabledButtons: ((buttons) => any)

    Disables CLIC detail buttons in the header/items tabs. The options are:

    • Header tab: submit, calculate, startCreationWorkflow, nextStepCreationWorkflow, backStepCreationWorkflow, finishCreationWorkflow, finishCreationWorkflowAndSubmit, withdraw, markOfferAsLost, convertToDeal, reconvertToDeal, revoke, createNewRevision, emailing, emailingAndSignature, createOpportunity, assignOpportunity, assignAccount, duplicate, remove.

    • Items tab:

      • Header action buttons: add_items, browse_items, add_recommended_items, addFolder, massEdit, copyAllItemsToClipboard, importItemsToClipboard.

      • Selection context buttons: deleteItems, duplicateItems, moveItemsToFolder.

    CLIC Detail Only - In a list, this method does not make sense, so it is implemented just as an empty method there.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    // When a user opens a Quote, it has disabled buttons Recalculate, Duplicate and Assign Account
    await quoteAPI.setDisabledButtons(['calculate', 'assignAccount', 'duplicate']);
    }
      • (buttons): any
      • Parameters

        • buttons: string | string[]

        Returns any

  • setHeaderInputValue: ((inputName, value) => Promise<any>)

    Sets an input value at the CLIC header.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    // Simple inputs
    await quoteAPI.setHeaderInputValue('ProjectID', 'Some ID');
    await quoteAPI.setHeaderInputValue('ProjectName', 'Project Name');

    // Input with configurator
    await quoteAPI.setHeaderInputValue('Configurator_Documents', {
    InvoiceMethod: 'Invoice method',
    OpportunityOwner: 'Name',
    OpportunityOwnerEmail: 'Email',
    OpportunityOwnerPhone: 'Phone',
    OpportunityOwnerTitle: 'Title'
    });
    }
      • (inputName, value): Promise<any>
      • Parameters

        • inputName: string

          The name of the input. You can use dots to create a path to a nested input. E.g. collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1

        • value: any

        Returns Promise<any>

  • setHeaderOutputResult: ((outputName, value) => Promise<any>)

    Sets an output result at the CLIC header.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    const clicOutputResult = await quoteAPI.setHeaderOutputResult('outputName', 'Test value');
    }
      • (outputName, value): Promise<any>
      • Parameters

        • outputName: string

          The name of the output.

        • value: any

          The result value of the output.

        Returns Promise<any>

  • setHeaderValue: ((name, value) => Promise<any>)

    Updates a field at the CLIC header. Use it to update properties such as expiryDate, externalRef, additionalInfo1, etc

    Example

    export const quotesDetailNew = async ({ quoteAPI }) => {
    await quoteAPI.setHeaderValue('label', 'Updated label from intercepted method');
    }
      • (name, value): Promise<any>
      • Parameters

        • name: string

          The name of field at the CLIC header.

        • value: any

          The value of the field which will be set.

        Returns Promise<any>

  • setLineItemInputValue: ((queryData, name, value) => Promise<any>)

    Sets a value of the input with a name which is at the first line item defined by queryData.

      • (queryData, name, value): Promise<any>
      • Parameters

        • queryData: QueryData
        • name: string

          The name of the input.

        • value: any

          The value of the input.

        Returns Promise<any>

  • setLineItemInputValues: ((queryData, inputsToAdd) => Promise<any>)

    Updates multiple line item inputs values at once.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    await quoteAPI.setLineItemInputValues('product-1', {Quantity: 3, Customer: 'CD-0001'});
    }
      • (queryData, inputsToAdd): Promise<any>
      • Parameters

        • queryData: QueryData
        • inputsToAdd: {
              [inputName: string]: any;
          }
          • [inputName: string]: any

        Returns Promise<any>

  • setReadOnly: ((readOnly) => Promise<any>)

    Sets the CLIC object as read-only in UI.

    CLIC Detail Only - In a list, this method does not make sense, so it is implemented just as an empty method there.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    await quoteAPI.setReadOnly(true);
    }
      • (readOnly): Promise<any>
      • Parameters

        • readOnly: boolean

        Returns Promise<any>

  • updateHeader: ((values, inputValues) => any)

    Updates header values and header input values.

    Example

    export const quotesDetailOpen = async ({ quoteAPI }) => {
    await quoteAPI.updateHeader({externalRef: 'new external ref', label: 'new label'}, {Customer: 'CD-0001'});
    }
      • (values, inputValues): any
      • Parameters

        • values: {
              [headerFieldName: string]: any;
          }

          object containing header value names as keys and corresponding values

          • [headerFieldName: string]: any
        • inputValues: {
              [headerInputName: string]: any;
          }

          object containing header input value names as keys and corresponding values

          • [headerInputName: string]: any

        Returns any

Generated using TypeDoc