Table of Contents |
---|
How to
...
Create Interceptor in Unity
Note: Dynamic interceptors are not compatible with Ember Unity parts.
After that, you will be able to navigate to Interceptors page, which can be found on Configuration Page, under CRM Integration section.
...
Prerequisites: Make sure you have the Develop Interceptors role assigned.
Steps to create an interceptor:
Go to Configuration > CRM Integration > Interceptors.
Click the Set Interceptor button , which will display a modal window where you can create an interceptor. Please note
Note that all interceptors have pfxInterceptor_as a prefix , which will be used when saving them as a an Advanced Configuration record. You can also set the interceptor as temporary , which means that the given interceptor will be attached
...
activated only for your own browser session.
Now you will see all available intercepted methods. Each method refers to an event in Unity
...
. Some of these events are:
quotesDetailNewCheck
This method is triggered after clicking
...
the New button at /#/qc/quotes, but before the Quote is created. If this method returns false,
...
the Quote will not be created and the user will stay at the Quote list. In this method you
...
do not have access to quoteAPI, but you can use other
...
APIs for checking conditions from CRMs.
quotesDetailNew
The starting point for this event is clicking the New button at /#/qc/quotes. The method is triggered after the new Quote is recalculated and saved at backend and the user is redirected to the Quote detail page /#/qc/quotes/<quoteId>.quotesDetailEdit
Triggered when a user opens the Quote detail page.quotesDetailRecalculate
Triggered when a user clicks the Recalculate button on the Quote detail page /#/qc/quotes/<quoteId>.quotesDetailSubmit
Triggered when a user clicks the OK button in the Submit modal dialog on the Quote detail page /#/qc/quotes/<quoteId> after clicking Submit.quotesDetailTabSwitch
Triggered at Quote detail at open and then when the user switches to a different tab.
...
To see a regularly updated list of all available methods and when they are triggered,
...
As you expand one of the method fields, you will see Add PRE Code, and/or Add POST Code buttons (according to each method’s compatibility):
When clicking
...
any of them, a modal window will show
...
:
...
...
There is a dropdown
...
menu with available templates, and you can also paste your
...
JavaScript code in there.
More technical explanations
...
how this code is structured and what PRE and POST means are available
...
below.
Finally, you can test
...
the interceptor's functionality, in this case
...
by creating a new quote:
...
How to
...
Create Interceptor in IntelliJ
For a better user experience while during development, we strongly recommend to use IntelliJ with PriceFX the Pricefx Studio plugin. After making sure you have the permissions as mentioned above:The prerequisites are the same as above: having the Develop Interceptors role assigned.
Steps to create an interceptor:
Check your version of Pricefx Studio in Plugins and update the version if necessary. If the plugin is missing, install Pricefx Studio first.
Edit the Config.js file to be able to fetch and deploy your solution to the correct environment.
After creating a new Dynamic Interceptor on the Configuration > Interceptors page, you can fetch it. Select the Environment and Partition that you want to work with and locate your interceptor in the Advanced configuration. Then click the Fetch button.
The procedure is similar to deploying your solution after some changes.
After the code is deployed, use the Reload interceptor Interceptor functionality.
How to
...
Create Interceptor in VSCode or VSCodium
IntelliJ offers JavaScript code highlighting only in paid versions of the IDE. As an alternative, for VSCode and VSCodium we have developed Pricefx Code extension , which offers Interceptor and Configuration file editing. Extension The extension works only with permissions which are mentioned above.
All information regarding Pricefx Code can be found here: For details see Pricefx Code.
How
...
Interceptors Work
This sample of a JavaScript code will be structured like this:
Code Block |
---|
export const compensationsDetailCreateNewRevision = async ({ compensationPlanOriginAPI, compensationPlanNewRevisionAPI, api: { notify }}) => { await notify.success('Triggered interceptor compensationsDetailCreateNewRevision'); // TODO: Add your code } |
For each method that you would like to should trigger something, there will be a function being exported. This function has one argument , which has different APIs that will offer interaction with Unity, and CLIC data manipulation. In here you can
To find the type definitions and documentation of all available methods and their available API through its argument. In case APIs, click here. If you struggle to find out exactly what’s what is available, you can run the a specific interceptor method with a debugger:
Code Block |
---|
export const quotesDetailNew = (parameter) => { debugger; }; |
...
PRE and POST Methods
Some methods have both the option options – to add PRE and POST code.
The idea behind this is that the PRE code will run before the intercepted method, i.e. when you have a PRE method on to create a new quote, this will run before the quote is created, and in case your PRE method returns false it will stop and the quote will not be created.
In case If it returns something, that will be some value, it is passed to Unity and can be used according to the method.
...
PRE and POST methods have the same name, and for PRE ones they must have a Pre suffix, as in .
Example: quotesDetailNew
(POST) and quotesDetailNewPre
(PRE).