来源:REST API
(/RESTAdapter/XYZ/Dashboard/Advances?$top=1000&$skip=0&$keydate=2024-04-30)
接收器:CSV
我想将关键日期列表从 blob 存储中的 dates.csv 文件传递到 API。
日期.csv
2024-01-31,2024-02-29,2024-03-31,2024-04-30
它必须将密钥日期附加到文件名的末尾。
预期输出是根据关键日期列表提取多个 csv 文件到我的 blob 存储。文件名应该看起来像
进展2024-01-31.csv
进展2024-02-29.csv
进展2024-03-31.csv
进展2024-04-30.csv
提取后我想将 CSV 文件加载到 SQL 中
如果您的要求只是创建
Advance<date>.csv
文件,其中日期来自 dates.csv
文件,那么您可以按照以下方法操作。
dates.csv
文件中的给定日期与您的相同:
2024-01-31,2024-02-29,2024-03-31,2024-04-30
现在,为
dates.csv
文件创建一个分隔文本数据集。在这里,该文件没有任何标题或行。因此,将列分隔符更改为与 ,
不同的分隔符,并删除第一行作为标题。
将此数据集提供给查找活动并禁用查找活动设置中的
First row only
。查找活动将在调试时给出如下输出数组。
"value": [
{
"Prop_0": "2024-01-31,2024-02-29,2024-03-31,2024-04-30"
}
]
现在,在管道变量部分创建一个数组变量dates_arr
,并在设置变量活动中使用以下表达式将上述日期值存储为数组。
@split(string(activity('Lookup1').output.value[0].Prop_0),',')
dates_arr
变量中。
For-each 活动,并将此 @variables('dates_arr')
变量作为 For-Each 的表达式。在 For-Each 内,以 REST API 数据集作为源、Blob csv 数据集作为接收器进行复制活动。
在sink csv数据集中,创建字符串类型的数据集参数。
@dataset('targetfilename')
。
@concat('Advances',item(),'.csv')
dates_arr
值,将在每次迭代中生成具有所需名称的结果文件,如下所示。
如果您的源 REST API URL 也是动态的,这意味着,如果它还需要 keydate=
之后的末尾日期,那么您需要在 REST 数据集中参数化 URL。作为示例,我将以下部分作为相对 URL。首先创建一个字符串类型的数据集参数
date
并在相对URL中使用它。
@concat('?$top=1000&$skip=0&$keydate=',dataset().date)
@item()
参数提供
date
作为值。