2016-07-19 1 views
1

업데이트 :이 코드는 실제로 원하는대로 레코드를 만듭니다. 혼란 스럽지만 성공 콜백이 실행되지 않지만 오류 콜백이 있습니다. 이것이 내포 할 것임을 확신 할 수 없습니다.다이나믹 CRM 문제 자바 스크립트/HTML 웹 리소스로 레코드 만들기

HTML 웹 리소스를 사용하여 dynamics crm에서 레코드를 만들려고합니다. 작성중인 레코드는 사용자 정의 엔티티 용입니다.

function postAnswers() { 
    var serverUrl = Xrm.Page.context.getClientUrl(); 
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc"; 
    var odataSetName = "new_regquestionanswersSet" 
    var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName; 

    var answer = {}; 
    // Define attribute values for the CRM object you want created 
    answer.new_name = "Test Answer!"; 

    //Parse the entity object into JSON 
    var jsonAnswer = window.JSON.stringify(answer); 
    //Asynchronous AJAX function to Create a CRM record using OData 
    $.ajax({ type: "POST", 
     contentType: "application/json; charset=utf-8", 
     datatype: "json", 
     url: odataUri, 
     data: jsonAnswer, 
     beforeSend: function (XMLHttpRequest) { 
      //Specifying this header ensures that the results will be returned as JSON. 
      XMLHttpRequest.setRequestHeader("Accept", "application/json"); 
     }, 
     success: function (data, textStatus, XmlHttpRequest) { 
      answer = data.d; 
      alert("success"); 
     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      alert("failure"); 
      console.log(textStatus); 
     } 
    }); 
} 

postAnswers()는 형태로 내장 된 HTML 웹 자원의 버튼을 클릭에서 실행되는 다음과 같이 레코드를 작성해야하는 코드입니다. 이유가 확실하지 않지만 "실패"로 돌아오고 textStatus는 "오류"입니다. 그것 이외에, 나는 콘솔에서 뻔뻔스런 오류를 얻지 않을 것이다. 그것은 문제 해결을 어렵게 만든다.

이 코드가 레코드를 생성하지 못하는 데 예상되는 이유가 있습니까? 또는 요청이 실패하는 이유는 무엇입니까? 어떤 도움을 주셔서 대단히 감사합니다.

+1

Fiddler와 트래픽을 캡처할만한 가치가 있을지도 모르지만 동일한 '오류'가 발생할 수 있지만 이전에는 추가 세부 정보가 노출 된 것을 보았습니다. –

+0

"textStatus"오류 메시지를 보내 주시겠습니까? 나는 일반적으로이 오류 메시지를보고 나서 시작합니다. –

답변

1

jQuery 오류 콜백의 첫 번째 매개 변수는 jqXHR object이며 responseText 속성을 포함합니다. 오류에 대한 자세한 내용을 보려면 그 부분을보십시오.

errorsuccess 콜백은 jQuery 3.0에서 faildone을 사용하는 것이 더 이상 사용되지 않습니다.

+0

응답 해 주셔서 감사합니다. 실례지만 내 텍스트는 어떻게됩니까? 나는 오류 콜백에'console.log (XMLHttpRequest.responseText)'를 포함 시키려고했으나, 콘솔은 공백을 표시한다. (이상한 방법으로 말하겠다.) 정의되지 않은 것을 인쇄하지는 않지만 console.log가 실행 된 행에는 아무것도 표시하지 않는다.) 희망은 그 말이 맞습니다. –

+0

올바른 접근법처럼 들립니다. XMLHttpRequest.responseText에 내 시스템에 new_regquestionanswersSet이 없다는 경고가 포함 된 변경없이 코드를 실행 해 보았습니다. var odataSetName = "new_regquestionanswersSet"을 odataSetName = "AccountSet"으로 변경하고 answer.new_name = "응답 테스트"! answer = Name "Test Answer!". 이 후 쿼리가 성공했습니다. 기본 Account 엔티티에서 같은 것을 시도해보고 그렇지 않으면 jqXHR을 파헤 치기 위해 브라우저에 중단 점을 설정합니까? –

+0

기본 Account 엔티티로 테스트 할 코드를 변경 한 후에도 동일한 문제가 발생했습니다. 정말 혼란 스럽다는 것은 실제로 코드가 ** 새로운 레코드를 생성하지만 jQuery ajax 호출이 오류 콜백을 발생 시킨다는 것입니다. –

관련 문제