Hello Everyone,


This blog, as the title suggests, sheds some light on integrating a UI developed in SAP UI5 as a BPM task. Not necessarily UI5, it can be a UI developed in any other technology which is not predefined in BPM at design-time like, WD Java, WD ABAP, Visual Composer or Adobe Offline Forms.

Other UI technologies like JSP, HTML etc. can also be integrated in this fashion.


Applies to:


NetWeaver 7.3 EHP1 (7.31) onwards.


How to:


1. Double-click on the Human Activity in your BPM Process to open its Properties :



2. In the 'Task' property of the Human Activity, click on the 'Task' link as shown to open the Task Properties :




3. In the User Interface Property of the Task, click on 'Choose':




4. Now select on 'Custom Technologies' and clcik on 'OK':




5. In the next dialog box that opens up, enter the relative URL* of the UI, define the input and output types (mandatory) and define the Fault Types for exception Handling (not mandatory) and click on 'Finish' :



*Relative URL: If the UI Application is deployed on the same AS Server, eliminating the server details from the URL of the UI will give you the Relative URL.

                        For example: URL of UI : http://<hostname>:<port>/POC_SecondView/index.html, then Relative URL : /POC_SecondView/index.html


Now, the Relative URL of the UI should be seen in the UI property of the task now, which was blank earlier:




The input and putput parameters we defined earlier should be available in the Input and Output mapping of the Human Activity:


Input Mapping:




Output Mapping:




That's it! You're Done!




As SAP UI5 and other custom technologies do not have a context of their own, we will have to use the BPM "oData Service" to bind the UI data to the BPM Process Context Data.


For more details on the BPM oData service, please refer this article by Vitaly Yarmolik.


For exclusive blog series  on  'Custom UIs with the BPM oData Service', please refer this excellent blog by Andre Backofen.


Hope this blog helps in some way.  Please let me know  in case I have mentioned anything wrong.




2014-New-SAP-BPM-Book.jpgCo-authored by Pia Klausnitzer


Back in the autumn of 2013, I was thrilled to hear that my dear colleagues Birgit Heilig and Martin Moeller were asked to write a book about SAP NetWeaver BPM and took the adventure without hesitation.


It sounded like a very tight deadline back then, but as you can imagine, they both dedicated to it long evenings and many weekends.


The result published in February 2014, is a new book called “Business Process Management mit SAP NetWeaver BPM” in German (for now). Approximately 500 pages of practical approach and examples of all features and benefits of SAP NetWeaver BPM. Truly impressive!


Strangely enough both authors say the biggest challenge was the request to write it in German...


Yes, we all hope for an English version sometime soon. But until then, here are some details about the topics it covers:

  • Introduction to the Business Process Model and Notation (BPMN)
  • Modeling BPMN-based processes with the Process Composer, the design time of SAP NetWeaver BPM
  • Generation of user interfaces
  • Modeling and integrating business rules with Business Rules Management
  • Analytics and reporting of business processes
  • Usage of the SAP BPM public API and the BPM OData service
  • Running and administering processes and tasks
  • Configuration of SAP NetWeaver BPM and performance optimization
  • Outlook on SAP NetWeaver Process Orchestration and SAP Operational Process Intelligence opint and the integration of SAP NetWeaver BPM in these two solutions.


More about the authors and their endeavors:

Birgit Heilig has been working in Application and technology development at SAP for more than 7 years. As Knowledge Architect, she is responsible for the documentation of SAP NetWeaver Business Process Management and Process Orchestration. She has been involved in the development of SAP NetWeaver BPM from the very beginning. Birgit is working as moderator and author in several SCN areas. Prior to SAP, she worked as a trainer, project manager and technical writer for a service company in Munich for more than 9 years. She has a degree in Computer Science at the Ludwig Maximilian University in Munich.


Martin Moeller has been working in SAP Software development for more than 10 years. Since 2005 he is focusing on the Business Process Management topic. One of his tasks is to connect the technical side (Java) with the business side (business processes). He has been involved in the development of SAP NetWeaver BPM right from the start and has comprehensive knowledge of the solution overall. During the introduction of SAP NetWeaver BPM, Martin was part of a team that supported customers and partners implementing the solution. Martin has built a strong customer focus and regularly participates and contributes to BPM conferences. Furthermore, he is very interested in Lean, Agile software development and design thinking and he uses them to develop added-value software faster and in high quality. Martin is also an SCN author and moderator.


The new book can be ordered online already on www.sap-press.de or amazon.de. I checked and it is indeed in German. Strange enough to invite both authors for a short interview (in English)


Q: The immediate question: why there is chocolate box on the cover?

A: SAP NetWeaver BPM is a solution to model, execute, monitor and optimize the business processes of your organization. In order to achieve that, the modelling part also requires picking the right services out of your heterogeneous system landscape and orchestrating them together with the right user interaction to get a real-life value. So it’s like choosing your beloved chocolates out of a chocolate box and the pleasure of melting chocolate in your mouth ;-)


Q: What was your experience when writing the book?

A: Firstly, the effort was more than we expected. However we also learned even more about business process management and orchestration and gained a better understanding of the big picture. On the other hand it was really exciting to have external reviewers asking good and absolutely valid questions in particular about SAP-specific terminology. This was the kind of immediate feedback an author loves to receive during the software development cycle as well. Last, but not least, writing in German was challenging as well since most of the common IT terms we are using in our daily work are of course English terms.


Q: And what is the key message of the book?

A: The short answer? It gives you all the necessary information on how to automate and optimize your business processes with SAP NetWeaver.

How do we do that? The book gives a short motivation for the discipline of Business Process Management (BPM). After that we introduce the established standard Business Process Model and Notation (BPMN) that is used with SAP NetWeaver BPM as well. Building on that foundation we use a practical example to address all SAP NetWeaver BPM features from A to Z. This enables the reader to model their (potentially first) business process step by step and run it without writing any code. So on top of modelling aspects as runtime user interfaces, administration and configuration are highlighted as well. But the book is not only for beginners: Readers with BPMN and SAP NetWeaver BPM background can use it as a reference and for techies we present the Public API of SAP NetWeaver BPM, which helps you to extend your solution whenever the standard functionality offered by SAP is not sufficient for your scenarios.


Q: Sounds like an IT answer. How would you explain it to someone outside SAP and IT like your grandma or grandpa?

A: Tricky as we might have to first explain why we put the television behind the typewriter. However let’s give it a try: in every organization there are a lot of repeating activities including manual processes such as filling and submitting forms, e.g. for purchasing goods or requesting approval for budgets or vacation to name just a few examples. Every organization must automate, organize and prioritize these processes to ensure high quality and make their execution easier and faster. Therefore, in today’s world, Business Process Management system such as SAP NetWeaver BPM to model, implement and execute business processes is a must. The book explains with examples how to achieve just that. And if grandma or grandpa did not get it they will definitely love having a book of their grandchildren with a chocolate cover they can show around to their friends.


Q: So once I finished the book and became a SAP NetWeaver BPM expert I would ask “What’s next? What comes after BPM with SAP?”

A: With SAP NetWeaver BPM you took the first step in making your business processes transparent and achieve faster and easier execution. Once this becomes the routine more and more processes will be executed and thereby a lot of data will be produced. While you only reacted on single process exceptions in SAP NetWeaver BPM it now becomes more and more necessary to see bottlenecks coming before they actually occur and proactively drive countermeasures to keep the business up and running. This is achieved with the bundling of SAP NetWeaver BPM into the Process Orchestration solution which is a powerful platform for all your integration needs and allows extending your SAP investment beyond your SAP domain.


In our book we give an outlook on a new solution called SAP Operational Process Intelligence powered by SAP HANA which addresses this space. It enables you to monitor business scenarios with a lot of data across various systems. Source could be SAP NetWeaver BPM or SAP NetWeaver PI, however the data could also be hidden in applications, transactions or on database level. With SAP Operational Process Intelligence you get real time information on that data and forecasts to immediately take actions when or - at best - before problems occur.


The new SAP Middleware offering in this space is called Intelligent Business Operations. We will be publishing more on this topic on SCN, however as a start you may want to review this comprehensive Introduction to Intelligent Business Operations with SAP HANA by SAP Middleware expert Silvio Arcangeli.

< If you are learning both German and SAP NetWeaver BPM this is a unique opportunity! >

Ok, so I've previously coached you on the importance of teamwork in hockey. Scrap everything I said. It's so much more important to have a hot goalie.


Oh wait. That was the little Canadian Hockey devil on my right shoulder out-shouting the Process Optimization Angel on my left.


Emotion is a powerful ally and has been on stunning display for the last couple of weeks. I am a steadfast college sports fan because, it could be argued, the student athletes have yet to be tainted by a monumental payday. That's what the Olympics used to be, according to my fading memory. But irrespective of whether you are an amateur or a professional, you are likely subject to the disruptive effect of emotions.


Take the goal tender for the Latvian Men’s ice hockey team, Kristers Gudlevskis.  Facing 57 shots in a recent game from some of the planet’s premier hockey stars, this young man had emotion on his side.  He could do very little wrong and carried the hopes of his country in what would have been a significant upset had they beaten the Canadians.  This athlete, whose name is not known to the NHL fan base – or wasn’t until these Games, turned aside wrist shots and slap shots with ease.  Yes there was teamwork, but there was a whole lot of heart from a single player.


As we reflect on our work-life experiences and seek ways to motivate our teams, it is perhaps worthwhile to consider how channeling positive energy and personal commitment can make a significant difference to our teams.  We can turn up the level of performance by setting examples of what is possible, even as individual contributors.   And delivering results in super-human fashion doesn’t hurt. Congratulations Kristers – you have taught us something important about facing challenges in an inspiring way.

Many of the astounding feats from the Winter Olympics are borne of intense personal drive, determination and fortitude. They are individual sports from a participant perspective, yet there is considerable teamwork that has gone into the preparation and training.


Ice hockey has superstars, yet it is undeniably a team sport.  It is fast paced, filled with athleticism, skill and coordination. When the puck moves quickly and accurately from stick to stick to back of net, well that elevates the teamwork to something more akin to poetry.


Teamwork is at the heart of our everyday existence, at home or work. Our efforts to continuously improve our business processes are not achieved by one person trying to move the mountain. Perhaps it is the right-winger who starts the play out of the defensive zone and coordinates an offensive rush.  Seldom does that individual successfully make a scoring play 200 feet down the ice without some assistance.  Likewise, the defensive play relies on communication and understanding each other’s role before it ultimately falls to the goalie to make a stunning save.  Our project and work teams are the same.


The project manager cannot be busy changing configuration or setting up new business scenarios without communicating to the rest of the team and allowing others to carry out their own unique roles on the line.  To study the game of hockey is really to study the characteristics of a well-tuned team activity.  Disciplined hard work gets results not dissimilar to what we must do on a weekly/daily/hourly basis to deliver successful results for our organizations.  Oh, and there is sometimes bloodshed.  Just saying.  Enjoy the games and watch out for flying pucks.

In any Process Automation scenario, the level of human intervention essentially defines how automated the process is. If there is no human intervention, then the process is by definition, fully automated. Some processes, for example in manufacturing, do not require any human decision making, and can be fully automated, without compromising on quality or efficiency. But in many cases, human choices are required at various stages within the process for the optimal result.

Business process management (BPM) software can coordinate the interaction between Human and Machine decisions within automated processes. Let’s examine six levels of decision-making within BPM processes:

  1. Straight-through process flow: These are stages of the process which are pre-programmed to follow a specific flow each time there are reached, without any deviation over process instances.
  2. Machine decisions based on business rules or logic: The flow of the process through these steps is calculated by the system based on a set of rules or business logic. The flow can vary each time, but the decision is entirely machine-based. The choice may be influenced by the initial input conditions (which may be human), or other environmental or system conditions, but there is no human intervention at the decision point.
  3. Machine decisions which made dynamically based on real time data/conditions: Such choices are made by the system at the point of the decision itself based on any number of factors including: environmental conditions, aggregated analytics, external system triggers. This level is similar to the previous level, though here, the choice cannot be predicted by the initial input conditions of the process.
  4. Machine learning scenarios: In this level, the system is pre-programmed to learn from past process instances, optimizing current choices based on the results of past choices. This can be viewed as a level of Artificial Intelligence, and is at the forefront of Intelligent Business Process Operations. Several BPM software vendors, such as AgilePoint, PNMsoft, and XMPro offer such machine learning functionality.
  5. Machine-assisted decisions: Here a human user is prompted to decide how the process will progress, but is assisted in this decision by the system, which can surface relevant data to help the user make an informed choice. This framework is optimal for situations which are unpredictable or dynamic, and cannot be foreseen using prior data. Also, it is necessary for cases where the system simply does not possess the human judgment or experience necessary to make the call.
  6. Human-only decisions: Here the process is fully controlled by the user, without any assistance. This scenario is ideal for cases where the system’s “opinion” or suggestion has no real value, perhaps in cases where the calculation is so complex or human-oriented that no assistance is valuable or necessary.


The end goal of all process automation is optimal performance. As each scenario is different, consider which level of process automation will help you best achieve that goal. Often, the answer is a mix of several levels, during different stages of the process.

Take for example the process of analyzing a silicon chip for defects in a fabrication plant. Most of this process is fully machine automated – once the technician places the silicon wafer on the analysis tool, the tool performs the defect analysis automatically, according to a pre-prescribed recipe of steps.

And yet, fabrication plants have discovered that this process can be optimized if at specific stages within the processes, the technician can be consulted for decision making. If, for example, a number of die sections have been found to be defective, the technician can be alerted and then make a machine-assisted decision on whether to abort or continue the analysis. The technician may possess more information or experience than the system which enables him to make a more intelligent choice (e.g. he is aware of a problem with the batch of wafers or the supplier), though he requires the system’s assistance in making this choice based on a complete picture of the data.

As such, even highly physical or chemical processes can be optimized if they are enhanced with human-decision points where appropriate. The governing principal should be that at any point, the choice should be made by the most capable participant – and sometimes, as a joint decision by multiple participants, each who are complementary to the other.

This solution comes handy if you need an alternative way to send asynchronous adobe offline form, either in  BPM scenario or

PI scenario.


In this case you don't need to care for the response by the receiver of the mail and you can persist the email as message in SAP PI, giving you more control and monitoring features, e.g. by using PI based alerts or SolMan message flow monitoring.


Let's go through the step-by-step solution:


1 - Get libraries from JAVA AS

Get the following libraries from your JAVA AS Instance:






2 - Deploy the Adobe Form as ECM Content

Follow the standard documentation:

Using Adobe Offline Forms - Modeling Processes with Process Composer - SAP Library


3 - Build the WebService to compose the Adobe form with the analytic data

This is the tricky part: you've to build and deploy a WebService on SAP JAVA AS which will take care of the adobe composition part.


You must create a DC EJB Components with the following required DC:

- tc/ecm(ECM_CORE)

- tc/pdf/object(FRAMEWORK)

- tc/wd/api(WD-RUNTIME)


Create the EJB with two input fields and one output field:

- template(String) -->The name of the form deployed in ECM repository

- data(String)        -->the XML input data for PDF Form encoded in base64

- return(String)    -->the Adobe Offline compiled form in base64


In attach you can find the sample code: getPDFTemplate.txt


Deploy your service on the JAVA AS and check it using the WSNavigator; take the response and parse it using an online base64 converter such as



4 - Use SAP PI Javamapping to map from Adobe Interactive data to Adobe compiled form


You should import the PDF data as external message in your SAP PI ESR, then build a java mapping in the following way:


Snap 2014-02-16 at 18.41.36.png

In attach you can find the sample code for the PI Java Mapping which will do the job.

Please note that you have to put the libraries described above as external libraries in the same SWC of your java mapping inside the ESR.

Inside the java mapping you call the WS getPDFTemplate you deployed in preceding step by using a PI communication channel of a Business System of

your choice( in my case BC_BPM).

Once you have the PDF form done and compiled you can easily manage it as an attachment via email using PI,

Of course, the same result could be achieved in an easier way in ABAP, but here is all managed internally in your PO instance.

Curling. Now there is a sport that demands precision. As well as the ability to take direction from someone insanely yelling guttural sounds from the other end of the ice, imploring you to sweep or not, harder or not, all to get the rock past the hog line, into the house, preferably on the button. You can’t make this stuff up.


If you have been fortunate to manage different teams or projects in your career, you can appreciate the leadership required to skip your team from end to end. Keeping focus and remaining true to your game plan until all the rocks have been delivered takes patience, caring, and the ability to polish the ice just a little bit more to get the exacting results everyone on the sideline is expecting. You’re relating, I can tell.


So, for all of you change leaders and managers out there with challenging projects and exacting expectations, take heart. There are many ways to move that heavy piece of granite down the ice – sometimes the sweeping may seem counterintuitive until the rock begins its slow curl, moving effortlessly past the guards and nestling comfortably on the target. Reconsider some of your approaches to leading and inspiring your teams, it might just be that you will discover new ways of scoring points while enjoying the journey down the ice.


Curling is in full competition now in Sochi, with undoubtedly the best curlers in the world. Tune in and check it out…now that you can see yourself on the ice, I warn you that it can be addicting. You’ll soon be chanting for the correct draw weight and out-turn to move your team through the challenges of competition and onto the podium in your next steering committee status meeting. Good luck…

Just when you thought you had enough of winter…


Woohoo!!! The Winter Olympics are here.  I love the Winter Olympics, because, well, they celebrate WINTER.  And I’m Canadian…there are few things more Canadian than winter.  Well, of course there is beer, Tim Hortons, and Kraft Dinner, but Winter is like Super-Duper Cool.  I grew up riding my toboggan down Goose’s Hill while one of my willing sisters would oh so graciously pull me back up the hill.  I could almost skate without the use of my ankles when I was 8.  And skiing, well I was a regular slopestyler down the hills of Thunder Bay.  Wait, what is slopestyle exactly again?


Well, my definition of slopestyle may differ from yours.  I would leap forward and maintain that it is akin to business process management in SAP.  Few of us want to do it, and fewer even know what it really is, but boy it sure seems to deliver results.


Business process optimization in SAP applications is absolutely CRITICAL to our survival.  Well, kind of.  Like not killing yourself on a downward thrust on the Sochi Slopestyle course.  There are certainly actions we can take to avoid disaster in both instances.  We could of course opt out, but that yields no positive results.  We could cautiously edge our way down the hill, gingerly testing our footing all the way to end of the run.  Or we could throw ourselves headlong into an exhilarating, action-packed journey.  Just like optimizing processes in SAP, no?


Take some time over the next couple of weeks and consider the effort, discipline, sacrifice and training that goes into a few moments of glory launching from a series of steep take-off ramps to perform feats like triple-flip jumps.  Oooh, I can feel the enthusiasm welling deep within you, nudging you towards that gate and initiation of an Accounts Payable improvement project.  Let the stretching begin… there’s more to come.

Hi all,

Today I am back with some new functions for rocess Observer that allow the visualization of monitored process flows for the quick tracking of their progress and status.


The visualization of the processes is generated automatically out of the process definition (see Create Process Definition for Business Process Monitoring & Analytics for Business Suite Processes (POB), and especially out of the defined [best-practice] sequence flow of the activities:


Using this simple assignment of predecessor and successor activities, you may also define forks, joins, and even loops, and they will be displayed correctly in the process diagram.  If you do not define the sequence flow, the process is displayed in a default order.

Note: The sequence flow in the process definition does not represent the order in which activities are actually executed, however, it does describe a best-practice order for the activities that you then use in the process instance diagram to visualize the process's progress.


In the Process Viewer (POC_VIEWER), you can select the ‘Process Diagram’ button to visualize a process definition with its defined best-practice flow. The diagram itself is opened in a Web Dynpro browser window. Start steps and end steps are also marked.



In the Process Monitor (POC_MONITOR) you will now find an ‘Instance Diagram’ button. By choosing it, you will find a projection of the process log to the best-practice process flow, as defined earlier. Already executed activities are marked with green, non-executed activities are still grey. The executed activities contain detail information, such as the ID of the object, the date of execution, and the involved user. All-in-all, this gives you a quick overview of the progress of a process's execution.


Technically, the visualization requires the installation of SAP jNet frontend component on the display client, which itself is based on Java. jNet can be installed using the SAP frontend installation tools.

Besides calling this visualization from the Process Viewer or the Process Monitor, the visualization can also be used as a side panel in SAP Business Client, and as such it can be linked to a normal business transaction, such as VA03, and visualize the process flow next to the normal business transaction for the business user.

The visualization functionality is available from SP08 of SAP Business Suite Foundation 7.31 (this is ERP 6.0 EhP 6 SP08), shipped mid-2013 or in higher releases. For more information, see note 1853507.


I hope you enjoy this little piece of code that enriches the functionality of Process Observer.



INTEGRATION DIRECTORY: Configuration Objects

STEP 1: Create CONFIGURATION Scenario.

Create Business System/Business Component. In the Business Component, select the sender and receiver interface as created in ESR.

STEP 3: Import the Integration process as created in ESR.

STEP 4: Create the Communication Channel. In this scenario, you need to create 3 sender communication channel and 1 receiver communication channel of adapter type FILE.

Sender Communication Channel for FILE 1:

In the same way create the sender communication channel for FILE 2 and FILE 3. i.e.

  • Test_File2_Sender_BPM
  • Test_File3_Sender_BPM

Receiver Communication Channel for Output File:

STEP 5: Create the Sender Agreement. In this scenario we are getting three input messages from three different system, so three sender agreement needs to be created.

Sender Agreement for File 1:

In the same way,

  • Create the Sender Agreement for File 2 for Sender Interface "SI_FILE_To_BPM_InsuranceDetails_OB" and Configure the Communication Channel "Test_File2_Sender_BPM".
  • Create the Sender Agreement for File 3 for Sender Interface "SI_FILE_To_BPM_ProjectDetails_OB" and Configure the Communication Channel "Test_File3_Sender_BPM".

STEP 6: Create Receiver Determination. In this scenario you need to create four receiver determination out of which three for Source to BPM and one for BPM to Receiver system.

Receiver Determination (Source1 to BPM):

In the same way,

  • Create the Receiver Determination for Sender Interface "SI_FILE_To_BPM_InsuranceDetails_OB" and Configure the Receiver  "IP_MergingFiles_Test" (Integration Process).
  • Create the Receiver Determination for Sender Interface "SI_FILE_To_BPM_ProjectDetails_OB" and Configure the Receiver  "IP_MergingFiles_Test" (Integration Process).

Receiver Determination (BPM to Receiver):

STEP 7: Create Interface Determination. In this scenario you need to create four interface determination out of which three for Source to BPM and one for BPM to Receiver system.

Interface Determination (Source1 to BPM):

In the same way,

  • Create the Interface Determination for Sender Interface "SI_FILE_To_BPM_InsuranceDetails_OB" and the receiver is "IP_MergingFiles_Test" (Integration Process). Configure the corresponding Abstract Interface i.e."SI_FILE_To_BPM_InsuranceDetails_ABS"
  • Create the Interface Determination for Sender Interface "SI_FILE_To_BPM_ProjectDetails_OB" and the receiver is "IP_MergingFiles_Test" (Integration Process). Configure the corresponding Abstract Interface i.e."SI_FILE_To_BPM_ProjectDetails_ABS"

Interface Determination (BPM to Receiver):

STEP 7: Create Receiver Agreement.

STEP 8: Save and Activate all the objects.

To monitor Integration process ,

Go to transaction SXMB_MONI_BPE ->Process Selection->Select corresponding integration process (in Service Field) ->Execute->Select work item.


Go to transaction SXI_MONITOR ->Select Process->Execute



Please feel free to disagree, ask questions, provide your views.


The below mentioned scenario describes when and how to use ccBPM in SAP XI/PI.

(BPM in PI is called as ccBPM. So wherever the term BPM is used in this blog, consider it as ccBPM.)


Scenario: We need to merge the multiple files coming from different file servers/systems into the SAP PI system and send the single output file to the receiver system. In this case, BPM is required for merging the files.


There are lot of other scenarios when we need to use BPM. i.e. Splitting of messages, Merging of messages, Multicast a message to various systems, Send an Alert, Make the asynchronous call into the synchronous,etc.




In this scenario, we are merging the three files coming into the PI system with the help of BPM and sending the single output file to the receiver system.Both the sender and receiver are Asynchronous applications.With the help of this scenario you will get to know the basic steps of BPM and also the use of Fork and correlation in BPM.



STEP 1: Create the Software Component in SLD (System Landscape Directory) and then import it in ESR.

STEP 2: Create the Software Component Version inside the Software Component imported from SLD.

STEP 3: Create the Namespace under the Software Component version.


Data Type - Input File1:

Data Type - Input File 2:

Data Type - Input File 3:

Data Type - Output File:


Message Type - Input File 1:

In the same way, create the Message Type for - Input File 2, Input File 3, Output File. i.e.

  • InsuranceDetails_OB     (MT for File 2)
  • ProjectDetails_OB          (MT for File 3)
  • EmpCompleteDetails_IB  (MT for Output File)


Here we need to create three outbound asynchronous interface for picking up three sender input files, one inbound asynchronous interface for the receiving side and four asynchronous abstract interfaces because the Integration process do only understand the abstract interfaces. Abstract interfaces are those interfaces which do not have any direction.

1. Outbound Asynchronous Interface: Sender side

  • SI_FILE_To_BPM_EmpDetails_OB

In the same way create two more asynchronous outbound interface as shown above.i.e.

  • SI_FILE_To_BPM_InsuranceDetails_OB
  • SI_FILE_To_BPM_ProjectDetails_OB

2. Abstract Asynchronous Interface: Integration Process


3. Inbound Asynchronous Interface: Receiver side


Create 3:1 Message mapping as the source is having 3 input messages and target is having 1 message.

Make sure signature tab should be like as mentioned in the below screenshot.



Interface mapping is created based on the outbound asynchronous abstract interfaces and inbound asynchronous abstract interface.





Integration Process is created in this scenario as shown below:


STEPS To Create the Integration Process:

Create the Integration Process under the same namespace and SCV in which above all the objects created as shown below.


After creating the Integration process, it will take you to the below mentioned screen. Now it is ready to design the integration process.

Below are the following steps which needs to be taken care while designing the Integration process:

  • First step is to create the container elements. In order to process the message into BPM, it is required to create the container elements because it's not possible to use the abstract interface directly. Container elements are nothing but just the variables which keeps the reference of the abstract interfaces and needs to be declare during the design time.


         In the below screenshot CompleteEmpDetails, EmpDetails, InsDetails & ProjectDetails are the container elements of type Abstract Interface assigned to the respective Abstract Interfaces created above.

  • Second step is the Receiving Step.


          To process the messages into BPM, Integration process should receive the messages. To do this need to insert RECEIVE step. But here in this scenario there are three input messages, so we need to have three receiving steps. In order to this, first insert FORK and then create three branches into it as shown in the below screenshot.

(When to use FORK: You need to use a FORK whenever you want to continue a process in branches that are independent of each other.For example: To communicate with three different systems that are independent of each other. The branches of the FORK join in a union operator.)

Insert RECEIVE step in the three branches of FORK as shown below.

In the Properties Window, click help against Message as shown above. After clicking, you can see following screen that shows Interface Variable . Here it will show all the Container elements that are declared as Abstract Interface category. From this container element list choose appropriate element that should refer to original message. Below screen shows the same.

In the above screenshot, you can see the list of container elements as assigned to the abstract interface. From this container variable list choose the appropriate element that should refer to original message. In the same way assign the container element to rest of the receivers as shown below in the Receive STEP1, Receive STEP 2 & Receive STEP 3.


In the same Properties Window, there are two more rows i.e. Use Correlations and Activate Correlations as shown in the above screenshot. Brief detail description about the correlation as given below.


A correlation enables you to identify objects that belong together, for example, a quotation and the relevant sales order. This involves correlating the objects by using one or more common elements, for example, the quotation number. When you define a Workflow, you can specify the object that the Workflow must wait for, without having to enter the ID of the object.

You can define a correlation with the correlation editor. In the correlation editor, first you need to define the correlation name. Then Mention the container elements under correlation container. There you have to give the common field which is having in both the input files. Select the input messages interfaces in the involved messages. In the properties you need to mention the value. Select the value from the expression editor.

Steps to define a Correlation:

Go To -> VIEW -> Correlation Editor




Below is the expression editor. You need to select the Xpath for the three input messages.(for File1, File2 and File3)



Receive STEP 1 :


Receive STEP 2 :

Receive STEP 3 :

  • Third step is the Transformation Step. If you want to collect messages, split messages you need to use Transformation step after the receive step that refers to N: 1 Interface Mapping or 1: N Interface Mapping created.In this step, you need to configure the Interface mapping as created as shown below.



  • Last step is the Send Step. Once messages are received and processed then these processed messages are to send by the BPM using Send Step.


STEP 10: Save and Activate all the changes.

ESR Part is over.

INTEGRATION DIRECTORY: Configuration Objects


Click here for ID objects . Due to size limit, I won't be able describe the ID Objects in the same blog.

Please feel free to disagree, ask questions, provide your views.


Paul Vahle GmbH & Co KG (The VAHLE Group) is a mid-sized company based in Kamen, Germany that has specialized in mobile power and data transmission since 1912.
They are active in 52 countries and have 13 subsidiaries worldwide. VAHLE develops, manufactures, and installs customized power and data transmission systems for various material handling applications.



VAHLE implemented the Business Suite Foundation component Process Observer together with SAP consulting partner Cubeserv in order to identify bottlenecks and streamline their order-to-cash process run on SAP ERP. The overall deployment time of the Process Observer component took only 10 days. The monitoring setup, on top of Process Observer, allowed them to identify gaps in material planning and in stocking processes that were slowing down product delivery. Appropriate training of business users and constant evaluation now enables them to deliver faster and make their customers happier.



The complete success story is published at: http://www.sap.com/bin/sapcom/en_us/downloadasset.2014-01-jan-07-17.vahle-accelerating-the-order-to-cash-cycle-and-improving-customer-satisfaction-with-sap-erp-and-process-observer-pdf.html



You can find more details about their installation in the presentation Daniel Scheel from VAHLE gave at the DSAG Annual Conference in 2013 (document in German, restricted area, DSAG members only): https://www.dsag.de/dsaghome/veranstaltungen/download.html?dsag%5Bdoc%5D=22243&dsag%5Bvalidate%5D=fd644c59&cHash=5577acde48

Hi All,


As the subject of this article suggests, I am just going to highlight the Features & Advantages of the popular 'BPM System Overview' section of the Server which is available on the NetWeaver Administrator which is one of the most important tools for a Business Process Administrator to monitor the performance of the BPM Processes and Task-instances on the Server.


Log-in to the NWA of the server with Administrator rights. Make sure you have either 'BPM_SuperAdmin' role if not 'NWA_SuperAdmin' to be able to view and perform operations through this option.


Go to 'Availability & Performance'  -->  'BPM System Overview'. The screen should look like this:




As you can see, this is a one-stop workshop for any BPM Administrator and a handy tool for everyday monitoring.


On the right hand side of the screen you can see the total number of process instances running on the server. Also, they are segregated according to the error status of the process instance: Error, Failed, Suspended, Completed, Cancelled and In-Progress.


If you observe closely, the number which indicates the number of process instances against each error status, is a link. When you click on this number, it will open the 'Manage Processes' section, but with all the process instances with the corresponding error status, irrespective of the Development Component of the Process Instance.


Similar is the case for Task-instances. The corresponding links will open the 'Manage Tasks' section.


All this sure saves the effor to go to separate sections such as 'Manage Processes'/'Manage Tasks'/'Process Repository' and then perform an action on an instance after searching and filtering through hundreds of instances based on Development Components.


Both the sections have the manual 'Refresh Option'.


Note: You can perform normal operations from here just like you perform any action on any Process/Task instance from 'Manage Processes' or 'Process Repository'.


Now, if you observe the Left hand side of this screen, you will see all the configuration settings and their current server status which may be a cause of concern for any BPM Admin.



I am not trying to impart any knowledge through this blog but my primary aim is to make people aware of this tool which may come handy for any BPM Administrator/Monitor. It sure does come in handy for me.


Please let me know if I have gone wrong somewhere and provide your inputs if I have missed out on anything.





In many companies, business processes, in which contracts and agreements are created and sent to external parties for filling and signing, are still the norm. Often, this involves sending a physical document back and forth: from the initial issuer to one or several recipients and back again. Taking into account the time spent for manual interactions and costs incurred by this procedure multiplied by a factor to scale, the opportunity to automate such tasks and to accomplish them electronically becomes priceless. This is where Adobe EchoSign comes into play.


Adobe EchoSign is an electronic signature and Web contracting solution. Its major features focus on document signing, tracking, and filing. It supports signing by email (e-signature) or by fax [1].


In this blog, I am going to elaborate on the topic of integrating Adobe EchoSign services into a business process developed with SAP NetWeaver BPM. To illustrate this routine, I have developed a business process, which involves the creation of an agreement with the SAP NetWeaver BPM environment, sending it for signing to an external party via email, and getting back a notification that the document has been signed. Both, the issuer and the signer of the agreement are expected to fill some custom data into the agreement. The process extensively explores the functionality provided by Adobe EchoSign.


To see a demo of the scenario, please watch the following video:


The blog is organized as follows: first, I describe the use case for the process at hand in greater detail and give an overview of its main parts. After that, a detailed description of each part is provided. I close with a conclusion and references to further information on the topic overall. At the very end of this blog post, you can find an appendix with the points that should be taken into account for productive scenarios.


Use Case

The user story for our business process is as follows:

  • The process deals with an agreement template which is stored in the SAP Enterprise Content Management system (SAP ECM) as a text file.
  • The template contains fields that need to be filled by two parties: internal company manager (an SAP NetWeaver BPM user, who actually owns the process and sends the agreement) and a student (an external person who is supposed to sign the agreement).
  • The process would start with the manager entering the agreement details (name of the hired student and the proposed salary). The manager would also specify the email of the student where the agreement would be sent to.
  • Then, the process would send the agreement with the previously entered data to the Adobe EchoSign Web service, which would then process the request and in turn send an e-mail to the student. The mail would contain a link to an online Adobe EchoSign form.
  • Following the link, the student would be able to fill in his address as well as sign the contract.
  • Finally, the process would be notified that the corresponding document has been signed and provide the manager with the overview of the data filled into the corresponding agreement.



To be able to integrate the functionality of Adobe EchoSign and SAP NetWeaver BPM, some preparatory steps are required:

  • The Adobe EchoSign SSL certificate should be installed and imported into the system where the process will be run
  • The SAP ECM system should be properly configured

Details are provided at the end of this blog post in the Appendix.


Creating Adobe EchoSign Master Account

To access the online signature features, a master account within Adobe EchoSign has to be created and the corresponding tariff plan needs to be chosen (this can be done here). Depending on the tariff plan, the master account allows creating a number of sub-accounts for different users and assigning relevant permissions and rights to them. This functionality makes a lot of sense for companies where multiple users are expected to send and/or process the agreements. The available functionality depends on the tariff plan, but it is possible to set up a free developer account as a starting point.


Demo BPM Process

We have created a demo process which utilizes the functionality of  Adobe EchoSign. The process involves two parties: a manager (the BPM process owner) and a student (an external party who is supposed to sign the agreement).

The process consists of 4 main parts:

  1. The manager provides the data to be merged into the agreement and specifies the email of the student used for further communication.
  2. The second step is an automatic activity, in which the agreement is actually created from the predefined template and sent to the student via the Adobe EchoSign service.
  3. A sub-process is started, which waits for the document to be signed.
  4. Finally, when the document is signed, the manager receives a task, which provides an overview of the agreement.

In the figure below, the process diagram is shown:



Supplying the Data to Customize the Agreement

In the first task, the manager specifies - in a SAPUI5 UI - the name of the student and proposes a salary. This information will be used in the text of the agreement sent to the student. In addition, the manager specifies the student's email, which is used while sending the agreement for signing. Also, at this stage, we save the principal ID of the task processor in the process context. Afterwards, this is used to obtain his email address to identify the Adobe EchoSign sub-account in the name the agreement is sent.


Sending a Document for an Electronic Signature

Preparing Agreement Template and Filling in the Data Fields

In our process, the manager as well as the student needs to specify some information as part of the agreement. Adobe EchoSign provides an opportunity to achieve this by introducing so-called form fields.

You essentially add tags in a text document (e.g., Microsoft Word, PowerPoint, Excel, .txt or .rtf files) typing in a special string of characters. Adobe EchoSign will automatically find those tags and convert them into properly placed signature blocks, initials, check boxes, radio buttons, and form fields. Advanced optional field processing rules are taken into account as well. This conversion happens when the document is sent for signature or uploaded to the Adobe EchoSign Document Library.


The Adobe EchoSign text tags usually appear between {{ and }}.

The example below shows the text of the agreement which is used in our process:


Dear {{!StudentName}},
We are happy to invite you for a student job in our company with a salary of {{!StudentSalary}} EUR per month.
Please, give us your address and sign this contract:
Address: {{* StudentAddress_es_:signer }}


To get more information about the fields available in the Adobe EchoSign documents, please, refer to this document.


Sending an Agreement

It is possible to access the services provided by Adobe EchoSign in two ways:


The latter is of interest in this blog post. As soon as a master account is created within Adobe EchoSign, a constant unique API key is assigned to it. If you already have a master account, you could find your API key here. This key is used as a parameter for almost all Adobe EchoSign Web services in order to identify the master account, on which behalf the services are executed. In the software component provided with this blog post, the API key must be specified in the web.xml as a parameter. The example software component contains a Web project development component, in which we provide a facade to the Adobe EchoSign Web service. In case you need to access functionality of Adobe EchoSign that is not covered by this facade. I would recommend to extend the facade in this case. The description of all the API functions of the Adobe EchoSign is available, here.


The Adobe EchoSign Web service used for sending a document in the example process is

send(API_KEY apiKey, SenderInfo senderInfo, DocumentCreationInfo documentCreationInfo).

  • The API key refers to the unique key assigned to the master account within Adobe EchoSign.
  • In the sender info, the email and sub-account password are specified either directly or by supplying the user key, which uniquely identifies the sub-account owner. It should be mentioned here that the user must be registered with Adobe EchoSign so that his sub-account matches to the API key supplied in the above parameter. In our process, we take the following steps:
    1. We obtain the email of the user by calling the UME API UMFactory.getUserFactory().getUserByLogonID(String logonId) and passing in the user ID stored in the process context
    2. We then query the Adobe EchoSign service to know whether the user with the corresponding email is registered and either owns the master account or a sub-account, which matches to the corresponding master account: verifyUser(String apiKey, String email, String password).
    3. If the previous requirement is not fulfilled, we create a sub-account for this user within the corresponding master account by calling the Adobe EchoSign API function createUser(String apiKey, UserCreationInfo info).
      It should be mentioned that for real production scenarios, this functionality should be modified to fulfill the security and authorization requirements of your scenario. To this end, the facade to the Adobe EchoSign Web Service, namely EchoSignFacade interface and EchoSignFacadeImpl class, needs to be changed. For an overview of the user management functionality, please, refer to this document.
  • In the document creation info, we specify the following parameters:
    • A list of file infos to be sent: a list of one or more files that will be sent out for signing. The document to be sent can be supplied to the function in two ways:
      • By supplying the agreement file directly. This option is used in our process: in our case, the agreement file is retrieved from the SAP ECM system.
      • By a unique key of a document template in the Adobe EchoSign library.
    • Merged field info: default values for fields to be merged into the document. In our scenario, we use the input of the manager from the previous step (the name of the student as well as the salary offer).
    • The recipient list: the parties who are supposed to sign the agreement. In our case, there is only one recipient (the hired student) whose email address was specified by the manager in the previous task.
    • The name of the agreement: this value is used to identify the agreement in the emails and on the Adobe EchoSign Web site. In our process, this parameter is specified as the title parameter of the StudentHiringProcessMessage message event, which starts the process.
    • Message: a message to the recipient(s) describing what is being sent and/or why their signature is required. In our process, this parameter is specified as the message parameter of the StudentHiringProcessMessage message event, which starts the whole process.
    • Callback info: specifies the URL, which is queried when the status of the document is changed in the Adobe EchoSign document life cycle. The callback mechanism is discussed later in this blog post.

For the full list of parameters that can be specified when an agreement is sent, please, see Adobe EchoSign API methods documentation.


As soon as the document is sent, Adobe EchoSign assigns a unique string document key to it (if the agreement for signing is successfully sent, the Adobe EchoSign API send returns this key as its result). The document key is further used for obtaining the status of the document as well as for getting the data filled into the agreement during sending and signing.


Checking the Status of the Agreement

Adobe EchoSign supports two ways of checking the status of a document:

We have created a generic, reusable process DocumentSigningCheckProcess which implements a timeout pattern and supports both strategies for checking the status of the document. One of the branches of the process expects a callback from Adobe EchoSign. The other branch waits for a certain time period and, if no relevant message arrives during this time period, polls the Adobe EchoSign service to obtain the current status of the document. The process runs in a loop as long as the status of the document is not equal to "SIGNED".




The lightweight form of checking the status of a document is listening to the callback from Adobe EchoSign. As soon as the status of the document changes, Adobe EchoSign queries (HTTP GET or POST) the URL specified at the sending stage and adds the documentKey and status parameters to it. It can be specified that the agreement is also uploaded to this URL through a POST request.


In our process, we use an intermediate message event to listen to callbacks from EchoSign. The message trigger EchoSignCallBackMessage relates to an asynchronous call-back operation of the EchoSignCallBack Web service. The documentKey and status are the parameters of this operation. The documentKey is used in the correlation condition of the intermediate message event:

string-equal(DocumentKey_DO, CallBack/DocumentKey)


This scenario is preferred in terms of system load. However, it does not guarantee the delivery of the awaited messages (best effort delivery only). That is why it is recommended to also support the alternative way of checking the status of the document, which is not so sensitive to system failures.



A more reliable (but also performance-heavier) way to check the status of the sent document is to poll the Adobe EchoSign service.

The Adobe EchoSign API getDocumentInfo(String documentId) function is called in this case.


A list of all the agreement statuses in the Adobe EchoSign document lifecycle is available here. In our process, however, we just check whether the status of the document is equal to SIGNED>.


It is not recommended to poll the Adobe EchoSign service too often. In our processes, it is possible to configure the TimeInterval parameter to adjust the polling interval according to your needs. However, these adjustments should be done with care and the corresponding value should be adjusted to the amount of documents which you expect to be sent using the Adobe EchoSign service. For more details and suggestions on the polling strategies, please, refer to the following document.


Retrieving the Input of the Agreement Parties

As soon as the process gets the notification that the agreement has been signed, the process flow proceeds to the next task where the manager can view the information entered by the student in a custom SAPUI5 UI.


To retrieve the agreement details, the following Adobe EchoSign API function is called: getFormData(ApiKey, DocumentKey). The API key refers to the unique identifier of the master account within Adobe EchoSign and the document key is the unique identifier of the document of interest.



In this blog, I briefly described the online signature features provided by Adobe EchoSign and how you can integrate them into SAP NetWeaver BPM. We created an example process which explores the Adobe EchoSign API in order to send an agreement for signing, get a notification when the agreement is signed, and obtain an overview of the signed agreements. The process is modeled generically, easy to extend, and can be used as a starting point for further use cases.



  1. Adobe® EchoSign® main page
  2. Article about Adobe® EchoSign® in Wikipedia
  3. Adobe EchoSign White Paper
  4. Creating an Account at Adobe EchoSign
  5. Creating Adobe® EchoSign® Forms with Text Tags
  6. WSDL of the EchoSign Web Service
  7. EchoSign API Main Page (for registered users only)
  8. Sending an Agreement via EchoSign Web Interface (for registered users only)
  9. Description of the EchoSign API functions
  10. EchoSign API Guide
  11. EchoSign Account Management
  12. ECM Community


Appendix: Parameters of the Start Message Event for the Process

The trigger of the start message event for our process relates to the StartHiringProcess operation of the StudentHiringProcess Web service. This operation requires the following parameters to be specified:

  • ApiKey: the unique key assigned to the Adobe EchoSign master account.
  • Title: this value is used to identify the agreement in the emails and on the Web site of Adobe EchoSign.
  • Message: a message to the recipient(s) describing what is being sent and/or why their signature is required.
  • TemplateName: the name of the agreement file in SAP ECM.
  • PollingTimeInterval: time interval in milliseconds, which specifies how often the Adobe EchoSign service will be polled by the system to get updates on the status of the agreement.
  • CallBackUrl: the URL to be queried by the Adobe EchoSign service when the agreement status changes.


Appendix: Productive Considerations

Importing the Adobe EchoSign SSL Certificate

We access the functionality of Adobe EchoSign through the Web service via HTTPS. To be able to call the Web service methods from Java code, the SSL certificate of Adobe EchoSign needs to be installed in the system and imported to the key storage of the JRE. To this end, the following steps should be accomplished:

  1. On the system where SAP AS Java is installed, open the browser. Go to https://secure.echosign.com/public/home, click on the lock in front of the URL (Google Chrome specific), and select the Connection tab.
  2. Click the Certificate information link, choose the Details tab, and choose the Copy to File... button.
  3. Choose Next, and in the opened tab, select Base64-encoded X.509.
  4. Choose the file name, then choose Next and Finish.
  5. To install the certificate on the system, double-click on the saved file and choose Install Certificate... in the opened window. Choose Next twice, and then Finish.
  6. Open the command line in the bin sub-folder of the folder where the SAPJVM JRE is located (here, it is <Diskdrive>:\usr\sap\<Instance>\J00\exe\sapjvm_6\jre).
  7. Run the following command: keytool -importcert -file <path_to_the_downloaded_certificate_file> -keystore ..\lib\security\cacerts -storepass changeitFinalCL.png
  8. Confirm the command. Now the certificate has been imported to the key store file.
  9. It might be necessary to restart the system to apply the changes.


Configuring SAP ECM

When dealing with any sort of documents within SAP NetWeaver BPM, a good practice is to store the document in SAP ECM. SAP ECM allows controlling the rights of users who try to access its documents. The software component provided here as an example contains a Web Dynpro development component, namely eswd, which provides the interface to upload and access the documents within SAP ECM. The user of SAP NetWeaver BPM is supposed to have the necessary permissions to the folder where the agreement template is stored. Note, this exemplary ECM integration is not intended to be deployed in  a productive scenario since typically stricter authentication handling needs to be performed for users who are to access the documents in ECM.


Security Issues

As the process provided is intended for demo purposes only, there are several points that should be done for a real productive scenario.

  1. Proper user management and authentication routines for Adobe EchoSign should be implemented that fit the security needs and requirements of your company.
  2. A more secure strategy for SAP ECM authentication should be implemented for cases where users access and/or change the agreement templates.


The SCA archive with the demo process can be downloaded here.

BPM is an excellent tool to build and manage your workflows across the Systems and Organizational boundaries.


When the time comes to integrate it with HCM Organizational Management within ECC there is no out of box functionality. You can fix the User Ids using Portal UME to different Swim Lanes or Tasks but its not possible to pick the Manager/next Approving Authority based on relationships maintained within HCM Organizational Management.


After reading many articles and communicating with different peoples, I reached to a conclusion that relationships maintained between employees within ECC HCM can be picked using following steps.


  1. Select Main Swim Lane Properties and in General Tab check mark the "Enable Principal Propagation". Now the current user of this task will be propagated to next task.
  2. Create an Automated Activity either using a web-service or RFC having  importing/exporting parameters  "Employee" & "Manager" respectively. Write your business logic to read manager of "Employee" within this RFC enabled function module and return the "Manager" of employee.
  3. Now Output Mapping of first Human Activity will be having Task Attributes and Actual Owner belong to this task. Map the output mapping with Human Activity to Automated Activity.
  4. During run-time Automated Activity will read the Owner of previous Human task and returns the manager of owner that can be passed to next Human Activity using an Expression.


Step by Step tutorial


  1. Create a new Process Composer Project.



2. Type the name of your development component.



3. Expand your newly created project and create a process under Process Modeling. Create two swim lanes, Employee and Manager.




4. Delete the link between start and end. Place one Human Activity  on Lane - 1 and name it to initiator.




4. Create an RFC enable function module in your ECC server which can accept user id/owner of Human Activity and returns the manager of Initiator.

    It is assumed that you are familiar with ABAP and how the employees relationship are maintained in HRP1001 table.




5. In Project Explore right click the Services Interface and Import RFC. Make sure before this you have maintained the R/3 Configuration in NWDS and RFC Connection to you ABAP System within portal (Go to NWA -> SOA Management -> Technical Configuration -> System Connection)




6. Right click on connectivity and create a new service group e.g. BPM_RFC. Purpose of creating Service Group here is to maintain a repository having information about the services consumed by your Application e.g RFCs or Web Services.




7. Drag and Drop the imported  RFC over swim lane Employee. An automated/background activity will be created automatically. Link it with Initiator Activity.




8. Select the GetManager Pool and check mark "Enable Principal Propagation" with General Tab of Properties.




9. Now you can see output Mapping of Initiator task is having all required task attributes. Mapped user id of Initiator Task to Automated RFC Activity which will return the Manager.




Other than using Principal Propagation, Task Attribute actualOwner can also be mapped with next automated activity. Now you have user id in custom built RFC Function module that will return the manager of first task to second human task.


Filter Blog

By author:
By date:
By tag: