SAP Marketing Cloud iFlows Enhancement with JMS Buffering
As of SAP Marketing Cloud 2005 and SAP Marketing 2020, integration flows (iFlows) enable you to integrate your mobile app with SAP Marketing.
You can use the standard Marketing iFlows or modify them based on your needs. This blog post explains how to enhance a standard iFlow by adding Java Message Service (JMS) buffering. JMS buffering enables messages to be processed asynchronously to improve the resilience and response time of the system.
SAP Marketing Cloud mobile integration uses 3 iFlows to do the following:
- Create Contact in SAP Marketing Cloud for Mobile Application Integration
- Create Interaction in SAP Marketing Cloud for Mobile Application Integration
- Create Interaction Using Tracking URL in SAP Marketing Cloud for Mobile Application Integration
Prerequisite: Enable JMS
- Install the standard mobile app integration with SAP Marketing Cloud on the SAP Cloud Platform Integration. For more information, see Mobile App Integration with SAP Marketing Cloud.
- JMS messaging requires the Enterprise / Standard Edition license of SAP Cloud Platform Integration. To start using JMS, activate the Message Broker in the Provision Broker section of your tenant. For more information, please visit Activating and Managing Enterprise Messaging Capabilities.
This enables you to see the Message Queues item in the Operations view.
Add JMS Buffer to Existing iFlow:
Add the JMS adapter to the existing Create Contact in SAP Marketing Cloud for Mobile Application Integration iFlow, by doing the following:
1.Copy the existing iFlow in the design section:
2. Edit the new copy of the iFlow.
3. Add additional Sender and Receiver integration processes in the middle:
4. Add Start Message and End Message nodes and link them with an arrow:
5. Drag and drop the end of the arrow for the existing HTTPs Adapter to relink it with the new integration process:
6. Create a new JMS Adapter from the new Sender to the old Start message integration process. To do this, press the Arrow button on the Sender box and drag it to Start:
7. Tune Number of Concurrent Processes and other JMS adapter parameters based on your requirements.
8. Create a JMS Adapter from the new End Message to new Receiver.
9. Use the same Queue Name for both JMS adapters and uncheck the Encrypt Stored Messages option (only used for testing purposes):
10. The iFlow should look like the following:
11. Save the IFlow.
12. Open the iFlow configuration and enter the parameters from the original (standard) iFlow.
13. Deploy the new iFlow.
14. Perform a test call to the new iFlow. There are now 2 log records in the Monitor Message Processing section:
In this blog post, you have learned how to improve an existing iFlow by adding JMS buffering. This change dramatically increases the productivity of the iFlow, adds a built in Retry on Failure feature, and makes it more resilient.
For more information, see:
- Not enough JMS queues for Exactly Once? Share them between IFlows!
- Comprehensive SAP CPI Guide for Standards & Best Practices
Thanks, Ievgen for the trick. Never thought we can even utilize JMS for such a common, yet effective, use case. Keep up the good work!