Oracle Workflow Builder工作流工具培训教程Word文档下载推荐.docx
《Oracle Workflow Builder工作流工具培训教程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Oracle Workflow Builder工作流工具培训教程Word文档下载推荐.docx(35页珍藏版)》请在冰点文库上搜索。
4.1工作流(ItemType)4
4.2活动(Activity)4
4.3流程(Process)4
4.4消息(Message)4
4.5函数(Function)4
4.6事件(Events)5
4.7通知(Notification)5
4.8查找类型(LookupType)5
5工作流开发5
5.1创建流程定义5
5.1.1从下往上定义5
5.1.2从上往下定义6
5.1.3打开保存单据类型6
5.2定义工作流组件7
5.2.1单据类型(ItemType)7
5.2.2查找类型(LookupType)10
5.2.3消息(Message)12
5.2.4活动(Activities)14
5.3定义一个流程图17
5.3.1增加一个节点18
5.3.2定义一个节点18
5.3.3定义活动属性值19
6ccmis中的工作流开发20
6.1<
Heading2>
20
6.1.1<
Heading3>
7参考文档20
8术语说明20
9附录20
1简介
1.1目标
WORKFLOW是oracle公司的一个标准产品,它通过图形化的方式来表达业务处理过程。
用户使用工作流可以灵活地定义或更改流程的结构。
WORKFLOW是建立在数据库基础上的一个应用,它由后台的数据对象和前台的客户端程序组成。
本文档主要介绍工作流的基本概念和开发中的注意事项。
1.2范围
本文档主要介绍以下内容:
▪WORKFLOWBUILDER的安装
▪WORKFLOWBUILDER的使用
▪工作流的组成
▪工作流开发
▪CCMIS中的工作流开发
2workflowbuilder安装
2.1安装过程
2.1.1安装
运行安装程序,在向导的提示下依次选择next按钮,直至完成。
2.1.2更改字符集
开始->运行->regedit编辑注册表,
点击F3或CTRL+F进行查找“NLS_LANG”
把其值以“AMERICAN_AMERICA”开始的替换为:
AMERICAN_AMERICA.ZHS16CGB231280
对于其中键值为“SIMPLIFIEDCHINESE_CHINA.ZHS16GBK”的NLS_LANG不用替换。
2.2安装注意事项
如果是奔腾4的机器,安装前,需要搜索系统中的symc*.dll,把其重命名为symc*.dll.bak使其不可用,否则无法正确安装,如是不是奔腾4机器则无需这步操作。
3workflowbuilder使用
3.1菜单介绍
3.1.1File
New:
新建一个工作流文件夹(对应一个.wft文件);
Quickstartwizard:
通过向导快速建立一个工作流文件夹;
Open:
打开一个已存在的工作流文件夹;
Closestore:
关闭并保存已打开的工作流文件夹;
Save:
保存已打开的工作流文件夹;
Saveas:
另存已打开的工作流文件夹;
Createshortcut:
在桌面创建快捷方式;
Verify:
检查工作流文件夹中已显示的工作流是否有落逻辑错误;
Show/hideitemtypes:
显示或隐藏工作流;
Loadrolesfromdatabase:
从数据库中获得有效用户;
Exit:
退出workflowbuilder。
3.1.2Edit
新建一个工作流,通知,属性等;
Copy:
复制当前选中的工作流,通知,属性等;
Paste:
粘贴已复制的内容
Delete:
删除当前选中的工作流,通知,属性等;
Find:
查找;
Findagain:
查找下一个;
Properties:
属性;
Processdetails:
显示工作流中流程图;
Moveattribute:
移动属性的上下位置。
3.1.3View
Font:
更改显示字体;
Log:
日志保存方示;
Showlabelindesigner:
在工作流程设计窗口默认显示的信息;
Developermode:
更改当前的显示的方示为开发者模式;
3.1.4Window
Cascade:
显示所有打开的窗口为层叠方式;
Title:
显示所有打开的窗口为分块方式;
3.1.5help
content:
显示帮助。
3.2工具栏介绍
工作流对象浏览窗口
新建工作流文件夹
打开已有的工作流文件夹
保存工作流文件夹
删除当前所选择的工作流对象
显示当前所选择的工作流对象的属性
复制当前所选择的工作流对象
粘贴当前所选择的工作流对象
检查工作流文件夹中已显示的工作流是否有逻辑错误;
更改当前的显示方示为开发者模式
查找数据对象
使用向导创建工作流
帮助
新建当前所选择的工作流对象类型的对象
工作流程编辑窗口
打印工作流程图
新建一个工作流程
新建一个通知节点
新建一个函数节点
新建一个函数
事件
显示工作流对象的初始化标签
显示工作流对象的内部名称
显示工作流对象的显示名称
显示工作流程中的流向
显示工作流对象的执行人
4工作流组成
工作流的流程主要由以下组件(Component)构成:
工作流、流程、活动、函数、消息、通知和查找类型。
工作流是一种分类对象,其它的对象都属于一个工作流。
4.1工作流(ItemType)
企业的业务有很多类别,同一种业务对应有不同的业务流程,同时在业务流转的过程中处理不同的业务信息。
工作流其实就相当于一个业务类型。
工作流属性主要是定义业务信息,另外还包含一些在其它对象需要引用的信息,例如通知里的接收人就可以作为工作流的属性。
工作流的另外一项功能就是对工作流程进行分类,所有工作流里的其它对象都属于一个工作流。
4.2活动(Activity)
活动是工作流程中的一个执行单元。
活动有自己的结果类型,在运行时活动的实例会返回一个结果,工作流引擎会根据活动实例的返回结果决定业务流程如何流转。
活动有三种类型:
通知、流程和函数。
另外还有一种类型“文件夹(Folder)”,文件类型主要是对活动进行分组,目前还不知道具体如何使用。
4.3流程(Process)
流程就是业务流程的流转规则。
流程包括两部分:
流程里包含的活动和各个活动在不同条件下的流转关系。
在定义流程的时候,因为流程里的活动可能有不同的返回结果,我们需要把不同结果的处理活动和结果联系起来,另外在OracleERP里还定义了一些标准的返回结果(例如超时),你在定义流程的时候,也可以对这些内嵌的返回结果进行处理。
在流程实例流转的时候,流程里的活动有自己相应的状态,工作流引擎得到活动的状态改变信息或活动返回结果之后,按照你定义的流程流转规则控制流程的流转。
流程必须属于一个工作流。
流程定义里有一个标志属性“是否可运行标志”,如果一个流程是可运行的,则可以在窗体上可以直接调用,否则该流程只能作为一个子流程包含在其它的流程里面,工作流引擎在碰到流程活动的时候,会自动激活子流程,让子流程流转。
4.4消息(Message)
消息主要是为通知服务的,可以把消息当作通知的内容和类型。
消息也属于一个工作流,通知只能和同一个工作流里的消息相关联。
每个消息可以有一个或多个属性和自己相联系,消息的属性既可以是独立的属性,也可以是对工作流属性的一个引用。
在消息体内可以对消息的属性进行引用,这样在流程的实例里,如果已经对消息的属性赋值,则在引用消息属性的地方会自动的用消息属性的值替换。
我们就可以在消息体内显示必要的信息。
你可以对一个消息定义自动流转规则,这样在工作流的实例里,当流转到和该消息对应的通知活动的时候,工作流引擎就会根据用户定义的自动流转规则自动向下流转,用户就不需要参与了。
4.5函数(Function)
函数就是一个可以自动执行的活动,该活动可以完成一定的功能,函数活动通常和一个PL/SQL存储过程或者一个Oracle内部的过程联系在一起,在定义函数活动的时候必须定义该函数对应的过程名称。
函数类型的活动有自己的参数定义,函数活动的参数主要是为对应的过程服务的。
在运行的时候通过给函数活动的参数赋值,经过相应的处理之后,工作流引擎就会把函数活动的参数值传给相应的过程,这样就能保证函数的正确执行。
如果对应的过程没有参数的话,可以不定义参数。
4.6事件(Events)
4.7通知(Notification)
通知活动对一个人或一个角色发送一个通知,通知必须和一个消息联系在一起。
通知活动有自己的结果类型,返回的结果一般是根据用户的交互产生的,除非你在消息里定义了自动流转规则。
4.8查找类型(LookupType)
查找类型是你定义的一些枚举数据,工作流里的查找类型主要用来表达活动结果返回值类型,另外也可以在定义工作流属性、活动属性、消息和消息属性时引用查找类型,一个查找类型有自己相应的值列表,在引用查找类型的时候,你只需要定义查找类型就可以了,和查找类型相关的值会自动过去的。
5工作流开发
工作流是使用WorkflowBuilder工具设计的。
在使用WorkflowBuilder设计工作流之前,你应该计划好需要完成哪些流程以及流程里发生的活动、活动的顺序、需要哪些结果表达不同的分支以及流程里需要通知的人和通知的内容。
工作流的定义可以采用两种方式:
从下往上或者从上往下。
从上往下的方式首先从一个高层次流程开始设计,首先画出包含活动的流程图,然后再创建支持这些活动的对象。
从下往上的方式是一个比较程序化的设计方式,你首先定义支持活动的所有对象,然后再尝试画出流程图。
5.1创建流程定义
5.1.1从下往上定义
▪启动OracleWorkflowBuilder;
▪选择File——〉New菜单为流程定义创建一个新的Workspace;
▪创建一个新的单据类型(ItemType)
▪你可以定义单据类型属性来完全描述你的单据类型,或者定义需要在活动里需要引用的信息;
▪创建新的查找类型(LookupType):
在定义活动之前,你应该先定义表示活动结果的查找类型,活动结果是活动完成时可能返回值的一个列表。
在定义完活动和查找类型之后,你可以从浏览树上把一个查找类型拖拽到一个活动上来指定一个活动的结果类型;
▪创建新的消息(Message):
如果你希望为你的流程定义一个通知活动,你首先需要定义一个你希望通知活动发送的消息,你可以在浏览树里把一个消息拖拽到一个通知上来指定活动的通知类型。
你也可以为消息定义属性,消息的属性有两种类型:
“Send”类型的属性用来生成动态内容,“Response”类型提醒接收者进行响应。
▪创建一个新的流程活动、通知活动或函数活动,你也可以使用在标准单据类型里定义的标准活动。
你至少需要定义一个流程活动来表达你的流程图,流程图建立了流程里所有活动的关系。
▪画流程图:
显示流程活动的流程窗口,并画出工作流程里的活动以及活动之间的转移关系。
你可以从浏览树里直接把活动拖拽到流程图里。
▪选择“File——〉Save”或“File——〉SaveAs”保存你的工作
▪在数据库里创建函数活动调用得PL/SQL存储过程
5.1.2从上往下定义
▪启动OracleWorkflowBuilder
▪使用快速启动向导为你的流程定义建立一个框架,指定新单据类型和流程活动所需要的信息。
▪在流程窗口里会出现一个开始节点和结束节点,你可以在开始节点和结束节点之间增加流程需要的活动
▪在流程图里画出活动之间的流转关系
▪保存你的工作
5.1.3打开保存单据类型
所有的流程都是和单据类型联系在一起的,一个单据类型下面可以有多个流程。
你可以把单据类型定义保存到一个数据库或一个文件,当你保存单据类型时,所有和单据类型联系的对象页同时保存。
同样,你也可以从数据库或文件里访问单据类型,并把和单据类型相关的对象在OracleWorkflowBuilder里显示。
5.1.3.1访问保存的流程定义
▪启动OracleWorkflowBuilder,并选择“File——〉Open”;
▪选择保存工作流程定义的类型:
文件或数据库
▪打开一个文件是可以输入该文件的完整路径和文件名,并选择Ok按钮,或者使用浏览按钮来定位文件;
▪打开数据库连接的话,输入用户名和口令,并输入数据库别名或连接字符串并单击OK按钮;
▪如果同时有多个单据类型存在的话,显示单据类型窗口就会出现,从隐藏列表里选择一个
▪如果你想查看或修改隐藏的的单据类型,你可以从浏览树上从双击隐藏单据类型来选择;
▪当你完成工作之后,选择“File——〉Save”菜单,保存你的修改信息。
5.1.3.2保存修改信息
▪在OracleWorkflowBuilder里选择“File——〉Save”命令保存你的修改,并使修改立即生效。
当你使用保存命令的时候,在当前的数据存储里保存了所有对象的修改信息,如果只想保存一个特定的单据类型,你需要创建一个新的数据存储,并把这个单据类型复制到新的数据存储里保存。
▪如果你想把单据类型存放到另外一个数据存储,或者想保存和当前系统不同的另外一个生效的数据,你可以使用“File——〉Saveas”命令
▪注意,当你保存你的工作的时候,OracleWorkflow会自动验证流程定义里无效或缺失的信息,并把它显示出来,你可以根据提示的信息修改错误也可以先保存等有时间的时候再修改。
如果你没有改正错误就保存,那么在你重新打开的时候,OracleWorkflowBuilder还会报错
▪选择“File——〉CloseStore”关闭和数据存储的连接
▪推出OracleWorkflowBuilder。
5.2定义工作流组件
工作流的组件主要包括单据类型、查找类型、消息、活动、属性和角色;
下面将分别介绍如何定义它们。
5.2.1单据类型(ItemType)
一个单据类型是对组成工作流程的组件的分类,你必须把你定义的流程组件(例如函数活动、消息等)和单据类型联系起来。
可以这样理解,单据类型定义了流程管理的单据信息,例如采购订单申请可以定义为一个单据类型,它包含有一个唯一的订单Id号和一个申请数量。
单据类型属性是和单据类型联系在一起的,它通常充当一个全局变量,可以被流程里的活动引用或者修改。
单据类型属性包含流程完成所必需的单据信息。
对于活动需要引用的信息或者通知消息里包含的信息,你通常需要定义一个单据类型属性。
属性具有9种类型,下面给出每种类型的说明:
▪Text:
属性的值是一个字符串文本;
▪Number:
属性的值是一个数字,你可以为数字类型的属性定义一个格式掩码;
▪Date:
属性的值是一个日期类型,你也可以为日期类型的属性定义一个格式掩码;
▪Lookup:
属性的值是一个查找类型的代码;
▪Form:
属性的值是一个Oracle应用的内部窗体函数名称以及函数的参数;
如果你在通知消息里包括了一个窗体类型的属性,在查看通知的时候,会显示一个窗体附件的图标,可以让用户浏览到相应的页面。
▪URL:
属性的值是一个网络的URL地址,如果你在通知活动里包含了一个URL引用属性,在查看通知的时候,会有一个指向URL的标识,用户可以完成活动也可以访问URL地址或的额外的信息。
▪Document:
属性的值是一个附件文档,你可以在默认值里指定文档的类型:
PL/SQL文档,通过存储过程把数据库里的信息以文档的方式表达;
DM文档,一个被外部文档管理系统管理的文档。
▪Role:
属性的值是一个角色的内部名称,如果在一个通知里包含了一个角色类型的属性,则该属性会自动解释为角色的显示名称,省去了在内部名称和外部名称之间维护的工作。
为了给角色类型的属性赋一个默认值,你必须首先从数据库里装载角色。
▪Attribute:
属性类型的值是对单据类型的引用,
PersistenceType:
当你定义一个单据类型时,你必须指定它的PersistenceType,它主要是控制单据类型实例的状态审核追踪的保存时间,如果你把持续类型设置为Permanent,则运行时的状态信息会一直保存,除非你调用WF_Purge.Totalperm()过程清除;
如果你把持续类型设置为Temporary,你必须指定持续的天数,临时持续类型的单据类型实例在完成之后至少保存你指定的持续天数,在’n’天过后,你可以调用任何一个WF_Purge的API清除单据类型的运行时信息。
SelectorFunction:
如果你的单据类型有或者将有多个可运行的流程活动,定义一个PL/SQL函数决定在一个特殊的条件下运行哪一个流程活动。
你也可以扩展这个选择函数为一个回调函数,这样在流程执行的过程中,如果会话信息中断的话,可以恢复单据类型实例的上下文信息。
当你从通知详细页面上去查看一个页面属性时特别有用
5.2.1.1创建一个单据类型
▪如果你没有打开一个datastore,从File里选择New菜单创建一个新的DataStore,然后从Edit菜单里选择NewItemType在浏览树里定义一个新的单据类型,此时单据类型的属性页会出现;
▪每一个单据类型有一个大写的内部名称,最多8个字符,所有的工作流API、PL/SQL过程,SQL脚本在识别单据类型的时候都引用单据类型的内部名称。
在内部名称里不能包括“:
”和“/”;
▪输入一个翻译性的名字,该名字是一个长一些的描述性名称,你也可以为单据类型输入一段摘要信息;
▪指定单据类型的持续类型,如果你为单据类型指定了一个临时类型,指定在单据类型实例结束之后状态审核记录必须保存的时间;
▪如果单据类型有多个或会有多个流程和它联系在一起,你需要为单据类型指定一个选择函数,选择函数的语法是<
package_name>
.<
procedure_name>
。
选择函数是一个PL/SQL存储过程,它自动标识工作流引擎应该执行的那个流程;
▪选择“Apply”保存你的修改;
▪选择“Roles”页规定能访问单据类型的角色(这个功能会在将来的发行版本支持);
▪选择“Access”页规定单据类型的访问和定制级别;
▪在浏览树里会出现一个二级分支来表示你刚创建的单据类型,你可以在浏览树里双击单据类型浏览或修改单据类型的属性;
▪定义尽可能多的单据类型属性作为全局变量,这样在流程活动里就可以引用这些单据类型属性。
5.2.1.2定义一个单据类型或活动属性
▪从浏览树里选择一个单据类型,然后从“Edit”选择“NewAttribute”可以创建一个单据类型属性
从浏览树里选择一个活动,然后从“Edit”选择“NewAttribute”可以创建一个活动属性
在两种情况下都会出现属性定义页
▪输入一个大写的内部名称;
▪输入一个显示名称,该名称会出现在浏览树里;
▪你可以输入一段描述摘要信息;
▪选择属性的数据类型,在定义活动属性的时候,没有Form,URL,Document属性类型;
▪根据你选择的属性类型,为属性指定默认值信息;
▪对单据类型属性来说,可选的默认值是一个你输入或从列表中选择的常量,不过,这个常量可以是一个在运行时替换的字符串;
对活动属性来说,默认值可以是一个常量或者一个单据类型属性;
▪选择“Apply”保存你的修改,选择“Ok”保存你的修改并推出属性页面,“Cancel”取消你的修改并推出属性页面;
▪如果你在定义一个单据类型属性,选择“Access”页设置允许修改属性的访问级别;
▪你创建的任何单据属性类型会出现在浏览树的“Attributes”分支下,所有的函数属性出现在对应的函数下面,你可以从浏览树里双击一个属性浏览或修改属性的定义。
5.2.1.3定义一个URL属性
▪在属性默认值里指定一个URL地址,这个URL可以是一个常量或者一个从其它单据属性返回的值;
▪你也可以在URL里包含字符串参数,这个参数可以是一个字符串文本或一个其它单据类型的格式替换。
在参数字符串里采用其它单据类型进行格式替换,需要采用如下的格式:
&
item_attr;
▪如果URL里包含一个参数字符串,你必须遵守如下的限制:
你不能用一个文档类型的单据类型属性对参数进行格式替换;
你可以用表单或URL属性对参数进行格式替换,但不能进行嵌套替换;
▪如果你需要在URL里传递一个日期时间参数,你需要使用TO_CHAR函数把日期时间转换为如下格式:
“YYYY-MM-DD+HH24:
MM:
SS”,同样对日起类型需要使用TO_DATE;
▪结束工作之后选择“OK”按钮保存。
5.2.1.4定义一个Form属性
▪在窗体属性页的默认值里指定一个窗体函数的名称以及可选的字符串参数(窗体函数的参数);
▪默认值必须使用下面的格式输入:
function_name:
arg1=value1arg2=value2…argn=valuen,argn的值可以是一个包含在双引号内的字符串,也可以是一个被其他单据类型属性进行格式替换的值,可以使用下面的方式定义格式替换:
argn=”&
item_attr”或者argn=”value&
item_attr”;
▪如果你的窗体属性内包括参数,你必须牢记以下的限制:
你不能使用一个文档类型的属性进行标记替换;
你可以使用一个窗体类型或URL类型的属性进行标记替换,但是你不能进行嵌套替换;
▪保存你的工作。
5.2.1.5定义一个Document属性
▪在属性页的默认值里输入一个标识文档的字符串;
▪你可以标识以下两种类型的文档:
PL/SQL文档或者存放在文档管理系统里的文档;
▪一个PL/SQL文档表示数据库里的数据,该文档由一个存储过程产生,需要使用下面的方式来指定一个PL/SQL文档的默认值:
plsql:
<
procedure>
/<
document_identifie