Skip to Content

10 Tempting Tips for building SAP NetWeaver BPM Processes

I’ve always found giving out tips is always something of a double-edged sword.  The tip that is so useful to me might confuse or even hinder someone else. Like the suggestion we made in the Practical Workflow for SAP book and occasionally on workflow forums that using the SAP basic organizational hierarchy  without using the HR module is one possible solution for assigning people, which technically works but I seem to have been walking that one back on sites ever since (no one ever maintains it properly).

On the other hand it might just add a little bit of joy and relief back into their day.  Like the lovely guy who sent me a thermal coffee cup halfway round the world as a thank you for my answering a forum question that ended up saving his project (and his sanity). 

So in fear and trembling and with all due cautions and disclaimers, and in no particular order, here are some tips for building BPM Processes that work for me and might work for you.  Or as I tell my device-addicted Generation Y friends, “just because it’s there doesn’t mean you have to use it”.

And just to stop this being all too dry… I’ve named them after a somewhat eclectic mix of songs I like (ok so maybe sometimes my sanity needs saving too…).

Ooh Ahh… Just a Little Bit – Gina G.

Deploy little and often – especially when trying new things

Deploying little and often is sanity-saving measure, especially when you are trying some new technique, option, or function for the first time on this NWDS/server combination.  When you’ve made 15 different types of changes and one of them is stopping your process but from deploying (or worse… it deploys to the Process Repository but doesn’t activate), working out which one is the offender is just not fun.  Traversing SAP Logs, system logs, deploy logs, authentication logs, web service logs etc. might eventually get you there, but it’s a lot easier if you know what you did that broke it. 

This is especially true if your NWDS and server versions are slightly different (out a support pack or two) so that something that builds fine suddenly has problems when you deploy.  A case in point – at one of my sites my NWDS version is 7.3 SP07, my BPM server version is 7.3 SP05 – which means the built-in mapping function “IF” is deprecated on the NWDS but the new “if” command that replaces it isn’t recognized by the server – so if I use the new “if” my process deploys but won’t activate in the Process Repository and the server logs just give vague mapping transition exceptions.  Making an “if” command the only new thing I added to the deployment was how I tracked down the problem in minutes.

Hard to Say I’m Sorry – Chicago

The Build Log is My Friend

Ok so I admit it, the first dozen or so times I opened the build log I closed it down just as quickly.  Clearly we were in geekville territory (make no sudden movements and back away slooooowly). However I now freely take back all the inward reservations I was mentally sending in the direction of the build log developers, as I have found that learning to read the build log somewhat is moderately useful, even if you aren’t into the intense detail.

One of the useful things the build log shows you is the progress through the build.  When building a Process Development Project containing 11 processes and sub-processes and almost 20 tasks, I could quite clearly see the order in which the build was progressing – which processes and tasks were ok and where it stopped and threw an error.  Sometimes even the error message is not only helpful but encouraging, for example they usually tell if you Quick Fix in the Problems view is worth a try.

I’m spinning around – Kylie Minogue

Finding problems that need resolving

When you are trying to find the problems you need to resolve, the error marker icons (red circle with black cross icon) are a godsend.  When I first started building processes I made the rookie mistake of only looking at error markers in the process diagram.  With a little more experience under my belt, I’ve learned to also look for them in the Project Explorer and Outline panes, and of course in every data mapping view.  The warning icon on the other hand can almost always be ignored (Grammar constraints? Bite me!).

Where Have You Been – Rihanna

Finding missing elements

Every so often, and especially when you are new to the process diagram pane, you drag something onto the diagram – e.g. onto a lane line – and it just disappears into thin air (or at least to some random part of the diagram where you are unlikely to find them again). I’ve also had this sometimes when using the Format Pool/Lane feature.  Data Objects, if there is no connector line to a step, are particularly prone to this problem.   I’ve found the Outline pane is a blessing in these situations so you can find, locate or delete the offending elements.

Rescue Me – Fontella Bass

Resolving changes in elements, files and diagrams

As a developer who was new to BPM, new to NWDS and new to Eclipse editors generally, one of my major frustration factors was the vagaries of workspace buffering/refresh behaviour.  Generally this manifested itself in a XSD or WSDL file that I had clearly changed, the changes were visible and valid when looking at the file in the NWDS, but still those changes weren’t being reflected in Data Objects, mappings, events, etc.  The two magic commands that reliably fix these problems are Reimport and Build Project.  Both are available from the context menu in the Project Explorer pane. 

Reimport is usually all that’s needed to bring in new versions of files and confirm the intended impacts are to be applied to referenced elements.   Similarly within Tasks, the Reimport option for updating the task inputs/output of your changed user interfaces is a definite lifesaver as it picks up the changes usually without disturbing your existing mappings.  Build Project is especially helpful when you suspect a workspace buffering problem, which I treat as more of a last resort, but has saved me more than once. 

By the way if you can’t see the Reimport on your XSD or WSDL context menu, you are on the wrong level of the hierarchy  – look for the file in the Data Types (for XSDs) and Service Interface (for WSDLs) folder. 

Dem Bones Dem Bones Dem Dry Bones – James Weldon Johnson

Spend time on your XSDs and WSDLs

When I review the time spent on building BPM Processes and related User Interfaces, it’s clear to me that the most important technical activity I can do that helps me reduce time, effort and rework of the overall solution is to spend some time creating high quality XSDs and WSDLs up front. 

This is mainly because so many generation and auto-mapping options are dependent on getting the XSDs and WSDLs as correct as I can from the beginning.  While it’s not impossible to change these afterwards, tracking down and adjusting all the related elements (steps, tasks, notifications, data objects, mappings, user interface parameters both within and external to the process) is tedious.  Regeneration of user interfaces is possible but rarely an option once you have spent significant time getting your user interface layout correct.

Also as a general rule of thumb, make the structure of your WSDLs and XSDs as flat as you can stand to minimize mapping work.

Friday on My Mind – The Easybeats

Minimizing Service Group configuration time

One of the traps-for-young-players is the need to do the (hopefully once-off) Service Configuration in the SOA tab of the SAP NetWeaver Administrator after deploying a process that calls web services.  At first you think “but I could have sworn I uploaded that WSDL with endpoint”… but with the chance to reflect you quickly realize that this is about being able to adjust the endpoint as you transport your process from Development to Test to Production Landscapes. 

If you have your Services Registry already setup the Service Group configuration is relatively painless.  But if you aren’t quite there yet you face having to individually connect each Service Group to its matching WSDL and endpoint … or … you can get back your weekend and use a WSIL which lets you map multiple WSDLs and their endpoints in one go.    As often we are calling SAP systems it’s handy to know where the WSILs are buried for SAP systems.  Whether you are talking ABAP or Java SAP systems these are the best URLs to try:

http://<host>:<port>/inspection.wsil

http://<host>:<port>/dir/inspection.wsil

http://<host>:<port>/sap/bc/srt/wsil

Once you call the WSIL you can quickly search for the relevant Service Interface name and check that you have the WSIL you need.

Oh and if you are using a SAP NetWeaver PI system you might also want to take a glance at SAP Notes 1505853 and 1466002.

I Don’t Want to Talk About It – Everything  But The Girl

Hiding actions and data objects

So you’ve got your process deployed, working, and you excitedly show it to your stakeholders…. and then there’s that one pernickety doomsayer who’s initial gut reaction and first comment is “can we turn <insert feature here> off?”.  Usually this is presented as a change management issue along the lines of “our users are so <confused? thick? untrustworthy? overloaded?> we don’t want them to have to worry about/have access to <insert feature here>”.   

While I sympathize with the difficulties of change management, my recommendation for this is always that the customer should first take the time to understand what that feature does before removing it.  However if, after due reflection, the feature still needs to go this is the SAP Note you want to keep in your back pocket to tell you what is possible.

SAP  Note 1456788 – NetWeaver BPM: Toggle visibility of TEx UI elements

There’s one other beauty of a hidden feature to know that can come in handy.  Buried in the Properties of the Process Diagram pane(i.e.  selecting the gridded area OUTSIDE your pools) are a small set of Appearance properties.  Not only do they let you flip your pool from vertical to horizontal format (or vice versa), but they give you a quick option to hide all Data Objects and their connections, making for a cleaner, more user-acceptable process diagram.  Handle with care – and remember to document it so the next developer has some clue as to where all the Data Objects have mysteriously gone.

Wake Me Up Before You Go-Go – Wham!

BPM and Adobe Offline Forms – the most critical things you need to know

The use of an Adobe Offline form as a human step in a BPM Process is a brilliant little feature, and remarkably easy to work with as a developer.  This is one situation where using the SAP Library Help pays and pays again because it gives a lovely set of step-by-step activities to put this together with the minimum of fuss.

However there are a couple of gotchas to be awake to before you get going with offline forms:

  • You can only receive one Offline Form per process instance.  If you need to resend the form again you might need to get a little creative in how you organize your processes and sub-processes.
  • The form has to be returned by one of the recipients you sent it to, and can only be returned once.  So you need to make that clear in the instructions (user texts) to your recipients. Thankfully there are automated replies built-in if someone tries to send it again or from the wrong address. 
  • BPM automatically fills in the Submit button for you… but the gotcha here is that the button has to be the first button in the hierarchical element structure as viewed in the Hierarchy View of the Adobe form.  SAP Note 1489643 – BPM Offline Form Submit Button URL processing – confidently states “The visual layout can be freely designed and has no influence”, but we all know that’s not quite true.  The visual layout influences the hierarchal element structure and vice versa. Especially when you consider that in Adobe hyperlinks are often technically “buttons” too.   So you might need to make the occasional compromise in your Adobe form layout to support offline forms with BPM.

Lean On Me – Bill Withers

Participate in the SCN BPM Forum 

I’ve often felt “Lean On Me” should be the theme song of all our SCN forums.  Our forum contributors are remarkably helpful and patient with other forum members.  The queries are wide-ranging and cover everything from detailed how-to information, to help-my-project-just-broke emergencies, to broad philosophical discussions on which approach should your organization (or SAP) should follow, and even the odd letting-off-steam gripe about SAP when we haven’t quite managed to meet your expectations.

Often the only socially unacceptable behaviour is not to have done your homework beforehand  – which personally I consider to be simple good manners.  Depending on the type of problem, you should have at least attempted to find some information in the SAP Library Help, and/or searched the SAP Support site for relevant notes, and/or read through or attempted relevant SCN tutorials/articles/blogs, and of course done a search on past forum posts.

That said, the ladies and gentlemen of the SCN BPM Forum are a particularly helpful and well-educated bunch – there are even people who can read that BPM build log! So please don’t hesitate to post your queries – that’s why we have forums in the first place.

Oh and don’t forget to pay it forward and help someone else out when you know the answer to their question.

Finally, I’m sure there are many others in the BPM SCN community with their own tips to add.  Feel free to recommend your favourites as comments on this blog, or even write your own blog.

17 Comments
You must be Logged on to comment or reply to a post.
  • Hi Jocelyn,

    Some great stuff here.  Many of the points are mostly in my toolkit already but it's always good to get other people's tips and learnings as they are so often from a different perspective, and often can make the difference between tearing your hair out and not on a project!  Plus it can really give an insight into people's "eclectic" musical tastes 😉

    Here are some of my thoughts on some of the tips you raise:

    Deploy often.

    Couldn't agree more although I’d change this to Commit often - there is so much going on with BPM DC's you can quickly get into serious trouble changing many things at once.  I'd also suggest if you are using NWDI (which you probably are) make sure to put useful and accurate comments against your check-in activities, just in case you need to revert files at a later date.

    Build Log.

    I still hate the very existence of this thing although I agree it can be useful.  As you describe, it has helped me resolve a build issue on numerous occasions.  I just wish there was an easier way to tie some of the messages to the specific objects in your BPM - long GUID's throughout the log can make it difficult to interpret.

    1. Problems.

    I've worked through a number of versions of NWDS with CE over the past couple of years, right up to 7.3 SP7 currently in use and found some versions are much better than others at identifying errors.  For example, just last week I had a problem with a BPM that was building locally but not when checked in and built on CBS.  My NWDS 7.3 SP7 P0 simply wasn't showing me anywhere that there was an issue with my DC, however updating to NWDS 7.3 SP7 P1 suddenly took me straight to the corrupt XSD entries, and even let me resolve them with a QuickFix.

    My recommendation - always make sure you have the latest patch level of NWDS for the main version and SP you are working with.  SAP has always released fixes pretty quickly in this area and usually for good reason.

    Missing elements.

    A trick of mine is to make sure I save the BPM (indeed all files - CTRL-SHIFT-S) before making any changes to my BPM's.  This way, when strange things happen (and they do from time to time) when adding new tasks or data objects to a pool, I can simply undo (CTRL-Z) and try again.  I've built a save action into my workflow after virtually all modifications now, but only perform it once I know the change is correct - it's like a mini, local commit, with undo being my local revert.

    Resolving changes.

    I've found this buffering of file changes has been a problem with NWDS since it was first used for SAP development a number of years ago.  I remember one painful early Web Dynpro project where our team of developers knew to constantly restart the software on a regular basis or after making certain types of changes, to ensure the workspace was properly rebuilt!  For XSD and WSDL files, there is an option in NWDS (Window -> Preferences -> Enterprise Service Modelling -> Import and Reimport) that allows you to "Automatically accept all changes to the reimported document".  This can be useful to save time when editing these files, however sometimes it is useful to leave it turned off, as that way you get a prompt to let you know NWDS has recognised a change and has performed the reimport for you.  This way you know when you need to perform a manual reimport or not.

    Here’s a couple of my own tips, mostly around NWDI fun and games!

    Editing your service interfaces and service references:

    Sometimes, you may need to adjust, re-import or delete a service interface used in your BPM.  I've experienced a number of issues around NWDI integration, with files not being checked out, or the edit action I'm attempting failing as NWDS cannot lock a file for edit.  Whilst it is sometimes a bit “sledgehammer to crack a nut”, I've found a useful trick is to manually set all files in a BPM DC to edit, prior to making changes.  To do this, right-click on the top level of the DC in the Project Explorer and choose Team -> Edit -> Files in this Folder, then repeat and choose Files in Subtree.  Wait a moment or two and you have ALL files in the DC checked out for edit.  This has helped me avoid many weird service reference and WSDL issues.

    Deleting files only to re-create them:

    This is kind of second nature to me, after years of working with NWDI (and previously JDI as it used to be known) but it may be new to others so it is worth mentioning...  If you need to delete a source file for whatever reason (say you have completely mucked up a web service and want to remove it from your BPM entirely) you obviously can delete the WSDL file underneath <DC root>/src/wsdl, which will trigger a delete action against the DTR on your activity.  This is fine, however quite often you fix the problem with your service and then want to re-import, re-creating the same file again.  This removes the Delete action against the DTR for that file (or so you think) however what you will typically find is that the new file is deleted when you check in, as a Delete action appears to take precedence over the Create.  The answer is to go back to Jocelyn's first tip and make sure you commit often.  Sometimes this means checking in broken DC's with a file missing, but as you will straight away re-create the file and check in again, the problem is quickly solved.  This tip applies to pretty much all types of DC’s and file types that are used with NWDI.

    Editing XSD/WSDL files:

    If you don't hit the walnut with my sledgehammer above, and just want to edit a single XSD or WSDL file, some versions of NWDS struggle with checking the file out.  If you open the file in Design mode and try to make a change, you often get a Null Pointer Error from NWDS and the change is lost - basically because it hasn't managed to lock the file for edit.  To avoid this simple but annoying issue, I switch to Source mode, hit space or enter to make a small change and the file is successfully checked out.  I can then perform the proper changes back in Design mode.  It only saves me a faction of a second and a button click or two, but they all count!

    Hope these are useful too.

    Gareth.

    • Hi Gareth,

      Thanks for much for the vote of confidence and for your excellent tips as well... a couple more tricks to add to my toolkit as well!

      Regards,

      Jocelyn

  • Hi Jocelyn,

    This is an excellent blog. It's great for the BPM-enabled people out there, and also those of us who have yet to make that leap.  Well done!
    My personal fave?  "Lean on Me"  - the message about the forums, and paying it forward - should be read by all.

    Thanks so much,
    Sue

    • Thanks for the encouragement Sue, and I absolutely agree about paying it forward!  Now if we can just get the whole SCN community to understand the difference between a forum post and a blog... sigh....

  • Hi Jocelyn,

    Great to see you blogging again - I think tips are a great thing to share since they usually result in more tips coming back at you. I'm on a project now that should be rolling out Process Orchestration, so I imagine I'll be blogging in the next 6 months and sharing my experiences to try pay your input back.

    Looking forward to more; and embrace the double edged sword as you'll probably find one of the edges pretty blunt and won't cause too much damage while the other will cut through a lot for many people going forward!

    And, definitely looking forward to more controversial Workflow/BPM blogs;-)

    Cheers,

    Matt

    • Thanks Matt - appreciate your encouragement as always!

      I'm hoping to put up some blogs around my personal journey from workflow to BPM... and what I see as useful/needs work/etc. around the whole process orchestration area. 

      There's a lot in there now and all very promising but yes will do my best not to avoid the controversial areas... there are some disconnects and glitches too - not just within SAP but also within parts of the whole BPM/BPMS movement.   Personally I think it comes down to setting expectations correctly about where to push hard, where to massage gently and where to hold off.  That said I'm definitely enjoying working with the toolset... when I compare early days of SAP Business Workflow with early days of SAP NetWeaver BPM, BPM build quality is encouragingly high.

      Will be very interested to see your own blogs... as I know you will have some very definite opinions of your own and a wealth of informed background to call on.

      Cheers,

      Jocelyn

  • Thanks Jocelyn,

    Another excellent blog from your end.. Thanks for sharing with us.

    # I did liked the topics,Hard to Say I’m Sorry - Chicago & I Don’t Want to Talk About It – Everything  But The Girl.

    Cheers

    Agasthuri

  • Hi Jocelyn,

    excellent blog, thank you very much for sharing all of these tips. Like Matt, we are about to start on a project which will use Process Orchestration for system-centric processes, so I'm sure these tips will come in very handy in a few months.

    Now, I better get myself the latest NWDS on my machine 🙂

    Sascha

    • Thanks Sascha for the encouragement 🙂

      I hope to get a few more up - how-tos and some higher level topics ... it's just time that's a factor.

      Enjoy the NWDS... everything's going to Eclipse these days... even ABAP!

      So sooner the better.

    • Hi Rajesh

      As you can see from the original date on this blog, this was written over 7 years ago back in 2012.

      Things change. Personally I have been out of this area and mostly in UX over the last 5 years.

      Alan Rickayzen has retired.

      BPM itself has largely gone to SAP Cloud intelligent BPM offerings.

      So unfortunately I'm not in a position to help.

      You might want to at least use the SAP Business Process Management tag to find people now working in this area.

      Good luck

      Jocelyn