OracleERP工作流.docx
- 文档编号:13843529
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:33
- 大小:68.84KB
OracleERP工作流.docx
《OracleERP工作流.docx》由会员分享,可在线阅读,更多相关《OracleERP工作流.docx(33页珍藏版)》请在冰点文库上搜索。
OracleERP工作流
大唐兴竹软件公司
工作流使用说明
王君
文档编号
A01001-01
版本:
状态:
Draft
最后修改日期:
2002-7-8
修改纪录
版本
(x.x)
修改摘要
修改人
(FirstLAST)
批准人
(FirstLAST)
日期
(mm/dd/yy)
签名
职务
某某
签字
日期
内容索引
打开保存单据类型3
定义一个流程图14
1简介
1.1目的
Thissectiondescribesthepurposestobeachievedbyusingthisdocument.Theobjectsofimplementingtheprocess/procedureshouldbelistedasbulletitems.Newbulletitemcouldbeinsertedwhereitisnecessary.
▪说明OracleERP里工作流的原理
▪在OracleERP里定义并定制工作流
1.2X围
Thissectiondescribesthescopethatthisdocumentappliedto.
OracleERP里工作流引擎的实现原理以与如何利用WorkflowBuilder定义一个流程,以与在程序里调用已经定义好的流程保证业务根据流转规如此流转。
1.3如何得到这篇文档
Givetheinformationonwheretogetthisdocument,e.g.URLand/orIDofthisdocumentinadocumentmanagementsystem.
该文档主要供兴竹公司开发部内部交流使用。
2工作流实现机制
2.1工作流的组成局部
工作流的流程主要由以下组件〔ponent〕构成:
单据类型、流程、活动、函数、消息、通知和查找类型。
单据类型是一种分类对象,其它的对象都属于一个单据类型。
2.1.1单据类型〔ItemType〕
企业的业务有很多类别,同一种业务对应有不同的业务流程,同时在业务流转的过程中处理不同的业务信息。
单据类型其实就相当于一个业务类型。
单据类型属性主要是定义业务信息,另外还包含一些在其它对象需要引用的信息,例如通知里的接收人就可以作为单据类型的属性。
单据类型的另外一项功能就是对工作流程进展分类,所有工作流里的其它对象都属于一个单据类型。
2.1.2活动〔Activity〕
活动是工作流程中的一个执行单元。
活动有自己的结果类型,在运行时活动的实例会返回一个结果,工作流引擎会根据活动实例的返回结果断定业务流程如何流转。
活动有三种类型:
通知、流程和函数。
另外还有一种类型“文件夹〔Folder〕〞,文件类型主要是对活动进展分组,目前还不知道具体如何使用。
2.1.3流程〔Process〕
流程就是业务流程的流转规如此。
流程包括两局部:
流程里包含的活动和各个活动在不同条件下的流转关系。
在定义流程的时候,因为流程里的活动可能有不同的返回结果,我们需要把不同结果的处理活动和结果联系起来,另外在OracleERP里还定义了一些标准的返回结果〔例如超时〕,你在定义流程的时候,也可以对这些内嵌的返回结果进展处理。
在流程实例流转的时候,流程里的活动有自己相应的状态,工作流引擎得到活动的状态改变信息或活动返回结果之后,按照你定义的流程流转规如此控制流程的流转。
流程必须属于一个单据类型。
流程定义里有一个标志属性“是否可运行标志〞,如果一个流程是可运行的,如此可以在窗体上可以直接调用,否如此该流程只能作为一个子流程包含在其它的流程里面,工作流引擎在碰到流程活动的时候,会自动激活子流程,让子流程流转。
2.1.4消息〔Message〕
消息主要是为通知服务的,可以把消息当作通知的内容和类型。
消息也属于一个单据类型,通知只能和同一个单据类型里的消息相关联。
每个消息可以有一个或多个属性和自己相联系,消息的属性既可以是独立的属性,也可以是对单据类型属性的一个引用。
在消息体内可以对消息的属性进展引用,这样在流程的实例里,如果已经对消息的属性赋值,如此在引用消息属性的地方会自动的用消息属性的值替换。
我们就可以在消息体内显示必要的信息。
你可以对一个消息定义自动流转规如此,这样在工作流的实例里,当流转到和该消息对应的通知活动的时候,工作流引擎就会根据用户定义的自动流转规如此自动向下流转,用户就不需要参与了。
2.1.5函数〔Function〕
函数就是一个可以自动执行的活动,该活动可以完成一定的功能,函数活动通常和一个PL/SQL存储过程或者一个Oracle内部的过程联系在一起,在定义函数活动的时候必须定义该函数对应的过程名称。
函数类型的活动有自己的参数定义,函数活动的参数主要是为对应的过程服务的。
在运行的时候通过给函数活动的参数赋值,经过相应的处理之后,工作流引擎就会把函数活动的参数值传给相应的过程,这样就能保证函数的正确执行。
如果对应的过程没有参数的话,可以不定义参数。
2.1.6通知〔Notification〕
通知活动对一个人或一个角色发送一个通知,通知必须和一个消息联系在一起。
通知活动有自己的结果类型,返回的结果一般是根据用户的交互产生的,除非你在消息里定义了自动流转规如此。
2.1.7查找类型〔LookupType〕
查找类型是你定义的一些枚举数据,单据类型里的查找类型主要用来表达活动结果返回值类型,另外也可以在定义单据类型属性、活动属性、消息和消息属性时引用查找类型,一个查找类型有自己相应的值列表,在引用查找类型的时候,你只需要定义查找类型就可以了,和查找类型相关的值会自动过去的。
3工作流的定义
工作流是使用WorkflowBuilder工具设计的。
在使用WorkflowBuilder设计工作流之前,你应该计划好需要完成哪些流程以与流程里发生的活动、活动的顺序、需要哪些结果表达不同的分支以与流程里需要通知的人和通知的内容。
工作流的定义可以采用两种方式:
从下往上或者从上往下。
从上往下的方式首先从一个高层次流程开始设计,首先画出包含活动的流程图,然后再创建支持这些活动的对象。
从下往上的方式是一个比拟程序化的设计方式,你首先定义支持活动的所有对象,然后再尝试画出流程图。
3.1创建流程定义
3.1.1从下往上定义
▪启动OracleWorkflowBuilder;
▪选择File——〉New菜单为流程定义创建一个新的Workspace;
▪创建一个新的单据类型〔ItemType〕
▪你可以定义单据类型属性来完全描述你的单据类型,或者定义需要在活动里需要引用的信息;
▪创建新的查找类型〔LookupType〕:
在定义活动之前,你应该先定义表示活动结果的查找类型,活动结果是活动完成时可能返回值的一个列表。
在定义完活动和查找类型之后,你可以从浏览树上把一个查找类型拖拽到一个活动上来指定一个活动的结果类型;
▪创建新的消息〔Message〕:
如果你希望为你的流程定义一个通知活动,你首先需要定义一个你希望通知活动发送的消息,你可以在浏览树里把一个消息拖拽到一个通知上来指定活动的通知类型。
你也可以为消息定义属性,消息的属性有两种类型:
“Send〞类型的属性用来生成动态内容,“Response〞类型提醒接收者进展响应。
▪创建一个新的流程活动、通知活动或函数活动,你也可以使用在标准单据类型里定义的标准活动。
你至少需要定义一个流程活动来表达你的流程图,流程图建立了流程里所有活动的关系。
▪画流程图:
显示流程活动的流程窗口,并画出工作流程里的活动以与活动之间的转移关系。
你可以从浏览树里直接把活动拖拽到流程图里。
▪选择“File——〉Save〞或“File——〉SaveAs〞保存你的工作
▪在数据库里创建函数活动调用得PL/SQL存储过程
3.1.2从上往下定义
▪启动OracleWorkflowBuilder
▪使用快速启动向导为你的流程定义建立一个框架,指定新单据类型和流程活动所需要的信息。
▪在流程窗口里会出现一个开始节点和完某某点,你可以在开始节点和完某某点之间增加流程需要的活动
▪在流程图里画出活动之间的流转关系
▪保存你的工作
3.1.3打开保存单据类型
所有的流程都是和单据类型联系在一起的,一个单据类型下面可以有多个流程。
你可以把单据类型定义保存到一个数据库或一个文件,当你保存单据类型时,所有和单据类型联系的对象页同时保存。
同样,你也可以从数据库或文件里访问单据类型,并把和单据类型相关的对象在OracleWorkflowBuilder里显示。
3.1.3.1访问保存的流程定义
▪启动OracleWorkflowBuilder,并选择“File——〉Open〞;
▪选择保存工作流程定义的类型:
文件或数据库
▪打开一个文件是可以输入该文件的完整路径和文件名,并选择Ok按钮,或者使用浏览按钮来定位文件;
▪打开数据库连接的话,输入用户名和口令,并输入数据库别名或连接字符串并单击OK按钮;
▪如果同时有多个单据类型存在的话,显示单据类型窗口就会出现,从隐藏列表里选择一个
▪如果你想查看或修改隐藏的的单据类型,你可以从浏览树上从双击隐藏单据类型来选择;
▪当你完成工作之后,选择“File——〉Save〞菜单,保存你的修改信息。
3.1.3.2保存修改信息
▪在OracleWorkflowBuilder里选择“File——〉Save〞命令保存你的修改,并使修改立即生效。
当你使用保存命令的时候,在当前的数据存储里保存了所有对象的修改信息,如果只想保存一个特定的单据类型,你需要创建一个新的数据存储,并把这个单据类型复制到新的数据存储里保存。
▪如果你想把单据类型存放到另外一个数据存储,或者想保存和当前系统不同的另外一个生效的数据,你可以使用“File——〉Saveas〞命令
▪注意,当你保存你的工作的时候,OracleWorkflow会自动验证流程定义里无效或缺失的信息,并把它显示出来,你可以修改根据提示的信息修改错误也可以先保存等有时间的时候再修改。
如果你没有改正错误就保存,那么在你重新打开的时候,OracleWorkflowBuilder还会报错
▪选择“File——〉CloseStore〞关闭和数据存储的连接
▪推出OracleWorkflowBuilder。
3.2定义工作流组件
工作流的组件主要包括单据类型、查找类型、消息、活动、属性和角色;下面将分别介绍如何定义它们。
3.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函数决定在一个特殊的条件下运行哪一个流程活动。
你也可以扩展这个选择函数为一个回调函数,这样在流程执行的过程中,如果会话信息中断的话,可以恢复单据类型实例的上下文信息。
当你从通知详细页面上去查看一个页面属性时特别有用
3.2.1.1创建一个单据类型
▪如果你没有打开一个datastore,从File里选择New菜单创建一个新的DataStore,然后从Edit菜单里选择NewItemType在浏览树里定义一个新的单据类型,此时单据类型的属性页会出现;
▪每一个单据类型有一个大写的内部名称,最多8个字符,所有的工作流API、PL/SQL过程,SQL脚本在识别单据类型的时候都引用单据类型的内部名称。
在内部名称里不能包括“:
〞和“/〞;
▪输入一个翻译性的名字,该名字是一个长一些的描述性名称,你也可以为单据类型输入一段摘要信息;
▪指定单据类型的持续类型,如果你为单据类型指定了一个临时类型,指定在单据类型实例完毕之后状态审核记录必须保存的时间;
▪如果单据类型有多个或会有多个流程和它联系在一起,你需要为单据类型指定一个选择函数,选择函数的语法是
选择函数是一个PL/SQL存储过程,它自动标识工作流引擎应该执行的那个流程;
▪选择“Apply〞保存你的修改;
▪选择“Roles〞页规定能访问单据类型的角色〔这个功能会在将来的发行版本支持〕;
▪选择“Access〞页规定单据类型的访问和定制级别;
▪选择“Apply〞保存你的修改;
▪在浏览树里会出现一个二级分支来表示你刚创建的单据类型,你可以在浏览树里双击单据类型浏览或修改单据类型的属性;
▪定义尽可能多的单据类型属性作为全局变量,这样在流程活动里就可以引用这些单据类型属性。
3.2.1.2定义一个单据类型或活动属性
▪从浏览树里选择一个单据类型,然后从“Edit〞选择“NewAttribute〞可以创建一个单据类型属性
从浏览树里选择一个活动,然后从“Edit〞选择“NewAttribute〞可以创建一个活动属性
在两种情况下都会出现属性定义页
▪输入一个大写的内部名称;
▪输入一个显示名称,该名称会出现在浏览树里;
▪你可以输入一段描述摘要信息;
▪选择属性的数据类型,在定义活动属性的时候,没有Form,URL,Document属性类型;
▪根据你选择的属性类型,为属性指定默认值信息;
▪对单据类型属性来说,可选的默认值是一个你输入或从列表中选择的常量,不过,这个常量可以是一个在运行时替换的字符串;对活动属性来说,默认值可以是一个常量或者一个单据类型属性;
▪选择“Apply〞保存你的修改,选择“Ok〞保存你的修改并推出属性页面,“Cancel〞取消你的修改并推出属性页面;
▪如果你在定义一个单据类型属性,选择“Access〞页设置允许修改属性的访问级别;
▪选择“Apply〞保存你的修改;
▪你创建的任何单据属性类型会出现在浏览树的“Attributes〞分支下,所有的函数属性出现在对应的函数下面,你可以从浏览树里双击一个属性浏览或修改属性的定义。
3.2.1.3定义一个URL属性
▪在属性默认值里指定一个URL地址,这个URL可以是一个常量或者一个从其它单据属性返回的值;
▪你也可以在URL里包含字符串参数,这个参数可以是一个字符串文本或一个其它单据类型的格式替换。
在参数字符串里采用其它单据类型进展格式替换,需要采用如下的格式:
&item_attr;
▪如果URL里包含一个参数字符串,你必须遵守如下的限制:
你不能用一个文档类型的单据类型属性对参数进展格式替换;你可以用表单或URL属性对参数进展格式替换,但不能进展嵌套替换;
▪如果你需要在URL里传递一个日期时间参数,你需要使用TO_CHAR函数把日期时间转换为如下格式:
“YYYY-MM-DD+HH24:
MM:
SS〞,同样对日起类型需要使用TO_DATE;
▪完毕工作之后选择“OK〞按钮保存。
3.2.1.4定义一个Form属性
▪在窗体属性页的默认值里指定一个窗体函数的名称以与可选的字符串参数〔窗体函数的参数〕;
▪默认值必须使用下面的格式输入:
function_name:
arg1=value1arg2=value2…argn=valuen,argn的值可以是一个包含在双引号内的字符串,也可以是一个被其他单据类型属性进展格式替换的值,可以使用下面的方式定义格式替换:
argn=〞&item_attr〞或者argn=〞value&item_attr〞;
▪如果你的窗体属性内包括参数,你必须牢记以下的限制:
你不能使用一个文档类型的属性进展标记替换;你可以使用一个窗体类型或URL类型的属性进展标记替换,但是你不能进展嵌套替换;
▪保存你的工作。
3.2.1.5定义一个Document属性
▪在属性页的默认值里输入一个标识文档的字符串;
▪你可以标识以下两种类型的文档:
PL/SQL文档或者存放在文档管理系统里的文档;
▪一个PL/SQL文档表示数据库里的数据,该文档由一个存储过程产生,需要使用下面的方式来指定一个PL/SQL文档的默认值:
plsql:
在使用时用一个包和过程名称来替换procedure,用直接传送给过程的字符串参数替换document_identifier,这个参数字符串应该能标识这个文档。
PL/SQL存储过程必须按照标准的API格式来写;默认值的实例如下所示:
plsql:
po_wf.show_req/po_req:
2034;
▪如果你想动态的生成一个PL/SQL文档,你可以把文档标识定义成一个标记替换,然后使用其它单据类型属性的值替换,例如:
plsql:
po_wf.show_req/&item_attr1:
&item_attr2;
▪如果想指定一个由外部文档管理系统管理的文档,可以在默认值里输入如下格式的信息:
DM:
[version];
▪选择“OK〞保存你的修改。
3.2.2查找类型〔LookupType〕
查找类型是一个静态值列表,这些列表可以被活动、单据类型、消息或属性引用,例如一个活动可以引用一个查找类型作为它可能的返回值。
当你定义一个查找类型的时候,你必须把它和一个单据类型联系起来;然而,但你在创建一个活动或属性的时候,你可以引用但前数据存储里的任何查找类型,不论这个查找类型和哪个单据类型联系在一起。
3.2.2.1创建查找类型
▪从浏览树里选择一个单据类型,然后从“Edit〞选择“NewLookupType〞,一个查找类型属性页就会出现;
▪查找类型有一个大写的内部名称、一个显示名称,你也可以输入一段描述性的摘要信息,在引用查找类型的时候,需要指定它的内部名称;
▪选择“Access〞页定义允许修改查找类型的访问级别;
▪保存你的修改;
▪新定义的查找类型会出现在浏览树的“LookupTypes〞分支下面,你可以在今后双击该查找类型来查看和修改它的属性;
3.2.2.2为查找类型定义编码
▪选择一个查找类型,并从“Edit〞里选择“NewLookupCode〞,一个查找编码属性页会出现;
▪输入大写的内部名称、显示名称,你也可以输入一段摘要信息;
▪保存你的修改;
▪新定义的查找类型编码会在相对应的查找类型下面出现。
3.2.3消息〔Message〕
消息时工作流程里通知活动发送给角色的内容,消息可以提示户对通知进展回复或者让用户采取一个动作决定下一个活动,在工作流里一个消息的接收者被称作“Performer〞;每个消息都和一个单据类型联系在一起,这样可以允许消息引用单据类型属性,在运行时进展标记替换。
当你定义消息的时候,可以指定接收者回复的值,然后工作流引擎根据用户的返回值决定流程的下一个活动,你也可以在消息的主题和消息体内包括消息属性使消息成为一个上下文环境敏感的消息。
你可以从浏览树里直接把一个消息直接拖拽到通知分支下面创建一个发送该消息的通知,也可以把消息拖拽到一个已存在的通知活动上更新通知发送的消息。
当你为通知活动创建一个通知的时候,你需要注意通知是否规定了一个结果类型,如果有结果类型的话,你创建的通知需要提示通知接收者一些特定的响应用来解释通知的结果类型,工作流引擎使用这些结果断定流程需要流到哪些活动。
要想创建一个对特殊响应进展提示的消息,你需要完成消息页面的“Result〞页,你输入的信息创建了一个特殊的“Response〞消息属性,它有一个内部名称“RESULT〞,结果消息属性的数据类型是一个查找类型,并且必须和通知的结果查找类型一致,这可以保证通知活动的执行者从一个通知活动期望的结果值列表里选择一个值。
一旦你创建了一个消息,你可以为消息定义需要的所有属性,在浏览树里消息的属性存放在消息的下面。
消息属性的来源〔SendorRespond〕决定了消息属性的使用方式,你可以使用“Send〞类型的消息属性进展标记替换或者和消息一块发送。
每个消息类型都有一个数据类型,“Send〞类型的消息属性可以是一个常量或者是一个对单据类型属性的引用。
“Response〞类型的消息属性组成了消息的响应局部,响应消息属性为接收者的响应提供了指令。
如果你定义了一个响应消息属性,你必须给它指定数据类型,你也可以给它指定一个默认值,默认值可以是一个常量,也可以是对一样数据类型单据类型属性的引用。
3.2.3.1创建消息〔Message〕
▪从浏览树里选择一个单据类型,然后从“Edit〞菜单里选择“NewMessage〞,消息属性页面就会出现;
▪为消息提供一个大写的内部名称,一个显示名称,你可以为消息输入一段描述性的信息;
▪为消息选择一个默认的优先级,消息的优先级只是提醒接收者消息的紧急程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OracleERP 工作流