• Explore practical exercises for programming in SAP Business Workflow
• Utilize step-by-step instructions for adapting data flows, agent determination, event definitions, and more
• Learn from examples, problem solutions, and tips and tricks for daily practice
ABAP developers require special programming skills for workflow-related ABAP development, as well as very specific process knowledge. With this book, you will acquire both! You’ll learn the aspects of the tools that are directly related to the developer’s tasks, understanding when it is necessary to use custom code and how to write this code. In the many activities and tutorials this book provides, you'll discover how your work differs from the workflow engine of classic application development, as well as how to influence the behavior of a workflow with its own ABAP programs. Additionally, you'll learn how to customize the workflow environment beyond standard programming.
Code Examples
Implement your workflow needs and avoid typical pitfalls with the help of code examples and step-by-step instructions.
Detailed Scenarios
Understand interference in workflow processes: the use of BOR objects in agent determination, as well as data flow or event production.
Sample Project
Explore a sample project, where you will follow explicit instructions for developing an ABAP Objects class and creating a BOR object for your workflow.
Workflow Engine
Learn how to use customizing, organizational structure, and events to build your own workflow development environment.
Process Knowledge
Gain the discipline-specific programming knowledge the ABAP programming workflow process requires. This book shows you what is important for use in your daily work.
Highlights
• Workflow Engine
• Workflow runtime
• BOR and ABAP OO objects
• Containers, work conditions, and data flow
• Workflow patterns and tasks
• Methods, work items, and events
• Agent determination
• Event definition and implementation
• Workflow runtime system and log files
The Author
Ilja-Daniel Werner has a degree in physics. He is an SAP trainer and consultant at PSINOVA AG, where he specializes in the area of interface and workflow programming.
Table of Contents
- 1 ... Introduction ... 11
- 2 ... Getting Started ... 15
- 2.1 ... Customizing the Workflow Engine ... 15
- 2.1.1 ... Implementing Customizing (Transaction SWU3) ... 15
- 2.1.2 ... System User WF-BATCH ... 17
- 2.1.3 ... Logical RFC Destination WORKFLOW_LOCAL_xxx ... 18
- 2.1.4 ... Checking the Customizing (Transactions SWU3 and SWUI_VERIFY) ... 19
- 2.2 ... Starting Workflows and Monitoring the Workflow Events ... 23
- 2.2.1 ... Monitoring Events (Transactions SWELS and SWEL) ... 24
- 2.2.2 ... Considering Workflow Definitions (Transaction SWDS) ... 27
- 2.3 ... Maintaining a Minimal Organizational Structure ... 32
- 2.3.1 ... Creating Organizational Units (Transaction PPOCW) ... 33
- 2.3.2 ... Editing Organizational Units (Transaction PPOMW) ... 35
- 2.3.3 ... Assigning SAP Users to Positions ... 38
- 2.3.4 ... Testing the Agent Determination (Transaction PFAC) ... 40
- 3 ... Compiling a Workflow Development Environment ... 43
- 3.1 ... Relevant Transactions ... 43
- 3.2 ... Workflow Development Process with Standard SAP Functions ... 44
- 3.3 ... Events ... 45
- 3.3.1 ... Event Type Linkage ... 46
- 3.3.2 ... Event Instance Linkage ... 47
- 3.4 ... Where-Used Lists in SAP Business Workflow ... 48
- 3.4.1 ... From Object to Standard Task to Workflow Template ... 48
- 3.4.2 ... From BOR Object to Standard Task (Classic) ... 49
- 3.4.3 ... From ABAP Objects Class to Standard Task (Classic) ... 50
- 3.4.4 ... From Standard Task to Workflow Template ... 51
- 4 ... Methods, Work Items, and Events ... 53
- 4.1 ... Types of Methods in the Workflow ... 53
- 4.2 ... Types and Statuses of Work Items ... 56
- 4.3 ... Events and Their Delivery ... 59
- 4.3.1 ... Check and Receiver Type Function Modules ... 61
- 4.3.2 ... Event Queue ... 64
- 5 ... Intervening in the Agent Determination ... 67
- 5.1 ... Creating a Workflow ... 67
- 5.2 ... Determining and Selecting the Agent Determination Dynamically ... 68
- 5.3 ... Testing the Workflow Template ... 72
- 5.4 ... Modeling the Agent Determination Using Task Groups ... 75
- 5.5 ... Agent Determination with Responsibilities ... 81
- 5.5.1 ... Creating Rules Based on Responsibilities ... 83
- 5.5.2 ... Integrating a Rule with the Workflow Template ... 86
- 5.6 ... Programming the Agent Determination ... 88
- 5.6.1 ... Creating Classic Function Modules for Agent Determination ... 89
- 5.6.2 ... Creating an ABAP Class for Agent Determination ... 94
- 6 ... Containers, Binding, and Conditions in the Workflow ... 97
- 6.1 ... Preparation ... 97
- 6.2 ... Container—Location of the Data Used by a Workflow ... 98
- 6.2.1 ... Event Container ... 100
- 6.2.2 ... Workflow Container ... 100
- 6.2.3 ... Rule Container ... 101
- 6.2.4 ... Task Container ... 101
- 6.2.5 ... Method Container ... 102
- 6.3 ... ABAP-Coding with Containers (Macros) ... 102
- 6.4 ... ABAP Objects Classes for Handling Containers, Bindings, and Conditions ... 105
- 6.5 ... Coding Example for Containers, Bindings, and Conditions ... 107
- 6.5.1 ... Creating Container Elements ... 107
- 6.5.2 ... Creating Containers ... 109
- 6.5.3 ... Converting Containers ... 111
- 6.5.4 ... Creating Workflow Conditions ... 112
- 6.5.5 ... Defining the Binding ... 115
- 6.6 ... Advanced Functionality in the Binding ... 118
- 6.7 ... Programmed Binding ... 119
- 7 ... Sample Project—Designing an ABAP Objects Class for the Workflow ... 123
- 7.1 ... Initial Situation ... 123
- 7.2 ... Specific Features in the Workflow Environment ... 125
- 7.3 ... Creating a Class, Integrating IF_WORKFLOW, and Defining Key Attributes ... 126
- 7.4 ... Managing and Creating Instances ... 128
- 7.5 ... The Little Persistence in Between ... 133
- 7.6 ... Troubleshooting with Exception Classes ... 138
- 7.7 ... Creating Workflow Events from ABAP Objects Classes ... 140
- 7.8 ... BOR Objects as Attributes in ABAP Objects Classes ... 143
- 8 ... Sample Project—Designing a BOR Object for the Workflow ... 147
- 8.1 ... Initial Situation ... 147
- 8.2 ... Creating a New BOR Object ... 148
- 8.3 ... Creating Persistence for BOR Attributes ... 150
- 8.4 ... Creating Key and Other Attributes ... 151
- 8.5 ... Creating BOR Methods ... 159
- 8.5.1 ... Additional BOR Interfaces ... 161
- 8.5.2 ... Redefining the “CREATE” Method ... 161
- 8.5.3 ... Method Containers for Parameters ... 162
- 8.5.4 ... Redefining the “DELETE” Method ... 164
- 8.6 ... Exceptions and Errors ... 166
- 8.7 ... BOR Events ... 167
- 8.8 ... BOR Release Statuses ... 169
- 8.9 ... Default BOR Specifications ... 170
- 8.10 ... Inheritance and Delegation in BOR ... 172
- ... Appendices ... 175
- A ... Step Types and Sample Workflows ... 177
- A.1 ... Step Types ... 177
- A.2 ... Other Workflow Technologies ... 181
- B ... Important Transactions ... 183
- C ... The Author ... 187
- ... Index ... 189