Sketching the Purchase Order Process

Objective

After completing this lesson, you will be able to sketch the purchase order process

BPMN 2.0 Process Sketching

When creating a BPM process you have to take several aspects into consideration.

The following considerations are the basic guidelines:

  • It is preferable to keep a BPMN model as simple as possible. Try to limit the total number of process steps to below 50. 


  • Keep the signatures of interfaces used for SAP BPM as small as possible.

    Note

    For some objects in this training we may violate this guideline. This is done for the purpose of an easier understanding.
  • It is better to have small mappings rather than big ones that have more than 50 fields mapped.

  • Keep the mapping complexity as low as possible. If not well-designed, a mapping can cause bad performance in SAP BPM. 


  • When mapping structures, use the move-corresponding feature when possible. 


  • Avoid using the same message trigger for multiple processes. It is better to create a different trigger for each process (when possible).

  • Whenever a group of steps can be reused by multiple processes, consider creating a subprocess that can be referred to by other processes.

  • Consider using parallel processing or a parallel split gateway when some actions or steps in your process can be performed concurrently. This will reduce the time needed to complete your process.

    Caution

    Be aware that parallelism might lead to high memory consumption.

Modeling Aids

Based on the considerations above, check the following basics for the different objects:

  • Gateways

  • Tasks

  • Data objects

  • Looping

  • Correlations

Gateways

When your SAP Business Process Management (BPM) process uses a gateway, consider the following aspects:

  • When using a split gateway, pay special attention when updating the same data object concurrently, which can cause locks, data inconsistencies, and decrease performance. 


  • When dealing with an exclusive gateway (or exclusive choice), make sure that the conditions are designed in such a way that one gate will always be taken. Setting a default gate is a good practice.

  • When using an event-based choice, ensure that you have a sanity check in case none of the events occurs. If none of the specified events occur, then the process might run forever! Consider including an event timer in the list of events to avoid keeping the process active for an undetermined time.

Tasks

Tasks have a life of their own and might need to stay active for a long time. Keeping the total number of tasks on the lower side can dramatically improve your performance.

Consider the following actions, resolved by tasks

  • Create human tasks with reusability in mind. It is better to combine similar tasks into one and reuse it for multiple human tasks. 


  • When reusing the same task for many human tasks, you might need to use parameterized subjects and texts to give it more context.

Data Objects

Data objects are used to hold process data. These data are modified and manipulated across the process lifecycle.

Consider the following points while dealing with data objects:

  • Give meaningful names to your data objects. Others should be able to determine what the data object is used for from its name.

  • Only create data objects in a process when needed. Avoid large data objects by not adding unnecessary fields.

  • Use defensive checks on data types in case you are expecting some constraints. For example, instead of directly accessing the second item in a collection, it might be a good idea to first check if an item at position 2 exists in the collection and is not null. These checks might save you from unnecessary runtime exceptions.

  • If the same data object needs to be accessed in parallel, then consider splitting the data object into smaller ones. In that way, each parallel branch only accesses the data pertinent to it.

Looping

Looping allows a group of steps to be repeated multiple times. When dealing with loops in your process, avoid creating infinite loops. This may occur when there are no proper conditions to exit the loop. Consider using any combination of counter-data objects, timer events, and gateways to exit your loop.

Correlations

Consider the following practices when dealing with correlations in your process:

  • Avoid implementing you own logic to correlate messages; use the standard features (in start or intermediary events) to achieve correlation.

  • Make your correlation conditions as specific as possible to narrow the chance of unintended messages correlating to your process instance.

Further Considerations — Troubleshooting

It is no surprise that error handling should be given attention in every process. It is important to think about all situations that might cause exceptions to an SAP BPM process and to make sure that each is correctly handled. When a high volume of errors is produced, SAP Process Orchestration’s (PO) performance can be severely affected in a negative way. Therefore, be aware of the following points:

Facts about Troubleshooting:

  • When handling errors, make the error messages as specific as possible, and provide enough information to make life easy for the process administrator to handle the exception. This approach also aids traceability.

  • Whenever you use an automated or human activity, use boundary events when possible.

  • If many different types of errors are possible in a particular step, then use multiple boundary events to handle each exception separately.

  • If exceptions in different processes can be handled in the same way, then consider creating a process that handles the exception so that it can be reused by many processes.

Further Considerations — Housekeeping

Consider regularly running some housekeeping activities to clean up and reduce the size of your database.

Some of the actions to be performed include the following:

  • As your processes run, a lot of business logs are written. Remove and delete business logs to keep to database size reasonable.

  • Change the log level setting to a low value to write fewer logs. This is especially important for a productive SAP PO machine.

  • Consider archiving data of completed or canceled processes and those older than a certain period. The higher the process data volume, the shorter your archiving period should be.

Purchase Order Process Sketching

The first process you will create in the exercise, Sketch the Purchase Order Process, is the Purchase Order Process. In this process, you will create a basic process model with one lane (to keep the exercise simple). Then you will create the first objects, using the speed buttons.

The purchase order process is the leading process of the different processes, you will create in this training.

When starting the business process, you will start the Purchase Order process. The first decision made, is the question, if a part is available or not. If yes, the distribution process is started and a reporting activity is started. If not, we make a differentiation in the process, if the part will be delivered later or not. Here we start a notification activity, to inform the customer about the late or the non-delivery.

Data objects will be added later. The idea of the first exercise is to let you use the speed buttons.

The figure, Purchase Order Process, shows a selection of all available objects.

The above sketched process consists of 8 objects:

Basic Procurement Order Process

  • The required start object.

  • A data object storing the storing the data.

  • The automated activity (to check, if a part is in the catalog).

  • A gateway, in which the process splits either in the branch procurement or the branch distribution.

  • For both branches, we use a referenced Process object.

  • In the procurement branch, we order the material from our supplier using an automated activity.

  • With an event based choice, we decide, if an alternative material can be delivered or not.

  • In the distribution branch, we create two referenced subprocesses to determine the storage location and the delivery status.

  • A Business Rule, connected with the distribution subprocess, delivers the distribution center, depending on the zip code.

  • The required end objects for all branches.

Sketch the Purchase Order Process

Exercise Information

Note

In this exercise, when the values include ##, replace the character with a two-digit number (01–30).

Exercise Options

You can perform this exercise in two ways:

  1. Live Environment: choose Start Exercise, and from the entry page choose Open PDF Document. Follow the steps described in this pdf in your own system landscape.
  2. Simulation: choose Start Exercise, and from the entry page choose Start Tutorial. Watch the step-by-step instructions within the simulation.

Note

We recommend running the simulation first.

Log in to track your progress & complete quizzes