【问题标题】:Azure Data Factory Pass "Object api name" of Salesforce Tables as Parameter from ForEachAzure 数据工厂将 Salesforce 表的“对象 api 名称”作为 ForEach 的参数传递
【发布时间】:2020-12-10 18:03:05
【问题描述】:

我尝试从 Salesforce 加载一些表格,表格的数量可能会不时改变。我们在 blob 存储上创建了一个 CSV 文件,其中包含我们要从 Salesforce 加载的表的名称,该 CSV 包含一列,如下所示:

CSV File

我创建了一个引用 CSV 文件的 查找活动(并且我禁用了仅第一行的选项),然后我将其连接到一个 ForEach 活动遍历查找活动的每一行,如下所示:

@activity('TablesLookup').output.value

在 Foreach 中,我创建了一个 复制数据活动,其中 Salesforce 作为数据源

这里的问题是我试图将 Salesforce 数据源的表名对象 api 名)作为 ForEach 的参数传递。但我没有找到可以传递表名的选项。详情如下图:

Salesforce Dataset - Parameters

Salesforce Dataset - Connection

ForEach - Copy Data, Salesforce Data Source

这给了我以下错误:

ErrorCode=UserErrorOdbcOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=ERROR [HY000] [Microsoft][Salesforce] (120) SOQL_FIRST mode prepare failure: SOQL error: [Microsoft][SQLEngine] (31480) syntax error near 'SELECT *<<< ??? >>> FROM "Student"'. SQL error: [Microsoft][SQLEngine] (31740) Table or view not found: Deloitte..Student,Source=Microsoft.DataTransfer.ClientLibrary.Odbc.OdbcConnector,''Type=System.Data.Odbc.OdbcException,Message=ERROR [HY000] [Microsoft][Salesforce] (120) SOQL_FIRST mode prepare failure: SOQL error: [Microsoft][SQLEngine] (31480) syntax error near 'SELECT *<<< ??? >>> FROM "Student"'. SQL error: [Microsoft][SQLEngine] (31740) Table or view not found: Deloitte..Student,Source=Microsoft Salesforce ODBC Driver,'

最好的问候,

【问题讨论】:

    标签: dynamic foreach salesforce parameter-passing azure-data-factory


    【解决方案1】:

    如果您的 Lookup 活动的输出是这样的:

    当您将表名称的值从查找活动的输出传递到数据集中名为“tableName”的参数时(在“ForEach - 复制数据,Salesforce 数据源”步骤中),您需要将 @item() 更改为 @item().Names

    【讨论】:

    • 感谢您的回答,我会检查并回复您!
    • 不客气。如果您有任何疑问,请随时提出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2022-01-12
    • 2017-07-30
    • 2020-08-07
    • 2022-08-04
    相关资源
    最近更新 更多