如何升级已投入生产的长期运行的 SharePoint 工作流
Posted
技术标签:
【中文标题】如何升级已投入生产的长期运行的 SharePoint 工作流【英文标题】:How to upgrade a long running SharePoint Workflow already in production 【发布时间】:2008-12-10 18:13:06 【问题描述】:我的任务是帮助部署之前 SharePoint 部署的第 2 阶段。
原始部署具有已在第 2 阶段更新的自定义工作流。是否有针对这种情况的“操作方法”?
我们看到的一些陷阱要求您将原始工作流标记为不接受任何新实例,然后将其更新部署为新工作流。这将允许以前的项目在旧代码下完成处理,并允许任何新流程启动新的工作流程。
这样做的一个问题是,我们必须访问附加了原始工作流的每个站点并附加新的工作流V2。现在我们在文档库中有两个工作流状态列。
我刚刚进入项目,这些是开发人员注意到的问题。
您可以向我提供的任何资源或提示将不胜感激,因为我正在学习所有这些内容。
以下是另一位开发人员的一些笔记,他向我介绍了他所见的背景:
如果某个版本的工作流已经存在,那么将其重新部署为一项功能将导致现有工作流的状态设置为“无新实例”。这可以通过转到已附加工作流的文档库来查看,选择设置 -> 文档库设置 -> 工作流设置 -> 删除工作流并注意工作流的单选按钮设置。任何当前正在工作的工作流实例仍将正常完成,但此设置将阻止工作流的任何新实例。
部署同一工作流程的第二个“版本”后,您需要重新访问您希望与其关联的每个文档库并重新添加它,就好像它是一个新的工作流程一样。您必须给它一个唯一的名称,例如“MyWorkflow_v2”。另一个副作用是,现在您将在文档库中拥有 2 个工作流状态列。一旦它的所有实例都完成并且不再需要该状态,您可以删除/隐藏第一个。
如果您使用相同的功能和清单 XML 文件重新部署工作流,则内部 GUID 将与第一次部署中使用的相同。 SharePoint 会将其识别为同一工作流的第二个“版本”,并自动将第一个版本设置为“无新实例”状态。但是,如果您选择在 XML 文件中使用不同的 GUID,SharePoint 会将其视为全新工作流的部署,并且不会对现有实例执行任何操作。您需要手动将每个文档库中的每个实例设置为“无新实例”设置。
重新部署工作流的第二个“版本”后,您仍需要手动访问您希望使用它的每个文档库并将其添加到文档库中。请记住,它的工作流模板名称将显示在工作流模板列表中,就像它在 XML 文件中命名一样(这没关系),但是一旦添加它,您将需要为工作流输入一个唯一的工作流名称。这就是您必须选择类似“Workflow_v2”之类的新名称。
撤消操作会删除解决方案中功能的所有实例,特别是对于我的工作流应用程序,它会从与之关联的所有文档库中删除工作流的所有实例。但是,在 的情况下,任务由工作流创建,如果用户单击希望获得签名页的任务项,一旦解决方案被撤回,他们将改为获得 SharePoint “未知错误”页面。原因是撤回过程从数据库中删除了工作流,并且不再有与该任务关联的工作流。
【问题讨论】:
【参考方案1】:我想你已经阅读了 Chris O'brien 关于这个主题的 cmets。所以这是第二个链接:http://msmvps.com/blogs/theproblemsolver/archive/2008/09/10/versioning-long-running-workfows.aspx
【讨论】:
以上是关于如何升级已投入生产的长期运行的 SharePoint 工作流的主要内容,如果未能解决你的问题,请参考以下文章