CRM fornisce nativamente un endpoint di tipo OData attraverso il quale è possibile interagire con differenti librerie Javascript:
- Ajax
- JQuery
- ..
Ajax:
è una tecnica per sviluppare applicazioni altamente dinamiche fondendo insieme le caratteristiche di HTML e JavaScript utilizzando l’oggetto XMLHttpRequest per la manipolazione dei dati.
La novità di AJAX rispetto ad altre tecniche è che consente alla pagina di interagire con risorse esterne, ad esempio database o file XML, incorporando il risultato dell’elaborazione direttamente nella pagina stessa senza che sia necessario ricaricarla. Questa caratteristica migliora l’interazione dell’utente con il sito ed incrementa la velocità di caricamento, consentendo di realizzare applicazioni web molto simili a strumenti software per desktop.
di seguito un esempio di chiamata a OData con Ajax:
var account = {};
account.Name = “Sample Account”;
var jsonAccount = JSON.stringify(account);var createAccountReq = new XMLHttpRequest();
createAccountReq.open(“POST”, Xrm.Page.context.getClientUrl() + “/XRMServices/2011/OrganizationData.svc/AccountSet”, true);
createAccountReq.setRequestHeader(“Accept”, “application/json”);
createAccountReq.setRequestHeader(“Content-Type”, “application/json; charset=utf-8”);
createAccountReq.onreadystatechange = function () {
createAccountReqCallBack(this);
};
createAccountReq.send(jsonAccount);function createAccountReqCallBack(createAccountReq) {
if (createAccountReq.readyState == 4 /* complete */) {
createAccountReq.onreadystatechange = null; //avoids memory leaks
if (createAccountReq.status == 201) {
//Success
var newAccount = JSON.parse(createAccountReq.responseText).d;
}
else {
//Failure
errorHandler(createAccountReq);
}
}
};
JQuery:
jQuery è un framework realizzato in Javascript per la programmazione di script lato client proprio attraverso il linguaggio con cui è stato realizzato. Grazie a jQuery è possibile realizzare, attraverso pochissime righe di codice, script altrimenti molto complessi che consentono di creare effetti su testo, immagini, controlli di varia natura e di interagire in modo semplice e diretto con i CSS, con AJAX e cosi via.
di seguito un esempio di chiamata a OData con JQuery:
var account = {};
account.Name = “Sample Account”;
var jsonAccount = window.JSON.stringify(account);
$.ajax({
type: “POST”,
contentType: “application/json; charset=utf-8”,
datatype: “json”,
url: Xrm.Page.context.getClientUrl() + “/XRMServices/2011/OrganizationData.svc/AccountSet”,
data: jsonAccount,
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) {
account = data.d;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
errorHandler(XMLHttpRequest, textStatus, errorThrown);
}
});