Skip to Content
Technical Articles
Author's profile photo Kamlesh Zanje

Integration Flow Simulation in SAP Cloud Integration

Introduction

SAP Cloud Integration April 2020 release (3.23.x/4.11.x) provides a feature to simulate Integration Flow. This feature is described in the SAP Help Portal ( see Integration Flow Simulation).

 

New with SAP Cloud Integration release (3.31.x/6.7.x) 

SAP Cloud Integration release (3.31.x/6.7.x) provides revamped version of integration flow editor where we have removed simulation mode. You can leverage simulation feature in both edit and read-only mode of integration flow without need of simulation mode. Revamped of integration flow editor is described in this blog

New with SAP Cloud Integration October 2020 release (3.30.x/6.6.x) 

SAP Cloud Integration October 2020 release (3.30.x/6.6.x) provides an extended feature to support simulation of an integration flow with the various types of body files and simulation in the edit mode of integration flow.

You can simulate an integration flow with various types of body files. This feature is described in this blog.

Simulate an integration flow in the edit mode. This feature is explained in this blog.

New with SAP Cloud Integration August 2020 release (3.28.x/4.15.x)

With this release, IDoc and PKCS Splitter flow steps are supported in the integration flow simulation.

New with SAP Cloud Integration July 2020 release (3.27.x/4.14.x)

With this release, General Splitter, Iterating Splitter and Looping Process Call flow step is supported in the integration flow simulation. Other variant of the Splitter will be supported in the successive release.

In addition, we have simplified the feeding of the simulation message input by providing the smart upload capability.

On completion of the simulation of integration flow, the processed message can be downloaded.

Please refer the Spitter and Looping process call section for details.

New with SAP Cloud Integration June 2020 release (3.26.x/4.13.x)

With this release, Gather flow step is supported in the integration flow simulation.

New with SAP Cloud Integration May 2020 release (3.24.x/4.12.x)

With this release, Multicast flow step is supported in the integration flow simulation.

What is Integration Flow Simulation

Simulation in an Integration flow Web editor is the feature that enables integration developers to test a subset of integration flow during development without the need of deploying an integration flow and enable trace explicitly.

Why Integration Flow Simulation

As we know modelling an integration flow, deploying and enabling trace to validate all the steps of integration flow is a time-consuming task.  Developing integration flow is an incremental process that needs the repetition of the cycle of deploying & enabling trace which is cumbersome and reduces developer productivity. Therefore, there is a need to have a test environment that will give an instant outcome of the integration flow and as well enables developers to negate the possibility of the deployment failure of the integration flow.

To overcome this challenge, we have now introduced an Integration Flow Simulation functionality in SAP Cloud Integration Web Editor that will help developers to validate the subset of integration flow and assess the behavioral outcome of steps in the integration flow. The simulation feature will simulate the execution of the integration flow and gives the developer the output that could be in the form of Payload, Headers & Properties.

How to use Integration Flow Simulation

In this section, we explain how to use this feature and leverage the benefits to test the integration flow. But before this, you should be well versed with the following.

  1. Functionalities and operations of symbols that are associated with the Simulation feature.
  2. Different Color convention associated with the symbols.

Functionalities of the symbols

Functionalities Symbolic Representation Details
Simulation Mode

This switch enables the simulation functionality and it’s located at the top-right corner in the canvas. A simulation tool will be available on the canvas once you turn ON the simulation mode.

Note – Simulation mode is OFF by default.

Start Point

A Start Point is an element of Simulation. It needs to be placed where simulation to be done at first on your flow path.

It feeds a simulation input.

End Point An End Point is an element of simulation that needs to be placed to end the simulation on your connection or the defined path of simulation.
Add Simulation input

On click of start point, Add Simulation Input dialog opens.

This capability allows integration developer to add input that could be as follows:

  • Header
  • Properties
  • Payload

You can copy paste the payload in the body

Add Simulation Response

This capability allows integration developer to simulate the response from the receiver adapter connected to Request-Reply step.

Simulate the read of variable in the content modifier.

Simulate the read of the data store in the Get element.

Run Simulation It’s an action element available in the simulation tool, which is used to run the simulation once the start and end point have been defined.
Clear Simulation It’s an action button on the simulation tool that is used to remove all the simulation elements like start point, end point, message processing output for all the previously defined.
Message Envelope When the simulation run is successful, the message envelope is rendered and located between the start and end point. On Click of message envelope, message content display in the form of header, properties, and message body.

Color conventions of symbol

Color Code Used For Details
Blue Start point and Message Envelope

Start Point: Always remains the same.

Message Envelope: Appear after running the simulation successfully. You can proceed to check simulation output just by clicking on it.

Red End point and Message Envelope Appears when there are errors. Click on the respective functionalities to check error messages.
Black End point Normal behavior and no action required.
Green End point Appears on successful execution of simulation.

 

Hope you are aware of the functionalities and color convention of the symbols, now it makes sense to take you through the process of simulating a subset and the complete integration flow.

Open your integration flow in read-only mode. And on the top right corner of the integration flow editor, you see a switch button that helps you to enable the simulation tool. It is switched off by default.

 

On enabling the Simulation button, the simulation tool appears over the integration flow.

This tool lets you,

  • Run the simulation
  • Clear simulation
  • Context sensitive help that will direct you to the information needed.

Let us first set the simulation for a subset of this integration flow.

Click on the connector line where you need to define the start point of your simulation.

 

Follow the same to define the End point for your simulation.

 

Now you can see that the first two icons of the simulation tool have been enabled.

 

Now, we need to provide an input for the simulation to run. You can add a header value or a property or you can enter a payload in the body. For this test, let us provide an input payload in the body. You must click the start point which will open the “Add Simulation Input” dialog.

 

 

For this test of an integration flow, let us provide following input payload in the body. You can copy paste the following code.

<root>
<order>
<orderno>OD0001</orderno>
</order>
</root>

 

The subset of an integration flow now filters the incoming payload based on the XPath provided in the Filter step.

 

Let us run the simulation now.

The simulation is complete and if it is successful, the End Point turns from black to green.

 

The message envelope is decorated between the Start and End point. On click of the Message Envelope, the processed output of the step will be shown in the property sheet.

Based on the simulation input and the XPath provided, the output message should consist of the order details.

 

Let us clear the simulation.

 

Click on the Clear Simulation from the tool. Simulation data, settings is cleared off.

 

 

Simulation of integration flow with Splitter and Looping process call

Image1 : Select start point to feed simulation input message

Image2 : Click to upload the input message from the file system

This smart upload capability allows to upload the message zip which comprises of *.headers, *.properties and *.body file. Zip file can contain any permutation and combination of the supported file. In addition to this, you can as well upload the supported file individually.

Image3 : On upload, the body, properties and headers will be populated

Image4 : Spitter’s processed message upon the completion of integration flow simulation 

Each processed message of the Splitter can be examined through the pagination control. This control has a capability to navigate to next page, previous page, last page and first page.

Image5 : Processed messages of Looping Process Call upon the completion of integration flow simulation

Image6 : Download processed message after the completion of simulation.

Image6 : Downloaded message will be in the zip structure which comprises of headers, properties and body

 

Supported Components for an Integration Flow Simulation

Details on Components Supported in the Simulation Process.

Category Elements Supportability
Message Transformers
  • Content Modifier
  • Converter
  • Decoder
  • Encoder
  • Filter
  • Message Digest
  • Script

All.

Note – For the Script flow step HTTP calls can’t be simulated.

Call
  • External Call
  • Local Call
All
Message Routing
  • Aggregator
  • Gather
  • Join
  • Router
  • Splitter
  • Multicast
All Routing Elements except the following: –

  • IDoc splitter

  • PKCS#7/CMS splitter

  • Tar splitter

  • Zip splitter

  • Aggregator

Note:

It will be available in the subsequent releases.

Security Elements
  • Decryptor
  • Encryptor
  • Signer
  • Verifier
All.
Persistence
  • Data Store operations
  • Persist
  • Write Variables

All.

You can only simulate the read of variable value and data store.

Validator XML Validator All.

 

Benefits of Simulation

This section lists the benefits of simulation in an integration flow.

  1. Simulate the subset of integration flow without need to deploy and enable tracing.
  2. This feature offers realistic input to integration developers when designing an integration flow.
  3. Simulation allows the developer to simulate dependencies and identify issues at the early stage.
  4. It helps integration developer to identify the probable deployment errors.
  5. Any errors identified during the simulation, records as a message along with recommendations to fix it.
  6. Improves the integration developer productivity.

 

Scope of an Integration Flow Simulation

With the first release (3.23.x/4.11.x) of the Integration flow simulation, we would support the simulation of an integration flow in the read-only mode of integration flow web editor.

The maximum no of steps which can participate in the simulation of integration flow is 10.

Maximum size of the payload – 1 MB

 

Successive Increments of an Integration Flow Simulation

The successive increments in the integration flow simulation will bring some more additional capabilities. Some of the salient features are as follows:

  1. Start supporting the remaining components which are not supported.
  2. Some more improvements in the validation handling scenarios.
  3. Simulating steps in the edit mode of integration flow.
  4. Persistency/Save of simulated data, configuration and settings.

 

I hope, you can benefit from the enhancements presented in this blog post. I’ve shared a video which captures more scenarios related to Integration Flow Simulation.

Integration Flow Simulation Video

In case of questions or feedback, please feel free to comment on this blog.

Assigned Tags

      32 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Stenish Peter Suvaniappan
      Stenish Peter Suvaniappan

      Awesome!!

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Thanks for appreciating this feature.

      Author's profile photo Priyank Shrivastava
      Priyank Shrivastava

      Thank you for such a detailed Blog.

      Tried this feature, such an awesome feature to help the developers..

      Keep Integrating !!!

      Regards,

      Priyank Shrivastava

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Thanks Priyank for appreciating this feature.

      Author's profile photo Fatih Pense
      Fatih Pense

      Hello Kamlesh,

      Thanks for the post and congrats to the developer team behind the feature. It was such an important improvement there are already 3 posts about it. 🙂

      I have a few questions:

      • It seems that we can only simulate read-only operations. Is this intentional to prevent changing data in the system by mistake?
      • Can I use all the services inside the Script? Can I change some PartnerDirectory StringParameter for example?
      • Do you plan to add API support for this functionality? It can be a distinguishing feature for SAP CPI. Right now you can separate a mapping flow and have similar functionality. But "Simulation Points API" would be great.

      Regards,
      Fatih

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Hello Fatih,

      Thanks for the appreciating this feature. I will pass on your kind regards to my team who has developed this feature. Nevertheless, below are the answers to your questions.

       

      1. We have released the first increment of this feature where simulation is possible in the read-only mode of integration flow. But we have immediate plans to enable this feature in the edit mode of integration flow as well which has been depicted in the Blog's section - Forthcoming increments.
      2. Script can participate in the simulation, but you cannot mock the HTTP calls (GET, PUT, POST etc.) in script, the way it is possible to mock the response from the receiver adapter connected to Request-Reply.
      3. Yes, we do have plans to support Remote OData API to simulate the integration flow.

      Regards,

      Kamlesh.

       

      Author's profile photo Fatih Pense
      Fatih Pense

      Hello Kamlesh,

      Thanks for the response! Point-3 is great news! I think I wasn't clear for points 1 and 2 because the terminology is similar. So let me paraphrase my question:

      What will be the limitations of the final features? I think calling HTTP from script or request-reply will also be limited in the future. That makes sense for testing purposes.

      Can we use "NumberRangeConfigurationService" from a script? or DataStore write operation step in the future?

      Regards,
      Fatih

       

      Author's profile photo Ramanujam Bellur Rajkumar
      Ramanujam Bellur Rajkumar

      Thanks for this blog post Kamlesh ! Good to see this useful feature going live. It was the ask of several customers

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Thanks Ramanujam. Exactly, this feature was asked by many customers.

      Author's profile photo Vikas Singh Rajpurohit
      Vikas Singh Rajpurohit

      Great news Kamlesh! much awaited feature.

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Thanks Vikas. Experience this feature and share your feedback.

      Author's profile photo Dominic Beckbauer
      Dominic Beckbauer

      Great new feature. I was really missing sth like that. So great work.

      @Kamlesh Zanje:

      Is there an API that we can use to trigger this from the outside? I am thinking about integrate a feature to the CPI Helper Plugin to inject the headers, properties and the body from trace. So you can simulate a specific situation.

      Also it would be nice to have this funtion in edit mode too. This is where we really need it during debugging. Are there any plans?

       

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Hello Dominic,

      Yes, in the subsequent release, we would enable simulation in the edit mode as well.

      Remote OData API is not available with this release, but we do have plans to productize.

      Regards,

      Kamlesh.

      Author's profile photo Diptendu Chaudhuri
      Diptendu Chaudhuri

      Hello Kamlesh Zanje:,

      This is a great feature and would be of great help!

      Seems like the Splitter support is still work in progress?

      Regards,

      Diptendu.

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Hello Diptendu,

      Your observation is correct.  Few steps are not supported like splitter, gather, aggregator,  multi-cast and looping process call. But in the subsequent releases, we will support them.

       

      Regards,

      Kamlesh.

      Author's profile photo Diptendu Chaudhuri
      Diptendu Chaudhuri

      Hello Kamlesh,

      Thank you for your quick response!

      Much Appreciated.

      Regards,

      Diptendu.

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Hello Diptendu,

      Most of the splitter flow steps were supported with previous releases . How with 3.30.x/6.6.x software release, we are supporting simulation of zip and tar splitter, please refer this blog.

      Regards,

      Kamlesh.

      Author's profile photo Souvik Sinha
      Souvik Sinha

      Hi Kamlesh Zanje: ,

       

      Thank you for sharing a wonderful blog. As you said I looking forward for your video.

       

      I have one query regarding this features.

      Q: I have integration flow and between end and start timer there is a request reply step which is connected to Successfactor receiver and I am trying to invoke a GET call. So this simulation mode will able to fetch the data from Sucessfactor as response back to CPI? Also Can we able to see the response in CPI as well?

       

      Regards,

      Souvik

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Hello Souvik,

      Thanks for asking question. In the simulation mode, you will not able to make the actual call to the receiver system to get the response, however we have provided a capability to simulate/mock the response from the receiver system via receiver adapter. Please click the receiver channel/adapter which is connected to Request-Reply and select "Add Simulation Response" and provide the payload or/and headers in the dialog, this message would be honored as a response when you run the simulation. If you don't simulate the response for this case, the message payload from the previous steps would be considered.

      Hope your question is answered. If not, let me know.

      Regards,

      Kamlesh.

       

      Author's profile photo Souvik Sinha
      Souvik Sinha

      Thanks Kamlesh. Yes I understood the functionality now.

      Author's profile photo Thomas Buerki
      Thomas Buerki

      Nice, but doesn't work. Although I selected start and end point, the "Run Simulation" button never got active. 🙁

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Hello Thomas,

       

      Please mail me with the details, I will support you to overcome the situation.

       

      Regards,

      Kamlesh.

      Author's profile photo Eng Swee Yeoh
      Eng Swee Yeoh

      Hi Kamlesh,

       

      It's great to see that this Simulation Mode has finally been released. Even in its initial state, it is already really great to have, and I can only imagine it will improve from here on out. Once persistence of configuration and Remote API comes out, the possibilities of what can be done is only limited by one's imagination 😉

       

      Even though I've just tried it out briefly, to me, this is one of the most significant feature to be added since Trace mode. Kudos again to the team at SAP for this! We look forward for more innovations like this 🙂

       

      Thanks and best regards,

      Eng Swee

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Thanks Eng Swee for kind words 🙂

      Author's profile photo Kishore Thallapally
      Kishore Thallapally

      Hi Kamlesh,

       

      Very useful feature for the Integration Consultant. It will reduce the pain of deploying and see the result and again thanks for the detailed information.

      Keep it up your great work.

      Thanks,

      Kishore.

       

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Thanks Kishore. Good to see you again !

      Author's profile photo Matti Leydecker
      Matti Leydecker

      A great explanation Kamlesh, thank you very much.

      This is a very great feature and I agree with Eng Swee - this looks as important as the trace mode! I will happily test this today.

       

      Best regards

      Matti

      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Thanks Matti. Please test this feature and share additional feedback.

      Author's profile photo Matti Leydecker
      Matti Leydecker

      After a first quick test, I absolutely love the feature! Thank you very much for listening and releasing this!

      Author's profile photo Madhubala Chandran
      Madhubala Chandran

      Hi Kamlesh,

      This is very useful , thanks for the post .

       

      Warm Regards,

      Madhu

      Author's profile photo Eduardo Marcelino
      Eduardo Marcelino

      great!! But here It doesn't work.

       

      Failed to Simulate the Integration Flow. Please try again.
      Author's profile photo Kamlesh Zanje
      Kamlesh Zanje
      Blog Post Author

      Hello Marcelino,

      Sorry for late in reply. I would request you to report a BCP ticket with details.

      Regards,

      Kamlesh.