如何使用数据工厂v2中的文件表达式读取设置?

时间:2018-03-16 15:57:35

标签: azure azure-data-factory azure-data-factory-2

我正在从带有表达式的json文件中读取设置,但表达式不起作用。

设置为outputPath - > @activity(' GETSET&#39)。output.value [0] .subs.outputPath

该文件的表达式为:

" outputPath":" / subs / @ {formatDateTime(utcnow(),' yyyy')} / subs.json"

结果应该是/subs/2018/subs.json,但看起来与文件中写的相同。如果我直接将表达式放在“设置”中,它就会起作用。

我的管道的json

{
    "name": "subscription experience",
    "type": "ExecutePipeline",
    "dependsOn": [
        {
            "activity": "GetSet",
            "dependencyConditions": [
                "Succeeded"
            ]
        }
    ],
    "typeProperties": {
        "pipeline": {
            "referenceName": "Client",
            "type": "PipelineReference"
        },
        "waitOnCompletion": true,
        "parameters": {
            "outputPath": "@activity('GetSet').output.value[0].subs.outputPath",
        }
    }
}

我的档案是:

{
  "test": "my teste"
  "subs": {
    "outputPath": "/subs/@{formatDateTime(utcnow(), 'yyyy')}/subscriptions.json",
}

2 个答案:

答案 0 :(得分:0)

请记住,表达式必须介于@ {}之间。试试

@{activity('GetSet').output.value[0].subs.outputPath}

请记住活动' GetSet'必须先前为此表达式完成一个值,所以如果你没有它,请为它添加一个条件。

希望这有帮助!

答案 1 :(得分:0)

我们必须像这样使用concat:

档案是:

{
 "test": "my teste"
"subs": {
"outputPath": "/subs/",
"outputPath2": subscriptions.json",
}

参数put:

@concat(activity('GetSettings').output.value[0].subs.outputPath,formatDateTime(utcnow(), 'yyyy'),activity('GetSettings').output.value[0].subs.outputPath2)