EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

工作流活动

活动是工作流的基本构建块。通常,您可以通过工作流程设计器组合活动来创建工作流程。默认情况下,设计器公开WF附带的许多标准内置活动,例如IfForEachDelay。除这些之外,XAF还附带了其他CRUD活动,可简化业务对象的操作。本主题概述了活动如何在内部进行,并描述了XAF CRUD工作流程活动的细节。

概述

活动是执行单个操作的可重用组件。在内部,活动是System.Workflow.ComponentModel.Activity类的后代。作为常规类,每个活动可以具有一组属性和事件以及定义活动功能的逻辑。执行单个功能并从Activity类派生的活动称为简单活动。从System.Workflow.ComponentModel.CompositeActivity类派生的可以承载其他活动的活动称为Composite。每个活动都有一组由其参数组成的签名(请参阅变量和参数))。输入参数指定活动正常运行所需的数据。输出参数指定活动执行的结果。

WF附带了许多标准的内置活动。若要了解它们,请参阅NET Framework 4内置活动库MSDN文章。

XAF CRUD活动

除了WF提供的活动外,工作流模块还附带了特定于XAF的基本活动,从而简化了业务对象的操作。

  • Workflow_Activity_NoPersistScopeNoPersistScope

    一种活动,当工作流服务器停止运行或长时间运行的工作流实例变为非活动状态时,该活动将阻止包含工作流的实例持久化到数据库并从内存中卸载。这种情况的一个示例是长时间运行的工作流实例,该实例将一个Delay活动封装到While活动中,以每天执行例行任务。执行日常任务后,工作流服务器将开始将工作流实例状态卸载到数据库中。服务器将尝试保留所有变量,包括那些引用业务对象的变量。由于这些对象不可序列化,因此将发生异常。因此,所有操纵业务对象的活动都应封装在NoPersistScope中活动或其后代-ObjectSpaceTransactionScope活动。如果需要使用“延迟”活动,请将其置于NoPersistScope活动范围之外。如果您需要在两个对业务对象的操作之间延迟,则这些操作应驻留在两个单独的NoPersistScope中-一个在Delay活动之前,另一个在Delay活动之后。持久性最佳实践NoPersistHandle类MSDN主题中提供了有关持久性和卸载的更多详细信息。

  • Workflow_Activity_ObjectSpaceTransactionScopeObjectSpaceTransactionScope

    NoPersistScope活动派生的活动。创建并维护一个对象空间。默认情况下,对象空间是在ObjectSpaceTransactionScope活动结束时自动提交的。使用此活动来操纵业务对象。

  • Workflow_Activity_TransactionalGetObjectSpaceTransactionalGetObjectSpace

    使用此活动可检索包含的ObjectSpaceTransactionScope使用的对象空间。您可以通过Assign活动将检索到的对象空间分配给变量,也可以通过InvokeMethod活动调用对象空间的方法。该TransactionalGetObjectSpace活动只能在内部使用ObjectSpaceTransactionScope

  • Workflow_Activity_CreateObjectSpace创建对象空间

    当您需要由ObjectSpaceTransactionScope活动提供的多个对象空间不止一个时,请使用此活动。该CreateObjectSpace活动只能一个内部使用ObjectSpaceTransactionScope活动。

物体空间活动

还有一些特定于XAF的活动,它们调用Object Space方法,因此需要一个IObjectSpace实例。您不能在NoPersistScopeObjectSpaceTransactionScope之外使用这些活动。

活动 描述 对应的IObjectSpace方法
Workflow_Activity_CommitChanges 提交更改 将对持久对象所做的所有更改保存到数据库。 IObjectSpace.CommitChanges
Workflow_Activity_CreateObject CreateObject <T> 创建指定类型的对象。 IObjectSpace.CreateObject <ObjectType>
Workflow_Activity_DeleteObject DeleteObject <T> 删除持久对象及其聚合对象。 IObjectSpace.Delete
Workflow_Activity_FindObjectByCriteria FindObjectByCriteria <T> 搜索指定类型的第一个对象,该对象与特定的字符串条件匹配,例如:“ [AssignedTo.Oid] =” targetObjectId.ToString() IObjectSpace.FindObject <ObjectType>
Workflow_Activity_GetObjectKey GetObjectKey 返回特定对象的键属性值。 IObjectSpace.GetObjectKey
Workflow_Activity_GetObjectsByCriteria GetObjectsByCriteria <T> 返回与特定条件匹配的指定类型的对象的集合。 IObjectSpace.GetObjects <T>
Workflow_Activity_GetObjectByKey GetObjectByKey <T> 返回具有特定键属性值的指定类型的持久对象。 IObjectSpace.GetObjectByKey <ObjectType>
Workflow_Activity_Rollback 回滚 取消对持久对象的更改。 IObjectSpace.Rollback
提示

您还可以使用自定义活动

相关文章

转载保留此链接,注明出处