【问题标题】:SharePoint 2013 REST API AJAX update workflow taskSharePoint 2013 REST API AJAX 更新工作流任务
【发布时间】:2016-11-04 21:46:44
【问题描述】:

我需要你的帮助。 我想完成自定义工作流任务,(SH 2010 WF)在 2013 年运行。 我一直在使用一段代码。在 JavaScript AJAX 中使用 Rest API 更新任务列表。 我用其他列表测试此代码并运行正常,但是当我想更新任务列表时。我收到了不同的错误消息。

如果我想更新 Title 提交,我收到了 ""message":{"lang":"es-ES","value":"Value 不在预期范围内。"}}},"status" :400,"statusText":"错误请求"}"

如果我想更新结果字段,我可以在属性中看到该字段。

您对如何使用 Rest API 处理工作流任务及其内容类型有任何概念性描述

提前致谢 拉米罗

我将分享我的代码。

function updateJson(endpointUri,payload, success, error) 
{          
    return getFormDigest('https://partner.coca-cola.com/sites/SLBU2013Test/POC').then(function (data) {
        $.ajax({       
           url: endpointUri,   
           type: "POST",   
           data: JSON.stringify(payload),
           contentType: "application/json;odata=verbose",
           headers: { 
              "Accept": "application/json;odata=verbose",
              "X-RequestDigest" :  data.d.GetContextWebInformation.FormDigestValue,
              "X-HTTP-Method": "MERGE",
               "If-Match": "*"
           },   
           success: success,
           error: error
        });
    });
}

function getItemTypeForListName(name) {
    console.log("SP.Data." + name.charAt(0).toUpperCase() + name.slice(1) + "ListItem");

    return"SP.Data." + name.charAt(0).toUpperCase() + name.slice(1) + "ListItem";

}

function updateListItem(webUrl,listTitle,listItemId,itemProperties,success,failure)
{

         var listItemUri =  webUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/items(" + listItemId + ")";
         console.log(listItemUri);
         var itemPayload = {
             '__metadata': {'type': 'SP.Data.TasksListItem'}
           };
         for(var prop in itemProperties){
               itemPayload[prop] = itemProperties[prop];
               console.log(itemProperties[prop]);
         }
         updateJson(listItemUri,itemPayload,success,failure);

}

function getFormDigest(webUrl) {
    return $.ajax({
        url: webUrl + "/_api/contextinfo",
        method: "POST",
        headers: { "Accept": "application/json; odata=verbose" }
    });
}

function Calcular (){

    var itemProperties = {'Status':'Completadas'};
    updateListItem('https://partner.coca-cola.com/sites/SLBU2013Test/POC','Tasks',2,itemProperties,printInfo,logError);
    function printInfo()
    {
        console.log('Item has been created');
    }
    function logError(error){
        console.log(JSON.stringify(error));
    }

};

【问题讨论】:

  • 我们遇到了同样的问题。你找到解决办法了吗?

标签: workflow


【解决方案1】:

还有一个类似的帖子。我的回答是进行一些屏幕抓取并将用户重定向到 UI。简而言之,我们无法使用 REST 更新列表,但可以使用 CSOM。无论如何,WF 忽略了任务更改。这是链接:Update task item programatically in Sharepoint with CSOM

【讨论】:

    猜你喜欢
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 2023-03-04
    • 2013-06-06
    相关资源
    最近更新 更多