我们正在使用一个 infopath 表单,提交后应该会触发自定义 .NET 工作流程。基本上,表单中的信息用于创建新的共享点站点。我看到发生的情况是,工作流程第一次运行(提交表单后自动运行),工作流程出错。当我在工作流程失败后立即手动运行该工作流程时,工作流程运行良好。
this.workflowProperties.Item["Client Name"]
我已将问题调试到上述行,其中工作流程Properties 的类型为 Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties。工作流第一次运行时,上面列出的属性(以及所有其他属性)均为空。第二次运行时,客户端名称属性应如此(从信息路径表单填充)。
另一个重要的信息是,这个工作流程在一年多的时间里一直运行良好,但几周前突然开始无法正常工作,没有任何特殊原因。过去一个月我们遇到了一些权限问题,但我看不出这与工作流程问题有何关系。我登录的用户是网站集管理员。我使用同一用户手动启动工作流程(成功)。我不认为工作流程以登录的用户身份运行(当它在表单提交时自动运行时)。
整个情况的另一个有趣的问题是:应用程序总共使用 3 个自定义工作流程。 2 个是在 Visual Studio 中制作的 - 其中一个工作正常,另一个正在显示上述行为。最后一个是在共享点设计器中制作的,但失败了。
在这一点上我愿意尝试任何事情。我在开发服务器上(它显示与生产完全相同的症状),所以我可以尝试任何事情。
我猜测这与从设置字段值的提交操作异步触发的工作流程有关。您可以尝试从列表中显式获取项目,而不是使用工作流属性中的项目吗?像下面这样:
SPListItem l_item =
workflowProperties.Item.List.Items.GetItemById(
workflowProperties.Item.Id
);
我不确定,但可能值得一试。
另一件要记住的事情是SPContext.Current
如果从 EventReceiver 调用,则对象将为 null,但如果手动调用,则该对象有效。听起来这不是问题所在,但仍然需要注意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)