问题描述
是否可以通过rest api或JSOM以编程方式更新infopath表单库字段值?如果可以,您可以提供样品吗?
我已经尝试了两种方式,并且两次都收到了成功消息,尽管当我查看表单时,我尝试更新值的过程保持不变。
<script>
//Retrieve list items from sharepoint using API
function GetSampleListItems() {
siteURL = _spPageContextInfo.webAbsoluteUrl;
console.log("from top nav - " + siteURL);
var apiPath = _spPageContextInfo.webAbsoluteUrl +"/_api/lists/getbytitle('Training%20copy')/items/getbyid(9)";
$.ajax({
url: apiPath,type: "POST",headers: {
Accept: "application/json;odata=verbose"
},data: JSON.stringify
({
__Metadata:
{
type: "SP.Data.Training_x0020_copyItem"
},Position: "Show"
}),headers: {
"Accept": "application/json;odata=verbose","Content-Type": "application/json;odata=verbose","X-RequestDigest": $("#__REQUESTDIGEST").val(),"IF-MATCH": "*","X-HTTP-Method": "MERGE"
},async: false,success: function(data) {
alert("Item updated successfully");
},eror: function(data) {
console.log("An error occurred. Please try again.");
}
})
}
</script>
<button onclick="GetSampleListItems();" type="button">Click me</button>
解决方法
我不是程序员,也不了解API,但是InfoPath表单库中的文档只是带有花哨扩展名的XML文本文件。 InfoPath基本上是类固醇的XML编辑器。可以使用任何可以围绕XML层次结构找到文字的文本编辑方法来更改这些文件中的值。
但是请注意,InfoPath表单界面中的处理逻辑在显示或编辑表单时可能会被用来处理表单中的数据。例如,数据验证或某些字段值会根据其他字段的值自动设置。因此,仅通过后端破解字段值可能会导致不良结果。这也可能是您看不到已应用更改的原因。
,您可以参考以下文章,以通过rest api或JSOM更新listitem值:
https://www.codesharepoint.com/jsom/update-listitem-in-sharepoint-using-jsom
https://www.codesharepoint.com/rest-api/update-listitem-in-sharepoint-using-rest-api