我正在该包中构建SSIS包,我正在使用"Dynamics CRM Source"控件,该控件使用fetchXML从MS Dynamics CRM检索数据。
这是我的获取XML:
<fetch>
<entity name='f1_workorder'>
<all-attributes />
<filter type='and'>
<condition attribute='createdon' operator="on-or-after" value="5/5/2018" />
</filter>
</entity>
</fetch>
可以看到条件值是硬编码的"5/5/2018">
它假设是从一个名为XMLPeriod的变量中读取的。
我尝试了很多方法在fetchXML中使用该变量,但没有运气。 我试过这个
<condition attribute='createdon' operator="on-or-after" value=@XMLPeriod />
而这个
<condition attribute='createdon' operator="on-or-after" value="@XMLPeriod" />
而这个
<condition attribute='createdon' operator="on-or-after" value="@[User::XMLPeriod]" />
而这个
<condition attribute='createdon' operator="on-or-after" value=@[User::XMLPeriod] />
我收到此错误
'@' is an unexpected token. The expected token is '"' or '''. Line 5, position 71.
知道如何让它工作吗?
正如 Arun 在评论中建议的那样,第三个选项(复制如下(应该有效。
<condition attribute='createdon' operator="on-or-after" value="@[User::XMLPeriod]" />
如果它不起作用,请在此处发布整个错误消息,以便我可以进一步查看。
我建议你创建一个SSIS变量,如String作为FetchXML。
在上一步中,您可以使用该字符串中的该变量创建自己的 FetchXML,因此可以直接在表达式设置中使用fetchxml
变量:
我认为您正在使用CozyRoc,因此您可以通过以下方式在组件"动态数据流任务加"中配置Fetchxml变量到设置配置中: "您的动态数据流任务加上">高级>表达式>["数据流任务的名称"]。[@[User::YourVariableFetchXml]