Azure ADF动态表达式-concat/if缺少句点

Azure ADF动态表达式-concat/if缺少句点,azure,azure-data-factory-2,Azure,Azure Data Factory 2,在我认为相对简单的代码中,我不知道在串联列表中添加另一个字符串会有什么问题 下面是我目前拥有的代码,我得到了预期的输出 @concat('start',if(等于(合并(pipeline().parameters.p_source_object.TYPE.),'x'),'a','b')) 但是,我想在连接中添加更多字符串,但在两个端括号之间添加逗号时,如下所示 @concat('start',if(等于(coalesce(pipeline().parameters.p_source_object

在我认为相对简单的代码中,我不知道在串联列表中添加另一个字符串会有什么问题

下面是我目前拥有的代码,我得到了预期的输出

@concat('start',if(等于(合并(pipeline().parameters.p_source_object.TYPE.),'x'),'a','b'))

但是,我想在连接中添加更多字符串,但在两个端括号之间添加逗号时,如下所示

@concat('start',if(等于(coalesce(pipeline().parameters.p_source_object.TYPE.),'x'),'a','b'),)

我收到一个带有“缺少句点”消息的“无效”错误。如果我在逗号前加上句点,错误就会消失(但语法显然无效)

这里期待什么

另一方面,在执行一些输出字符串的函数时,是否有更好的方法来连接?这是可以想象到的最不直观的界面(微软似乎以这种荒谬的界面而自豪!)


希望有人能为我找到理智

最后,我彻底修改了它,避免了图层。。。然而,我发现了一个解决方案

@{concat('start',if(等于(coalesce(pipeline().parameters.p_source_object.TYPE.),'x'),'a','b'),'dd')}


虽然它并不突出如何。。。行的开头有一个空格,这使它不再被视为“动态内容”,而是使用字符串插值

我不确定“缺失周期”,我以前从未见过。你能发布屏幕截图吗?对于像这样更复杂的操作,我经常将其分解为多个变量,因为它很难直观地解析。[当输出字符串包含引号和逗号时尤其如此!]因此我将接受任何函数级赋值(如示例中的if),并将其放入自己的变量中。此时concat将更容易构建:@concat('start',variables('someVar'),variables('someOtherVar'))。当我回到它上面时就可以了,但是,关于你对变量的评论,我一直在争论,但是我有一些这样的“如果”来组成我需要的完整字符串,并且用空洞的方式设置变量,这将是一个非常复杂的过程——除非我错过了设置变量的更好方法?@RAB concat()函数必须在句点“”之后设置参数,参数不能为null。类似于
concat('a',)
的函数无效。@LeonYue,我认为您对问题的理解是错误的,我根本无法输入另一个参数,因为它需要一个句点(注意,句点是“.”,而不是“,”)@RAB:我认为带“.”的参数是问题所在。当我测试失败时,你可以尝试使用setvariable活动并尝试将参数分配给varibale吗?事实上。。。只有弯曲的括号看起来才真正起作用!