>

아래의 코드가 작동하지 않아 완료로 변경되고 빠르게 변경됩니다. .................................................. .................................................. .................................................

function OnLoad() {
    Xrm.Page.data.process.addOnProcessStatusChange(statusOnChange);
}
function statusOnChange() {
    status = Xrm.Page.data.process.getStatus();
    if (status == "finished") {
        markAsComplete();
    }
}

function markAsComplete(){

    if (Xrm.Page.getAttribute("statecode") != null && Xrm.Page.getAttribute("statuscode") != null){
        Xrm.Page.getAttribute("statecode").setValue(1); //Changing Status to Completed
        Xrm.Page.getAttribute("statecode").setSubmitMode("always");

        Xrm.Page.getAttribute("statuscode").setValue(3); //Changing Status Reason to Completed
        Xrm.Page.getAttribute("statuscode").setSubmitMode("always");
    }else{
        alert("statecode field is not available on the form");
    }

}


  • 답변 # 1

    JavaScript에서 레코드 상태를 변경하려면 워크 플로를 호출하거나 PATCH 를 보내야합니다.  웹 API에 요청하십시오.

    웹 API를 통한 업데이트는 다음과 같습니다 :

    var appointmentId = Xrm.Page.data.entity.getId();
    var entity = {};
    entity.statuscode = 3;
    entity.statecode = 1;
    var req = new XMLHttpRequest();
    req.open("PATCH", Xrm.Page.context.getClientUrl() + "/api/data/v8.2/appointments(" + appointmentId + ")", true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 204) {
                //Success - No Return Data - Do Something
            }
            else {
                Xrm.Utility.alertDialog(this.statusText);
            }
        }
    };
    req.send(JSON.stringify(entity));
    
    

관련 자료

  • 이전 aggregate - Spark에서 큐브에없는 열 선택
  • 다음 Swift3 iOS의 UITextField에는 숫자 및 점 문자 만 허용되어야합니다