当前位置:  开发笔记 > 运维 > 正文

通过List Webservice更新列表项来触发SharePoint Workflow

如何解决《通过ListWebservice更新列表项来触发SharePointWorkflow》经验,为你挑选了1个好方法。

我正在开发一个简单的SharePoint顺序工作流,它应绑定到文档库.将小工作流程与文档库关联时,我检查了这些选项

允许具有"编辑项目权限"的经过身份验证的用户手动启动此工作流.

创建新项目时启动此工作流程.

更改项目时启动此工作流程.

现在我将文档上传到此库,工作流程启动,例如发送邮件.它完成了,一切都很好.

当我在新项目上选择编辑属性并保存更改时,将再次触发工作流程.绝对是我们的期望.

即使在Copy.asmx Webservice的帮助下将新项目复制到库中,工作流程也会正常启动.

现在我想通过SharePoint WebService Lists.asmx更新项目.

我的CAML在这里:


  1
  NewValue

项目正在更新(时间戳已更改并且还具有虚拟属性)但工作流程不会再次启动.

这种行为可以在我们的开发测试系统上重现.

检查错误日志(C:\ Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS)我发现了一条奇怪的错误消息:

09/25/2008 16:51:40.17  w3wp.exe (0x1D94)                           0x1D60  Windows SharePoint Services     General                         6875    Critical    Error loading and running event receiver Microsoft.SharePoint.Workflow.SPWorkflowAutostartEventReceiver in Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c. Additional information is below.  : The object specified does not belong to a list.

有谁可以证实这种行为?或任何解决方案提示?


我随时向您通报有关该主题的任何进展.



1> Johannes Häd..:

最后,我们完成了Microsoft的支持服务流程并获得了解决方案!

首先,微软称这是一个错误.这是一个小错误,因为有一个很好的解决方法,所以可能需要一些更长的时间,直到这个错误将被修复(支持技术人员说下一个服务包或下一个版本(!)的东西).

但现在为了这个问题.

reaseon

我们来看看我的问题中的CAML代码:


  1
  NewValue

由于任何原因,Workflow Manager无法使用ID,我们在第二行输入.奇怪的是,所有其他SharePoint命令都使用ID,但不使用Workflow Manager.Workflow Manager使用"完全限定"的文档名称.因此,由于我们没有任何线索并且未输入任何完全限定的文档名称,因此Workflow Manager默认使用当前文档库的名称.现在错误消息开始有意义:

The object specified does not belong to a list.

当然,对象(文档库)不属于列表,它是列表.

解决方案

我们必须在CAML查询中再添加一行:

/sites/mySite/myDocLib/myFolder/myDocument.txt

FileRef将完全限定的文档名称传递给Workflow Manager,它现在非常开心 - 启动项目的工作流程.

请注意,您必须包含完整的绝对服务器路径,省略您的服务器名称(例如,在您的SPItem的ServerRelativePath属性中找到).

完整的CAML查询:

 
    1
    /sites/mySite/myDocLib/myFolder/myDocument.txt
    NewValue
  

未来

也许这种未记录的行为可能会在即将推出的一个服务包中修复,也许不会.Microsoft支持道歉,并将发布有关此主题的MSDN文章.对于下个月,我希望关于stackoverflow的这篇文章能够帮助开发人员处理相同的情况.

谢谢阅读!

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有