If you’ve got SAP application workflows on older SAP systems (such as 4.6C), and you want to use SAP NetWeaver to create new UI’s for these workflow tasks, then read on. If you want to develop workflows in SAP NetWeaver, but you don’t want to call SAP application functions, you want to call your custom applications – then read on! Universal Worklist action handlers enable you to customize how a SAP Business Workflow work item is launched. They provide actions that can happen for a particular work item. This enables innovation because the available action handler list allows you to call many different types of functions! My colleague, Alan Rickayzen, has written a great article in SAPInsider about how workflow is evolving and how you can simplify and modernize the user experience without changing the underlying enterprise systems or workflow processes. For more information on the background of why this topic is important, please see Alan’s article at SAPInsider, Oct-Dec 2005 Edition. We will do a series of blogs on the UWL action handlers. In this first blog we will introduce some of the action handlers and provide a brief overview of what they do. In subsequent blogs we will discuss various handlers in more detail. For this discussion we will assume you are familiar with SAP Business Workflow and Universal Worklist. Universal Worklist action handlers use a workflow work item as their starting point, I will assume you’ve got a general idea of how workflow works and how work items are created. Just in case you are new to Universal Worklist, UWL is delivered as part of the standard role in the SAP NetWeaver Portal. It enables you to get work items from your SAP application systems, as well as alerts, collaboration tasks, KM notifications, and guided procedure actions. It is accessed via Home -> Work and it looks like the following: When a work item appears in UWL and you execute the task, UWL must know how to launch the task. Should it launch with ITS, SAPGui for Windows, is it a BSP, should it call a Web Dynpro, how should this task launch? This launching can be customized via XML customization. This customization can be done directly with XML and uploaded to UWL, or it can be done in transaction code SWFVISU. We will discuss the actual customized XML in more detail in later blogs, but for now understand the the action handler takes over the launching of the task. There are a few things you must take into consideration when using customized action handlers. If you already know about busines workflow, you know that workflow at runtime has a workflow container that acts like a global container. It holds runtime information for the life of the workflow, each task has access to the data in the workflow container. Whereas the work item container, or the task container, has the information required for that particular step in a workflow. These concepts are important to understand. If you have the UWL launch something other than the traditional task, you will have to take the containers into consideration. That means the UWL action handler must receive the work item ID. Your custom code can access the container via the SAP_WAPI APIs. Your customized launcher will also have to update work item container so that the workflow will know that the step is done and so that any required data gets back into the work item container and the workflow containers. We will give examples of how to do this when we discuss the action handlers individually in later blogs. For today, just understand all this possible and understand the kind of action handlers we provide. A complete list of action handlers can be found in online help. iViewLauncher can be used to launch any iView, portal component, or page in the portal. Portal component launching is supported only in NW04. Business example could be you have a set of iViews that you have created. You want to use them in a workflow. You could create a workflow where the business object is acting as a ‘dummy’ object. The workflow is used to keep track of the process. The iView launcher receives the work item ID as a paramter. It launches the iView, then updates the container with any return parameters. For Web Dynpro, we offer both the SAPWebDynproLauncher and the SAPWebDynproABAPLauncher. They can both be used to launch Web Dynpro applications. The first is for Java, the second is for ABAP. These action handlers really enable enhancing current business processes. You may have a workflow in a 4.6C system, you want the give the task execution a new UI using Web Dynpro. Using this action handler you can launch your current task using Web Dynpro. We will discuss the ABAP Web Dynpro action handler in more detail in the next blog. SAPTransactionLauncher is normally used by default for SAP transactions. It launches the work item transaction in SAPgui for HTML. Object Navigation Launcher is used to launch an iView or portal page defined for a business object and a given operation. UrlLauncher can launch any URL. This could be a custom URL you have, a guided procedure, anything that you have rendered via a URL. XHandlerLauncher is used by default when creating tasks via WF_EXTSRV. If you are using transaction code WF_EXTSRV to create tasks from your BSP’s, this launcher is used to launch the BSP’s. FunctionModuleActionHandler will launch a specific function module. UpdatingContainerHandler updates the workflow container. An example of this is when you create custom column check boxes for the user to select their option. Once the check box has been made, this action handler can update the workflow container with the choice the user made. UserDecisionHandler is similar to the container handler, but in this example your workflow has a traditional user decision step. You want the choices to appear as check boxes in UWL. When the user selects the check box, the user decision should be updated in the backend. PortalEventLauncher is used to launch portal events. I hope you realize how much flexibility these action handlers give you. I hope to see you at future blogs where we discuss specific action handlers – next stop, ABAP Web Dynpro!