Loading
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Common Action Utility for Remote Calls (Managed Package)

          Common Action Utility for Remote Calls (Managed Package)

          For the managed package runtime, make remote calls from any custom LWC using the Common Action Utility. The Common Action Utility relies on the Vlocity Action Framework to make remote calls without the dependency of a strict Omniscript data structure.

          Managed Package app icon This information is for Omnistudio for Managed Packages. For Omnistudio on standard runtime, see Omnistudio Help.

          • Utility: omniscriptActionUtils
          • Utility Class Name: OmniscriptActionCommonUtil

          Defined Methods and Available Variables (Managed Package)

          For the managed package runtime, review the available methods and variables for remote calls.

          Managed Package app icon This information is for Omnistudio for Managed Packages. For Omnistudio on standard runtime, see Omnistudio Help.

          Method Name

          Description

          Argument - Data Type

          Returns

          executeAction

          Begins the execution of an action flow.

          • params - object

          • queueableId - string

          • comp - component

          • payload - object

          • vlcParams - object

          promise

          handleActionEvents

          Handles action events once the remote call obtains a response. It can be configured to send events to the Omniscript Designer Debug console. Configured for sending pubsub events.

          In LWC, if sendDataToDebugConsole is defined in the component, event logs can be sent to the Debug Console in the Omniscript Designer. If the component is not in Omniscript, define _debugLabel in the component populate the debug log event name. If from omniscript, the debug log event name is populated from the label property in the element's property set.

          • comp - component

          • resp - object

          • params - object

          • element - object

          void

          invokeAction

          Method that invokes an Apex class or a Promise resolution using an action transformed request.

          • data - object

          • comp - component

          • (optional) payload - object

          promise

          postProcess

          Post-processes remote call response for both successful and failed remote calls and returns a post-processed response. The return contains an object with the key nodes:

          • result: stores the remote call's raw response

          • error: boolean

          • resp - object

          • element - object

          • comp - component

          • (optional) failure - boolean

          object

          preProcess

          Preprocesses remote call parameters before invoking an action.

          • params - object

          • queueableRespId - string

          • comp - component

          • payload - object

          • vlcParams - object

          object

          Variable Name

          Description

          _ns

          Namespace in dot notation

          _element

          (Optional) Omniscript element JSON definition

          Implementing the Common Action Utility (Managed Package)

          For the managed package runtime, import the Common Action Utility into your Lightning Web component so that you can make remote calls.

          Managed Package app icon This information is for Omnistudio for Managed Packages. For Omnistudio on standard runtime, see Omnistudio Help.

          1. Obtain the dot notation format of the namespace in your LWC by importing getNamespaceDotNotation from omniscriptInternalUtils. Replace NS in the first line of code with the namespace of your package.
            Note
            Note

            Remote calls made to Apex classes inside a vlocity managed package must include the namespace in the sClassName parameter sent into the executeAction.

            import { getNamespaceDotNotation } from 'NS/omniscriptInternalUtils'; 
            _ns = getNamespaceDotNotation();
          2. Import OmniscriptActionCommonUtil into your LWC from the utility class omniscriptActionUtils. Replace NS in the first line of code with the namespace of your package.
            import { OmniscriptActionCommonUtil } from 'NS/omniscriptActionUtils';
          3. Create an instance of the OmniscriptActionCommonUtil javascript class.
            this._actionUtilClass = new OmniscriptActionCommonUtil();
          4. Use the OmniscriptActionCommonUtil methods to execute remote calls to the server.
            • The most common flow is to use the executeAction method. This method starts the remote call flow, and the response callback from executeAction returns an object that has these properties:

              • result: Contains the response from the remote call.

              • error: Contains a boolean indicating the invoke status of GenericInvoke2.

            • Parameters sent into the executeAction must be in an object format. The object must have the following keys:

              • input

              • sClassName

              • sMethodName

              • options

              Each key requires a stringified value.

            • If the LWC displays in the Omniscript Designer, it is possible to send events to the Debug Console. Send events to the Debug Console by including the sendDataToDebugConsole method in your LWC. The method provides logic on sending events to the Debug Console. sendDataToDebugConsole accepts these arguments:

              • params

              • resp

              • label

          Example
          Example
          • Sample remote call using executeAction:
            connectedCallback() {
                this._actionUtilClass = new OmniscriptActionCommonUtil();
            }
            
            triggerRemote() {
                const params = {
                    input: '{}',
                    sClassName: 'LwcTest',
                    sMethodName: 'lwctest',
            		options: '{}',
                };
            
                this._actionUtilClass
                    .executeAction(params, null, this, null, null)
                    .then(response => {
            			window.console.log(response);
                    })
            		.catch(error => {
            			window.console.log(error);
                    });
            }
          • Sample sendDataToDebugConsole method:
            sendDataToDebugConsole(params, resp, label) {
            	let sendParams = JSON.parse(JSON.stringify(params));
                if (sendParams && sendParams.options) {
                	let optionNode = JSON.parse(sendParams.options);
                    delete optionNode.options;
                    delete optionNode.input;
                    sendParams.options = optionNode;
                }
                let sendResp = JSON.parse(JSON.stringify(resp));
            
            	// for queueable support
                if (sendResp && sendResp.responseResult) {
                     sendResp.responseResult = JSON.parse(sendResp.responseResult);
                }
            
                // dispatches action data to debug console
                const debugEvent = new CustomEvent('omniactiondebug', {
                    bubbles: true,
                    cancelable: true,
                    composed: true,
                    detail: {
                    	params: sendParams,
                    	response: sendResp,
                    	element: { label: label },
                	},
                });
                this.dispatchEvent(debugEvent);
            }
          • Sample queueable remote call using executeAction:
            connectedCallback() {
                this._actionUtilClass = new OmniscriptActionCommonUtil();
            }
            
            triggerQueueable() {
                const options = {
                    input: '{}',
                    vlcClass: 'LwcTest',
                    vlcMethod: 'lwctest',
                    useQueueableApexRemoting: true,
                };
                const params = {
                    input: '{}',
                    sClassName: `${this._ns}VFActionFunctionController.VFActionFunctionControllerOpen`,
                    sMethodName: 'runActionFunction',
                    options: JSON.stringify(options),
                };
                this._actionUtilClass
                    .executeAction(params, null, this, null, null)
                    .then(response => {
                        window.console.log(response);
                    })
                    .catch(error => {
                        window.console.log(error, 'error');
                    });
            }
          • Sample continuation remote call using executeAction:
            connectedCallback() {
                this._actionUtilClass = new OmniscriptActionCommonUtil();
            }
            
            triggerContinuation() {
                const options = {
                    input: '{}',
                    vlcClass: 'QeRemoteAction2',
                    vlcMethod: 'populateElements',
                    useContinuation: true,
                };
                const params = {
                    input: JSON.stringify(this.omniJsonData),
                    sClassName: 'QeRemoteAction2',
                    sMethodName: 'populateElements',
                    options: JSON.stringify(options),
                };
                this._actionUtilClass
                    .executeAction(params, null, this, null, null)
                    .then(response => {
            			window.console.log(response);
                    })
                    .catch(error => {
                        window.console.log(error, 'error');
                    });
            }
          • Sample future remote call using executeAction:
            connectedCallback() {
                this._actionUtilClass = new OmniscriptActionCommonUtil();
            }
            
            triggerFuture() {
                const options = {
                    useFuture: true,
                };
                const params = {
                    input: '{}',
                    sClassName: `${this._ns}IntegrationProcedureService`,
                    sMethodName: 'Test_Chainable',
                    options: JSON.stringify(options),
                };
                this._actionUtilClass
                    .executeAction(params, null, this, null, null)
                    .then(response => {
            			window.console.log(response);
                    })
                    .catch(error => {
                        window.console.log(error, 'error');
                    });
            }
          • Sample chainable remote call using executeAction:
            connectedCallback() {
                this._actionUtilClass = new OmniscriptActionCommonUtil();
            }
            
            triggerChainable() {
                    const options = {
                        chainable: true,
                    };
                    const params = {
                        input: '{}',
                        sClassName: `${this._ns}IntegrationProcedureService`,
                        sMethodName: 'Test_Chainable',
                        options: JSON.stringify(options),
                    };
                    this._actionUtilClass
                        .executeAction(params, null, this, null, null)
                        .then(response => {
            				window.console.log(response);
                        })
                        .catch(error => {
                            window.console.log(error, 'error');
                        });
                }
          • Sample parameters for a remote call from inside a Vlocity package:
            const params = {
                input: '{}',
                sClassName: `${this._ns}IntegrationProcedureService`,
                sMethodName: 'Test_Chainable',
                options: '{chainable: true}',
            };
           
          Loading
          Salesforce Help | Article