0

워크 플로를 시작하는 자바 스크립트 코드가 있습니다. 모든 것이 내 온 개발자 컴퓨터에서 작동합니다. 그러나 온라인 사이트에서 실행하려고하면 실패합니다.sharepoint - 시작 워크 플로우 jsom 스크립트는 전제 조건에서는 작동하지만 온라인에서는 실패합니까?

는 workflow.asmx 웹 서비스를 기반으로, 나는 오류 (500)를 얻을 수있다 - 값이 예상 범위에 해당하지 않습니다 ...

내가이 워크 플로 매개 변수에 의심. 하지만 나는 정확히 무엇을 볼 수 없습니다. 사용자 로그인은 다르지만 온라인 형식과 호환됩니다 ...

온 프레미스와 온라인의 차이점을 설명하는 데 도움이되는 설명이 있습니까?

function StartMyWorkflow(listGUID, itemId) { 

    var wfDefinitionId = "{9279E1FF-1D32-4423-85B7-C7F21998A701}"; 

    var ctx = SP.ClientContext.get_current(); 
    var web = ctx.get_web(); 
    var list = web.get_lists().getById(listGUID); 
    var item = list.getItemById(itemId); 
    var currentUser = web.get_currentUser(); 

    ctx.load(web); 
    ctx.load(item); 
    ctx.load(currentUser); 

    ctx.executeQueryAsync(
     Function.createDelegate(this, function() { 
      var login = currentUser.get_loginName(); 
      var name = currentUser.get_title(); 
      var xml = getWFAssocData(name, login); 

      var fileRef = "https://" + location.host +  item.get_item("FileRef"); 

      $().SPServices({ 
       operation: "StartWorkflow", 
       item: fileRef, 
       templateId: wfDefinitionId, 
       workflowParameters: xml, 
       completefunc: function() { 
        SP.UI.Notify.addNotification('workflow started', false);      
       } 
      }); 
     }), 
     function (s, a) { console.error(a.get_message());} 
    ); 
} 


function getWFAssocData(name, login) { 
    var assocData = '<dfs:myFields   xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dms="http://schemas.microsoft.com/office/2009/documentManagement/types" xmlns:dfs="http://schemas.microsoft.com/office/infopath/2003/dataFormSolution" xmlns:q="http://schemas.microsoft.com/office/infopath/2009/WSSList/queryFields" xmlns:d="http://schemas.microsoft.com/office/infopath/2009/WSSList/dataFields" xmlns:ma="http://schemas.microsoft.com/office/2009/metadata/properties/metaAttributes" xmlns:pc="http://schemas.microsoft.com/office/infopath/2007/PartnerControls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' + 
       '<dfs:queryFields></dfs:queryFields>' + 
       '<dfs:dataFields>' + 
       '<d:SharePointListItem_RW>' + 
       '<d:Approvers>' + 
       '<d:Assignment>' + 
       '<d:Assignee>' + 
       '<pc:Person><pc:DisplayName>' + name + '</pc:DisplayName><pc:AccountId>' + login + '</pc:AccountId><pc:AccountType>User</pc:AccountType></pc:Person>' + 
       '</d:Assignee>' + 
       '<d:Stage xsi:nil="true" />' + 
       '<d:AssignmentType>Serial</d:AssignmentType>' + 
       '</d:Assignment>' + 
       '</d:Approvers>' + 
       '<d:ExpandGroups>true</d:ExpandGroups>' + 
       '<d:NotificationMessage>Please approve <a href="#1">test</a></d:NotificationMessage>' + 
       '<d:DueDateforAllTasks xsi:nil="true" /><d:DurationforSerialTasks xsi:nil="true" />' + 
       '<d:DurationUnits>Day</d:DurationUnits>' + 
       '<d:CC />' + 
       '<d:CancelonRejection>true</d:CancelonRejection>' + 
       '<d:CancelonChange>false</d:CancelonChange>' + 
       '<d:EnableContentApproval>false</d:EnableContentApproval>' + 
       '</d:SharePointListItem_RW>' + 
       '</dfs:dataFields>' + 
       '</dfs:myFields>'; 

    return assocData; 

} 

답변

0

그것은 명백한만큼 바보로 밝혀 :

는 경우에, 여기에 (다시, 완벽하게 정상적으로 onpremise) 내 코드입니다. 방금 fileRef url에 's'가 누락되었습니다. 위의 스크립트를 수정 했으므로 실제로는 완전히 작동합니다.