To Call workflow From abap Program Dear All Experts. Please i want step-by-Step To know how to call mu workflow from ZPrograme i know that FM SAP_WAPI_START_WORKFLOW is Do that but it not working with my ( I did simple one. One mail step ) i want to call it from Zprograme.

Skip to end of metadataGo to start of metadata

What are advantages of SAP Business Workflows?

A business process can consist of several steps. Historically, the
tasks have been coordinated manually or by some informal means
of communication (sticky note, e-mail, shouting, and so on).
The common problem in these approaches is :

  • Inefficiency
  • Each lacks a way to trace where a task is
  • Who executed(or is executing it),
  • How much time it requires.

In contrast, the workflow ensures that the right work is sent to the right person at the right time in the right sequence with the right information.

  • Workflow is a tool for automization of business processes
  • Not tied up to any particular application
  • Operates uniformly across applications
  • Coordinate all participating tasks
  • Provide users with active support
  • Deadline Management is possible

Workflows are very useful for business processes that:

  • Contain a sequence of activities.
  • Reoccur in the same or similar forms.
  • Involve several people or groups of people.
  • Require considerable coordination.

What are the layers in Workflow Architecture?

There are 3 layers in the Workflow Architecture:

  • Business Object
  • Business Process
  • Organization Model

How Process, Business Logic and People are linked in Workflows?

  • The business processes are defined in Workflow builder. Each and every small work process is called as an activity in the workflow builder. Each activity consists of a single step task, which can be a standard task or a workflow template.
  • Associated Business Logic is built in Business Objects. i.e. ABAP code will be in Business Object. Business Objects consist of attributes, methods and events. Methods consist of ABAP code. Each and every standard task is associated with a Business Object and a method.
  • People / Group of people responsible for taking actions are defined in organization structure. Person responsible for taking an action is called actual agent. It is defined in the workflow activity.

What is a Business Object?

Business object (BO) is basically collection of Attributes, Methods and Events for a particular business entity. Example of BO: Sale Order, Vendor, Customer, Material etc.
BOs wrap around backend tables, application code, change document and other technical information and expose them as Attributes, Methods and Events. Usually methods of BOs refer to BAPIs.

The following diagram explains BO much better:

What is an Agent and what are different types of Agent?

An agent is a person or a group of persons who can take an action during workflow runtime. Action can be approval of some business document, creation of some document or sending email.

There are basically three types of Agents:

  • Actual Agent: One who actually takes the action. This is provided in the workflow Activity.
  • Possible Agent: All possible persons/entities that can execute a task during runtime. Defines either in Org Structure or task.
  • Excluded Agents: Persons who are excluded from taking action on a task. These are assigned in the workflow definition at the workflow activity.

System checks Actual Agent defined in workflow runtime with the Possible Agents defined in the task and the Excluded Agents. Actual Agent should be a subset of Possible Agents minus the Excluded Agents, else Agent resolution fails.

What are the capabilities of Workflow Builder?

What are Events?

Events are actions that occur in the system and that acts as trigger point for any workflow. Eg. Sales order creation. is an event.

Eg; Consider a scenario where any sales order after creation subject to approval from superior. So here a workflow comes into play. The workflow needs to start whenever a Sales order is created. The business object BUS2032 is associated to sales order creation. It has event CREATED. So the trigger point or ' START EVENTS ' in the workflow is the BUS2032 's event CREATED.

Then bind the event to the workflow so the data flows from event to the Workflow. e.g.: Sales order is created. So for the workflow to proceed it'll need sales order details. With binding the respective values is mapped ito the workflow container.

Then activate the linkage once you are through the workflow creation. This is important as after this only the workflow will listen for the event, in the sense that after this only the workflow is triggered on the event. This is critical also as each active link adds to system load considerably and too many workflows in the test environment can bring the system down. So careful. Deactivate once test is over and workflow is no longer used.

What are the various methos of creating Events?

The various metods of creating Events are:-

- Function module - event creation by calling function module
SWE_EVENT_CREATEorSAP_WAPI_CREATE_EVENT.
- Change documents
- Event creation when change documents are written.
- General status management
- Logistics Information System (LIS)
- Eventcreation upon status changes.
- Business Transaction Events
- Message Control

How can an Event be linked with a Workflow ?

Consider the start of any workflow. The START EVENTS tab is taken through the header. The Business Object is specified and binding is generated to the workflow to receive the values and then the link is activated.See the pic below for the Sales Order creation as start event for a workflow.
back to top

What are containers, Binding and Binding Editor?

Containers are nothing but the Variables in the Workflow that hold the values in the workflow. They can be simple variables or structures or even objects of any class. So they are best treated as the variables. Binding as explained above is passing the values from events, methods and other externals sources to the container. When an event is binded to the workflow then the data automatically flows from the Event to the Container in the workflow. Binding editor is there as automatic binding may not always pick up the right or desired binding or precisely the mapping generated may not be appropriate or as required due to technical reasons which any techie can guess. So editor gives an option to the developer to edit or generate manually.

What are important Transactions and Reports?

The area menu 'SWLD' lists all the transactions associated with Business workflows.

SWDD - Main Workflow Builder.

PFTC - General task maintenance.

How To Call Workflow From Abap Program Sap

SWO1- Business Object Builder.

SBWP- The Business Workplace SWDM - Business Workflow Explorer

SWELS - Switch Event Trace On/Off

SWETYPV - Display/Maint. Event Type Linkages

SWUS - Test Workflow

SWUI - Start Workflow

How To Call Workflow From Abap Program Sap

SWI6 - Workflow for Objects

SW14 - Workflows for Objects Types

SWDB - Workflow Builder - Create Workflow

SWLV - Maintain Views

TASK/TASK GROUPS

PFTC_INS - Create

PFTC_CHG - Change

PFTC_DIS - Display

PFTC_COP - Copy

PFTC_DEL - Delete

Tcodes Related To Events

Events Creation

BSVW - Status management

NACE - Message Control

AWUW - Logistics Information System (LIS)

Event Linkages

SWB_COND - Workflow Start Conditions

Work item analysis

SWI2_FREQ - Work Items Per Task

SWI2_DEAD - Work Items With Monitored Deadlines

SWI2_DURA - Work Items By Processing Duration

Task analysis

SWI11 - Tasks in Workflows

SWI13 - Task profile

For more SAP Business Workflow Transactions,check the link :- http://help.sap.com/saphelp_40b/helpdata/en/9b/572614f6ca11d1952e0000e82dec10/content.htm

Where can I find more details about workflows?

SAP Help - Business Workflows
SDN Forums
SDN Blogs for Workflows
SAP Business Workflow FAQ

Send Email From Abap Program

Exception in binding of Task and the Method?

It is observed that when we bind a Task with any BO Method then all the fields defined for binding are wiped out after we save the binding i.e. if we want to see the fields taking part in binding of the TASK & METHOD or while binding the work flow and the TASK it is observed that the container elements and task container elements disappear even though binding is established. This happens because of inconsistent buffer synchronization.

To overcome this issue follow the steps in SWDD.

Menu->Extras->Transport->Synchronize runtime buffer, or go to TCODE SWU_OBUF of buffer synchronization.
back to top

Basic Function Modules in Workflows?

SWW_WI_POPUP_FOR_COMPLETION ' shows the compeleted status of a workflow

SWW_ADDR_KEY_CREATE_FROM_USER ' display the address of the user or recipient

SWW_WI_DELETE ' delete work item

SWW_WI_CREATE_VIA_EVENT ' create work item as result of event

SWW_WI_DEADLINE_CHANGE ' change of deadline attribute of work item

SWW_WI_COMP_EVENT_RECEIVE ' complete workitem using events

SWW_WI_REJECT ' reject work item

SWW_WI_EVENT_RECEIVE ' retrive event for a workflow

Call

SWW_WI_DISABLE ' lock workitem against execution

SWW_WI_ENABLE ' remove lock against execution of workitem

Page:Accessing Single Entry from Multi-line ElementPage:Approval Decision on Approve or Reject with Reasons or CommentsPage:Approving a Workflow from GMailPage:Binding Definition in WorkflowPage:BOM in workflows!What and how?Page:Converting Smartform to PDF in WorkflowsPage:Deadline MonitoringPage:Delegation and Redefining methods of business object BUS1001Page:Differences between a Work item and an emailPage:Display Users details in RulesPage:Document Template in WorkflowPage:Event Creator & Wait Step UsePage:Exception handling in WorkflowsPage:Extended Workflow NotificationPage:Function Module to evaluate what are the function modules suitable for a given generated Work Item.Page:Hello All,Page:How to find an Event for any transaction for triggering of a workflowPage:How to find which organization unit you are currently being assigned toPage:How to Handle User Decesion in WorkflowPage:How to make FORM in workflow?Page:How to send an external mail from workflowPage:Marking the material for deletion using SAP Business Workflow - triggering the redefined methods of a Business ObjectPage:Need to delete entries from table SWFREVTLOGPage:Organizational Plan in WorkflowsPage:Program Exits In WorkflowPage:Real Estate Contract WorkflowPage:SAP Workflow EVENTSPage:SDN Blogs for WorkflowsPage:Secondary Methods, Before and After MethodsPage:Send an External mail through SAP Business Workflow and Recievers address in CCPage:Simple Report to display Task or Workflow Container DefinitionPage:Tasks in WorkflowsPage:Triggering the workflow by releasing a purchase requisition and automatically creating a Purchase OrderPage:Troubleshooting Workflow Terminating EventsPage:Version Management In WorkflowsPage:Why use SAP Workflow?Page:Workflow for Customer Blocking and UnBlockingPage:Workflow Scenario for PO ChangePage:Work Item intimation in the Email
Skip to end of metadataGo to start of metadata

General Scenario where you can use:

In General, we may come across the scenarios where, when ever a work item is created, or executed, we may need to update the database tables or we need to execute a separate task in background or we may need to get the workflow container values and manipulate them dynamically at run time and set the new values to the workflow container elements. In these sorts of cases we can use Program Exits in the workflows.

A Considered Case to explain the use of program exits:

Free dyna drive 022 manual programs

A ZWORKITEM_INFO table with 7 fields

Field

Data Element

Description

WI_ID

SWW_WIID

Work item ID

WI_TYPE

SWW_WITYPE

Work item type

WI_CREATOR

SWW_OBJID

Creator of work item

WI_RH_TASK

SWW_TASK

Task ID

WI_PRIO

SWW_PRIO

Priority of work item

WI_CD

SWW_CD

Creation date of work item

WI_EXECUTED

CHAR1

Confirmation of execution


Include a Decision step in the workflow whenever the respective work item is created an entry is inserted in the table ZWORKITEM_INFO. Once the work item is executed from SBWP, field WI_EXECUTED of the above table is set to 'X'.

Understanding the Interface IF_SWF_IFS_WORKITEM_EXIT:

IF_SWF_IFS_WORKITEM_EXIT is a Runtime Exit Workflow Interface. If you look at the interface it consists of one method EVENT RAISED and attributes are of CONSTANT type belong to SWW_EVTTYP Event Type for Workflow Runtime. This interface includes a type-group SWRCO which contains all the constant attribute values that are used in this interface like SWRCO_EVENT_AFTER_CREATE etc.

The following are the possible predefined events that can occur with respect to a work item.

Call Transaction From Abap Program

  • Before Creation
  • After Creation
  • Before Execution
  • After Execution
  • After Execution of a Synchronous Object Method
  • Before Physical Deletion
  • After a Status Change
  • After Rule Execution
  • After an Action
  • Before an Action

As it has been already mentioned in the SAP help documentation that, the classes are used in the Program Exits tab must support the interface IF_SWF_IFS_WORKITEM_EXIT and this class must not have any call to the RFC function modules, or it must not contain any statements like COMMIT_WORK, ROLL BACK etc.

Defining the ABAP Class that Supports IF_SWF_IFS_WORKITEM_EXIT

Properties of the ABAP class should be as shown in the screen shot and add the type group SWRCO.

In the Interface tab add the interface IF_SWF_IFS_WORITEM_EXIT. After adding the interface look at the ATTRIBUTES tab it will be like the below screen.

Here we need to define two more attributes along with the included attributes they should be Instance specific and private and I have declared WI_CONTEXT as type ref to one more interface IF_WAPI_WORKITEM_CONTEXT this interface will provide you the current context for the work item. PROCESS_STATUS is another attribute which define the name of the property for semantic process status and initial value must be assigned as 'sap.bc.bmt.wfm.process.status'.

Check the METHOD Tab it will have one method included by default when you include the interface IF_SWF_IFS_WORKITEM_EXIT.

Here I have defined two more methods to handle the predefined events of the work item. Now implement the method of the interface EVENT_RASIED. The minimum code that is required to validate the event name and which method should act as event handler.

After execution of the Event Raised method the attribute WI_CONTEXT will have the current context (Current Status of the work item) of work item. i.e. the instance of the interface IF_WAPI_WORKITEM_CONTEXT is created.Once the instance of the IF_WAPI_WORKITEN_CONTEXT is created then by using its different methods, we can retrieve the information related to the workitem.

The interface IF_WAPI_WORKITEM_CONTEXT has the following methods by which we can retrieve the information that is needed about the work item.To see full list of methods, execute SE24 enter the interface name and click on the Methods tab.

Implementation of AFETR_CREATION ( ) method

In this method implementation observe the CALL METHOD statement where it is calling get_header method which belongs to the interface IF_WAPI_WORKITEM_CONTEXT, which will return the header information of the workitem for more information about the header information open the structure SWR_WIHDR in SE11.

Implementation of AFTER_EXECUTION ( ) method.

The same work item context is used in the AFTER_EXECUTION method to get the work item ID See the CALL METHOD statement in the AFTER_EXECUTION method.

Design the workflow having a simple Decision step and in the program exits tab include the class ZCLPROGRAM_EXIT_WORKFLOW Activate and execute the workflow. An entry is made in the table but the WI_EXECUTED field will not have any value. Now execute the work item from the SAP inbox (SBWP). Now the WI_EXECUTED field in the table will be updated by X.


Posted on  by  admin