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.

/wp-content/uploads/2015/12/copy_846592.png

Switch to the Design tab. Select the integration package and click Export.

/wp-content/uploads/2015/12/export_846596.png

The content will be downloaded as a ZIP file.

/wp-content/uploads/2015/12/download_846597.png

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.

/wp-content/uploads/2015/12/zip1_846598.png

Double click on that file and it will display a list of files and folders similar to an Eclipse project.

/wp-content/uploads/2015/12/zip2_846599.png

Extract the contents of the project folder into a local folder on the PC.

/wp-content/uploads/2015/12/extract_846600.png

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.

/wp-content/uploads/2015/12/proj_846602.png

Browse to the folder with the extracted contents and select the available project(s).

/wp-content/uploads/2015/12/eclipse_846588.png

Complete the import step and the project will be shown in the Project Explorer.

/wp-content/uploads/2015/12/eclipse2_846589.png

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

/wp-content/uploads/2015/12/property_846605.png

b) XSL mapping step which cannot be viewed/edited in WebUI

/wp-content/uploads/2015/12/xsl_846606.png

c) Groovy script

/wp-content/uploads/2015/12/script_846607.png

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

/wp-content/uploads/2015/12/prop2_846608.png

b) Create a new XSL mapping and update the mapping step to use this new XSL mapping

/wp-content/uploads/2015/12/xsl2_846609.png

c) Update the Groovy script with some comments

/wp-content/uploads/2015/12/script2_846610.png

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.

/wp-content/uploads/2015/12/copy_846592.png

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.

/wp-content/uploads/2015/12/update_846612.png

The file will be displayed with the latest details.

/wp-content/uploads/2015/12/zip3_846613.png

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.

/wp-content/uploads/2015/12/delete_846614.png

Select Import and browse to the ZIP file.

/wp-content/uploads/2015/12/import2_846615.png

Once the import is completed, it will be displayed in the Design Overview page.

/wp-content/uploads/2015/12/imported_846616.png

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.

/wp-content/uploads/2015/12/content_after_846617.png

Select the Script element and view the underlying logic. The added comments are displayed.

/wp-content/uploads/2015/12/script_after_846618.png

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.

/wp-content/uploads/2015/12/draft_846623.png

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.

/wp-content/uploads/2015/12/save_version_846624.png

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.

To report this post you need to login first.

7 Comments

You must be Logged on to comment or reply to a post.

  1. s sin

    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

    (0) 
    1. Eng Swee Yeoh Post author

      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

      (0) 
  2. Hari Sonnenahalli

    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

    (0) 
  3. Suhale Shaik

    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..

    (0) 

Leave a Reply