Custom UIs with the BPM OData Service
In this blog post series the new OData Service in SAP NetWeaver BPM will be introduced. It is available with SAP NetWeaver 7.3 EHP1 SP 09 and higher.
The OData Service enables a simplified access to BPM with a custom user interface based on a modern web technology like SAPUI5. Previously, it was already possible to build a custom UI directly based on the BPM Public API, but this required a server-side rendering of the UI using technologies like JavaServer Faces.
Nowadays, the rendering of the UI is often done on the client-side using technologies like JavaScript. The client-side rendering is usually implemented in a service-oriented way fetching the relevant business data via REST-based HTTP calls from a service provided by the server. Until now, such a service was not included in SAP NetWeaver BPM and thus had to be implemented as exemplary described in the blog post RESTful service for NetWeaver BPM. Such a custom implementation is costly and, compared to built-in functionalities, not maintained by SAP.
With SAP NetWeaver 7.3 EHP1 SP 09 an official REST service is introduced implementing the Open Data Protocol (OData). The built-in service acts as a wrapper exposing selected functionalities of the BPM Public API.
Due to the well-defined OData protocol, the service provides a uniform way to easily access the exposed data and functionalities. This accelerates the development of custom desktop and mobile applications with access to BPM related data and operations.
The main features of the BPM OData Service are:
|
SAP NetWeaver 7.3 EHP1 SP 09 and higher |
|
SAP NetWeaver 7.3 EHP1 SP 10 and higher |
|
SAP NetWeaver 7.3 EHP1 SP 11 and higher |
|
SAP NetWeaver 7.3 EHP1 SP 12 and higher |
|
SAP NetWeaver 7.3 EHP1 SP 13 and higher |
|
SAP NetWeaver 7.3 EHP1 SP 14 and higher |
|
SAP NetWeaver 7.3 EHP1 SP 16 and higher |
The series consists of multiple blog posts introducing the BPM OData Service. The first blog post BPM OData: Exploring the Service introduces the technical details that are useful when working with the OData Service. This will cover HTTP details of the service consumption such as supported HTTP methods or request/response payloads.
The service consumption with a SAPUI5 application is described in the blog post BPM OData: Implementing a Basic Custom Task Execution UI. This will cover the transformation of plain XML/JSON service responses into a SAPUI5 application. This part also contains some JavaScript code snippets to explain the binding between OData service response and SAPUI5 UI controls.
The implementation of a more advanced SAPUI5 application is shown in the blog post BPM OData: Implementing an advanced custom task execution UI. This includes the usage of complex data types and collections as well as completing a task with a fault. The blog post describes the technical details of these functionalities and explains how to enhance the sample SAPUI5 application accordingly.
The implementation of an SAPUI5 application for starting a BPM process is shown in the blog post BPM OData: Implementing a Process Start UI. The blog post describes the details of the BPM Process Start OData service and contains JavaScript code snippets showing how to build a sample SAPUI5 application.
The blog post BPM OData: Implementing a Custom Task Inbox can be used as a starting point to implement a SAPUI5 application for a custom task inbox. The blog post describes technical details of the BPM Tasks OData service and explains how to consume this OData service from SAPUI5 application.
The blog post BPM OData: Administrative Process UI describes the BPM Processes OData service. It explains the technical details of the service and shows how to consume it from SAPUI5. The blog post also provides a sample SAPUI5 application, which can be used as a starting point to implement an administrative UI for the management of the BPM processes.
Technical details of the BPM Messages OData service are described in the blog post BPM OData: What’s new in SAP NetWeaver 7.31 SP16?. The blog post shows how to send a message to an Intermediate Message Event via the BPM OData service as well as highlights the new functionality of SAP BPM in SAP NetWeaver 7.31 SP16.
This series will be continued with more blog posts, so stay tuned for updates…
Related Blog Posts
- Configure custom task UIs in SAP BPM: Integrating SAP UI5 Screen as a BPM Task (Open UI Integration) in 5 Easy Steps NW 7.3 EHP 1
- Generate SAPUI5 UIs in SAP BPM: Creating OData-based SAPUI5 UIs for BPM tasks – the easy way…
- Generate complex SAPUI5 UIs in SAP BPM: Creating OData-based SAPUI5 UIs for BPM tasks – complex is now easy as well…
- Using a preview when developing SAPIU5 UIs: Using preview for faster roundtrips when developing BPM tasks UI
- Technical details on authentication and securing web application hosting SAP UI5 application consuming BPM OData Services: Securing SAP UI5 task UI applications also resolves log-on issues
- Automate process testing with OData services: Using BPM OData services to automate process model testing
Related Resources
Great achievement. Having this capability available in the product is really great.
Hey Andre,
I am really looking forward to read your future blogs!! Actualy I am working on an own little uwl for mobile devices to list all the open tasks for a specific user. For me it is not clear if that's possible with the new OData Services?
Hey Dominik,
as of SAP NetWeaver 7.3 EHP1 SP 09 we are focusing on the implementation of custom task execution UIs based on the BPM OData Service. More functionality is about to come, but getting a list of tasks is unfortunately not enabled with SP09. In order to make this possible, I would try to implement an own REST wrapper exposing a list of tasks. But at least your task execution UIs could now easily be implemented with any modern web technology (like SAPUI5), which would definitely boost the user experience of your mobile users.
Best Regards,
Andre
Hey Andre,
that's a great idea!! I will focus on this approach!
Best Regards,
Dominik
Seriously cool stuff! Looking forward to adding BPM work items to Fiori Approve All. Hanging out for your next blog!
Hi Andre,
Great Bolg.......really cool stuff.....
I also wanted your confirmation so that mention your blog in my document as this is the future with BPM.
Only if you give me the confirmation i will be mentioning your blog in my document.
Eagerly waiting for your confirmation.
Cheers
Piyas
Hi Piyas,
Thank you. Feel free to link this blog. 🙂
Best Regards,
Andre
Hi Andre,
Can we have some info on relative URL when custom UI and BPM are on different server. HTTP destination creation and adding it in relative URL with curly braces did not help. Can you please help here?
Have you checked the documentation? What is the exact error message?
Please also note that destinations are only supported from 7.31 SP13 / 7.40 SP08 onwards.
Assigning a Custom User Interface to a Task - Modeling Processes with Process Composer - SAP Library
Hi Andre,
We are using SAP Netweaver 7.4 SP06 . May i use ODATA service for process start ?
Please help me my server can support or not with ODATA service ?
thanks,
Prasad
Hi Prasad,
You can use the oData start service with the provided version. As a thumb rule any thing available on NW 7.31 SP0X should be available in NW7.4 SP 0X-5, i.e oData start service is available from 7.3 EHP1 SP 11 and higher so it should be available in 7.4 SP06 (SP11- 5).
You can check all the services available in http://<server>:<port>/bpmodata/index.html
Thanks & Regards
Jeet
thank you jeet.
Hi Andre
as I can see here: URIs for Accessing BPM Processes - Modeling Processes with Process Composer - SAP Library and here URIs for Accessing BPM Tasks - Modeling Processes with Process Composer - SAP Library there is only a way to read and write comments on task level. However, the Java API supports to read and write on a process instance level, which is much more required in my opinion. Are there plans to supply this functionallity on a process level as well?
Also, it seems as currently there is no way to attach files to a process/task programmaticaly. Only via WDJ task header. The Java API only supports a way to read attachments, not to add any.
Is there a recommended way how to handle files during a bpm process?
Best regards
Jan