Skip to Content

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 🙂

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.

/wp-content/uploads/2015/02/memory_638578.png

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

/wp-content/uploads/2015/02/activateiflow_640779.png

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

/wp-content/uploads/2015/02/lib_637721.png

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.
Match Mismatch
/wp-content/uploads/2015/02/good_637777.png /wp-content/uploads/2015/02/err_637805.png
  • 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.

/wp-content/uploads/2015/02/copy_637806.png

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

/wp-content/uploads/2015/02/ungroup_637807.png

  • 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 😯

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! 🙁

Good Condition

/wp-content/uploads/2015/02/good_xpath_638579.png

/wp-content/uploads/2015/02/good_cond_638581.png

Bad Condition

/wp-content/uploads/2015/02/bad_xpath_638580.png

/wp-content/uploads/2015/02/bad_cond_638582.png

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

To report this post you need to login first.

33 Comments

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

  1. Praveen Gujjeti

    Thanks Eng Swee, for consolidating your experiences with NWDS and comparision with swing tools

     

    At least with current NWDS missing mapping features, may be this is not the right time to swing from ESR swing to NWDS from a mapping point of view. And this is just my opinion

     

    Best Regards,

    Praveen Gujjeti

    (0) 
  2. Eng Swee Yeoh Post author

    Thanks for the feedback guys!

     

    Praveen, Raghu,

    Yes, I do agree with both of you that the ESR side of NWDS needs a lot more polishing before we can really develop in it efficiently.

     

    Here’s roughly my current development practice (a little of the best of both worlds ):

    • NWDS ESR – basic interfaces (few fields, simple mapping logic), Java coding for UDF
    • Swing ESR – complex interfaces (complex hierarchy, complex mapping logic with context handling), debugging message mapping
    • NWDS iFlow – all scenario configurations
    (0) 
    1. Ryan Crosby

      Hi Eng Swee,

       

      That exactly outlines the practice that I have been using since we migrated most of our EDI scenarios to PO 7.4 this past year.  Haven’t done much for simpler ESR work in NWDS thus far but we will be migrating all of our other non-EDI scenarios from our current PI 7.11 platform over to PO 7.4 this year.

       

       

      Regards,

      Ryan Crosby

      (0) 
      1. Eng Swee Yeoh Post author

        Good to hear that I’m not the only one

         

        Btw, I came across your thread below and it was really useful! I always wondered where those entries came from – now I know!

        Adapter module selection in NWDS

         

        One thing I noticed was that one of the default parameters for MessageTransformBean was incorrect – it loads TransformClass instead of Transform.Class (with a period.)

         

        Rgds

        Eng Swee

        (0) 
        1. Ryan Crosby

          Thanks Eng Swee,

           

          Glad some other folks have been able to find it helpful.  I spent a couple of days back tracking until I was able to find it.  The MessageTransformBean issue must be some typo or bug in the standard Eclipse coding however since it is available out of the box.  If I get bored maybe I shall search for the specific code again but it was not easy to find.

           

           

           

          Regards,

          Ryan Crosby

          (0) 
  3. Eng Swee Yeoh Post author

    Thanks everyone for all the feedback. Feel free to add on if anyone has any other points of likes/dislikes/bugs that they have encountered while working on NWDS 7.31.

     

     

     

    To be fair, NWDS has come a long way and has made many improvements. Having worked with the Swing client for the past 10 years, NWDS is really a refreshing change. The concept of having a single unified environment for PI/BPM/BRM development is awesome – it’s just that the complete experience hasn’t fully arrived yet.

     

    As the saying goes “a journey of a thousand miles begins with a single step.” Let’s hope that SAP continues to push out more enhancements to close the gaps… and sooner rather than later!

    (0) 
    1. Che Eky

      Eng Swee,

      Thanks for the detailed post. I have been working with PI 7.4 Single Stack since Oct 2013 and always used NWDS from the start.

       

      I use the Swing client for those Repository tasks which cannot be done in NWDS. For example I could not find any support for Data Type enhancements in NWDS. The mapping functionality is very limited in NWDS and I found the option “Execute Default Matcher” to be very hit and miss. The traditional Swing option “Map Selected Fields and Substructures if Names Are Identical” works much better.


      Since working with NWDS I can’t ever remember using the Swing client for maintaining Integration Builder objects, I have found NWDS very complete in this area. I may have used it to find the Web Service / WSDL URL end points, but as you say the Blog by Pavan now shows how to do this from within NWDS.


      Iflows is by far the biggest advantage and makes life so much easier. Biggest draw back for me is lack of support for transport of Repository Objects from NWDS. Especially as the support for transport of Iflows is so nice!


      The concept of using Folders to group iFlows is great.


      All in all I am very happy with NWDS and would really miss it if I had to work on a Swing only installation.


      Che

      (0) 
      1. Eng Swee Yeoh Post author

        Hi Che

         

        I totally agree with all your points – thanks for sharing your experience here too!

         

        The “Execute Default Matcher” didn’t work well for me too, somehow it misses some fields when I use it. Plus the functionality isn’t that obvious to begin with – having to drag the source to target with a right click.

         

        I’ve had further discoveries since I last wrote the blog.

        – NWDS does not flag warnings when the mapping is opened but there were some underlying mapped fields were changed. In Swing, the warnings are displayed and there is the functionality to “Correct Structural Inconsistencies”, so you don’t have to redo your whole mapping logic again. In NWDS, the mapping logic just resets

        – There is no option to set “Maintain Order At runtime” in the iFlow

        – I also can’t do a Where-used check on the channels in NWDS

         

        Yes, all in all, I am happy with NWDS too, but still looking forward to the day when I am able to drop Swing completely.

         

        Rgds

        Eng Swee

        (1) 
        1. Alexander Bundschuh

          Hi Eng Swee,

           

          maintain order at runtime is supported for Integration Flows, can be set in the properties of the interface split activity

          where used check is somehow supported via PI search (Window –> Show View –> Search PI Objects)

           

          Alex

          (0) 
          1. Eng Swee Yeoh Post author

            Hi Alex

             

            Thanks for your reply.

             

            I found the “Maintain Order At Runtime” checkbox in the Interface Split activity as you mentioned. However, it isn’t that obvious that the Interface Split activity is required for my scenario. For my case, it is a single receiver interface with multiple occurrences so I did not need a condition for an interface split. I just wanted the order to set the EOIO sequence for the child messages generated from the multi-mapping.

            /wp-content/uploads/2015/04/order_676435.png

             

            As for the Search functionality, I found the “Tips and Tricks” help that taught me how to do a where-used. The “flow + <object>” seems to work for service interfaces (not for dummy ones), and systems, but not for communication channels. Btw, I am on NWDS 7.31 SP13 Patch 0000.

             

            Thanks again for taking time to share the pointers.

             

            Rgds

            Eng Swee

            (0) 
  4. Anil Tripathy

    Hi Eng Swee Yeoh

     

    Getting error while activating a IFLOW in PI 7.4 Single stack in NWDS for a simple scenario.

     

     

    Scenario – File to File

     

    Source = ECC – NFS mount (FILE adapter)

     

    Target = Shared folder (using new SFTP Adapter by SAP PI)

     

    Its just a pass-through so have created ID part ( no ESR) and executed, its works fine in Swing tool.

     

    In NWDS while creating the same scenario using IFLOWs get anerror.

     

    ERROR of type INVALID_PARAMETER_VALUE for IF_FILE_to_File

    Details: Insufficient authorization to maintain operating system commands. See SAP Note 1669957 for more details”

     

    We have not added a OS commands and have all the required roles for user as per NOTE 1669957 .

     

    Please advise if you have got into similar situations .

     

    Thanks

     

    Anil

    (0) 
    1. Eng Swee Yeoh Post author

      Hi Anil

       

      Unfortunately I have not encountered this scenario. Try the following:

      Create a new sender File NFS channel.

      Create a new sender File FTP or SFTP channel.

       

      If it still does not work, I’d suggest that you open a new thread in the forum and see if anyone else might be able to assist you further.

       

      Rgds

      Eng Swee

      (0) 
  5. Gayathri Narayana

    Thanks Eng Swee for your comprehensive feedback,

     

       

    With releases 7.31 SP16/7.40 SP11, some of the gaps you have pointed in ESR NWDS under dislikes have been filled like File transport and display queue in mapping, additionally we also have introduced the feature to search for ESR objects in NWDS. Also
    re-ordering of data type is available from 7.31 SP14.

        

    Option to import XSD as data type is already available and
    import as external definition is planned for 7.5.

     

    Also features like copy, where used ,export of XSD from data
    type editor, version and conflict management are in the roadmap .

     

       

    Hope this helps.

     

    Thanks & Regards,

    Gayathri

    (0) 
    1. Eng Swee Yeoh Post author

      Hi Gayathri

       

      Thank you so much for your reply, and for sharing what we can expect in the roadmap ahead.

       

      I’ll definitely look forward to display queue and file transport – these two features alone have caused me to completely switch back to Swing for ESR tasks since I wrote this blog. It was just less effective and productive trying to perform those in NWDS.

       

      By any chance, are DTE features as mentioned by Emil Jessen in the blog below also in the near-future roadmap?

      Is it bye bye to SAP standard enterprise services? With no way to enhance in NWDS

       

      Also, any chance of NWDS moving away from the current Eclipse 3.5.2 platform to the newer ones like Juno/Kepler/Luna? Would be great to be able to have ADT on the same installation and thus have a real Integrated Development Environment for both ABAP and PO.

       

      Rgds

      Eng Swee

      (0) 
        1. Eng Swee Yeoh Post author

          Hi Alex

           

          Thanks for your responses. I have updated the blog regarding the condition expression bug. I must admit I didn’t check in the Support Portal for that one (which I should have!) because I figured out I could live with making sure I have no whitespaces in the condition editor.

           

          I had a look at the roadmap document and the planned features look really good, and support for Luna & Java 8 is definitely a welcome.

          Emil Jessen would also be glad to hear the news about DTE support too!

           

          Thanks a lot again! Keep up the good work at SAP Labs

           

          Rgds

          Eng Swee

          (0) 
                1. Eng Swee Yeoh Post author

                  Hi Alex

                   

                  First of all, what is the version and SP level of your PI system?

                   

                  Secondly, I’m not sure about this Eclipse Mars version. Are you using the latest NWDS 7.5 version? Please share which SMP download did you use.

                   

                  Regards

                  Eng Swee

                  (0) 
                  1. Alexander Apel

                    Hi Eng Swee,

                     

                    here the Download Link for NWDS 7.5

                     

                    https://wiki.scn.sap.com/wiki/display/Java/NWDS+Download+Links

                    750
                    There is no more update site solution. The new 750 release can be downloaded from

                    https://support.sap.com/software/patches/a-z-index.html –> ‘N’ –> SAP NETWEAVER –> SAP NETWEAVER 7.5 –> Developer Studio


                    PI-System:


                    SAP_BASIS 731 0011 SAPKB73111 SAP Basiskomponente


                    PI_BASIS 731 0011 SAPK-73111INPIBASIS Basis Plug-In



                    Regards,

                    Alex

                    (0) 
                    1. Eng Swee Yeoh Post author

                      Hi Alex

                       

                      Two things:-

                      i) Your system is 7.31 SP11, you cannot use NWDS 7.5 for it, you need to use NWDS 7.31 SP11.

                      ii) Display queue is available only from SP16 on a 7.31 system.

                       

                      Regards

                      Eng Swee

                      (0) 
  6. Laurits Hartmann

    Hey

    Anyone who know why I can’t set my “Import Parameters” from Eclipse ?

    When I want to fill in the value for RFCChannel nothing happens 🙁 and there for I am not able to test my mapping any more in Eclipse. It works perfectly in swing client.

     

    (0) 

Leave a Reply