Oracle Workflow Demo (2) - Function

之前写了一篇工作流的Demo文章 - Oracle Workflow Demo (1) - 一个简单的请假申请工作流 ,这篇文章在那个工作流的基础上增加一些功能。

增加一个Function来自动的判断Employee的Manager谁,然后把工作流走到那个对应的Manager上


新增一个Function,属性中指定一个Procedure,这里可以先指定procedure,再来定义procedure

然后在流程图中,新增一个Function图标,并关联上边新创建的Function,如果Result Type为True则继续流程,如果为False,则终止。


接下定义PTLEAVE Package,这个Package用于查找Employee的上级经理是谁,注意Procedure的格式是严格规定的,包括次序

CREATE OR REPLACE PACKAGE PTLEAVE AS

  Procedure find_approver(itemtype in varchar2,
                          itemkey in varchar2,
                          actid   in number,
                          funcmode in varchar2,
                          resultout out varchar2);

END PTLEAVE;
/


CREATE OR REPLACE PACKAGE BODY PTLEAVE AS
  
  --Find Who is the manager of Employee
  --Input/Output Parameter must follow below format
  Procedure find_approver(itemtype in varchar2,
                          itemkey in varchar2,
                          actid   in number,
                          funcmode in varchar2,
                          resultout out varchar2) AS
     v_manager varchar2(30);
     v_employee varchar2(30);
  BEGIN
    
    If funcmode in ('RUN','RETRY') THEN
      --Get Employee attribute value
      v_employee:=wf_engine.getItemAttrText(itemtype ,itemkey,'EMPLOYEE');
      
      --Find Who is Manager
      select m.user_name
        into v_manager
        from fnd_user u, per_all_assignments_f a, fnd_user m
       where u.user_name=v_employee
         and u.employee_id=a.person_id
         and m.employee_id=a.supervisor_id
         and a.effective_end_date>sysdate
       ;
      if v_manager is null then
        resultout:='COMPLETE:F';
      ELSE
        ----Assign Manager to MANAGER attribute 
        wf_engine.SetItemAttrText(itemtype ,itemkey,'MANAGER',v_manager);
        resultout:='COMPLETE:T';
      end if;
    end if;
  exception
    when others then
    resultout:='ERROR:'||sqlcode;
  END find_approver;

END PTLEAVE;
/

Test:

运行Workflow,只输入Employee的名字,不输入Manager,工作流程就会自动找到对应的经理来处理这条工作流。



Workflow Demo File: TPLEAVE_Sample2.wft



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值