In this blog I would like to give you the clear picture of how to use the dynamic configuration for Seeburger AS2 adapter and hence by using one communication channel, we can send the multiple signals (by dynamically providing the Seeburger X2E mappings) and we can use different delimiters for different signals (Providing different delimiters at runtime) by using the same communication channel.
We have a customer ‘Customer – A’ and we are sending n-number of EDI outbound signals (850/860/….). At this time we have to create n-communication channels and provide X2E mapping and delimiter statically in every communication channel like below.
For the customer A, instead of creating of multiple communication channels for all the n-signals, we can use one communication channel for all the signals and we can give the mapping name (X2E mapping name) and delimiters dynamically in the message mapping with the help of below User Defined function (UDF) and Dynamic Configuration Concepts.
Create one simple type UDF “setDynamicParameters” as below
Need to go for Dynamic Configuration:
- To reduce the configuration objects.
- To reduce the development time for creating the configuration objects.
In SAP PI 7.0/XI 3.0, We can use GlobalContainer object to write the UDFs like setParameters and getParameters to store the temporary values. From SAP PI 7.1 onwards, We can use Global Variables Concept in Message mapping to replace lot of previous development effort for global variables. It makes the development process much easier and brings a lot of clarity on when a global value will be calculated. Now in the SAP PI 7.1 Message mapping, create 2 variables with any name (Delimiters and MapName).
1) For Delimiters variable in target side, Map UDF (setDynamicParameters) as below.
- Namespace of Seeburger BIC, http://seeburger.com/xi/bic
- Module name for delimiter “destDelimiter”. (we can give our own name here)
- 3rd and 4th inputs are delimiter values “>*.@?~”
- First one is the component element/sub element separator (we can map/give this value to ISA-D_I15).
- Second one “*” is the field/element separator
- Third one “.” is the decimal separator (We use this value at Amount field $50.50)
- 4th and 5th values are Mask and Group separators.
- Last one “~” is the segment separator.
2) For MapName variable in target side, Map UDF (setDynamicParameters) as below.
- Namespace of seeburger bic, http://seeburger.com/xi/bic
- Module name for mapping “mappingName”. (here we can give any name)
- X2E mapping name “X2E_ANSIX12_810_V4010”.
- “default” constant.
Now mapping objects are saved and activated. In Integration Directory, for the corresponding AS2 Receiver Communication channel, Go to Modules tab and provide the values for parameters (destDelimiter and mappingName) as below
Also make sure that
- Second input value (destDelimiter) for Delimiter and what ever we mentioned in the module configuration that value (destDelimiter @http://seeburger.com/xi/bic/destDelimiter) should be same.
- Second input value (mappingName) for MapName and what ever we mentioned in the module configuration that value (mappingName @http://seeburger.com/xi/bic/mappingName) should be same.
- if we want to use the dynamic configuration in the communication channel, we need to check the Dynamic attributes options in the communication channel as below.
- By using single communication (outbound) channel we can send any number of signals(850/860/…) to a particular customer.
- Also we can reduce the configuration objects (No need to create all the configuration objects for every signal to particular signals)
- If we have multiple EDI versions, then also we can send the data by using same communication channel.
- For Inbound scenario, this is not applicable.
- If we have a scenario without message mapping, then Dynamic configuration is not applicable.
- This is customer specific. (We can not use same communication channel for more than one customer)
I believe this blog would provide better understanding of the usage of the Dynamic Configuration for both mappingName and delimiters in the single AS2 Communication channel in order to create n-number of communication channels for a single customer.