我有一个相当简单的顺序批准工作流程,其具有EnableModificationActivity,该工作范围仅适用于整个工作流程。我的修改表单是一个ASPX页面,使用户能够启用/禁用工作流程中尚未发生的批准步骤。由于工作流程可以多次修改,我希望表单能够反映工作流程的当前状态,这意味着它应该显示当前启用或禁用的活动。
我已经提出了一个笨重的解决方案,我稍后会分享,但我必须相信有一个干净的方法来解决这个问题。
答案 0 :(得分:0)
所以这就是我最终采取的方法......
我创建了一个Plain Old CLR Object(POCO)类,专门用于保存状态信息,我的特定工作流能够是XML Serialized。我将其称为“状态对象”。
我创建了一个名为“WorkflowStateManager”的可重用类,它能够为给定的SPWorkflow加载和保存单个状态对象。工作流程和修改表单都可以访问此类。
当工作流被激活时,我构造一个新的State Object,初始化它上面的各种属性,并使用WorkflowStateManager保存它。
随着工作流程的进展,我按以下方式根据需要加载和更新状态对象:
现在,我的修改表单还可以使用WorkflowStateManager加载,操作和保存State对象,然后将工作流的当前状态公开给用户。
我希望这对某人有益。