如何更新没有 ID 列的 SharePoint 列表项

How to update SharePoint List Item with no ID column

我正在尝试更新 SharePoint 列表中归档的状态。做了一些谷歌搜索,发现大多数示例都使用 ID 列来定位列表项,但我的列表没有这样的列,只有 windows 登录和状态列。我想知道 XML 会是什么样子?

这是我想出来的,但它不起作用:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
  <UpdateListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">       
    <listName>SPUsers</listName>
    <updates>
      <Batch PreCalc='TRUE' OnError='Continue'>
        <Method ID="1" Cmd="Update">
          <Field Name="ID">ABC</Field>
          <Field Name="ItemStatus">Completed?ID=ABC</Field>
        </Method>
      </Batch>
    </updates>
  </UpdateListItems>
</soapenv:Body>
</soapenv:Envelope>

这是结果:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
  <UpdateListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
    <UpdateListItemsResult>
      <Results>
        <Result ID="1,Update">
          <ErrorCode>0x80004005</ErrorCode>
          <ErrorText>Cannot complete this action.  Please try again.</ErrorText> 
        </Result>
      </Results>
    </UpdateListItemsResult>
  </UpdateListItemsResponse>
</soap:Body>
</soap:Envelope>

知道哪里出了问题吗?

谢谢。

我相信 SharePoint 中的所有列表项都有一个自动生成的 ID。我会使用列表视图或拉出列表项来查看 id 是否存在。

SharePoint 会自动生成列表项 ID,默认视图只是不显示 ID 字段,您可以进入列表视图设置以显示该字段,以便您知道 ID。