如何升级已在生产中长期运行的SharePoint工作流

如何升级已在生产中长期运行的SharePoint工作流,sharepoint,Sharepoint,我的任务是帮助部署以前SharePoint部署的第2阶段 原始部署具有已在第2阶段更新的自定义工作流。 对于这种情况是否有“如何”的建议? 我们已经看到的一些缺陷要求您标记原始工作流以不接受任何新实例,然后将其更新部署为新工作流。这将允许以前的项目在旧代码下完成处理,并允许任何新流程加速新工作流 这样做的一个问题是,我们必须访问每个附加了原始工作流的站点,并附加新的workflowV2。现在,我们在文档库中有两个工作流状态列 我刚刚进入项目,开发人员已经注意到了这些问题 如果您能向我提供任何资源

我的任务是帮助部署以前SharePoint部署的第2阶段

原始部署具有已在第2阶段更新的自定义工作流。
对于这种情况是否有“如何”的建议?

我们已经看到的一些缺陷要求您标记原始工作流以不接受任何新实例,然后将其更新部署为新工作流。这将允许以前的项目在旧代码下完成处理,并允许任何新流程加速新工作流

这样做的一个问题是,我们必须访问每个附加了原始工作流的站点,并附加新的workflowV2。现在,我们在文档库中有两个工作流状态列

我刚刚进入项目,开发人员已经注意到了这些问题

如果您能向我提供任何资源或提示,我将不胜感激,因为我正在学习这些知识。

下面是另一位开发人员的一些笔记,他向我介绍了他所看到的一些背景:

如果工作流的某个版本已经存在,则将其重新部署为功能将导致现有工作流的状态设置为“无新实例”。这可以通过转到已附加工作流的文档库,选择设置->文档库设置->工作流设置->删除工作流并注意工作流的单选按钮设置来查看。任何当前的工作中工作流实例仍将正常完成,但此设置将阻止任何新的工作流实例

一旦部署了同一工作流的第二个“版本”,您将需要重新访问要关联的每个文档库,并将其作为新工作流重新添加。您必须给它一个唯一的名称,如“MyWorkflow_v2”。另一个副作用是,现在文档库中有两个工作流状态列。一旦第一个实例的所有实例都完成并且不再需要状态,就可以删除/隐藏第一个实例

如果使用相同的功能和清单XML文件重新部署工作流,则内部GUID将与第一次部署中使用的GUID相同。SharePoint会将此识别为同一工作流的第二个“版本”,并自动将第一个版本设置为“无新实例”状态。但是,如果您选择在XML文件中使用不同的GUID,SharePoint会将其视为全新工作流的部署,而不会对现有实例执行任何操作。您需要手动将每个文档库中的每个实例设置为“无新实例”设置

在重新部署工作流的第二个“版本”后,您仍然需要手动访问要使用它的每个文档库,并将其添加到文档库中。请记住,它的工作流模板名称将显示在工作流模板列表中,与它在XML文件中的名称相同(这是可以的),但一旦添加它,您将需要为工作流输入唯一的工作流名称。这是您必须选择类似“Workflow_v2”的名称作为新名称的一点

“收回”操作将删除解决方案中功能的所有实例,特别是对于我的工作流应用程序,它将从与其关联的所有文档库中删除工作流的所有实例。但是,在由工作流创建任务的情况下,如果用户单击希望获得签名页的任务项,则一旦撤回解决方案,他们将获得SharePoint“未知错误”页。原因是收回过程从数据库中删除了工作流,并且不再有与任务关联的工作流


我想你已经读过克里斯·奥布莱恩对这个话题的评论了。这里是第二个链接: