在 Azure 数据工厂的 Web 活动中动态传递作业 ID

问题描述

我正在开发 Salesforce Bulk API,我可以在其中创建作业并将数据成功上传到 Salesforce。现在我想向 Salesforce 发送 GET 请求并获取工作状态,但在 Web 活动的 URl 字段中,我试图传递来自先前 Web 活动的 JOB ID,但它不起作用,因为 Salesforce 将其 15 位 ID 转换为 18 位 ID 时它将它发送到 Azure 数据工厂。我正在尝试将 url 与作业 ID 一起连接,但同时删除最后 3 个字符。

例如:网址:http://test.salesforce.com/data/v42.0/job/ingest/ JOBID:01fr6745gh00000AAF(从之前的活动动态添加这个,'activity.output.id')

我想要的输出http://test.salesforce.com/data/v42.0/job/ingest/01fr6745gh00000。我想在 Web 活动 URL 字段中传递它。

我不确定这是否可行或如何实现。任何帮助将不胜感激。

谢谢,

解决方法

您可以使用 length() 函数获取您的 id 长度,然后使用 substring(id,length-3) 函数获取您期望的 id。最后连接你的 URL 和 id。

类似这样的表达:

@concat('http://test.salesforce.com/data/v42.0/job/ingest/ ',substring(activity('name').output.id,sub(length(activity('name').output.id),3)))