When we want to add business objects in a task , we have seen that most of the discussions are based on the BOR Object “System” method -“GenericInstantiate” . If we want to add more number of business objects or different types of business objects in a task , then we have to repeat the steps with standard task based on BOR Object “System” .Creating the business objects in a class based workflow with BOR object, we may end up seeing binding errors like below:

Errors in Binding.JPG

There are many blogs explaining how to develop a workflow based on custom class , here I concentrated mostly to achieve our goal without complete class development. My approach is to show that we can add multiple business objects without creating a custom task using BOR Object “System” or using a standard task with BOR Object “System”  and also to have an error free task .

For example , a service engineer has to take approval from the manager to replace certain products .System sends a workflow task to the manager based on the products mentioned in the service order .  When manager wants to check certain things in the service order products before approving the task , then associated business objects ( in SAP CRM Web UI ) or objects and attachments ( in business workplace inbox ) are helpful in the task.  These objects will give comprehensive view of the service order without having to navigate any further to know the details.


Service order products :

Service Order.JPG

For the above requirement scenario , the final workflow will look like below :

WF.JPG

This workflow is a class based workflow .  I created a class “Z_WF_ADHOC_OBJECTS” with required interfaces and implemented the interface methods .

Class.JPG

Global attributes of the class are like below , for our goal,  I created a variable “GT_BO_OBJ” of table type SIBFLPORBT to hold required business objects.

Class Attributes.JPG

Created a method “CREATE_ADHOC_OBJECTS”  in the class for getting the multiple business objects ( here products ) based on the service order , the method parameters are like below :

IV_SERVICE_ORD_NO Importing Type CRMT_OBJECT_ID_DB
ET_BO_OBJS Exporting Type SIBFLPORBT

Import parameter takes service order number , reads service order data , prepares data with corresponding BOR object type ( here it is product “BUS1178 ” ) and exports data in a table type parameter .

Method.JPG

I created an activity ,”Create Adhoc Objects” ,and attached task with class method “CREATE_ADHOC_OBJECTS” like :

Task Method.JPG

Task container elements are like :

Task Container Element-1.JPG

Task and activity bindings are as follows :

Task Binding.JPG

Activity Binding.JPG

Created a user decision step and added captured business objects ( class global variable &WF_CLASS.GT_BO_OBJS& ) to ‘&_ADHOC_OBJECTS&” system parameter , then the binding will be like :

User Decision.JPG

Finally , activated the workflow and executed with sample service order,  the generated task in CRM Web UI worklist or in user inbox will be like :

WorkList.JPG

Task.JPG

Objects.JPG

Task in Inbox.JPG

Task Display GUI.JPG

GUI Objects.JPG

Now from task, user can easily navigate the objects to check the details ( here objects are products ) . By clicking on the corresponding product , product displays as follows :

Product.JPG


I believe , if a requirement needs more details in a task , then my approach is simple and very helpful.

New NetWeaver Information at SAP.com

Very Helpfull

User Rating: Be the first one !