Azure数据工厂嵌套动态内容-值保存“动态内容字符串”

wlzqhblo  于 2023-06-07  发布在  其他
关注(0)|答案(1)|浏览(118)

我尝试将一个'dynamiccontentexpression'作为动态内容传递到一个管道任务中,但是失败了&查看输入,它传递的是字符串文字,而不是对表达式求值
是否有方法告诉ADF评估传入的值?
我有一个查找任务,它返回以下进入foreach循环的数据集
| 类型|对象|HttpBody|
| - -----|- -----|- -----|
| 人|一百一十一|Content=@{items().Type}&LookupId=@{items().Object}&format=json|
| 地点||Content=@{items().Type}&format=json|
foreach循环有一个数据副本,其中API作为源,我将@item().HttpBody作为Body动态内容传递,但它失败了,因为它试图用
“body”:“Content=@{items().Type}&LookupId=@{items().Object}&format=json”
而不是
“body”:“Content=Person&LookupId=111&format=json”
我试过在()和{}中 Package 随机的东西,但似乎不起作用。这可能吗?

jgwigjjp

jgwigjjp1#

我已经尝试了上述场景和AFAIK,目前在ADF中,嵌套的动态内容可能不可能。它只将其作为字符串,而不是动态内容。
这种情况的解决方法是首先使用正常的动态内容构建该url,并将其传递给For循环中的HTTP API
这里,这是我的源数据,我已经将其提供给查找活动,并在稍后的ForEach活动中使用它。

使用@item().HttpBody值,我已经用动态内容item().Typeitem().Object(即该特定迭代中的值)替换了字符串"@{item().Type}""@{item().Object}"
使用下面的动态内容构建url,并在同一For循环中设置变量活动后将其值传递给HTTP API。

@replace(replace(item().HttpBody,'@{item().Type}',coalesce(item().Type,'')),'@{item().Object}',coalesce(item().Object,''))

每次迭代的URL:

这种方法的一个限制是,如果你的URL包含很多列,那么你需要对所有的列使用replace。

相关问题