Javascript Buat dan Perbarui Catatan Di Dynamics CRM dari Tombol Kustom

Saya memiliki persyaratan untuk membuat dan memperbarui beberapa catatan dari tombol khusus. Tombol khusus ini ditempatkan di beranda kontak. Pertama, saya perlu memeriksa satu atau lebih kontak. Setelah tombol kustom diklik, itu membuat akun di entitas akun kemudian memperbarui bidang pencarian kontak yang saya periksa sebelumnya dengan akun yang kita buat.

Saya mencoba langkah di dalam tautan dan ini, namun tampaknya tidak berfungsi untuk Dynamics CRM 2016 lokal

Bisakah Anda membantu saya dan memberi saya saran atau film dokumenter lain yang menurut Anda dapat memenuhi kebutuhan saya di atas.

DIEDIT: di SDK, ada contoh penggunaan JQueryRestDataOperation. Dari sana, saya menulis kode seperti ini:

    function createAccount() {

 startButton.attr("name");

 var account = {};

 account.Name = "Test Account Name";

 account.Description = "This account was created by the JQueryRESTDataOperations sample.";



 //Create the Account

 SDK.JQuery.createRecord(

     account,

     "account",

     function (account) {

      writeMessage("The account named "" + account.Name + "" was created with the AccountId : "" + account.AccountId + "".");

      writeMessage("Retrieving account with the AccountId: "" + account.AccountId + "".");

      retrieveAccount(account.AccountId)

     },

     errorHandler

   );



}

Saya menambahkan kode ini sebagai sumber daya web dalam solusi saya, lalu memanggilnya dari tombol khusus. Tapi tidak terjadi apa-apa.

Terima kasih


person Fikri Hailal    schedule 21.08.2016    source sumber


Jawaban (1)


Untuk Membuat Akun Anda dapat menggunakan kode yang diberikan di bawah ini. Saat mengklik tombol, panggil fungsi CreateAccount()

function CreateAccount() { 
    var accountId, accountName;
    var context = Xrm.Page.context; 
    var serverUrl = context.getServerUrl(); 
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc"; 
    var CRMObject = new Object(); 
    ///////////////////////////////////////////////////////////// 
    // Specify the ODATA entity collection 
    var ODATA_EntityCollection = "/AccountSet"; 
    ///////////////////////////////////////////////////////////// 
    // Define attribute values for the CRM object you want created 
    CRMObject.Name = "TEST";
    accountName = "TEST"; 
    CRMObject.Telephone1 = "123"; 
    CRMObject.Fax = "456"; 
    //Parse the entity object into JSON 
    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, 
        data: jsonEntity, 
        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) { 
            alert("success"); 
            var NewCRMRecordCreated = data["d"]; 
            accountId = NewCRMRecordCreated.AccountId;
            UpdateContact(accountId,accountName); 
        }, 
        error: function (XMLHttpRequest, textStatus, errorThrown) { 
            alert("failure"); 
        } 
    }); 
}

Untuk Memperbarui kontak

function UpdateContact(accountId, accountName) {
    var serverUrl = Xrm.Page.context.getServerUrl().toString();
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
    var ODATA_EntityCollection = "/AccountSet";

    var objContact = new Object();
    // set the name of Account
    objContact.Id = Xrm.Page.data.entity.getId();

    // set the Primary Contact lookup field
    objContact.AccoutId = { Id: accountId, LogicalName: "account", Name: accountName };

    // Parse the entity object into JSON 
    var jsonEntity = window.JSON.stringify(objContact);

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        url: serverUrl + ODATA_ENDPOINT + ODATA_EntityCollection,
        data: jsonEntity,
        beforeSend: function (XMLHttpRequest) {
            XMLHttpRequest.setRequestHeader("Accept", "application/json");
        },
        success: function (response) {
            if (response != null && response.d != null) {
                alert(response.d.ContactId);
            }
        },
        error: function (xmlHttpRequest, textStatus, errorThrown) {
            alert("Status: " + textStatus + "; ErrorThrown: " + errorThrown);
        }
    });
}

person Meet    schedule 22.08.2016
comment
terima kasih atas kode Anda. Satu pertanyaan. File .js apa yang Anda tambahkan untuk referensi web? Saya hanya menambahkan jquery.1.9.1 dan SDK.jquery. Apakah ada file js yang hilang dari sumber daya web saya? - person Fikri Hailal; 22.08.2016
comment
Saya tidak tahu apa yang salah di sini, tetapi kode Anda tidak berfungsi. Saya pikir ada persyaratan yang saya lewatkan - person Fikri Hailal; 23.08.2016
comment
Sudahkah Anda mencoba men-debug kode menggunakan F12? Jika ya, tolong beri tahu saya karena kode ini berfungsi dengan baik untuk saya. - person Meet; 23.08.2016
comment
Hai @meet, kode Anda dijalankan setelah saya mengubah getServerUrl menjadi getClientUrl - person Fikri Hailal; 30.08.2016