前面讲述了如何用WorkFlow开发工作流,今天主要给大家讲述如何在EBS中对WorkFlow进行调试,在EBS中启动WorkFlow有两种方式一种是用工作流管理员登陆直接启动工作流,另一种就是通过代码启动工作流。
一、EBS启动工作流调试
进入System Administrator=> Workflow=>Administrator Workflow=> Home,却换到Developer Studio TAB页搜索出我们开发好并保存到数据库中的工作流。(本例是与工作流开发图文教程(WorkFlow Developer) 之 一 WorkFlow的使用实例开发的工作流为基础的)。
启动工作流
点击RUN中的图标进入一下界面:
WorkFlow Identifer里填入:
Item Key是本工作流运行实例的标志(也就是我们保存在数据库中WorkFlow的名字)
User Key是用户看到的实例标志。
Workflow Attributes里填入相应的参与工作流的参数。
点击Submit运行WorkFlow。
查看运行结果
进入以下界面按照Type Internal Name 查找出WorkFlow如下图:
在查找出的WorkFlow列表中选择我们需要查看的WorkFlow然后点击Status Diagram按钮就可以看到该工作流的运行情况,如下图:
如果工作流中带有消息那么登陆消息接收人就可以看到,WorkFlow发送的消息,如下图所示:
点击消息进入审批界面,Approver审批通过,Reject驳回审批。
下图是审批人批准审批后工作流结束的示意图:
以下是带附件的WorkFlow审批界面
下图是WorkFlow生成的附件。在许多工作流的开发中我们需要审批人看到单据的内容因此带附件的WorkFlow开发是今后工作中经常需要开发的工作流类型。
二、后台代码启动工作流调试后台代码启动工作调试和EBS启动工作流调试,区别仅仅在于启动方式不一致,很多时候开发人员为了方便经常会选择用代码来启动工作流来进行调试,下面是一个范例代码:
declare
l_item_key varchar2(30) := 'WF_TEST';
l_user_item_key varchar2(30) := 'WF_TEST';
l_item_type varchar2(30) := 'WF_TEST';
l_process varchar2(30) := 'TigerLong Process Test';
l_submiter_id number := 1229;
l_approver_id number := 1229;
l_orig_system varchar2(30) := 'FND_USR';
l_user_name wf_roles.name%type := 'TIGERLONG';
l_display_name wf_roles.display_name%type := 'TigerLong';
begin
--01 创建
wf_engine.createprocess(itemtype => l_item_type
,itemkey => l_item_key
,process => l_process
,user_key => l_user_item_key);
--02 初始化
wf_directory.getusername(p_orig_system => l_orig_system
,p_orig_system_id => l_submiter_id
,p_name => l_user_name
,p_display_name => l_display_name);
wf_engine.setitemattrnumber(itemtype => l_item_type
,itemkey => l_item_key
,aname => 'SUBMITER_ID'
,avalue => l_submiter_id);
wf_engine.setitemattrtext(itemtype => l_item_type
,itemkey => l_item_key
,aname => 'SUBMITER_NAME'
,avalue => l_user_name);
wf_engine.setitemattrtext(itemtype => l_item_type
,itemkey => l_item_key
,aname => 'SUBMITER_DESCRPTION'
,avalue => l_display_name);
wf_directory.getusername(p_orig_system => l_orig_system
,p_orig_system_id => l_approver_id
,p_name => l_user_name
,p_display_name => l_display_name);
wf_engine.setitemattrnumber(itemtype => l_item_type
,itemkey => l_item_key
,aname => 'APPROVER_ID'
,avalue => l_approver_id);
wf_engine.setitemattrtext(itemtype => l_item_type
,itemkey => l_item_key
,aname => 'APPROVER_NAME'
,avalue => 'TIGERLONG');
wf_engine.setitemattrtext(itemtype => l_item_type
,itemkey => l_item_key
,aname => 'APPROVER_DESCRPTION'
,avalue => l_display_name);
wf_engine.setitemattrtext(itemtype => l_item_type
,itemkey => l_item_key
,aname => 'MESSAGE_TEST'
,avalue => 'plsqlclob:' ||
'xxuts_tl_workflow_send_info.write_mail_attachment/1345'|| '/' ||
l_item_type || ':' || l_item_key);
-- plsqlclob:xxuts_tl_workflow_send_info.write_mail_attachment/TL_DOME:2063
--03 启动
wf_engine.startprocess(itemtype => l_item_type
,itemkey => l_item_key);
commit;
end;
相信大家看到这里已经知道如何调试开发好的WorkFlow,接下来第三部分会给大家讲述如何配置启动WorkFlow的邮件服务。
欢迎大家共同探讨:E-Mail:Oraclelong@gmail.com QQ:404873488