2

我们正在使用一个 infopath 表单,当它提交时应该触发一个自定义的 .NET 工作流。基本上,表单中的信息用于创建新的共享点站点。我看到的情况是工作流第一次运行(提交表单后自动运行),工作流出错。当我在失败后立即手动运行工作流时,工作流运行良好。

this.workflowProperties.Item["Client Name"]

我已将问题调试到上面的行,其中 workflowProperties 的类型为 Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties。工作流第一次运行时,上面列出的属性(以及所有其他属性)为空。第二次运行时,客户端名称属性应该是(从 infopath 表单填充)。

另一个重要的信息是,这个工作流程在一年多的时间里运行良好,几周前突然开始无法正常工作,没有什么特别的原因。上个月我们遇到了一些权限问题,但我看不出这与工作流程问题有什么关系。我登录的用户是网站集管理员。我使用同一用户手动启动工作流程(成功)。我不认为工作流以登录的用户身份运行(当它在表单提交时自动运行时)。

整个情况的另一个有趣的问题是:应用程序总共使用了 3 个自定义工作流。2 个是在 Visual Studio 中制作的——其中一个工作正常,另一个显示上述行为。最后一个是在共享点设计器中制作的,但失败了。

在这一点上,我愿意尝试任何事情。我在开发服务器上(将确切的症状显示为生产),所以我可以尝试任何事情。

4

4 回答 4

1

我猜这与设置字段值的提交操作异步触发的工作流有关。您可以尝试从列表中显式获取项目,而不是使用工作流属性中的项目。类似于以下内容:

SPListItem l_item = 
      workflowProperties.Item.List.Items.GetItemById(
                 workflowProperties.Item.Id
      );

我不确定,但可能值得一试。

要记住的另一件事是,SPContext.Current如果从 EventReceiver 调用该对象将为 null,但如果手动调用该对象将是有效的。听起来这不是问题,但它仍然需要注意。

于 2009-03-04T14:31:44.557 回答
1

如果 InfoPath 表单是从 Vista 或 Win 7 计算机提交的,您可能会遇到为 InfoPath 表单中的字段获取 NULL 值的问题。尝试添加大约 10 秒的延迟活动,看看您是否能够从 InfoPath 获取字段的值。

有关详细信息,请参阅此链接:为什么我的 SharePoint 工作流在客户端运行 Vista 或 Windows 7 时失败?

于 2012-05-25T21:55:51.293 回答
0

尝试查看您的 SharePoint 日志。

它们位于 LOGS 文件夹中的 12-Hive 下 - 打开最新的并在其中查找带有“工作流基础架构”的内容,也许这可以为您指明正确的方向。

于 2009-03-13T14:46:25.183 回答
0

“解决方案”是进行导出并转移到新服务器。基本上只需使用 STSADM 进行导出操作,然后在新服务器上导入相同的文件。

看:

http://sharepointdogs.wordpress.com/2008/07/30/content-migration-or-backuprestore-in-moss-2007/

我在这个问题上与 Microsoft 支持人员通了几个小时的电话 - 我建议可能遇到此问题的其他任何人转移到新服务器。

于 2009-04-17T14:35:47.547 回答