HCI: Transferring Integration Package Content from WebUI to Eclipse and back
Introduction
HCI provides the following two different development environments for developing integration content.
- WebUI – web-based application for online development mode
- Integration Designer – Eclipse based tool capable of offline local development mode
WebUI is suited for fast consumption and deployment of pre-packaged integration content with minimal modifications; whilst the Eclipse IDE is suited for full fledged development of custom integration contents. This allows integration developers to choose the appropriate development environment based on their particular needs or circumstances.
However, as of the current tenant version, there is a disparity of features between both environments. Here are some examples of certain features available only on one of the environments but not the other:-
- XSL mappings cannot be created or edited in WebUI
- Certain Message Routing elements like Multicast or Aggregator cannot be created in WebUI
- Message Mappings cannot be tested in Eclipse (like how it is tested in NWDS for PI)
As such, this may necessitate the developer to switch between the two environments. However, there is no quick and fast way to achieve this as of the current tenant version.
In this blog, I will share the procedure how Integration Content (pre-packaged or custom) can be exported from the WebUI environment to Eclipse for further editing, and then reimported back into WebUI.
Component Details
As HCI is a cloud solution with automatic rolling updates, future updates may incorporate changes to allow a more seamless transition between the two environments. Therefore these steps are only valid for the following versions and may be invalidated in the future.
Below are component versions of the tenant and Eclipse plugins.
HCI Tenant Version: 2.8.5
Eclipse Plugin Versions: Adapter 2.11.1, Designer 2.11.1, Operations 2.10.0
Step by Step Guide
We will use an example of transferring a pre-packaged integration content from WebUI to Eclipse and back.
Step 1 – Export Integration Package from WebUI
Login to WebUI, go to Discover to select an existing pre-packaged content. Select Copy to Workspace button.
Switch to the Design tab. Select the integration package and click Export.
The content will be downloaded as a ZIP file.
Step 2 – Extract project from ZIP file
Open the ZIP file in a ZIP file manager (example 7-Zip below). The ZIP file will contain several entries. One of the entries which ends with “_content” is listed as a file but is actually a folder.
Double click on that file and it will display a list of files and folders similar to an Eclipse project.
Extract the contents of the project folder into a local folder on the PC.
Step 3 – Import project into Eclipse
Start up Eclipse (which already has the HCI plugins installed). Select File > Import and choose Existing Projects into Workspace.
Browse to the folder with the extracted contents and select the available project(s).
Complete the import step and the project will be shown in the Project Explorer.
Step 4 – Determine content that needs to be changed
In this example, we will change the following three contents. The screenshots below display the content in WebUI prior to any changes. Some of the changes can actually be performed in WebUI, but this example is just to showcase the before/after details of changes done in Eclipse.
a) Content Modifier step with Message Header values
b) XSL mapping step which cannot be viewed/edited in WebUI
c) Groovy script
Step 5 – Modify content in Eclipse
Now we can modify the above three items in Eclipse.
a) Modify the value of one of the message header
b) Create a new XSL mapping and update the mapping step to use this new XSL mapping
c) Update the Groovy script with some comments
Step 6 – Update ZIP file with changed content
We will need to update the ZIP file downloaded in Step 1 with the contents that have changed.
Open the ZIP file in the ZIP manager, copy the files that have changed from the Eclipse workspace to the ZIP file. In the example below, the new XSL mapping file is copied into the src\main\resources\mapping folder of the ZIP file. This is repeated for the iFlow file and the Groovy script file into their corresponding folders.
Once all the relevant files are copied, return back to the main folder of the ZIP file. There will be a prompt that the “_content” file was modified, select OK to update it in the archive.
The file will be displayed with the latest details.
Step 7 – Import ZIP file back into WebUI
Switch back to WebUI. Before importing back the ZIP file, it is advisable to delete the existing package. I’ve tried importing to overwrite it but the process runs indefinitely.
Select Import and browse to the ZIP file.
Once the import is completed, it will be displayed in the Design Overview page.
Step 8 – View and verify the changes in WebUI
Select the Integration Flow and view it. Both changes (a) and (b) above can be viewed.
Select the Script element and view the underlying logic. The added comments are displayed.
Additional Steps for Custom Integration Package
For custom integration packages, they cannot be exported directly at first.
The content will be shown with a Draft version and there will be the following error message when trying to export it from WebUI.
In order to export it, select the draft Integration Flow to view the diagram and change to Edit mode. Then select Save as version. After saving a version, it can be exported into a ZIP file.
Conclusion
With this approach, we are now able to export content that was designed in WebUI into Eclipse for further enhancement and reimport it back to WebUI.
Hi Eng Swee Yeoh,
Thanks for you useful information,
I have a problem, I need to transfer iflows from web UI to Eclipse, but in my folder I do not have build.properties file, so when I want to import in into eclipse, gives me an error that there is no project file in this folder,
Can you help me with this?
Sin
Hi Sin
I've come across a few of the prepackaged contents that do not have the proper files for import into Eclipse. As a workaround, you can manually create a new project in Eclipse and copy over the files manually from the respective folders in the Zip file into the Eclipse folders.
Regards
Eng Swee
Hi Eng Swee,
Thanks a lot for you response! It is right!!
Regards
Sin
Hi Eng-
Hope all is well. I have created a project in eclipse and trying to import the Iflow into HCI PI but it is throwing me error saying that artifacts can't imported. I have posted a question. Please if you can take a look at the same it would be really appreciated.
Thanks
HS
Eng-
Here is my question-
https://answers.sap.com/answers/113308/post.html
https://answers.sap.com/questions/113308/export-project-and-import-into-hci-pi-error.html
Hi Eng Swee
Your blogs very helpul! 🙂
Could you also provide a video on Custom mapping, like exactly how do we do mapping and use functions into it, how to use all like routing splitter and other methods..
Hi Eng Swee Yeoh,
I am trying to import the Project content into Eclipse from WEB UI. I have exported the package and tried to unzip the content file but unable to retrieve the Project files.
Could you kindly confirm the reason for the same.
P.S: I have tried import the Standard Integrations content which are configurable only . My requirement is to modify the standard IFlow to meet the Client's need.
Best Regards,
Suresh S
Hello Eng Swee Yeoh,
have you done this recently? I am unable to extract the iFlow as a Java project, I can only export it as a transport. How is this export done? I can't find any documentation on this.
Scenario is the following: I want to export an ICO converted to an iFlow, simple scenario, just one sender and receiver plus a mapping and two communication channels. I see that I'll have to import the mapping separately, but I can't even export the iFlow as a zip file.
Any hints will be appreciated.
Regards,
Jörg
ICO? This blog is about HCI/CPI, not PI/PO.
Ok, again, this is what I am trying to do:
This seems to be a logical migration path to me and I wanted to hook in on your blog in step 6.
Step 1 works fine, I have my iFlow. It is also executed in the current on-premise PO system. Step 2 doesn't work as expected. I can only export a transport file (tpz), not a Java project, and this file only contains the iFlow and the business systems. Upon importing to CPI the importer complains that the manifest file is missing. Understandable, since it is not available. All documentation I find seems to be a bit older and always exports iFlows as a Java project, but somehow I don't find this option anywhere in my release (7.50 SPS10 P04). What am I missing?
Or is it possible that this kind of migration path does not exist yet?
Nope. Not possible as far as I know of. You will have to manually create the iFlow in CPI. Only certain ESR contents can be imported into CPI.
Thanks for your answer and your effort with the weblog. Although I really hope they do offer this soon, since the objects seem to be essentially the same and it would save us a lot of work.