《Oracle工作流培训教程.ppt》由会员分享,可在线阅读,更多相关《Oracle工作流培训教程.ppt(160页珍藏版)》请在课桌文档上搜索。
1、ORACLE工作流(版本2.5)第一课,概述,单元目标,定义一个功能活动定义活动的属性在功能活动中使用工作流引擎的API定义一个流程活动,单元目标,了解工作流流程的概念 了解工作流的体系结构 了解工作流的特性,工作流用于完成以下三种重要的业务需求,在业务流程中发送、提供附加信息,这些附加信息以自助的Web页面或Form的形式存在,例如:在Application中审批采购订单时,采购订单的form会作为附加信息提供给审批人了解工作流的体系结构 定义业务规则。使用WorkflowBuilder(图形化工具)修改业务规则的流程;使用PL/SQL写流程中活动的源代码 发送电子邮件。工作流可以以电子邮件
2、的方式向任何Application的用户发送通知,通知列表,工作流监控Web页面,Web分析 工具,电子邮件 客户端,Oracle应用服务器 或 WebDB,通知邮递员 程序,用户,角色,传送回应转交取消查询,执行定义管理监控查询,内嵌工作流的应用,Workflow Builder,Workflow Loader,工作流定义文件(*.wft),最终用户 客户端,应用服务器,Oracle服务器,开发者客户端,工作流体系结构,工作流的一些特征和定义,WorkflowBuilder工作流引擎导入程序通知系统 通知汇总(Notification Worklist)的Web页面 通知明细Web页面 电子
3、邮件方式的通知 目录服务(Directory Services)工作流的监控,Oracle Workflow Builder,工作流的开发工具已图形化的方式定义和修改工作流运行在Windows平台上用户可以将工作流的定义保存在数据库中或存成一个文件Workflow Builder有两部分构成对象浏览器流程图表窗口,工作流流程的定义,工作流支持的流程结构,LoopingResults_based branching,Parallel flowsRendezvous,工作流支持的流程结构(续),VotingTimeoutsEscalationAutomatic forwarding,Subproc
4、esses(unlimited hierarchy),工作流引擎,内嵌在Oracle8i的服务器中根据使用Workflow Builder所创建的工作流流程来协调流程中各个活动的执行监控流程中各个活动的状态使用PL/SQL存储过程或JAVA的API来记录工作流状态的任何变化,工作流定义导入程序,Workflow Engine,通知系统,目录服务,通知系统,应用,Application 界面,工作流引擎,通知汇总的Web页面,通知明细的Web页面,电子邮件方式的通知,目录服务,WF_USERS保存如下一些信息:用户名、用户的显示名、用户接收通知的偏好和电子邮件的地址WF_ROLES保存角色的信息
5、WF_USER_ROLES记录了用户和角色之间的关系,工作流监控程序,工作流监控程序(续),练习,将工作流流程保存到数据库中使用启动工作流流程的Web页面来启动工作流流程修改工作流流程的定义,第二课,计划一个工作流流程,单元目标,定义工作流流程的组件计划一个工作流流程,流程的组成部分,Item Type 项目类型,Process,Oracle Workflow Builder,Oracle Workflow Builder(续),用于创建工作流的组件在对象浏览器窗口中列出了流程的所有组成部分组件的集合称为项目类型任何一个项目类型都包含了一下分支属性attributes流程(子流程)proces
6、ses(subprocesses)通知notifications功能functions消息messages枚举类型lookup types,计划一个工作流流程,确定你的业务需求将整个业务流程分割为一个个的活动,定义每个活动。例如:活动的类型是什么:功能、通知还是子流程?活动的结果将怎样影响后续的活动?确定活动有哪些可能的结果,将这些可能的结果值做成一个枚举类型,计划一个工作流流程(续),确定在什么时候去启动这个流程在什么条件下流程将被启动?在form中的一个按钮被按下后、出现一个数据库异常的时候,或者在其它一些条件下是否需要一个界面来启动流程确定流程可能出现的结果,并为流程的结果定义一个枚举类
7、型,由下至上地创建一个工作流流程,定义一个项目类型定义项目类型的属性定义枚举类型和该类型包含的值定义消息定义消息的属性定义功能、通知和自流程,这些组件将作为流程中的活动绘制活动之间的关系(流程图),由上至下地创建一个工作流流程,使用向导创建流程的框架定义活动,而不考虑底层的从属关系绘制活动之间的关系(流程图)为流程定义项目类型的属性定义枚举类型和它所包含的值定义消息定义消息的属性使用底层的组件修改子流程、通知和功能,第三课,绘制一个工作流流程,单元目标,绘制一个工作流流程将工作流提供的标准活动集成到流程中查看项目类型中的流程定义,创建一个新的工作流流程,定义一个项目类型定义项目类型的属性定义枚
8、举类型和该类型包含的值定义消息定义消息的属性定义功能、通知和自流程,这些组件将作为流程中的活动绘制活动之间的关系(流程图),导入角色,绘制一个流程,任何一个流程都包含一个或多个开始活动和一个或多个的结束活动在开始绘制流程前必须先打开Workflow Builder中的流程窗口在对象浏览器窗口中双击流程活动的图标选择一个流程活动然后按Ctrl+E选择一个流程活动然后选择Edit菜单下的Process Detail菜单项使用向导来创建一个流程活动,向导,绘制一个流程(续),在流程中加入一个新的节点在对象浏览器窗口中选择一个活动(功能、通知或子流程),然后将它拖拽到流程窗口中选择流程窗口中的工具栏按
9、钮:New Function/Process/Notification(这些功能也可以通过在流程窗口的空白处右击鼠标,在弹出的菜单中选择),Show Label In Designer 菜单项,显示模式 Display Mode,Presentation Mode,Developer Mode,使用对象的内部名称,使用标准的图标,绘制一个流程(续),在节点之间创建连接(箭头):选中源节点按下鼠标右键,然后拖动鼠标到目标节点,这样就在两个节点之间创建了一个连接如果源节点对应的活动定义过结果集(Lookup Type),那么在创建连接的时候将要求用户在结果集中选择一个结果值,自循环的连接,如果活动
10、超时,它将循环回自己重新运行,连接,如果活动的返回值不在它的结果集内,那么可以使用连接来处理相应的业务逻辑,连接,如果使用了连接,那么无论活动的返回值是什么连接所指向的活动都将被执行,从上至下地创建工作流,从上至下地创建工作流,在绘制流程的时候创建功能,使用Verify菜单项校验流程,在流程中至少有一个开始活动和一个结束活动流程没有将自身作为子流程包含在流程中相同的子流程没有在流程中被使用两次对应活动的任何一个结果值,都有一个连接指向后续的活动所有被标记为End的节点,没有指向其它活动的连接,使用Verify菜单项校验流程(续),通知活动的结果集与分配给该通知的消息的结果集一致在消息的消息体中
11、所引用的消息属性(Message Attributes)必须在消息中被定义过如果流程引用了其它项目类型中的对象,那么要校验这些对象的属性是否存在,修改流程中的节点,设置活动的属性值,标准项目类型提供的活动,通过Application提供的Self-Service功能查看工作流流程定义,第四课,定义项目类型、项目类型属性和枚举类型,单元目标,创建一个项目类型Selector/Callback功能创建项目类型属性创建枚举类型,创建一个新的工作流流程,定义一个项目类型定义项目类型的属性定义枚举类型和该类型包含的值定义消息定义消息的属性定义功能、通知和自流程,这些组件将作为流程中的活动绘制活动之间的关
12、系(流程图),向导,定义一个项目类型,在此处输入Selector功能所对应的PL/SQL存储过程名,定义项目类型属性,哪些信息需要被定义为项目类型的属性?那些要在通知中显示的信息那些在功能中需要使用的信息(eg.采购订单审批工作流中的采购订单编号)通知的接收人、发送人等的信息,定义项目类型属性(续),类型为Form的属性,类型为URL的属性,类型为URL的属性(续),创建枚举类型,创建枚举类型的值,练习,使用Workflow Builder向导绘制流程中的连接保存一个流程,第五课,创建通知活动,单元目标,定义消息定义消息的属性定义通知活动,通知的定义,通知用于向特定用户发送消息,并提供了接收人
13、完成某项工作或做出某项决定所需的信息。通知分为需要接收人回应的通知和不需要回应的通知。,创建一个新的工作流流程,定义一个项目类型定义项目类型的属性定义枚举类型和该类型包含的值定义消息定义消息的属性定义功能、通知和子流程,这些组件将作为流程中的活动绘制活动之间的关系(流程图),定义一个消息,定义消息的属性,定义来源为回应的消息属性,纯文本的电子邮件通知的回应模板,HTML的电子邮件通知的回应模板,HTML的电子邮件通知的回应模板(续),在通知的WEB页面中来源为回应的消息属性,定义通知活动,标准项目类型中的通知活动表决是/否,定义通知活动的明细,设置通知活动的一些信息,超时信息,优先级信息,通知
14、接收人信息,练习一,设计一个仅发送通知的流程按从上至下的方式设计流程修改一个现有的工作流定义创建项目类型属性和消息设置节点的信息(消息、通知接收人、Start/End),练习二,创建HTML的消息体修改消息修改通知修改流程,第六课,工作流目录服务,单元目标,解释工作流如何接收角色信息建立工作流和目录库的关系,术语,角色(Role):拥有共同特征的一个或多个用户的集合目录库(Directory Repository):用于记录和维护用户信息的数据库表,用于目录服务的视图,WF_USERSWF_ROLESWF_USER_ROLES,用于目录服务的工作流本地表,WF_LOCAL_USERSWF_LO
15、CAL_ROLESWF_LOCAL_USER_ROLES,设置全局用户偏好和用户个人偏好,第七课,定义功能和流程活动,单元目标,定义一个功能活动定义活动的属性在功能活动中使用工作流引擎的API定义一个流程活动,创建一个新的工作流流程,定义一个项目类型定义项目类型的属性定义枚举类型和该类型包含的值定义消息定义消息的属性定义功能、通知和子流程,这些组件将作为流程中的活动绘制活动之间的关系(流程图),定义一个功能活动,PL/SQL API的规范,the internal name for the item type.Defined in the Oracle Workflow Builder.,a
16、string that represents a primary key generated by the workflow-enabled application for the item type.The string uniquely identifies the item within an item type.,the ID number of the activity that this procedure is called from.,determines the execution mode of the function procedure.,a result may be
17、 returned depending on the funcmode used to call the function.,功能活动的执行模式,PL/SQL API的返回值,通知活动使用的PL/SQL 存储过程,异常处理,定义功能活动属性,定义流程活动,定义活动明细,循环,在或的操作中,当一个条件成立后,另一个条件对应的分支将被忽略,通过在Cancel模式下调用活动,来重设活动的状态,不重设活动状态,而直接重新运行,缺省的错误处理流程,练习一,创建功能活动,练习二,为功能活动创建一段PL/SQL存储过程修改功能活动,练习三,为通知活动创建一段PL/SQL存储过程,第八课,工作流引擎,单元目标
18、,了解工作流引擎是如何管理流程的在功能活动中调用工作流引擎API,工作流引擎,在服务器端运行的PL/SQL程序工作流引擎的运行,即对工作流引擎的存储过程和功能的调用对流程实例中的活动的状态进行管理当源活动运行结束后,决定运行哪个后续活动自动地执行功能活动调用通知系统发送通知支持各种流程结构(包括:循环、平行、子流程等结构)可以在non-savepoint的环境下运行,包括在Trigger和分布式事务中调用缺省情况下工作流的运行时实时的,但对于对系统资源要求比较高的流程,可交由后台引擎执行维护已完成活动的历史纪录侦测错误的条件和运行出错的流程,启动工作流流程,WF_ENGINE.CreatePr
19、ocess WF_ENGINE.StartProcessWF_ENGINE.LaunchProcess,工作流引擎对工作流的处理,执行开始活动在源活动执行结束后,根据结果值所对应的连接决定执行哪个后续活动自动地按顺序执行流程中的功能活动,直到遇到一个通知活动或块活动调用通知系统发送通知在通知被回应或块活动执行完毕后,继续执行流程中的活动,直到遇到结束活动,活动的状态,活动(Active)完成(Complete)等待(Waiting)通知(Notified)推迟(Deferred)错误(Error)挂起(Suspend),调用工作流引擎,当一个活动结束后必须通知工作流引擎通知、功能、流程活动结束
20、,会自动调用WF_ENGINE.CompleteActivity()如果通知活动要求用户在Form或Web页面中进行某些操作,那么当用户完成这些操作後,需要在Form或Web页面中调用WF_ENGINE.CompleteActivity()如果功能活动调用的是外部程序(而不是PL/SQL的存储过程),那么需要在外部程序中加入WF_ENGINE.CompleteActivity(),工作流API,ENGINE APIs启动/运行一个流程交换属性信息交换状态信息CORE APIs:触发和捕捉错误PURGE APIs:删除已经无用的运行时用的数据DIRECTORY APIs:与工作流的目录服务交换用
21、户和角色的信息MONITOR APIs:生成工作流监控Web页面的URLNOTIFICATION APIs:管理通知活动PREFERENCE APIs:接收用户的偏好信息QUEUE APIs:负责工作流的高级队列处理DOCUMENT MANAGEMENT APIs:返回URL或JavaScriptVIEWS:提供了一些公用的视图来查询工作流相关的数据,工作流引擎API,下列API用于启动或运行一个工作流流程WF_ENGINE.CreateProcessWF_ENGINE.StartProcessWF_ENGINE.LaunchProcessWF_ENGINE.SetitemOwnerWF_EN
22、GINE.SetitemUserKeyWF_ENGINE.SetitemParentWF_ENGINE.background,工作流引擎API(续),下列API用于和工作流引擎交互项目类型或活动的属性值WF_ENGINE.SetitemAttribute(3)WF_ENGINE.SetitemAttrDocumentWF_ENGINE.GetitemAttribute(3)WF_ENGINE.GetitemAttrDocumentWF_ENGINE.GetitemAttrInfoWF_ENGINE.GetActivityAttribute(3)WF_ENGINE.AdditemAttrWF_E
23、NGINE.GetActivityAttrInfo,工作流引擎API(续),下列API用于和工作流引擎交互活动的状态WF_ENGINE.CompleteActivityWF_ENGINE.BeginActivityWF_ENGINE.AssignActivityWF_ENGINE.GetActivityLabelWF_ENGINE.AbortProcessWF_ENGINE.SuspendProcessWF_ENGINE.ResumeProcessWF_ENGINE.HandleErrorWF_ENGINE.ItemStatus,后台引擎,工作流的后台引擎是一个PL/SQL的存储过程后台引擎用
24、于侦测和执行那些被延迟或超时的活动如果一个活动在后台引擎启动后延迟或超时,那么引擎将侦测到它并执行它一旦所有符合条件的活动(延迟或超时)被执行完毕后,引擎将停止工作,后台引擎,出错处理,回滚到前一个活动将活动的状态标记为ERROR尝试去运行出错处理流程,练习一,设置通知的超时信息为流程分配结果集为流程添加错误处理流程通过后台引擎处理流程,练习二,创建一个有结果集的功能活动为功能的不同结果绘制分支,第九课,工作流中的通知功能,单元目标,通过通知的Web页面回应通知通过电子邮件的方式回应通知使用工作流主页定义通知的业务规则,工作流主页,查找通知的Web页面,通知列表,通知明细,使用该按钮对通知进行
25、转交,在通知的Web页面中调用Form,电子邮件方式的通知,电子邮件方式的汇总通知,这种方式的通知仅提供查询,无法在这里对通知进行回应,定义规则对通知进行自动回应,查询属于某个用户的回应规则,创建新规则,先选择一个项目类型,选择项目类型中的某个通知,定义规则内容,第十课,工作流监控,单元目标,使用工作流监控程序对工作流流程进行监控,工作流监控页面,流程名称,流程图表窗口,明细信息的标签页窗口,管理用按钮,在应用中调用工作流监控页面,在Oracle的Application中可以调用Web浏览器,可以将监控页面的URL作为参数传送在Application的Form中使用FND_UTILITIES.
26、OPEN_URL()来调用Web浏览器,并将监控页面的URL作为参数传给它监控某个特定的项目类型、特定的项目实例:流程图表URL通知列表URL活动列表URL调用数据库功能来生成监控页面URL的字符串流程图表:WF_MONITOR.GetDiagramURL()通知列表:WF_MONITOR.GetEnvelopeURL()活动列表:WF_MONITOR.GetAdvancedEnvelopeURL()调用时需要提供Web代理、Item Type、Item Key以及是在ADMIN/USER模式下监控等参数,查找流程时的权限要求,在查找流程时将判断当前用户是否拥有工作流管理员的权限是管理员:用户
27、可以查看和监控所有的工作流流程实例不是管理员:用户只能查看和监控属于自己的流程实例,查找流程的Web页面,流程列表,通知列表,在活动列表中按条件过滤活动,父子关系的流程实例,练习,在工作流流程中测试PL/SQL功能对通知进行回应监控工作流流程,第十一课,SELECTOR功能,单元目标,创建SELECTOR/CALLBACK功能的代码定义SELECTOR/CALLBACK功能调用SELECTOR/CALLBACK功能,项目类型的SELECTOR功能,一个项目类型可能包含多个可执行(Runnable)的流程活动SELECTOR功能用于决定在特定条件下去执行哪个流程SELECTOR功能可以扩展成CA
28、LLBACK功能,用于在SQL会话中断後重设项目的上下文信息在项目类型的属性页中为项目类型分配SELECTOR功能,SELECTOR/CALLBACK功能的标准API,决定了如何执行SELECTOR/CALLBACK功能。RUN:返回将被执行的流程的名字;SET_CTX:设置上下文信息不需要返回值;TEST_CTX:测试设置的上下文信息是否正确,返回一个布尔值,练习,在项目类型中多创建一个Runnable的流程为项目类型分配一个SELECTOR功能写SELECTOR功能的代码,依据某个逻辑来选择流程测试SELECTOR功能,第十二课,工作流的安装设置,单元目标,了解工作流安装的必须步骤了解工作
29、流安装的可选步骤了解工作流的保护机制在数据库和文件之间传递工作流的定义,必须步骤,步骤一:设置全局用户偏好,使用全局偏好的Web页面设置工作流管理员的角色;为所有用户设置用户偏好的缺省值使用用户偏好的Web页面设置用户偏好的值,这些值将覆盖全局偏好的值(对当前用户而言)通过工作流的主页来调用上面这两种Web页面只有具有管理员权限的用户才能调用全局偏好的Web页面,步骤二:设置工作流目录服务,允许灵活地定义工作流的用户和角色目录库是数据库中的一些基表,这些基表中存放了工作流需要的用户和角色的信息,通过创建基于这些表的视图来创建目录服务工作流提供了一些本地表,它的表结构和目录服务的视图相似,这些表
30、用于存放在目录库中没有的用户和角色信息工作流提供了用于目录服务的数据库视图的定义和校验用的代码,步骤三:视图WF_LANGUAGE,该视图是通过工作流目录服务提供的代码创建的该视图反映了数据库安装时所选择的语言可以根据需要修改视图的定义通过它可以将Workflow Builder的属性页的域值和工作流通知在不同的语言之间转换,步骤四:设置环境变量http_proxy,如果用户所发出的通知包含URL的内容,并且访问该URL需要通过用户所在公司的防火墙,那么需要设置该环境变量。该环境变量http_proxy的值为公司的代理服务器。如果用户使用通知邮递员功能,那么需要在启动通知邮递员之前设置该变量的
31、值。,步骤五:设置环境变量WF_RESOURCE,如果用户所使用的工作流不是和ORACLE的Application集成在一起的,并且工作流的服务器是安装在UNIX平台上的,那么需要设置WF_RESOURCE环境变量。该环境变量指向了一个名为wf.res的工作流资源文件,该文将是分语言的,该资源文件通常保存在工作流服务器所在目录的res子目录中。,步骤六:设置工作流后台引擎,对于那些对系统资源消耗比较大的工作流活动,需要被延迟由后台工作流引擎处理,而前台的工作流引擎可以继续处理其它的活动后台引擎还用于处理超时的通知活动用户可以根据需要定义和运行多个后台引擎后台引擎将一直运行到它处理完所有符合条件
32、的活动后才停止用户可以将后台引擎设置成周期性地运行对于不与Application集成在一起的工作流,通过调用WF_ENGINE.BACKGROUND()来启动后台引擎,工作流提供了反复运行后台引擎的代码范例在Application中通过提交并发请求来运行后台引擎,可选步骤,步骤一:文件管理库,工作流可以和文件管理系统通过Web代理接口进行交互。指向文件服务器的语法为::/.如果用户需要将文件管理系统和工作流集成在一起,那么需要在工作流中注册该文件管理系统,注册是通过文件节点的Web页面将一个文件系统定义为一个文件节点工作流将文件节点作为文件系统的网关,并根据在节点中设置的信息来组合访问文件管理
33、系统的URL,步骤二:通知邮递员,如果用户想通过电子邮件的方式接收通知,需要运行通知邮递员程序通知邮递员程序负责已电子邮件方式发送通知和处理回应,步骤二:通知邮递员(续),邮件系统客户端,HTML纯文本,步骤二:通知邮递员(续),通知邮递员使用UNIX的SendMail、Oracle的Internet Messaging 4.2或基于NT的兼容MAPI协议的邮件系统发送电子邮件修改wfmail.cfg,设置通知邮递员程序所需的参数对于不与Application集成在一起的工作流使用下列操作系统命令运行通知邮递员程序:Oracle Internet Messaging 4.2:wfmail.dfc f UNIX SendMail:wfmail.snd f 与MAPI协议兼容的邮件系统:wfmlr20.exe f 在Application中通过提交并发请求通知邮递员来运行通知邮递员;或者输入以下命令行WFMAIL apps/pwd 0 Y FILE 为wfmail.cfg的路径文件名,
链接地址:https://www.desk33.com/p-242093.html