Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
engswee
Active Contributor
9,787

Update 31 Mar 2015: Bug causing incorrect condition generated during iFlow deployment is resolved by SAP Note 2093914


Update 9 Feb 2015: There is actually a setting in Preference to trigger iFlow deployment upon activation :smile:



In my recent role, I have the opportunity to work on PO 7.4 SP08, nearly the latest and greatest version of PO to date. My previous experience on NWDS was on version 7.11 CE which was mainly used for development of Java mapping and custom adapter module. As there have been strides of improvements on the NWDS end over the last few years like Eclipse Tool for ESR in NW PI and Introducing iFlow in PI 7.31 Configuration, I decided to try it out to see if I am able to fully perform all the development/configuration tasks in NWDS or do I still need to use the traditional Swing clients.

Here is my experience after two months of working on NWDS 7.31.

Installation

To begin with, head over to the link below to download the correct version of NWDS. Note that the download location requires an S-user authentication.

NWDS Download Links - Java Development - SCN Wiki

Once the NWDS Zip file has been downloaded, installation is rather straightforward as it just involves unzipping the file to any destination on the local machine. However, getting NWDS to work nicely (read: least buggy!) in subsequent usage can be a little bit tricky, and some of the issues can be traced back to installation-related issues.

Here are some general tips on getting it right:

  • The general consensus is that the NWDS version, support pack level and patch level should match EXACTLY the PI/PO server details. For those on PI/PO 7.4, SAP Note 1791485 mentions that the corresponding NWDS 7.31 version can be used. To get the correct version, NWDS 7.31 support pack level is exactly 5 more than PI/PO 7.4, i.e. for my PO 7.4 SP08 Patch 0000 system, I use NWDS 7.31 SP13 Patch 0000.
  • OS can be either 32-bit or 64-bit
  • As PI/PO 7.3x/7.4 is running on SAP JVM 6.1, a JDK 1.6 version is required on the local machine. I found that some functions did not work correctly (cannot open Message/Operation Mapping) when I use Sun/Oracle's JDK 1.6. Using SAP's own JVM 6 provides a more stable experience - the installation file can be downloaded from the download location, go to Installing the Developer Studio -> Prerequisites -> JDK Version

Once the installation issues have been sorted out, the experience is so much better and I can actually begin to work on it for my daily tasks.

Likes

  • The NWDS IDE is lightweight, responsive and running it is less resource/memory intensive than running the Swing ESR/ID clients. I am able to connect to both ESR and iFlow within the same IDE. However, it can only connect to a single server system at one time. The screenshot below shows that memory used by a PI-connected NWDS session is slightly less than combined usage of Swing clients for ESR and ID.

  • It is a complete Eclipse experience when developing Java codes in UDFs or Function Library. All the nice IDE features like always-on syntax check, inline JavaDoc reference, code helpers, etc, makes for a pleasant Java development experience.
  • Additional wizard to create message type when creating the service interface. Definitely nice to be able to quickly complete that step. :smile:
  • You gotta love iFlows! - it is a definitely a more intuitive approach to configuring integration scenarios. My wishlist would be if there is an option to both activate and deploy an iFlow at the same time (I often forget to deploy the activated iFlow!) Update: I've found out since that there is an option to activate and deploy an iFlow at the same time via the Preferences section below.

  • The transport mechanism for iFlow is done pretty well. In particular, the export functionality provides a good view of the objects to be exported. I would have liked it though if there is an option to hide the Deleted iFlow objects.

Dislikes

The downside to my NWDS experience is mostly due to features from the Swing client that are missing.AFAIK, these are some of it although it is possible that the features are there, but just not that obvious to me!

  • No option to connect to multiple systems at the same time. Therefore, there is no way to do eye-ball comparison of the same object in different systems (i.e. Dev vs QA).
  • No transport system for ESR objects. Export and import still needs to be performed from the Swing client.
  • No copy object functionality for ESR objects.
  • The Data Type editor has only basic functionality - no function to import/export XSD, no way to restructure fields (move fields up/down).
  • Functionality to import external definition does not work well - I couldn't get it to work importing an external WSDL.
  • No option to view history of an object.
  • No functionality to view details of an imported archive.
  • No functionality to download the XML version of a communication channel.
  • Unable to add SAP AS Java entry in Preferences for deployment of Modules and BPM. I have gone through SCN threads and even the first point in the NWDS Troubleshooting wiki but still unable to add an entry. The weird thing though is that after adding one, and although it does not appear, I can still actually deploy to that system. So it looks like it's retained in memory for the current NWDS session. Once I close the program, it is no longer in memory.

The features (or lack of it!) around Message Mapping deserves a section of its own!

  • The one feature I missed most from the Swing client is the "Display Queue" function in Message Mapping. IMHO, a solid understanding of graphical mapping's queues and contexts and the ability to display queue at any point in the mapping logic are key ingredients to developing robust and accurate mapping logic. It is the single feature that causes me to switch back to the ESR swing client most.
  • Another feature that I miss is the ability to check the consistency of the source input. This can be easily done via the "Test" functionality of the Swing client. By copying the sample in Source Text View and switching back to Tabular Tree View, the little green or red icons help to immediately flag any inconsistencies. This is very useful especially in cases with tricky namespaces or typo errors.
MatchMismatch
  • The feature to copy the logic of an entire mapping flow is also not available in NWDS. This is an often used feature as there are a lot of similarities between the mapping for different target field, and this feature helps to reduce the effort to rebuild the logic for each target field.

  • Also missing is the ability to ungroup a target field from a grouped mapping flow. Sometimes, after the mapping flow has been developed for a group of target fields, it might be necessary to ungroup one of the fields, and yet retain the logic for that field. The only option in NWDS now is to delete the target field from the grouped mapping but all the associated logic for that target field is also deleted.

  • Although writing the code for UDF or Function Library is better due to the Eclipse-based editor, there is no wizard to create the input/output parameters for the UDF. Creating UDF for Message Mapping Using NWDS is a manual process (and prone to error) as the input arguments and parameters have to be declared via annotations. The correct import statements need to also be manually included in the code.

Bugs :shock:

Although the experience has been relatively stable, there are occasional bugs. One of it is that when trying to make a change, NWDS does not prompt a new Change List, so I can't save my changes. The workaround is to quit and restart NWDS.


Update: As mentioned by Alex in the comments section below, the following bug has been resolved by SAP Note 2093914 - Integration Flow deployment generates wrong condition expression



Another bug that I've come across is when using the Condition Editor for iFlow. If there are any unintentional white spaces in the Xpath condition, the generated condition on the iFlow is incorrect (has an additional Xpath prefix in front) and does not work. It took me a while to nail down why the condition does not work, only to find out that it's because of a little white space! :sad:

Good Condition

Bad Condition

Conclusion

iFlow seems like a complete experience, although the same cannot be said about the ESR perspective, especially with regards to Message Mapping. All in all, I do enjoy developing on NWDS. I do know that some of the missing features are scheduled in the roadmap and I'm looking forward to those and more enhancements in the future (maybe someone from SAP Labs might come across this and help to push things :smile: .) I've certainly embraced it as my primary IDE for developing in PI and BPM, but I'm still far from dropping off the Swing client completely.

40 Comments
Labels in this area