best grammar app

Integrating Business Processes with SAP – Some Best Practices

Submitted by Abhishek on Fri, 2011-09-02 00:38

A number of business process management engines need to fetch master as well as transactional data from ERP Systems, especially SAP. Based on my experience in working with SAP Integrated Business Processes I have tried to pen down some Best Practices


How does SAP Integration work

For the most basic part, you would need to call SAP web services or make use of Connectors. Connectors like JCo are the ones most commonly used. You would define BAPI (Business API) on the SAP Server which would contain the business logic and code which interacts with the server. The BAPI Integration is very similar to what you would do with a stored procedure – You will have inputs that you give to a BAPI (which will be referenced with a Name) and get output.


Some Typical SAP integrations

Some SAP Integrations which you could possibly do are

·         Pull Data – Company List, Product List, Employee data

·         Create a Master Entry Vendors, Materials, Company, Employee

·         Work with Transactional Data Create a Purchase Requisition, Process a purchase Order



Lets see some best practices now

Connector or Out Of the Box?

Several BPM Vendors provide out of the Box Adapters for making SAP Connections. One hand these OOB’s are good to get started with but once you start developing your business logic you will realize these are not enough. Using a Library like the Java JCo Connector gives you better control on what you can do


Recreating Functionality

Some companies want to automate their master data creation process. For example, a manufacturing unit might want to create vendor’s after proper approvals into SAP. What you would end up is  creating a full fledged Data entry screen in your BPM Tool – possibly with hundreds of validations and lookup fields. A better approach could have been to allow the vendor creation in SAP itself with a flag which says not activated and then use your BPM Tool to take care of the Activation process. You could have a Vendor ID and lookup which pulls in the entire data on your BPM Form and shows it to the user. He/she can initiate the process. Another way could be to make use of a Scheduled job which finds all Vendors created on a day and spawns Approval processes for the same.


Handling Tasks

SAP has its own task management system. In one particular project I was asked to create a one to one mapping between SAP and my BPM System such that once someone completes the task on BPM Side it gets completed on the SAP Side. Very soon we found out synchronizing would be a real pain and had to abandon the approach. Its better to build a Simple Non BPM Screen which can fetch the task for a user and show it, completing it would make BAPI calls to complete the task on SAP Side.


Multiple Vs Single

SAP Users are used to Bulk upload of data using Excel. When using a BPM Front end to achieve it, allowing multiple entries on screen becomes painful. Sometimes it is inevitable like for example if someone wants to raise a material indent request, he would need to specify a few parts which he needs to purchase. You end up putting validations, multiple lookups making your solution very complicated. Staying single is always better ;)


Managing Load

Once your BPM System starts getting used a lot, you would need to streamline how to balance load and use caching. Imagine each complex screen making BAPI calls to fetch humongous data. Having a middle layer to cache it will keep your SAP System free from peak loads. Here, use of correct connectors helps in maintaining load – for example SAP JCO connector allows you to specify a connection pool with max pool size


Abhishek Mishra
Good experience in working with BPM technologies like Savvion, JBPM. Founder and Chief Editor of Founder of Savvion Business Manager Mobility Framework Savmobify| View my BPMGeek Profile
best grammar app

About BPMGeek

BPMGeek is an initiative to collaborate and communicate with the growing Business process management community out there. The goal is to help developers connect with experts, ask questions, post their learning and get understanding of BPM Concepts. Often tool specific knowledge of niche areas end up developers perplexed and confused - especially when there are very less number of resources available. We will be coming up several several new features. Have a look at our Roadmap here

BPMGeek is an independent entity not associated with any Product. All BPM product professionals are invited to contribute. The Logos and Names used across the site belong to their respective owners. The viewpoints mentioned by Individual contributors are their own. BPMgeek cannot be held liable for any issues arising out of it.

BPMgeek is promoting the Nounshoun English Grammar App - developed by Constellation Software.