Biblioteca XrmServiceToolkit

by Pedro Azevedo 5. January 2013 23:17

Boas pessoal,

Hoje queria ressalvar um grande projeto oferecido a comunidade. É a biblioteca XrmServiceToolkit que podemos fazer download daqui: https://xrmservicetoolkit.codeplex.com/.

Esta biblioteca que tem um ficheiro único XrmServiceToolkit.js e basta colocar como Recurso Web. Nela temos funções genéricas, SOAP ou REST e que esconde toda a construção destas chamadas e que ajuda muito especialmente em requisições SOAP. Existe também os chamados métodos extendidos que permite por exemplo trabalhar com OptionSet dependentes.

Temos a possibilidade de fazermos estas chamadas síncronas ou assíncronas. Para além de suportar qualquer deploy do Dynamics CRM 2011 (On-Prem; IFD e Online)

Em resumo um espectáculo e mais qualquer alteração por exemplo na questão de suportar outros browsers e não podermos usar esta declaração var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"), esta biblioteca foi logo atualizada por isso só mudou um sitio.

 

Esta biblioteca depende de outras duas bibliotecas jQuery e JSON. Vocês podem ver as versões necessárias no site que referi.

Exemplo funções genéricas:

XrmServiceToolkit.Common.enableField(fieldName);

Exemplo Actualizar REST:

var account = {};
account.Name = "My Name";
account.Address1_City = "Lisboa";
account.Address1_Line1 = "Minha Rua";
account.EMailAddress1 = "psa@psazevedo.com";

XrmServiceToolkit.Rest.Update(
	accountId,
	account,
	"AccountSet",
	function () {
		alert("Foi atualizado");
	},
	function (error) {
		alert("ups... Erro")
	},
	false
);


Exemplo Retorno Múltiplo em REST:

XrmServiceToolkit.Rest.RetrieveMultiple(
    "ContactSet",
    "$select=ContactId, FullName",
    function (results) {
        alert(results.length);
        var fullname = results[0].FullName;
        alert(fullname);
    },
    function (error) {
        alert(error)
    },
    function onComplete() {
        alert('completed')
    },
    false
);

Exemplo Criação em SOAP:

var createContact = new XrmServiceToolkit.Soap.BusinessEntity("contact");
createContact.attributes["firstname"] = "Pedro";
createContact.attributes["lastname"] = "Azevedo";
createContact.attributes["gendercode"] = { value: 2, type: "OptionSetValue" };
createContact.attributes["birthdate"] = birthDate;
createContact.attributes["donotemail"] = true;
createContact.attributes["donotphone"] = false;
createContact.attributes["parentcustomerid"] = { id: accountId, logicalName: "account", type: "EntityReference" };
contactId = XrmServiceToolkit.Soap.Create(createContact);

Exemplo Pesquisa pelo ID:

var contactid = Xrm.Page.getAttribute("primarycontactid").getValue()[0].id;
var cols = ["firstname", "lastname", "middlename", "familystatuscode"];
var retrievedContact = XrmServiceToolkit.Soap.Retrieve("contact", contactid, cols);
alert(retrievedContact.attributes['lastname'].value);

Aproveitem estas benesses que a comunidade nos dá. Futuramente irei falar de outras bilbliotecas\ferramentas para nos auxiliar no dia-a-dia. Um bem haja ao Jaimie.

Até a próxima

Tags: , , , ,

About

Muito bem casado, Pai babado e um gosto muito grande pela tecnologia.

Tenho um lema "Sharing is Learning"

Mais aqui -> http://www.psazevedo.com

Month List