无法使用 Azure 数据工厂从 Dynamics CRM 获取选项集字符串到 SQL Server。
我正在使用 Azure 数据工厂将数据从 Dynamics CRM 移动到 SQL DB。我使用fetchXML查询从源(CRM(获取数据。我能够毫无问题地获得正常的字符串和 guid 类型值。
但是CRM中的选项集字段以Int32
类型出现(即,我正在获取选项集的值,而不是字符串(。
如何解决此问题?
我也必须同步字符串映射实体,因为我超出了给定 FetchXML 查询的链接实体限制。
以下内容将引入选项集选择的文本值。
<link-entity name="stringmap" from="attributevalue" to="____" visible="false" link-type="outer" alias="____">
<filter type="and">
<condition attribute="objecttypecode" operator="eq" value="___"/>
</filter>
<attribute name="value"/>
</link-entity>
应为主机/根实体上"选项集"列的名称
别名要调用输出中的列的任何内容。我使用了与
值 这是主机/根实体的对象类型代码。它是一个整数值。
可能正在使用此方法获取 fetchxml 结果集作为动态源,以便使用 Azure 数据工厂转储到 SQL 中。您面临的问题是无法使用该选项列表选项的格式化文本值。
我们将在代码中使用以下语法使用格式化的值:
参考//Option set
var industrycodeValue = accountDetails['industrycode'];
var industrycodeTextValue = accountDetails['industrycode@OData.Community.Display.V1.FormattedValue'];
如果你不能做这样的事情,那么最好在你的SQL中转储另一个叫做stringmap
的表,它将存储整个系统的所有选择列表选项。
然后,您可以在内部联接两个表以获取必要的数据。
select INC.TicketNumber[Case ID],SMT.Value[Status Name], SMT.AttributeValue[Status Value]
from incident as INC inner join StringMap as SMT
on INC.StatusCode = SMT.AttributeValue
where SMT.AttributeName='statuscode' and SMT.ObjectTypeCode=112
阅读更多