Hoy he encontrado un nuevo proyecto publicado por Qiming Jaimie Ji (http://jaimiescode.blogspot.com.es/).
Se trata de una librearía de Javascript (básicamente, un fichero .js) que puede ser descargado de aquí:
http://xrmservicetoolkit.codeplex.com/
Lo bueno de esta librería es que me ha gustado mucho en "enfoque" que le dan, además de agradecer mucho que esta todo súper comentado y explicado.
La clase "XrmServiceToolkit", contiene a su vez 3 clases:
- .Common: contiene métodos comunes en el trabajo con javascript en CRM 2011, por ejemplo habilitar, ocultar, cambios de requeridos/opciones de campos, etc.
- .Rest: métodos CRUD utilizando el servicio REST (OrganizationData.svc)
- .Soap: métodos CRUS utilizando el servicio SOAP de CRM 2011
test("Test XrmServiceToolkit.Soap.Create() method to create a CRM record (contact)", function () { var createContact = new XrmServiceToolkit.Soap.BusinessEntity("contact"); createContact.attributes["firstname"] = "Diane"; createContact.attributes["lastname"] = "Morgan"; createContact.attributes["middlename"] = "<&>"; // Deliberate special characters to ensure that the toolkit can handle special characters correctly. createContact.attributes["gendercode"] = { value: 2, type: "OptionSetValue" }; createContact.attributes["familystatuscode"] = { value: 1, type: "OptionSetValue" }; // Picklist : Single - 1 createContact.attributes["creditlimit"] = { value: 2, type: "Money" }; 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); ok(guidExpr.test(contactId), "Creating a contact should returned the new record's ID in GUID format. "); });
test("Test XrmServiceToolkit.Rest.Create() method to create a new record", function () { var account = {}; account.Name = "Test Account Name"; account.Description = "This account was created by the XrmServiceToolkit.Rest.Create() sample."; if (contactId != null) { //Set a lookup value account.PrimaryContactId = { Id: contactId, LogicalName: "contact" }; } //Set a picklist value account.PreferredContactMethodCode = { Value: 2 }; //E-mail //Set a money value account.Revenue = { Value: "2000000.00" }; //Set Annual Revenue //Set a Boolean value account.DoNotPhone = true; //Do Not Allow //Add Two Tasks var today = new Date(); var startDate = new Date(today.getFullYear(), today.getMonth(), today.getDate() + 3); //Set a date three days in the future. var LowPriTask = { Subject: "Low Priority Task", ScheduledStart: startDate, PriorityCode: { Value: 0} }; //Low Priority Task var HighPriTask = { Subject: "High Priority Task", ScheduledStart: startDate, PriorityCode: { Value: 2} }; //High Priority Task account.Account_Tasks = [LowPriTask, HighPriTask]; XrmServiceToolkit.Rest.Create( account, "AccountSet", function (result) { accountId = result.AccountId; ok(guidExpr.test(result.AccountId), "Creating a account should returned the new record's ID in GUID format. "); }, function (error) { equal(true, false, error.message); }, false ); });La publico porque me parece que tiene una forma súper sencilla de utilizar, y que es de muy fácil evolución.
un saludo,
buen aporte
ResponderEliminar