Introduction:
With the July 2018 release of Cloud Integration, SAP released a new variant of AS2 sender adapter to have the facility of creating and running AS2 sender scenarios without JMS persistency. Earlier, there used to be a new JMS queue automatically being assigned for each AS2 Sender adapter.
Now, users can use the feature “Best Effort” to customize MDN by adding additional information such as processing errors with the MDN. Earlier, users were restricted from sending additional information as part of the MDN.
Configuration:
On the AS2 Sender configuration, we introduced a new tab called “Delivery Assurance” with two types of Quality of Service(QoS) .Quality of Service(QoS) assures the delivery of incoming AS2 message.
Use one of the below mentioned options based on your requirements.
- Exactly Once (Default): Use this option whenever you have the need for asynchronous one-way scenarios.
Whenever you use this option,
- JMS queue created for each AS2 Sender.
- The messages are stored temporarily in the JMS queue and are retried in case of an error.
- MDN is sent back to the Sender system immediately from the AS2 sender adapter.
- Best Effort: Use this option whenever you have the need for synchronous message processing or want to customize the MDN with additional processing information.
Whenever you use this option,
- No JMS queue is created for the AS2 Sender.
- MDN is sent to the Sender system only after the integration flow exchange ends.
Scenario for Customizing the MDN with Best Effort QoS:
Consider a case where you must create an integration flow with AS2 sender and configure different flow-steps to process the message. In such a scenario, If you encounter any processing errors that you want to inform the Sender partner. Then you need to customize the MDN to add this additional error information as part of MDN message.
Perform the following steps to customize an MDN.
Choose “Best Effort” on the AS2 Sender configuration and create an integration flow with Exception Sub-process as shown below.
The MDN is populated in a exchange property called “
SAP_AS2_MDN” and you can customize the exchange property value inside the exception sub process by modifying the exchange property value.
Points to Note:
- Incase if you choose Decrypt message/Verify Signature on AS2 Sender and the incoming message fails on these checks, a negative MDN will be sent to the Sender partner without further processing. Customization of the SAP_AS2_MDN exchange property would not have any impact.
- If exception sub-process is used in the inbound integration flow with Best Effort QoS of AS2 Sender and you do not perform any customization of the exchange property SAP_AS2_MDN, then the original MDN is sent to the Sender Partner.
- If exception sub process is not used in the inbound integration flow with Best Effort QoS of AS2 Sender and an exception occurs in the integration flow, then the processing exception is sent to the Sender partner instead of MDN. In all other cases, the value of SAP_AS2_MDN exchange property is sent to the Sender partner.
- If you want to customize the MDN, it is the responsibility of the integration developer to make sure the value of the exchange property SAP_AS2_MDN should not set to null or empty.
- If you are customizing the MDN exchange property SAP_AS2_MDN, make sure that you do not delete the mandatory the MDN specific keys (g.: Disposition, Received-Content-MIC) from the generated MDN.
Summary:
In this blog, we learnt about how to use Best Effort Quality of Service (QoS) on AS2 Sender for synchronous message processing. We also learnt on how to customize the MDN to add additional processing information.