通过列表 Web 服务更新列表项来触发 SharePoint 工作流

2024-04-07

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

  • 允许手动执行此工作流程 由经过身份验证的用户启动 具有编辑项目权限。
  • 开始 当新项目出现时,此工作流程 创建的。
  • 启动此工作流程的时间 一个项目被改变。

现在,我将文档上传到该库,工作流程开始,例如发送一封邮件。它完成了,一切都很好。

当我选择新项目的“编辑属性”并保存更改时,工作流程将再次触发。绝对符合我们的预期。

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

But now我想更新该项目通过 SharePoint WebService Lists.asmx.

My CAML http://en.wikipedia.org/wiki/Collaborative_Application_Markup_Language转到这里:

<Method ID='1' Cmd='Update'>
  <Field Name='ID'>1</Field>
  <Field Name='myDummyPropertyField'>NewValue</Field>
</Method>

项目正在更新(时间戳已更改,虚拟属性也已更改),但工作流程不会再次启动。

这种行为可以在我们的开发中重现and测试系统。

检查错误日志(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.

有谁可以证实这种行为吗?或者有什么解决办法的提示吗?


我会随时向您通报有关此主题的任何进展。


最后,我们通过了微软的支持服务流程并得到了解决方案!

首先,微软表示这是一个错误。这是一个小错误,因为有一个很好的解决方法,因此可能需要更长的时间才能修复此错误(支持技术人员在下一个服务包或下一个版本中说了一些话(!))。

但现在问题来了。

原因

让我们看一下我的问题中的 CAML 代码:

<Method ID='1' Cmd='Update'>
  <Field Name='ID'>1</Field>
  <Field Name='myDummyPropertyField'>NewValue</Field>
</Method>

由于某种原因,工作流程管理器无法使用我们在第二行输入的 ID。奇怪的是,所有其他 SharePoint 命令都使用该 ID,但工作流程管理器则不然。 Workflow Manager 使用“完全限定”文档名称。因此,由于我们没有任何线索,也没有输入任何完全限定的文档名称,工作流程管理器默认使用当前文档库的名称。现在错误消息开始有意义:

The object specified does not belong to a list.

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

解决方案

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

<Field Name='FileRef'>/sites/mySite/myDocLib/myFolder/myDocument.txt</Field>

FileRef 将完全限定的文档名称传递给工作流程管理器,工作流程管理器现在非常高兴地启动该项目的工作流程。

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

完整的 CAML 查询:

 <Method ID='1' Cmd='Update'>
    <Field Name='ID'>1</Field>
    <Field Name='FileRef'>/sites/mySite/myDocLib/myFolder/myDocument.txt</Field>
    <Field Name='myDummyPropertyField'>NewValue</Field>
  </Method>

未来

也许这种未记录的行为将在即将推出的服务包之一中得到修复,也许不会。 Microsoft 支持人员已致歉,并将发布有关此主题的 MSDN 文章。在下个月,我希望 stackoverflow 上的这篇文章能够帮助遇到同样情况的开发人员。

谢谢阅读!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过列表 Web 服务更新列表项来触发 SharePoint 工作流 的相关文章

  • Web 服务 SOAP 请求适用于 SOAPUI,但不适用于 PHP

    我已经尝试了几乎所有我能找到的可能的解决方案 但我似乎无法让这个脚本工作 以下是我之前的一些尝试 如何使用 wse php 库通过 SOAP 连接到安全的 Web 服务 https stackoverflow com questions 1
  • XmlAdapter 到 JAXB 绑定 Joda 的时间间隔?

    我已经被 Web 服务的 JAXB 绑定问题困扰了几个小时 为了准备一个必须返回 Joda Time 类实例 即时 持续时间 间隔等 的更大的 Web 服务 我从一个只有一个返回 Interval 的方法的 Web 服务开始 package
  • 什么是 Service Worker 控制台? & 它在 Chrome 浏览器中的什么位置?

    我正在研究推送通知并遇到一个陌生的术语 service worker console 我已阅读并使用过该术语console log or web console在浏览器中 但我不熟悉这个术语service worker console 之后
  • iPhone - SSL 连接

    学习通过 iPhone 连接 ssl Web 服务的最佳起点是什么 到目前为止 我通过 SOAP 等通过 http 进行了一些基本连接 但我没有使用 https 的经验 任何好的资源 教程 起始参考 use nsurl class 都值得赞
  • 将 SAML 令牌与 Web 服务 (wsdl) 结合使用

    我已从提供商处获得了 wsdl 文件和 pfx 我致电 IdP 并获取 SAML 令牌 现在我需要将该令牌传递给 WebService 如何使用 SAML 令牌来处理 WebService 我正在使用 NET 4 5 在以下两篇文章的帮助下
  • 如何从对Web服务发出的请求中获取客户端IP地址

    我的 IIS 中托管有一个 Web 服务 当客户端直接使用我的服务时 我需要找出客户端 IP 地址 like http MyIpAddress MyApplication MyWebServiceClass asmx http MyIpAd
  • WSDL 能否指示 Web 服务的 SOAP 版本(1.1 或 1.2)?

    是否可以根据 WSDL 中的信息查看 Web 服务是使用 SOAP 1 1 还是 1 2 SOAP 1 1 使用命名空间http schemas xmlsoap org wsdl soap http schemas xmlsoap org
  • 活动工作流程与运行工作流程

    本周末在伊利诺伊州莱尔举行的 SharePoint Saturday 活动上 Robert Bogue 表示活动工作流和正在运行的工作流之间存在差异 我在网上查了一下 有人能解释一下吗 如果服务器上可以有多达数百万个活动工作流程 为什么每台
  • 在 WSDL 中包含 XSD

    我正在编写一个 wsdl 文件来在未来 SoapUI 中部署模拟服务 但我在包含我的 xsd 文件时遇到问题 XSD File
  • IMAP 转发器

    我想知道从 IMAP 帐户转发邮件的最快 最可靠的方法是什么 我的大学不允许我们的学生邮箱转发到私人电子邮件帐户 这里每个人都使用 Gmail 或 Hotmail 这是一个政治问题 而不是技术问题 我们确实可以通过 IMAP 访问邮箱 我想
  • 没有端点在 net.pipe://localhost/ 上监听

    我有两个 WCF 服务托管在 Windows Server 2003 计算机上的单个 Windows 服务中 如果 Windows 服务需要访问任一 WCF 服务 例如发生定时事件时 它将使用公开的五个命名管道端点之一 不同的服务协定 该服
  • 存储外部站点(不使用 OAuth)的用户凭据的智能方法是什么?

    我意识到 一般来说 您不应该直接存储用户凭据 即以纯文本形式 相反 最好存储它们的某种加密形式 但是 假设我创建了一个与其他第三方网站交互的网站 假设这个第 3 方站点提供了一个 API 需要用户的凭据 使用该站点 进行身份验证 如果我的目
  • Axis2 错误:要输出的文本中的空白字符 (0x4) 无效

    我创建了一个 Java 客户端 使用 Axis2 1 7 6 作为代码生成器与 SOAP Web 服务进行交互 问题在于客户端的某些输入抛出异常并显示以下消息 org apache axis2 AxisFault Invalid white
  • Android 中的 java.io.FileNotFoundException

    我正在使用代码从图库中选择图像 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout
  • sharepoint:使用内容编辑器 Web 部件时发生此错误:“此时无法检索属性。”

    我有一个内容编辑器 Web 部件 每当我编辑内容然后单击保存时 都会出现以下错误 Cannot retrieve properties at this time Cannot save your changes 你如何解决这个问题 我尝试用
  • 如何解决 ServiceConstructionException:找不到服务的定义?

    我有一个简单的应用程序 其中包含一个使用以下命令创建的 Web 服务Apache CXF 当我运行服务器和客户端时 该应用程序可以工作 如Java应用程序 当我尝试访问该应用程序时 services映射的URLweb xml Tomcat给
  • 动态 C#.NET Web 服务

    我在 C ASP NET 项目中使用一个类 允许用某种随机脚本语言编写的脚本动态公开 Web 服务方法 换句话说 该脚本应该能够公开具有任何签名的任何名称的方法 只要因为它是有效的 无论如何 通过这个 SOAP 接口向外界发送 能够随意添加
  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • REST URI 和对象上的操作,可以进行评论、标记、评级等

    我正在为我的公司研究一种 Web API 看起来我们可能会实现一个 RESTful API 我现在已经阅读了几本关于此的书籍 O Reilly 的 RESTful Web 服务 似乎最有用 并为可以评论 标记和评级的对象提出了以下一组 UR

随机推荐