以前は、FetchXML が結果を xml 形式で提供していましたが、サーバーを変更したため、この機能が機能string ret = service.Fetch(fetchXml);
しなくなったため、別のソリューションに頼る必要がありましたが、これにより XML ファイルを作成する作業が増えました。
フェッチ文字列の例:
string fetchXml = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='account'>
<attribute name='name'/>
<attribute name='telephone1'/>
</entity>
</fetch>";
EntityCollection ec = organizationProxy.RetrieveMultiple(new FetchExpression(fetchXml));
XElement rootXml = new XElement("account");
foreach (Entity account in ec.Entities)
{
if (account.Attributes.Contains("name"))
{
rootXml.Add(new XElement("name", account.Attributes.Contains("name") ? account["name"] : ""));
rootXml.Add(new XElement("telephone1", account.Attributes.Contains("telephone1") ? account["telephone1"] : ""));
}
}
res.XmlContent = rootXml.ToString();
ここで行っているのは、XML 文字列を手作業で作成することです。CRM が結果を XML で提供できることはわかっています。 -7306-4d76-863d-9508d88c1b68/dynamic-crm-2011-fetchxml-results-into-xmltextreader-to-build-an-xml-output )しかし、これにより、コードよりも多くの作業が可能になります。それとも他に解決策はありませんか?