2016-10-20 4 views
1

일부 조건이 충족되면 Xrm.Page.context.getEventArgs().preventDefault(); 라인이 작동하지 않아 약속 생성을 막으려 고 레코드가 작성됩니다. 여기에 전체 코드는 통화가 동기 :Dynamics Crm 2016 online : 클라이언트 측 레코드 생성이 작동하지 않음

var req = new XMLHttpRequest(); 
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.0/appointments?$select=activityid&$filter=<my filter>", false); 
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.setRequestHeader("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\""); 
req.onreadystatechange = function() { 
    if (this.readyState === 4) { 
     req.onreadystatechange = null; 
     if (this.status === 200) { 
      var results = JSON.parse(this.response); 
      if(results.value.length > 0) 
      { 
       Xrm.Utility.alertDialog('It is impossible to create the appointment.'); 
       Xrm.Page.context.getEventArgs().preventDefault(); 
      } 
     } 
     else { 
      alert(this.statusText); 
     } 
    } 
}; 
req.send(); 

답변

1

귀하의 코드가 Xrm.Page.context.getEventArgs() 밖으로 erroring해야한다, 이벤트 인수에 대한 페이지의 컨텍스트 객체에 프로퍼티가 없다.

저장시 실행 컨텍스트를 전달한 다음 실행 컨텍스트의 이벤트 인수를 사용하여 저장을 중지해야합니다.

양식 사용자 정의 :

enter image description here

처리기 :

function onSave(executionContext) { 
    if(results.value.length > 0) 
    { 
    Xrm.Utility.alertDialog('It is impossible to create the appointment.'); 
    executionContext.getEventArgs().preventDefault(); 
    } 
} 
관련 문제