如何更新没有 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。
我正在尝试更新 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。