将数据从 Dynamics CRM 加载到 SQL Server



无法使用 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

阅读更多

相关内容

  • 没有找到相关文章

最新更新