Wednesday, June 10, 2009

Workflow for Beginners




1:Find a standard business object - which relates to the desired master data.
Transaction SWLD
Definition Tools àSAP Business WorkflowàDevelopmentàDefinition ToolsàBusiness Object Builder (Transaction Code SW01)
Click on the Business Object Builder. The initial screen appears as follows.
Either search for an object by name in short description. Or use the IMG structure, which is accessed via the Business Object Repository button.
Position mouse cursor in the field Object/interface type and hit F4àIn the pop up window click Information SystemàSearch the business object created earlier or SAP standard business object. àSelect it and click display
Select all object types and the following screen appears. Here the businisess object BUS2054 has been explored, which is under Project Systems.
A business object has following components as shown in the figure:
A screen showing the components of the object is dispalyed as the following figure:
2:Create a business object.
Give the business object name prefixed with Z_.
Enter the following fields with values:
Object type: Z_TESTXX
This is the internal technical key. Page: 1Object type can have maximum 10 characters. This must be unique across all object type. Objects are specific instances of object types at runtime.
Object name: Object_Name_for_XX
The object type is addressed with this name by external applications. This is a descriptive English name and can be up to 32 characters. This also must be unique across all object type.
Name: Object Name: XX
This is a meaningful name of the business object.

Description: Object Description: XX
Page: 1Object description, can be up to 40 characters.

Program: Z_TESTXX
Each object type has an ABAP/4 program in which methods of the object are implemented. This program is generated automatically when you create or revise an object type.

Application: *
Page: 1* indicates cross application.

Should you need to extend the components of an SAP delivered object, you can create a subtype and then “delegate” it back up to its supertype. This means that the supertype transparently acquires the new functionality. If this supertype is referenced by any SAP or custom application, the new functionality is available. Any supertype may have at most one delegation assigned to it. Delegations are client independent. Use the menu path Settings >System-wide to create a delegation.
3: Create an event.

Open the Object type in change mode. When you change your subtype the first step is to create a new event, this is done by selecting the Event node and clicking the create button. Give the event a name and a description. Next set the status of this object type component to implemented.

Event: Z_EVENT_XX
Name: Event name: XX
Description: Event Description: XX
Click on the new event and…
Edit à Change Release Status à Object Type Component à Implemented
(A small box sign vanishes from the right side of the event, indicating that it is implemented)
There can be multiple triggering events for a standard/customer task.

In R/3 4.0 the release strategy for new Object Types and Object Type Components (methods, attributes, events, etc.) was enhanced. Now when an object type and/or components are created, there are different statuses to select, based on its required purpose. The statuses are:
· Modeled - objects cannot be accessed at runtime. This is the status that is automatically set when an object type or component is created. Items with a modeled status cannot be referenced in any type of workflow task.
· Implemented - objects can be used internally in a test environment. They are accessible, but may not be stable (especially if no delegation has been defined).
· Released - objects are ready for production. Note: Local objects cannot be released.
· Obsolete - objects are typically replaced by new functionality or incompatible with previous versions. This status is optional.
4: Create a method.

Next a method must be created without using any function module template. When creating the method ensure that the method call is synchronous - this means that the method doesn't require a terminating event.
A method can be synchronous or asynchronous. Synchronous Method
Method that, for the duration of its execution, assumes the process control and, after its execution, reports to the calling component (work item manager, in this case).
Synchronous methods can return the following data, if defined: Return parameters, one result and Exceptions.

Terminating events can also be defined for a single-step task described with a synchronous method. At runtime, the relevant work item is then terminated either when the synchronous method is successfully executed or when one of the defined terminating events occurs.

Asynchronous Method
Method that, after its execution, does not report directly to the calling component (work item manager, in this case).
Asynchronous object methods do not return results, parameters or exceptions.
At least one terminating event must be defined for a single-step task described with an asynchronous object method.
At runtime, the relevant work item is only terminated if one of the defined terminating events occurs.

Next set the status of this object type component to implemented. The methods are not implemented unless you once open their program. Select the method and open its program. It gives a message “Do you want to generate a template automatically for the missing section”. Click “Yes”. Inside the program insert the code “CALL TRANSACTION ‘FB03’. Display Financial Document.

Method: Z_METHODXX
Name: Method name: XX
Description: Method Description: XX


Edit à Change Release Status à Object Type Component à Implemented

5. Create Key fields.

Create key fields with ABAP dictionary field proposal.
It is the identifying key, via which the system can access a specific object, that is, an instance of the object type. The key fields of an object type are usually also the key fields in the table containing the header data for the object type. Only character-based data types are allowed as key fields. The total length allowed for all key fields is 70 characters. Each key field refers to a field in the ABAP Dictionary.
Enter ‘BKPF’ in table name field and select all the key fields. Press Continue button. Next set the status of these key fields to implemented.

Edit à Change Release Status à Object Type Component à Implemented
6:Implement business object.

The whole business object needs to be implemented so click on the business object title and…
Edit à Change Release Status à Object Type à Implemented

Now you can check the syntax, generate the Business Object and then test it. Execute the custom method you created and give the Company code, Document number and Year.

7:Create workflow task.

Now we need to create a workflow task, this will be triggered by the event and will call the desired method in your business object subtype/Object type.
Tasks to user means generic actions, which are in the responsibility of a person (agent) or group of persons (agents), that, may have to be done in a predefined interval.
Runtime execution of a single step task produces a work item in the selected agents integrated inbox.


Transaction SWLD
Definition Tools à Tasks/Task Group à Create

This task will be of type TS (Standard Task)
Tasks are of two types. Standard and Customer tasks.
Standard tasks (object Type TS) are supplied by SAP and can also be created by the customer, they are client independent.
Customer tasks (object Type TS) are client dependent and created by the customer.
(SAP’s recommendation is that all new tasks should be of type TS) after this is entered click the create icon (Don’t give the Task number, it will be created automatically).

This will bring up the main task window. Under the Basic Data tab enter the Abbreviated Name (this name should be unique for tasks), Name and Work Item Text. Enter your business object subtype/ object type name as the Object Type and enter the Method you created within the subtype / object type. If you tick Background Processing as the execution mode, the work item is executed without need for manual intervention.

Next move to the Triggering Events tab. Insert a new entry in the table here - referencing the business object subtype/ object type and the relevant event.
When this event occurs, the system starts this task. Another event is Terminating Event: When this event occurs, the system terminates the work item for this single-step task.
(If the single-step task has the property Confirm end of processing, the work item is not terminated when the event occurs. The work item must still be set to ‘Done’ by one of its recipients.)
Use:
Single-step tasks that refer to an asynchronous method must have at least one terminating event.
Single-step tasks that refer to a synchronous method can have terminating events.
8: Set up containers.

There are a number of data containers, which are used in this process to transport relevant data between events, tasks and methods, we need to make a few small modifications to these.

Click on the Containers button. Now click the Create button. Create three fields in the container with reference to the database table. For the first field give reference table name as ‘BKPF’ and reference field name as ‘BUKRS’, for the second give reference field ‘BELNR’ and ‘GJAHR’ for the third. Now go back to the Triggering Event tab, highlight the newly created record in the table and click the Binding Definition button.
This shows us how data is transferred from the Event container into the Task container. There should be four records. Now click on the Event Parameter Container button, this shows us what data is present in the event for transfer to the task. If there is matching data in the Event Parameter Container, copy the element name from the screen and insert it in to the associated slot in the binding definition (Enclosed in &'s).

The last step of all is to activate the event linkage, by pressing the small red button to the left-hand side of the event record. When it is activated it becomes green. This creates the link between the event and the task - which will call the method, which in turn calls the required transaction or reports or function module.

9: Assigning agent to a Task.
Determine the possible Agents for executing the single step Task.
An agent is an executor of a work item.
• A work item is the actual runtime representation of a workflow process step (task). Work items appear in users’ integrated inboxes.
• Possible agents are a collection of agents who qualify to execute a work item, and therefore could potentially receive a work item in their integrated inboxes.
• Selected agents are those possible agents (1 or more) who are elected to execute a task at runtime. They actually receive the work item in theirintegrated inboxes.
• The actual agent is the agent among those selected agents who actually processes the work item. When the actual agent processes this work item, it disappears from the integrated inboxes of any other selected agents.
• At runtime, a pool of selected and actual agents can be created for the following types of actual agents:
– The processing agent: The person(s) who actually processes the work item.
– The deadline agent: The person(s) informed when a work item is not processed fully within the specified deadline. This notification is received via a deadline work item in the deadline agent’s integrated inbox.
• The notification agent: The person(s) notified when an activity step is fully processed. This notification is received via notification e-mail in the notification agent’s SAP office e-mail. The notification


agent is informed if a work item or workflow has been processed and the status of the work item is “completed” or “logically deleted”.

Responsibility can be assigned to a single person, to multiple people (a shared task) based on jobs, positions or organizational unit. This flexible assignment provides the greatest stability and maintainability since the tasks do not have to be reassigned every time specific employee changes and the workflow definition do not need to be changed. The possible agents designated at the single-step task level must already have SAP authorization to execute the functionality in the method. If they don’t, when the task becomes a work item at runtime and the user attempts to execute it, they will get a message: - “You are not authorized to execute this transaction”.
Agents are an important part of tasks. Agents (capable executors of the task) must be assigned to the single-step task. (Within the task definition, Additional data®Agent assignment®Maintain.) These are the agents drawn from the organizational plan who are qualified to perform the task.
10: For this demo example, you will trigger the event by writing a custom code.
The starting point of a workflow is the object/event trigger. Without this the possibility of building a workflow is ruled out. The triggering of events is achieved through a number of mechanisms some of them are listed below:

Events can be created in the following ways:
Change document
Status management
Message control
Custom code: The function module SWE_EVENT_CREATE is used to trigger the event. Don’t forget to write a commit work after the function module call.
11. A Single Step Task.
By now you have defined a Business Object with key fields Company code, Accounting document number and Fiscal year. You have created a method and an event for the Business Object. You have also defined the Task for linking the method and event and also defined containers and performed the binding definition. You have also defined the custom code to trigger the event. Now, your objective is to display financial document using CALL TRANSACTION ‘FB03’, when the event is triggered. For this you must put the following piece of code inside the method of the object and generate it.
Check that you have given your username in the agent assignment section of the task. Now when you execute the custom code the event will be triggered, so the key fields will be inside the event container, from there it will pass on to the task containers you have defined. This transfer is controlled by the binding definition you established before activating the task. From the task container the key fields will be available inside the Business Object. Thus they will be assessable inside the Object Method, where you use them to display the financial document.

12. Some Workflow Concepts

What is Workflow: Workflow is a tool to automate business process

Workflow can be single step or multiple steps.
Single step workflows are “Tasks” and multiple step workflows are “Templates”.
Workflow determines which tasks are executed, when, under which conditions and by whom.
Workflow definition is made up of individual steps. When creating a step in a workflow definition, the step type must be specified first. Specify the step type as Activity here.
Activity can be a single step task with basic business functionality
Can be a multi-step task, which reference to a workflow definition
What are the different elements of Workflow:
Tasks: Activity in which an object method is carried out.
Business Objects: Identifiable specific instances of an object type.
Work Item: A work item is an actual representation of a task.
Agent: An agent is an executor of a work item. Types of agents:
Possible agent
Deadline agent
Notification agent
Methods:
Events
Containers:
Containers are used to store field values, multi-line lists of field values, object references and multi-line lists of object references.

All import/export parameters of the workflow tasks/workflow templates are specified as elements of the workflow container.
Containers only contain control information for the workflow system.
Containers do not contain application business data.
Binding:
Binding definition executed at runtime
Used for transferring data from one container to another container
Used for assigning values to container elements
Binding is always performed with reference to the elements of a container.
Data flows between the workflow components as follows:
1) Triggering event is created in application.
2) The workflow receives the application data from the event.
3) The workflow step transfers application data from the workflow to the synchronous customer/standard task.
4) The task transfers application data from the task to the object method parameters.
5) The execution of the object method may change the application data. The object method parameters transfer data to the task.
6) The task transfers application data back to the workflow.
7) The workflow step transfers application data from the workflow to the synchronous customer/standard task.
8) The workflow step transfers application data to the standard role parameters.
9) The task transfers application data from the task to the object method parameters.
10) The execution of the object method may change the application data. The object method parameters transfer data to the task.
11) The task transfers application data back to the workflow.
12) The workflow step transfers application data from the workflow to the asynchronous customer/standard task.
13) The task transfers application data from the task to the object method parameters.
14) The terminating event transfers application data to the task.
15) The task transfers application data back to the workflow.

The dataflow between the application and workflow container elements and between the elements of the workflow container, event containers, task containers, role containers, and method parameter containers is controlled by a set of rules called the binding definition.

No comments:

Post a Comment