Introduction
In this blog we will see how to convert entity collection into XML and send as response in Azure Function in Dynamics 365 CRM.
Recently, one of our client required Lead details in XML format using Http request.
So we created Http Trigger Azure function to retrieve data from CRM and converted into XML and send it as response.
Please find below code to convert entity collection into XML format.
Steps 1: Connect to CRM
Steps 2: Retrieve collection of lead records
Here collection is a list of lead records.
Code to convert entity collection into XML:
//Convert Entity Collection records into XML var xEle = new XElement("LeadDetails", from lead in collection.Entities select new XElement("Lead", new XElement("Topic", (lead.Attributes.Contains("subject") && lead["subject"] != null) ? lead["subject"] : ""), new XElement("StatusReason", (lead.Attributes.Contains("statuscode") && lead["statuscode"] != null) ? lead.FormattedValues["statuscode"] : ""), new XElement("Salutation", (lead.Attributes.Contains("new_salutationn") && lead["new_salutationn"] != null) ? lead.FormattedValues["new_salutationn"] : ""), new XElement("Province", (lead.Attributes.Contains("address1_stateorprovince") && lead["address1_stateorprovince"] != null) ? lead["address1_stateorprovince"] : ""), new XElement("Language", (lead.Attributes.Contains("new_language") && lead["new_language"] != null) ? lead.FormattedValues["new_language"] : ""), new XElement("Owner", (lead.Attributes.Contains("ownerid") && lead["ownerid"] != null) ? lead.FormattedValues["ownerid"] : ""), new XElement("City", (lead.Attributes.Contains("address1_city") && lead["address1_city"] != null) ? lead["address1_city"] : ""), new XElement("Status", (lead.Attributes.Contains("statecode") && lead["statecode"] != null) ? lead.FormattedValues["statecode"] : ""), new XElement("PostalCode", (lead.Attributes.Contains("address1_postalcode") && lead["address1_postalcode"] != null) ? lead["address1_postalcode"] : ""), new XElement("LeadSource", (lead.Attributes.Contains("leadsourcecode") && lead["leadsourcecode"] != null) ? lead.FormattedValues["leadsourcecode"] : ""), new XElement("LeadUniqueId", lead.Id.ToString()) )); //return XML with 200 status code from Azure function return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(xEle.ToString(), Encoding.Default, @"application/xml"), };
We will get following output when we execute HTTP request.
This XML file does not appear to have any style information associated with it. The document tree is shown below:
New Français System Admin Open .................................. New English System Admin Open ................................... New Français System Admin Open .................................. . . . . . . . .
Conclusion
In this way, with the use of above code you will be able to convert Entity Collection into XML.