BPM blog series
This blog is part 1 of a 2-part series on SAP NetWeaver BPM. With the implementation of the event attendance process I encountered several issues (see SAP NetWeaver BPM for BPX, great but not there yet). Via these two blogs I want to share my experiences.
- Part 1 explains the actual process and modeling it in SAP NetWeaver BPM
- Part 2 describes all the steps necessary to run the process after you modeled it
In this blog I am not covering all the detailed steps to model the process. There are already lots of interesting blogs/tutorials that do so. I just want to highlight the advantages we now have as BPX to model your own process.
Process requirements
- Multiple roles should be involved: Visitor to the booth, Consultant helping the visitor, Manager to assign a contact person
- Process had to be started via a Visual Composer application
- Real SAP back end scenario had to be in place
- SAP BAPI had to be included
- Non SAP web service had to be included
With these requirements the power of the new SAP NetWeaver CE7.2 modeling environment can be shown.
Running the process
Process is started by entering the form. With submit the visitor details are transferred to the process.
The next step is for the consultant to open the universal worklist and to continue with the process. He enters the visitors area of interest and identifies whether the visitor is interested in additional information or personal contact.
Then the manager assigns a contact person to the visitors that are interested.
As a result the visitor is created in SAP as an external person and the attendance to the event is booked in SAP Training and Event module.
Contact details were sent by SMS to the visitors who had indicated their interest. Visitors that weren't interested received a 'Thank you' SMS.
Modeling the process
The process is modeled within the SAP NetWeaver Developer Studio (of course 😉 It is based on the BPM160 handson workshop from SAP TechEd 2009.
Importing a BAPI
If you want to use a BAPI in your process, you first have to identify your SAP backend system at the preferences for the SAP NetWeaver Developer Studio.
In the project explorer, at service interfaces, it is possible to import an RFC enabled function module. In the trial this is called mysteriously '%action.label.0'.
Enter the name (or part of) of your BAPI and go.
The SAP NetWeaver Developer Studio imports the BAPI as a service and generates all necessary components for you.
Now you can use the imported BAPI in your process step.
And with drag and drop the in- and output mapping can be finalized. After which the BAPI is ready for use in your process.
Import a webservice
The service that sends an SMS to the visitor is available in the service registry (how to do so will be described in part 2). The import of this service is handled via the import of a WSDL, provided by the service registry.
Select the appropriate service.
Assign a service group to the webservice. Why? That will be described in part 2.
Now the service is available for the applicable process step.
And again perform the in- and output mapping. Assign data from the process context to the input parameters to fulfill the data needs. In this example two fields are defaulted with a fixed value.
Trigger via Visual Composer application
The process can be triggered by the 'RegisterAttendance' trigger, stated at the start event.
The form that can be entered by the visitor and actually triggers the process, is created in Visual Composer. At Search you can browse for services that are available in the service repository. Which will be the case for your process after you have deployed it.
Follow the wizard to find and select the service to start your process.
Drag the service to the working space and add a form to it.
And with the designing capabilities of the Visual Composer you can model the UI according to your wishes.
Issues encountered
- Modeling the process is really easy. With wizards you are guided through the steps that might look a bit complicated (import a webservice for example).
- It is quite obvious that in a service oriented process you are dependent on the available services, both SAP and non SAP. As Training and Event Management is part of HR, it is quite hard to find the proper BAPI to create an external person or to book attendance to an event. I ended up building up my own BAPI's on base of existing function modules with custom code as glue.
- Adding fields to the process context is not BPX/developer friendly. Extending the data objects is no problem. However using these newly added fields in existing process steps is a no-go. You actually have to re-create this process step and to generate the UI all over again. I can guarantee you that you will not appreciate this.
- In my first version of the process I used the SMS service twice in the process, once for the non-interested visitor and once for the interested visitor. Although you will have no errors - this will not work. Frustrating, and when I almost gave up, I modeled the SMS service only once in the process and used two different mapping steps to get the same result. That was the magical solution.
The real difficulty was to get the process started via a webservice and running. The model was fine, no errors were shown, the process was deployed successfully, but still ... no running process. To resolve that, please read on in my next blog.