2016-03-23 4 views
0

これは私のシナリオです。 Microsoft Dynamicsのコーディングが初めてのので、コードの解決策が必要です。MS CRMで動作しないレコードの取得と更新

AccとConという2つのエンティティがあります(Accは親、ConはAccの子エンティティです)。

私は2つのエンティティに似たようなデータ型を持つフィールドとともにAccエンティティの参照フィールドを作成しました。

親レコードの変更がフィールドで行われ、保存されると、その変更は子レコードの対応するフィールドで自動的に行われます。

エラーが発生する部分は、更新することですが、コードを取得することができます。したがって、レコードは更新されません。

私が手にエラーになりました

にReferenceErrorです:FetchRecordsCallBackは、あなたの答え

Object.GetRecs.jQuery.ajax.successで定義されていないと提案を要求され、歓迎されています。 :)以下は私のコードです。

function accupdate() { 
debugger; 
var PrvdLocData; 
var name; 
var age; 
var sex; 
var address; 
var phonenumber; 
var degree; 
var sslcpercentage; 
var hscpercentage; 
var ugpercentage; 

var PrvdLocData = new Array(); 

var EmpId = Xrm.Page.data.entity.getId(); 

//parent fields 
if (Xrm.Page.getAttribute("new_name").getValue() != null) { 
    name = Xrm.Page.getAttribute("new_name").getValue(); 
} 

if (Xrm.Page.getAttribute("new_age").getValue() != null) { 
    age = Xrm.Page.getAttribute("new_age").getValue(); 
} 

if (Xrm.Page.getAttribute("new_sex").getValue() != null) { 
    sex = Xrm.Page.getAttribute("new_sex").getValue(); 
} 

if (Xrm.Page.getAttribute("new_address").getValue() != null) { 
    address = Xrm.Page.getAttribute("new_address").getValue(); 
} 

if (Xrm.Page.getAttribute("new_phonenumber").getValue() != null) { 
    phonenumber = Xrm.Page.getAttribute("new_phonenumber").getValue(); 
} 

if (Xrm.Page.getAttribute("new_degree").getValue() != null) { 
    degree = Xrm.Page.getAttribute("new_degree").getValue(); 
} 

if (Xrm.Page.getAttribute("new_sslcpercentage").getValue() != null) { 
    sslcpercentage = Xrm.Page.getAttribute("new_sslcpercentage").getValue(); 
} 

if (Xrm.Page.getAttribute("new_hscpercentage").getValue() != null) { 
    hscpercentage = Xrm.Page.getAttribute("new_hscpercentage").getValue(); 
} 

if (Xrm.Page.getAttribute("new_ugpercentage").getValue() != null) { 
    ugpercentage = Xrm.Page.getAttribute("new_ugpercentage").getValue(); 
} 


var context = Xrm.Page.context; 
var serverurl = context.getClientUrl(); 
var ODatapath = serverurl + "/XRMServices/2011/OrganizationData.svc"; 
var retrieveResult = new XMLHttpRequest(); 
var dtqeurl = ODatapath + "/new_conSet?$select=new_name,new_YourAge,new_YourSex,new_HomeAddress,new_Contact,new_DegreeType,new_SSLCPercent,new_HSCPercent,new_conId,new_UGPercent&$filter=new_AccName/Id eq guid'" + EmpId + "'"; 
GetRecs("PrvtLoc", dtqeurl); 

function GetRecs(entity, url) { 
    jQuery.ajax({ 
     type: "GET", 
     contentType: "application/json; charset=utf-8", 
     datatype: "json", 
     url: url, 
     async: false, 
     beforeSend: function XMLHttpRequest(XMLHttpRequest) { 
      XMLHttpRequest.setRequestHeader("Accept", "application/json"); 

     }, 
     success: function (data, textStatus, XmlHttpRequest) { 
      if (data && data.d != null && data.d.results != null) { 
       AddRecordsToArray(data.d.results, entity); 

      } 
     }, 
     error: function (XmlHttpRequest, textStatus, errorThrown) { 
      // alert("Error : has occured during retrieval of the records "); 
     } 
    }); 
} 

function AddRecordsToArray(result, entity) { 
    $.each(result, function() { 

     if (entity == "PrvtLoc") 
      PrvdLocData.push(this); 


    }); 
} 
if (PrvdLocData.length > 0) { 

    for (i = 0; i < PrvdLocData.length; i++) { 

     //Object Assigning 

     var crmobject = new Object(); 

     //Variable declaration for Child entity's primarykey (ID) 

     var childId = PrvdLocData[i].new_conId; 

     //Setting child entitiy's value with parent entity's variable 

      crmobject.new_name = name; 
      crmobject.new_YourAge = parseInt(age); 
      crmobject.new_YourSex = sex; 
      crmobject.new_HomeAddress = toString(address); 
      crmobject.new_Contact = parseInt(phonenumber); 
      crmobject.new_DegreeType = degree; 
      crmobject.new_SSLCPercent = sslcpercentage; 
      crmobject.new_HSCPercent = hscpercentage; 
      crmobject.new_UGPercent = ugpercentage; 


     // update starts... 

    var serverUrl = Xrm.Page.context.getClientUrl(); 

    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc"; 
    var crmobject = new Object(); 
    // Specify the ODATA entity collection 
    var ODATA_EntityCollection = "/new_conSet"; 
    var jsonEntity = window.JSON.stringify(crmobject); 
     //Asynchronous AJAX function to Create a CRM record using OData 
     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      datatype: "json", 
      url: serverUrl + ODATA_ENDPOINT + ODATA_EntityCollection + "(guid'" + childId + "')", 
      data: jsonEntity, 
      beforeSend: function (XMLHttpRequest) { 
       //Specifying this header ensures that the results will be returned as JSON. 
       XMLHttpRequest.setRequestHeader("Accept", "application/json"); 
       XMLHttpRequest.setRequestHeader("X-HTTP-Method", "MERGE"); 
      }, 
      success: function (data, textStatus, XmlHttpRequest) { 
       alert("updated"); 



      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert("fail to update"); 
      } 
     }); 
    } 


} 

}

答えて

0
 crmobject.new_name = name; 
     crmobject.new_YourAge = parseInt(age); 
     crmobject.new_YourSex = { Value: sex }; 
     crmobject.new_HomeAddress = address;    
     crmobject.new_Contact = parseInt(phonenumber); 
     crmobject.new_DegreeType = { Value: degree }; 
     crmobject.new_SSLCPercent = parseFloat(sslcpercentage).toFixed(2); 
     crmobject.new_HSCPercent = parseFloat(hscpercentage).toFixed(2); 
     crmobject.new_UGPercent = parseFloat(ugpercentage).toFixed(2); 
+0

ケアあなたの答えを説明するには? –

関連する問題