一种数据驱动工作流管理系统的实现方法
- 格式:docx
- 大小:259.38 KB
- 文档页数:9
BPMN⼯作流的基本概念!详解⼯作流框架Activiti⼯作流⼯作流简介⼯作流(Workflow): ⼯作流就是通过计算机技术对业务流程进⾏⾃动化管理。
实现多个参与者按照预定的流程去⾃动执⾏业务流程。
定义: 通过计算机对业务流程⾃动化执⾏管理主要解决的是: 使在多个参与者之间按照某种预定义的规则⾃动进⾏传递⽂档,信息或任务的过程.从⽽实现某个预期的业务⽬标,或者促使此⽬标的实现⼯作流管理系统的⽬标:管理⼯作的流程以确保⼯作在正确的时间被期望的⼈员所执⾏在⾃动化进⾏的业务过程中插⼊⼈⼯的执⾏和⼲预⼯作流框架:Activiti,JBPM,OSWorkFlow,WorkFlow⼯作流框架底层需要有数据库提供⽀持⼯作流术语⼯作流引擎ProcessEngine对象: 这是Activiti⼯作的核⼼.负责⽣成流程运⾏时的各种实例及数据,监控和管理流程的运⾏BPM业务流程管理:是⼀种以规范化的构造端到端的卓越业务流程为中⼼,以持续的提⾼组织业务绩效为⽬的的系统化⽅法常见商业管理教育如EMBA,MBA等均将BPM包含在内BPMN业务流程建模与标注:这些图如何组合成⼀个业务流程图(Business Process Diagram)讨论BPMN的各种的⽤途:包括以何种精度来影响⼀个流程图中的模型BPMN作为⼀个标准的价值BPMN未来发展的远景流对象⼀个业务流程图有三个流对象的核⼼元素事件⼀个事件⽤圆圈来描述,表⽰⼀个业务流程期间发⽣的东西事件影响流程的流动.⼀般有⼀个原因(触发器)或⼀个影响(结果)基于它们对流程的影响,有三种事件:开始事件,中间事件,终⽌事件活动⽤圆⾓矩形表⽰,⼀个流程由⼀个活动或多个活动组成条件条件⽤菱形表⽰,⽤于控制序列流的分⽀与合并。
可以作为选择,包括路径的分⽀与合并内部的标记会给出控制流的类型Activiti开源⼯作流框架Activiti简介Activiti是⼀个开源的⼯作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进⾏流程调度Activiti 作为⼀个遵从 Apache 许可的⼯作流和业务流程管理开源平台,其核⼼是基于Java的超快速,超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌⼊性和可扩展性,同时更加强调⾯向业务⼈员Activiti 流程引擎重点关注在系统开发的易⽤性和轻量性上.每⼀项BPM业务功能Activiti流程引擎都以服务的形式提供给开发⼈员.通过使⽤这些服务,开发⼈员能够构建出功能丰富,轻便且⾼效的BPM应⽤程序Activiti服务结构Activiti系统服务结构图核⼼类:ProcessEngine: 流程引擎的抽象,可以通过此类获取需要的所有服务服务类:XxxService: 通过ProcessEngine获取,Activiti将不同⽣命周期的服务封装在不同Service中,包括定义,部署,运⾏.通过服务类可获取相关⽣命周期中的服务信息RepositoryServiceRepository Service提供了对repository的存取服务Activiti中每⼀个不同版本的业务流程的定义都需要使⽤⼀些定义⽂件,部署⽂件和⽀持数据(例如BPMN2.0XML⽂件,表单定义⽂件,流程定义图像⽂件等),这些⽂件都存储在Activiti内建的Repository中RuntimeServiceRuntime Service提供了启动流程,查询流程实例,设置获取流程实例变量等功能.此外它还提供了对流程部署,流程定义和流程实例的存取服务TaskServiceTask Service提供了对⽤户Task和Form相关的操作.它提供了运⾏时任务查询,领取,完成,删除以及变量设置等功能HistoryServiceHistory Service⽤于获取正在运⾏或已经完成的流程实例的信息,与Runtime Service中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化FormService使⽤Form Service可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单Activiti中的流程和状态Task均可以关联业务相关的数据IdentityServiceIdentity Service提供了对Activiti系统中的⽤户和组的管理功能Activiti中内置了⽤户以及组管理的功能,必须使⽤这些⽤户和组的信息才能获取到相应的TaskManagementServiceManagement Service提供了对Activiti流程引擎的管理和维护功能这些功能不在⼯作流驱动的应⽤程序中使⽤,主要⽤于 Activiti 系统的⽇常维护核⼼业务对象:org.activiti.engine.impl.persistence.entity包下的类,包括Task,ProcessInstance,Execution等根据不同职责实现相应接⼝的⽅法(如需要持久化则继承PersistentObject接⼝),与传统的实体类不同Activiti组件Activiti上下⽂组件Context: ⽤来保存⽣命周期⽐较长,全局性的信息,类似Application.主要包括如下三类:CommandContext: 命令上下⽂-保存每个命令必要的资源,如持久化需要的sessionProcessEngineConfigurationImpl: 流程引擎相关配置信息-整个引擎全局的配置信息.如数据源DataSource等.该对象为单例,在流程引擎创建的时候初始化ExecutionContext: 持有ExecutionEntity对象持久化组件:Activiti使⽤mybatis作OR映射,并在此基础上增加设计了⾃⼰的持久化框架在流程引擎创建时初始化,顶层接⼝Session,SessionFactorySession有两个实现类:DbSqlSession: 负责sql表达式的执⾏AbstractManager: 负责对象的持久化操作SessionFactory有两个实现类:DbSqlSessionFactory: 负责DbSqlSession相关操作GenericManagerFactory: 负责AbstractManager相关操作Event-Listener组件:Activiti允许客户代码介⼊流程执⾏,提供了事件监听组件监听的事件类型:TaskListenerJavaDelegateExpressionExecutionListenerProcessEngineConfigurationImpl持有DelegateInterceptor的某个实例,⽅便调⽤handleInvocation Cache组件DbSqlSession中有cache的实现Activiti基于List和Map来做缓存:如查询时先查缓存,没有则直接查询并放⼊缓存异步执⾏组件Activiti可以执⾏任务,JobExecutor为其核⼼类,JobExecutor包含三个主要属性:JobAcquisitionThreadBlockingQueueThreadPoolExecutor⽅法ProcessEngines在引擎启动时调⽤JobExecutor.start,JobAcquisitionThread 线程即开始⼯作,其run⽅法不断循环执⾏AcquiredJobs中的job,执⾏⼀次后线程等待⼀定时间直到超时或者JobExecutor.jobWasAdded⽅法,因为有新任务⽽被调⽤。
工作流管理解决方案引言概述:工作流管理是现代企业管理中的重要环节,它能够提高工作效率、降低成本、优化资源配置等。
随着科技的不断发展,工作流管理解决方案也不断涌现,为企业提供了更多的选择。
本文将介绍几种常见的工作流管理解决方案,包括自动化工作流、云端工作流、移动工作流、数据驱动工作流和智能工作流。
一、自动化工作流1.1 流程设计与优化:自动化工作流解决方案能够帮助企业对工作流程进行设计和优化,通过可视化的界面,用户可以轻松地创建、修改和管理工作流程。
同时,系统会根据数据分析和业务规则自动优化工作流程,提高工作效率和准确性。
1.2 任务分配与跟踪:自动化工作流解决方案能够智能地将任务分配给相应的员工,根据员工的技能、工作负荷等因素进行合理的分配。
同时,系统可以实时跟踪任务的进度和状态,提醒员工及时完成任务,保证工作的顺利进行。
1.3 数据集成与报告分析:自动化工作流解决方案能够与企业现有的系统进行数据集成,实现数据的共享和交流。
同时,系统还可以生成各种报告和分析,帮助企业了解工作流程的状况,及时发现问题并进行改进。
二、云端工作流2.1 实时协作与共享:云端工作流解决方案能够实现多人实时协作,员工可以随时随地共享和访问工作流程和任务。
这种解决方案不受时间和地点的限制,提高了团队的协作效率和灵活性。
2.2 安全与可靠:云端工作流解决方案通过数据加密、权限管理等措施,保证数据的安全性和可靠性。
同时,云端存储还能够防止数据丢失和损坏,提供备份和恢复功能,保护企业的重要数据。
2.3 扩展性与灵活性:云端工作流解决方案具有良好的扩展性和灵活性,可以根据企业的需求进行定制和扩展。
企业可以根据自身的规模和业务特点选择适合的云端工作流解决方案,随着业务的发展进行灵活调整。
三、移动工作流3.1 移动办公:移动工作流解决方案可以将工作流程和任务移动到移动设备上,员工可以通过手机、平板电脑等移动设备随时随地处理工作。
这种解决方案提高了员工的工作效率和灵活性,适应了移动办公的趋势。
工作流实现原理工作流(Workflow)指的是在一个组织中,将工作任务按照某种规则或流程分配给不同的个体或部门,并进行自动化管理和控制的一种方式。
通过工作流的应用,组织可以更高效地处理业务流程,提高工作效率,减少人为错误,并且方便监测和优化工作流程。
工作流的实现原理主要包括以下几个方面:建模、运行控制、任务处理和监控。
一、建模工作流的建模是指根据实际业务需求,将业务流程抽象为可执行的工作流模型。
在建模过程中,需要确定流程的开始和结束节点,以及中间的任务节点和分支节点等。
工作流模型的建立可以借助工作流管理系统提供的建模工具或可视化设计界面来完成。
在建模过程中,需要定义工作流的输入、输出、控制条件、运行规则等。
输入包括触发工作流的事件,例如用户提交申请、系统定时任务等;输出则是工作流执行完毕后的结果,例如生成报告、发送通知等。
控制条件用于判断流程流转的条件,例如判断某个任务是否符合执行条件,如果不符合则流程流转到其他分支或者中止执行。
运行规则是指工作流的执行顺序和执行方式,例如串行执行、并行执行等。
二、运行控制工作流的运行控制是指根据建立好的工作流模型,按照事先设定好的流程规则和运行规则,自动驱动工作流的执行。
运行控制可以通过工作流管理系统的引擎来实现,该引擎负责解析工作流模型,并根据流程规则驱动工作流的执行。
在运行控制过程中,引擎会根据工作流模型中定义的控制条件,判断当前任务是否满足执行条件。
如果满足条件,则将任务分配给相应的执行者,并且记录任务的执行状态和执行结果。
如果不满足条件,则根据预先设定的流程规则将工作流的执行流转到其他任务节点或中止执行。
三、任务处理任务处理是指执行者根据工作流系统的分配,完成自己的工作任务,并将任务处理结果反馈给工作流引擎。
在任务处理过程中,执行者可以使用工作流管理系统提供的任务界面或者移动端应用程序来查看任务列表,并进行任务的办理、回退、转派等操作。
在任务处理过程中,执行者可以根据任务的要求和上下文信息,进行相应的业务处理。
temporal 工作流详解摘要:一、前言二、Temporal 工作流的定义与特点三、Temporal 工作流的组成部分1.事件驱动2.状态管理3.定时器四、Temporal 工作流的执行流程1.事件触发2.状态转移3.定时器触发五、Temporal 工作流的实际应用1.业务流程自动化2.任务调度与协同3.物联网与边缘计算六、Temporal 工作流的优缺点分析1.优点1.高度灵活性2.可扩展性3.易于维护2.缺点1.学习成本较高2.资源消耗较大七、结论正文:一、前言随着科技的飞速发展,越来越多的企业和组织开始寻求更高效、灵活的工作流程以应对不断变化的市场环境。
在此背景下,Temporal 工作流应运而生,它结合了事件驱动、状态管理和定时器等技术,为企业提供了一种全新的工作流解决方案。
本文将对Temporal 工作流进行详细解读,以帮助读者更好地了解这一技术。
二、Temporal 工作流的定义与特点Temporal 工作流是一种基于时间维度的工作流模型,它通过事件驱动、状态管理和定时器等技术,实现工作流的自动化执行。
其特点主要包括高度灵活性、可扩展性和易于维护等。
三、Temporal 工作流的组成部分Temporal 工作流主要由以下三个部分组成:1.事件驱动:事件驱动是Temporal 工作流的核心部分,它通过事件触发器来响应外部事件,从而实现工作流的自动化执行。
2.状态管理:状态管理负责跟踪工作流中各个环节的状态,并根据状态转移规则决定工作流的执行路径。
3.定时器:定时器用于设置工作流执行的时间间隔或超时时间,以确保工作流按照预定的时间顺序执行。
四、Temporal 工作流的执行流程Temporal 工作流的执行流程主要包括以下三个环节:1.事件触发:当外部事件发生时,事件触发器会检测到事件并触发工作流的执行。
2.状态转移:根据当前状态和状态转移规则,状态管理器会将工作流转移到下一个状态。
3.定时器触发:当定时器到期时,会触发工作流的执行,从而确保工作流按照预定的时间顺序执行。
工作流管理技术近年来,随着信息技术的快速发展,工作流管理技术逐渐成为企业管理的重要工具。
工作流管理技术以流程化的方式组织、管理和自动化企业的业务流程,帮助提高工作效率、降低成本,实现规范化和高效化的管理。
本文将探讨工作流管理技术的基本概念、工作原理和应用场景,并分析其未来的发展趋势。
一、工作流管理技术的基本概念工作流管理技术是一种将企业的业务流程和相关信息以可执行、可控制的方式进行组织和管理的技术。
它通过自动化集成和优化企业内部各种业务流程,实现任务的自动分配、自动处理和自动跟踪,提高了工作的效率和质量。
工作流管理技术基于四个基本概念:活动(Activity)、流程(Process)、角色(Role)和资源(Resource)。
活动是工作流中的基本单位,表示企业中的具体工作任务;流程是活动的集合,包括了活动之间的顺序和依赖关系;角色是参与活动执行的相关人员或者系统;资源是活动执行所需要的相关信息、文件或者其他设备。
二、工作流管理技术的工作原理工作流管理技术的工作原理主要包括流程建模、流程分析、流程执行和流程优化四个步骤。
1. 流程建模:首先,根据企业的实际需求和业务流程,将其进行抽象和描述,构建出企业的业务流程模型。
常用的建模方法包括事件驱动过程链(EPC)、Petri网等。
2. 流程分析:对建模后的业务流程进行分析,验证其正确性和合理性。
通过模拟实验和性能评估,发现潜在的问题和瓶颈,以便进行后续的改进和优化。
3. 流程执行:根据业务流程模型,通过工作流管理系统将活动分配给相应的角色或者系统,并自动进行任务的执行和跟踪。
在执行过程中,系统可以根据预设的规则和条件进行流程控制,实现任务的自动分派和自动审批。
4. 流程优化:根据流程执行的数据和统计信息,进行流程的优化和改进。
包括对流程中的瓶颈进行识别和分析,并进行相应的调整和改进,以提高整体的工作效率和效果。
三、工作流管理技术的应用场景工作流管理技术在各个行业和领域都有广泛的应用,如制造业、金融业、医疗健康等。
一种数据驱动工作流管理系统的实现方法摘要:提出了一种基于Petri网模型的数据驱动的工作流建模方法。
在实现此方法前,我们对该工作流程理念进行严密的分析,以验证其正确性。
该工作流模型已经在工作流管理系统中得到实现,其提供了一组图形界面,以方便建模和执行业务流程任务。
关键字:工作流管理系统;Perti-Net;数据驱动工作流;工作流程定义Abstract:In this paper, we present an approach for data-driven workflow modeling based on Petri Net model. The conceived workflow process can be analysed to verify its correctness before implementation. This workflow modeling approach has been implemented into a workflow management system that provides a set of graphical interfaces to model and execute the business process tasks.Key words:Workflow management system; Petri-Net; Data-driven workflow; Workflow process definition一. 引言在本世纪初,工作流程管理集中在设计和文档业务流程。
其重点放在任务和他们之间的次序的依赖关系,同时,数据和资源只起到了非常轻微的作用。
许多新的方法,例如,Petri网[1],业务流程建模符号(BPMN)[2],业务流程执行语言(BPEL)[3]等,但其中只有少数对业务流程中的数据流交换建模有兴趣。
此外,最近几年,随着数据驱动方法的提出,数据在业务流程中的重要性也日益受到重视。
随着流程的执行和表现形式收到越来越多的关注,工作流模型的验证也必须得到重视。
Petri-Net是当前最能说明工作流技术规范的模型。
本文结合数据驱动方法和Petri-Net形式化方法提出了一种用于工作流过程建模的形式化方法,通过工作流程引擎执解析和自动生成运行流程分析验证由此产生的模型。
二. 技术介绍近几年,许多着重研究数据流和控制流相结合的新方法涌现了出来,人工业务流程(Business Artifacts,BA),一个使用人工方法和Petri-Net模型使数据与流程结合在一起的方法。
BA方法侧重于解决决策问题,相关的可达性,避免死角和冗余,但它不提供过程建模的图形表示法。
尽管它被正式定义,但BA并没有提供一个正式的机制过程验证。
在工作流研究中过程验证已被广泛研究,用Petri网的状态机制[7],曲线图[8],数据依赖性[9]等。
另一个正式的方法基于Petri网模型是corepro框架[ 10 ]。
CorePro使建模数据驱动规范,然后,基于给定模型等级的数据结构,自动创建流程结构。
同时,corepro提供了一些简单的规则来验证数据驱动的过程结构的可靠性特性。
然而,它不保留已经激活执行对象的状态。
事实上,除了结构的变化,同时也考虑到状态的变化。
Petri网的令牌进行文献中已定义的数据的扩展,以提高工作流模型的表现力。
数据网(DN)是Petri网的扩展,令牌取自线性有序和密集的领域,并转换可以执行整个地方的操作,如传输,复位或广播。
尽管,数据网可以被看作是一个约束多重集重写系统(CMRS)被扩充为全开放操作。
根据[12]中的研究发展,只有在黑色难以区分的令牌情况下,全开放操作才增强Petri 网的表现力,并不适合令牌数据取自有序域的模型。
弱点是指这里的事实,cmrs编码模拟一个有损耗的数据网,例如,数据网的令牌可能会丢失。
上述所有的方法都关注数据路由和数据管理的过程,但是他们认为所调用的应用程序组件,其中应用程序数据管理作为黑盒的活动。
它们中的一些,像DN,可以申请转换,读取或写入一些数据元素,但只有有限权利来管理所有数据元素的处理。
这就是为什么流程必须被建模在更高的抽象层次模型,以反映优选的工作实践。
三.使用Petri网令牌结构的工作流建模我们从Petri网中提出一种新的工作流建模方法用来工作流过程建模。
为了管理所有的数据处理工作程序,我们使用数据驱动的过程结构的概念。
所以,我们由相应的数据结构来描述过程,我们定义了一个数据结构,pairs=(C.D),其中C是一个属性列表,D是元祖列表,每个元祖是属性值的有序集。
从形式上看:∀n, m∈N:C=(c1,)D={(d11,d12...d1n),(d21,d22...d2n)...(dm1,dm2...dmn)}每个属性C i是名为n i和类型为t i的有序对。
∀i, ti ∈{SmallInt, Int, BigInt, F loat, Double, Real,Decimal, Char, V archar, T ext, Date, Y ear, Boolean}∀i, j, d ij≡t j :属性值是一个特定的有效的属性类型值。
工作流程过程被定义为一个Petri网工作,某个地点的位置对应于一个数据结构,包含结构的令牌(元组)和一个转换对应于一个任务。
一套工作流由四个组件组成,WF=(S,T,Pre,Post),其中S是一个有限集的数据结构,T是一个有限集的任务Pre是S×T→N是向前关联矩阵Post:是S×T→N是向后关联矩阵工作流过程定义为两个面向网络的节点类型。
即数据结构和操作这些结构的元祖任务。
一个任务消耗数据结构产生其他元组,然后可以通过其他任务消耗。
如果每个输入数据结构s∈S被至少x元组标记,即任务t被启动。
(涉及的Pre(S,T),它定义了从S到T边缘重量)。
启用任务T需要每个输入数据结构消耗X i元组,并生成每个输出数据结构T的X j元组。
(涉及的Post(S,T),它定义了从S到T边缘重量)。
我们必须澄清,在我们的例子中,我们不能仅限于一个后关联的简单的矩阵。
事实上,每个转换根据其处理将消耗一个未定义的元组数,并产生属于一个确定范围内产生号码,(见附录表I).例如,如果过渡是一个元组分别含有X1和X2的元组数的两个数据结构S1和s2的联合操作。
它会产生一些属于间隔的元组:max(x1, x2) and x1 +x2。
(因为联合操作会消除重复元组)我们定义了两个向后关联矩阵:Post min和Post max,作为一个价值区间限制所有可能的后关联矩阵。
∀t∈T and s∈S, Post Min(t, s):边缘变迁从T到权重最小的S.∀t∈T and s∈S, Post Max(t, s):边缘变迁从T到权重最大的s.∀t ∈T and s ∈S, Post(t, s)∈[Post Min(t, s),Post Max(t, s)].我们通过图1的例子中详细解释这个想法图1:工作流模型实例由图1所示的例子中,包含8个地方(S1,S2,...,S8)和5个转换(T A,T B...T E)。
每条边相关联的权重(X i>0)。
我们定义其预矩阵:如图1中例子所示,其转换的定义在表I中,我们可以确定每个激发转换输出令牌的范围如下:: x4∈[0,min(x1,x2)],x5∈[max(x2,x3),x2+x3],x8=x6×x7∈[x6×x7,x6×x7], x9=x7∈[x7,x7], x11=x10∈[x10,x10]因此,我们可以推断出其矩阵:利用这三个矩阵(Pre, Post Min and Post Max)我们可以对设计的工作流模型得到的属性进行验证,我们将在第六节中详细介绍这个思想。
要达到的最低层次的抽象,我们需要代数数据结构,所以,我们设计的关系代数定义任务需要从其他地方产生的数据结构。
如表1所示,为了适应Petri网形式,我们用正式的方法重新定义了关系代数运算。
为了保持数据结构属性分配操作(联合,差异,交叉,分隔)的等价,我们定义了置换和替代操作。
此外,我们提出把属性添加到结构的方案,其值通过应用一个函数生成。
最后插入数据结构元组到数据结构中,我们定义了一个补充操作四信息流路由Petri网使用关系代数运算作为转换,我们的工作流模型可以很容易地表达顺序和并行路由。
然而,条件路由需要由其他操作来定义。
事实上,条件路由使用时,根据条件两个任务之间是相互执行的。
通过一个简单的网络控制操作,我们可以表示有条件的路由。
事实上,控制操作决定是否继续,信息流的路由是根据控制数据结构的内容,不管SI是控制的数据结构,Sj是下个转换期望的数据结构,如果条件为真,SI将被一个控制操作控制定义为如下所示:控制操作1指出:控制操作2指出控制流程的一个例子在附录的图10中。
结构6,它包含了所有当前客户的未付账单,由task t5客户的偿付能力决定使用。
所以,如果S6中包含一个或多个令牌,T5将决定这个客户没有偿还债务能力,它将完成订单管理流程。
否则,将在T5将在S7中重现S2令牌,为了派送到库存检查角色。
五使用我们的方法建模的例子考虑一个公司的订单处理的办公程序。
当客户通过电子邮件发送他的命令,作业被发送到客户偿付能力检查,然后盘点。
评价后,要么拒绝的邮件被发送给客户,s亦或是发送订单发货及开票。
在本文中,我们限制我们的例子中的偿付能力检查和盘点过程。
为了简化模型的表示,我们根据在公司相同的功能角色分类相关的任务。
所以,每个角色的工作是属于整个工作流过程定义一个子进程。
正如图10中所示,当客户邮件到达时,工作流将启动。
S1令牌(目前客户数据)将消耗T1以选择目前客户信息(CC)根据他的名字和他的姓,选择的条件是工作流执行过程中检查角色(SCRole)的偿付能力的大小。
所得到的结构S2令牌(S2只包含一个呈现CC信息令牌),S3令牌(当前客户的账单数据)要使用T2产生一个单一的数据结构,它包含账单数据,以及CC信息。
所得到的结构s4令牌要使用T3,创建一个账单数据与CC的内部连接,以选择仅仅是CC的账单。
S5表示了当前CC历史账单支付记录。
要检查客户的偿付能力,T4只选择其中有一个支付的属性值等于FALSE S5令牌,所得到的结构S6是被用来决定客户偿付能力。
t5是一个控制操作,验证S6内容。
如果S6包含一个或多个标记,T5将决定客户是没有偿还能力(因为他有未付账单),它就会完成订单管理流程。
否则,T5会在s7中重现S2令牌的命令为了将其发送到库存检查的角色(ICRole)。
要选择订购的产品,T6根据Ord-qtity属性值(只接受整数值)扩展S8(包含所有的产品数据),来抓住相对有序产品的订购数量。