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.