Oracle Workflow Demo (2) - Function
来源:互联网 发布:泰克网络实验室靠谱吗 编辑:程序博客网 时间:2024/05/20 21:49
之前写了一篇工作流的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
- Oracle Workflow Demo (2) - Function
- Workflow Demo
- Oracle Workflow Demo (1) - 一个简单的请假申请工作流
- Oracle Workflow Demo (1) - 一个简单的请假申请工作流
- workflow oracle
- workflow DEMO for SAP
- seam workflow 工作流demo
- Workflow持久化Demo
- Oracle Workflow Tables
- Oracle Workflow Queries
- oracle workflow 详解
- Oracle workflow配置
- Oracle WorkFlow 工作流 上篇
- Oracle WorkFlow 工作流 中篇
- Oracle WorkFlow基础笔记
- 关于Windows Workflow Function 安装问题
- boost::function demo
- begin() & end() function demo
- 【模拟枚举】Arithmetic Progressions等差数列(Usaco_Training 1.4)
- 【宽搜】The Clocks 时钟 (Usaco_Training 1.4)
- 驱动开发利器Microsoft Windows Driver Kit 7.1.0下载
- 【坐标型动态规划】Number Triangles数字金字塔(Usaco_Training 1.5)
- 【最大子区间和】旅游路线(travel.pas/c/cpp)
- Oracle Workflow Demo (2) - Function
- 【斐波拉契数列】悟空学艺(Monkey.pas/c/cpp)
- 如何使double为整数时不带小数点
- 【归并排序】序列(sequence.pas/c/cpp)
- 【最大矩阵和】最大加权矩形 rqnoj106
- 【模拟 找规律】SHLQSH数(shlqsh.pas/c/cpp)
- 【最大立方体和】吃西瓜rqnoj93
- Session2
- 【动态规划】逃亡的准备rqnoj98