Externalizing parameters using SAP Cloud Platform Integration’s Web Application
Introduction
Integration Developers build their integration flows using the SAP Cloud Platform Integration tools on their development systems and once the development is complete, they move them to the test and production systems. During this development phase, they realize that the same integration flow may not work as is, across different systems and would require changes in the configurations of adapters or flow steps. To overcome this situation, they use the externalization feature offered by SAP Cloud Platform Integration tools.
Externalization feature enables an integration developer to define parameters for certain configurations of adapters or flow steps of an integration flow, whose values can be provided at a later point in time, without editing the integration flow.
Till now externalization was available only from Eclipse tooling, but now this has been offered also via the Web Application. In this blog, I will be sharing information on how this feature can be used and what is covered with the first increment of externalization feature in the Web.
Externalization Editor
Open an existing integration flow and select either adapters or flow steps from the Web editor to load the respective configuration in the bottom pane. If externalization is supported for that component, you will find a new “Externalize” button on the right corner.
Image 1: SOAP adapter’s configuration with “Externalize” button
On clicking the “Externalize” button, the Externalization Editor is launched which has all the configurations of the selected component that can be externalized. This view is divided into 3 columns – field name, parameter and value.
Image 2: Externalization Editor for SOAP adapter
Creating New Parameter
To externalize a field, you can create a new parameter in the parameter column using the format {{<parameter_name>}}.
Image 3: Creating a new parameter for Address field
Once you tab out of the parameter column, a token is created in the value column corresponding to the new parameter.
Image 4: New parameter and its token with empty value
Click on token in the value column, which opens a “Define Value” dialog, to provide a value for this newly created parameter.
Image 5: Providing a value to the newly created parameter
Image 6: Parameter and its associated value
Reusing Existing Parameter
It is also possible to reuse existing parameters across adapters or flow steps within the same integration flow. As soon as you start typing two curly braces (“{{“) in the parameter column, the auto-suggest kicks in and provides you with a list of all existing parameters and its associated values, which can be selected and reused.
Image 7: Reusing an existing parameter using auto-suggest
You can update the value of an existing parameter by clicking on the token in the value column, but be careful as this will also change in all the other places the same parameter is used within the integration flow.
Image 8: Parameters and its associated values
Using Multiple Parameters
Many times, integration developers combine multiple parameters to form a single value within a field. This is possible by creating or reusing more than one parameter in the parameter column and use the combination of tokens in the value column.
You can also add text before and after the token, which will not be externalized, but will be concatenated along with the values of the parameter during runtime.
Image 9: Multiple parameters and its associated tokens
Image 10: Additional text before and after the tokens
Removing Externalization
You can also remove externalization of a field by deleting the parameter from the parameter column. On tab, the value of the parameter is retained in the value column, but since there is no parameter available, the field will not be externalized.
Removing externalization of a field doesn’t delete the parameter as it is possible that the same parameter is used somewhere else within the integration flow.
Visualization of Externalized Fields in the Configuration
The fields that are externalized will be disabled in the configuration view of the component and you can see the token with its value there. To change the value of the parameter or to remove externalization of the field, you must click on “Externalize” button and perform these changes from the Externalization Editor.
Image 11: Externalized fields in the configuration view
Managing Externalized Parameters
You can manage all externalized parameters from the “Externalized Parameters” view which was added as part of the Integration Flow Configuration. This view provides a list of all parameters used in the integration flow and allows you to provide values or update existing values of parameters from a central place. But be careful while updating parameter values from here, since it will replace the updated value in all the places the same parameter is used in the integration flow.
Image 12: Externalized parameters view
In addition, it is also possible to remove unused parameters using the button “Remove Unused” from the “Externalized Parameters” view.
Configuring Externalized Parameters
After you have externalized all the required fields of the components and saved the integration flow, it is now ready to be moved across systems. You can provide values to these externalized fields, without editing the integration flow, using the “Configure” option and then deploy the integration flow on the required system.
Image 13: Configuring the externalized parameters
Conclusion
Externalization in the Web is supported for adapters, flow steps, integration flow configuration, integration process and local integration process components. The supported controls for externalization are string, integer, checkbox, drop down, scheduler, help service, text area and individual cells of a table.
I hope this blog is useful and helps you to consume externalization feature offered in the Web.
Thank you for the information. It is very helpful.
Hi Finny,
Is it possible to extrenalize parameters for multiple iflows which has same configuration
Ex : I have nearly 10 iflows connecting system A and B , with almost similar adapter configuration.
Is there any way i could update single place which updates adapter configuration in all iFlows.
Thanks!!
Regards
Saravana
Hi Saravana,
did you look at the Prtner Directory feature? It may be helpful in your scenario:
https://blogs.sap.com/2017/07/25/cloud-integration-partner-directory-step-by-step-example/
https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/e7fa1e2cd16049b7bfefe938355a574c.html
HTH!
Sven
We are not able to create an external parameter for the Content modifier exchange property through the WebUI. It is greyed out. We did this in Eclipse and transported but it still does not show up. How can we do this? Can you please that information?
SAP has stated that this feature should be available past version 2.29. We are on version 2.32.10 but it is not working.
SAP has written – The feature of externalizing parameters in WebUI is provided since CPI version 2.29, but this is not the case.
Thanks!
Externalization of tables are now supported.
Very Nice Blog,
Very Helpful , Thanks Finny.
Hi Finny,
Is it possible to replace the value of token from UI5 application and then deploy the IFlow with changed token?
Regards,
Khaleel
Are you looking for an API to update the value of the parameter? If yes, this is not yet available but is part of our road map.
Has this happened yet? This is important to enable some automated testing.
Thanks,
Jason
Hello,
thank you for this helpful blog. I have just tried to externalize parameters for a SOAP receiver channel, but get the following message:
"No properties are available for externalization".
Is externalizing SOAP receiver channel parameters still not possible via WebUI? if not, is it known by when this feature is planned?
Thank you!
Hi Florian,
The externalization of SOAP Receiver Adapter is possible and when you click on the "Externalize" link, you will be able to externalize fields which are part of the "Connection" tab.
If you are looking to externalize the "WS-Security" settings, then this is not yet available as externalization of drop downs and check boxes are not yet enabled. This will come in the next months.
Informative Blog!
Hi Finny Babu
thanks for writing this great post!
Do you know if it is on purpose that parameters of the exporting system overwrites parameters of the importing system? I would love to see that parameter values of the importing system are not touched when importing a new version.
Best
Alex
As correctly prompted by Finny Babu, even, I would like to know, how to retain externalized parameters values on re-import of CPI Package to Production after cosmetic changes in iflow on Dev.
Best Regards,
Anurag
Same issue....
Hello
Can you explain how can we nullify the externalized property value at the end of current execution?