Skip to Content

Mobile Workflow using SAP Netweaver Gateway–Part 1

During April SAP ran the SAP Netweaver Gateway Partner-built Solution Drive to try increase the adoption of SAP Netweaver Gateway, by offering training and free certification of your app or UI, Netweaver Gateway Interface, or both.

I thought this was a great opportunity and decided to take on the challenge. Having already been experimenting with Netweaver Gateway and the Netweaver Gateway productivity accelerator, I decided to take on one of the most common business requirements there is, SAP Business Workflow.

Thanks to the excellent SAP standard Netweaver Gateway Workflow Services (WFSERVICE & WFHUBSERVICE) and the Gateway productivity accelerator tools for eclipse, I had an excellent starting point and foundation already built for my app.

Intro to Workflow Services

There are 2 services available as part of the SAP Netweaver Gateway Workflow Services framework, they are:

  • WFSERVICE – for use when running the service on the backend system (Embedded deployment)
  • WFHUBSERVICE – for use when running SAP Netweaver Gateway system as a Hub installation connecting to remote systems running the SAP Netweaver Gateway BEP Add-on. (Central Hub Deployment)

To better understand the deployment options, check out the SAP Help on Deployment Options. In my case I had setup Gateway directly on the backend system. So I ended up using the WFSERVICE option, so what I am referring to here in this blog is focusing on the Embedded deployment option using WFSERVICE. I believe they both function similarly, however I have not tried the WFHUBSERVICE option yet. The services are actually extremely well documented in the SAP Netweaver Gateway help, so it’s definitely worth a read.

The SAP Netweaver Gateway Workflow Services exposes all the core functionality around SAP Business Workflow including actioning decisions for tasks, forwarding tasks, attachments, substitution, notifications and much more. In addition to this, it is also highly customisable via the config tables and 3 Badis which are made available for adding in custom code.

Configuring Workflow Services in 10 easy steps

1. In transaction SPRO, go to SAP Netweaver->Gateway Service Enablement->Content->Workflow Settings


2. Go into “Maintain Task Names and Decision Options”


3. For each workflow type above that you would like to appear in the Workflow service, enter the Workflow ID, the step ID (which you can find in the workflow definition) and the path to an image in the mime repository which you have uploaded for use for that workflow type, as well as a step description (Workflow type description)

4. Select the specific workflow type and enter the Decision key, Icon Mime repository path (Icon to be used for the decision) and the Decision text


5. Return to the menu path in SPRO and select “Enable Task Filter” and Activate the filter


6. Go to transaction /IWFND/MAINT_SERVICE


7. Click  Add Service button


8. Search for WFSERVICE and click on the /IWWRK/WFSERVICE to add.


9. Fill in the package and press the green tick


10. You are now complete, you should see the service in the Service Catalog and can call on it byclicking on the Call browser button, where you will be able to see the path to the service and the response.


Customizing Workflow Services

It can customized via the config tables mentioned above, or if there are more complex requirements which require custom coding, this can be done via 3 Badis which are made available in the framework. One of which I have utilized in my app in order to return more details for work item details.

These Badis are:

  • /IWWRK/ES_WF_MODIFY_ITEMS_IB - To change the task subject on inbox and outbox queries and when reading specific items.
  • /IWWRK/ES_WF_CUST_EXT_IB - To add extensible elements and change of task subject and description when reading a specific item.
  • /IWWRK/ES_WF_WI_BEFORE_UPD_IB - To make new functionality applicable before a decision has been applied on a ‘User Decision’ item.

SAP Netweaver Gateway Productivity Accelerator Tools

The Productivity accelerator tool actually has a workflow template starter app. See these blogs on how to generate your own:

The tool is great for proof of concepts, or to fast-track development, but still a lot of work is required to refine the apps, which is expected since the Gateway productivity accelerator is only a “Wizard” type starting point for an application, and is not intended for creating production ready apps.

Thanks to this great tool, it allowed me to spend more time on refining the UI/UX and additional functionality such as offline capability and other native features. It reduces much of the need to write all the low level service handling code, as the Service Proxy is automatically generated and all the parsing of data is taken care of by the OData SDK which is called on by generated proxy methods. There obviously is still a need to understand how to call OData requests and how to handle the responses, but much of it is handled by the OData SDK library and generated code.

The app

Thanks to the free certification offered by the SAP Netweaver Gateway Partner-built Solution drive, I have decided to release this version of the app for free.

You can download it through google play by searching for “pokit action” or by clicking the link below:

  Android app on Google Play

Some screenshots below:




The app includes a demo mode to get a feel for it, but can also be connected to a live Netweaver Gateway system which has the Workflow Services configured. All feedback is welcome.

In conclusion

SAP Netweaver Gateway is a really great product and I’m looking forward to seeing increased customer adoption especially now that as of SAP Netweaver 7.4 it is a standard component and no longer an add-on.

Part 2 of this blog covers my experience and lessons learned in building a native Android Mobile Workflow app for SAP Netweaver Gateway: Mobile Workflow using SAP Netweaver Gateway – Part 2 – Native Android Experience

The iOS version is currently in development and will be available in the next few months.

You must be Logged on to comment or reply to a post.
  • Thanks everyone for great feedback/comments!

    I’d be especially interested in hearing from those of you who hook it up to to a live Gateway system.

    Custodio, happy to see you have an Android phone now 🙂

    John, should have Part 2 on Android out this week, and Part 3 in a few months once the iOS version is complete.



  • Hi Brad,

    This is a fantastic App. Congratulations!! on building this.

    One of my clients has SAP Component Version ‘EHP6 FOR SAP ERP 6.0’ , so for this I guess we would need the add-on SAP Netweaver Gateway .

    Also I would like to ask, can this type of an App be build platform independent, like not specific to Android or iOS.

    Best Regards,


    • Hi Neha,

      Thanks! Yes you would either install Gateway on that system, or install gateway on a hub system and you would still need the BEP addon on your ERP system.

      I am busy building an iOS version, and hope to do a UI5 version which could either be run as a web app, or be packaged as a hybrid app and run on multiple platforms if using Cordova /phone gap or SAP’s new Kapsul (based on Cordova) which is coming in SAP Mobile Platform 3.0.



  • Brad

    Nice.  Are you saying the simple config shown will pass an ‘Approve’ Action to the transaction/web dynpro called by the Task and take the ‘Approve’ input. 

    ie if your Workitem is a bespoke transaction with Approve/Reject buttons in the middle of the screen, that the it’s like the User opened the transaction/web dynpro and pressed the Approve button?

    Because that would be really cool.


    • Hi Andy,

      Nope, unfortunately not that easy, but its definately doable via the Badi’s offered in the framework.

      The config will work without any code if the workflow task is a “User Decision” type activity. If it is a normal activity or a task which launches a transaction or web dynpro, I believe you would need to use this Badi:

      /IWWRK/ES_WF_WI_BEFORE_UPD_IB - To make new functionality applicable before a decision has been applied on a ‘User Decision’ item.

      In my testing I only tested User Decision type tasks, so this is how I understand it to work in other scenarios.

      So In the scenario you are referring to with the web dynpro, you would still need to setup the decisions in the config table for eg:

      0001 Approve

      0002 Reject

      And instead of it launching the web dynpro, you would need to implement the Badi with a filter for this task type, then you could code the same action that is performed by the web dynpro in the Badi implementation. So the web dynpro would not be used or called on at all, but the Badi’s would take care of the necessary action depending on which decision id was passed in 0001(Approve) or 0002(Reject).

      Hope that helps.



  • Hi Brad,

    Thanks for Excellent article. This help us understand the mobile WF.

    Here I have a question in UI side can you please guide me.

    How much customization is possible in UI side?

    1. Grouping the WF inbox item in different folders based on Modules and folder kind of  view in WF inbox is it possible?

    2. It is possible to view the full details of each WF item??

    3. It is possible to change the view/Design of ‘APPROVE’, ‘REJECT’ and ‘FORWARD’.

    4. Header Level and Item level Approval are possible ??

    5. Is it possible to using the SAP Netweaver Gateway as middle ware to interact with SAP business data and by using any flash UI technology as front design we can achieve above 4 points? 

    If yes, do we need to make any specific configurations / Software for that? Please let me know.

    Thanks in Advance.


  • Hello Brad.

    Do you know if there is any way to launch a workflow in the backend from an external device using OData Services?.

    It seems almost everything is related to workflow’s on-line tasks, but what about raising the backend event uisng OData Service? Is it achievable?

    Thank you,


    • Hi Javier,

      Yes, that would definitely be possible if you wrote a custom OData service. You can pretty much do anything as you are really just triggering ABAP code in the backend when calling an OData service.

      The WFSERVICE standard OData service does not have this functionality as far as I know, so you would have to go with a custom service.



  • Hi Brad,

    I have followed your blog and am up with the application.

    However, when I log in to the application with the credentials, it keeps on loading into some sort of infinite loop.

    The error in logcat says Delta handling is disabled.

    Could you please advice on this.



    • Hi Vijay,

      you can ignore that log message, it’s always there.

      You could try to call the Gateway service (WFSERVICE) with the same user in a REST client and see the response there, there seems to be an issue



    • Hi Vijay,

      Hard to say without debugging. Have you tried setting a breakpoint in the Gateway service and see what happens there, also does the Gateway service work if you call it through a browser / REST client?



  • Hi Brad,

    I think Task Gateway is also used for workflows. which one we should choose Task Gateway or Workflow Services ? Correct me if i am wrong



    • Hi Naga,,

      This application will only work with WFSERVICE. At the time of building this that was the right one to use, however it seems that Task Gateway has “replaced” this and is what SAP are using for products such as Unified Inbox, Fiori Approve Request and Fiori My Inbox.

      So if you were to develop something new, and if I were to write this again, I would definitely use Task Gateway over WFSERVICE as Task Gateway is much more than just a SAP Worfklow service, its a Task Provider service which out of the box caters for SAP workflow and BPM, but can also have any other number of custom task providers. So it is definitely the better choice.

      However, both do pretty much the same thing when it comes to SAP Business Workflow.

      Hope that helps.