在 SSIS 的 "Dynamics CRM Source" fetchXML 中使用变量

Using variables in "Dynamics CRM Source" fetchXML in SSIS

我在那个包中构建 SSIS 包我正在使用 "Dynamics CRM Source" 控件,它使用 fetchXML 从 MS Dynamics CRM 检索数据。

这是我的 fetchXML:

<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]" />

如果它不起作用,请 post 将整个错误消息放在这里,以便我进一步查看。

我建议您创建一个 SSIS 变量,如 String 作为 FetchXML。

您在上一步中使用该字符串中的该变量创建了自己的 FetchXML,因此您可以直接在表达式设置中使用 fetchxml 变量:

我认为您正在使用 CozyRoc,因此您可以在组件 "Dynamic data Flow task plus" 中配置 Fetchxml 变量,通过以下方式进入设置配置: "Your Dynamic data Flow task plus">高级>表达式>["Name of your data Flow task plues"].[@[User::YourVariableFetchXml]