转 Defining Custom Rules for use in SAP Workflow

Defining Custom Rules for use in SAP Workflow

By Raghava Vakada, Mouri Tech Solutions, from link.


“I would like to explain about creating custom rules in SAP Workflow. The rules can be created or changed using the standard SAP transaction PFAC. Once the rules are created you can call these rules in any workflow via the rule container”.

In this article I am creating a rule, which will find the users based on Position id. I have created a custom function module ZWF_FIND_USERS which will return me back a position under Asset Analyst (
HRP1001-SOBID). The custom function created should have the same interface as that of the SAP standard function module RH_GET_ACTORS. The following table parameters have to exist in the custom function module.

“ACTOR_TAB STRUCTURE SWHACTOR”

“AC_CONTAINER STRUCTURE SWCONT”  

Following is the function module code:  

FUNCTION ZWF_FIND_USERS.
*"-----------------------------------------------------------
*"*"Local Interface:
*"  TABLES
*"      ACTOR_TAB STRUCTURE  SWHACTOR
*"      AC_CONTAINER STRUCTURE  SWCONT
*"  EXCEPTIONS
*"      NOAGENT_FOUND
*"-----------------------------------------------------------
  INCLUDE <CNTN01>.
  DATA : POSITION_ID LIKE ZBUSAREA-OBJID,
         LT_HOLDERS TYPE STANDARD TABLE OF SWHACTOR,
         LWA_HOLDERS TYPE SWHACTOR,
         LWA_USERS TYPE STANDARD TABLE OF HRP1001,
         WA_USERS TYPE  HRP1001,
         NUM_LINES TYPE I.
*Read values assigned to the rule criteria
  SWC_GET_ELEMENT AC_CONTAINER 'POSITION_ID' POSITION_ID.
  SELECT * FROM HRP1001 INTO table LWA_USERS
  WHERE OBJID = POSITION_ID.
  IF NOT LWA_USERS IS INITIAL.
    REFRESH LT_HOLDERS[].
    loop at LWA_USERS into WA_USERS.
      Condense WA_USERS-SOBID.
      LWA_HOLDERS-OTYPE = 'US'.
      LWA_HOLDERS-OBJID = WA_USERS-SOBID.
      APPEND LWA_HOLDERS TO LT_HOLDERS.
      APPEND LINES OF LT_HOLDERS TO ACTOR_TAB.
    endloop.
  ENDIF.
  DESCRIBE TABLE ACTOR_TAB LINES NUM_LINES.
  IF NUM_LINES IS INITIAL.
    RAISE NOAGENT_FOUND.
  ENDIF.
ENDFUNCTION.

Creating a rule using the PFAC Transaction

Assign the function module
ZWF_FIND_USERS in the "Rule Definition Tab" 

Go to the "Container Tab" and create a container element for the “Position id” which will be passed to the function module 

 Our rule is created now. You can test the rule within the PFAC transaction by clicking the "Simulation" button on the application toolbar. Now this rule is ready to be used in any workflow according to your requirement via the rule container of the workflow. 

 Enter the Position Id, which is created in (PPOCW) 

 It displays Asset Analysts (users) in the “Rule resolution result”

 Now you can use this rule in any of your workflow definitions.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值