在 Logic App Select 中获取递增数字
Get an incrementing number in Logic App Select
我正在使用逻辑应用程序来转换一些数据以进行集成。我正在尝试避免使用 For Each 循环,因为我正在处理的数据量很大,而这会导致 for each 循环的每个操作和迭代产生成本。
但是,我正在使用的集成要求每一行都有一个唯一的递增数字。它们不必是连续的,甚至不必从 1 开始,但顺序应保持不变。
因此,对于上面的内容,第一个将获得 LineNumber 1,第二个将获得 LineNumber 2,等等。(或者像我说的,它可能是 67829、67835 等。)
我试图在映射开始前用 ticks(utcNow())
设置一个变量,然后使用 sub(ticks(utcNow()), variables('startTicks'))
但是这只被评估一次并且相同的数字被应用到所有。
我的下一个想法是使用 azure function/inline javascript 来完成并分配它们,但只是想知道是否有办法在 select 中完成此操作。
或者像我说的,它可以是 67829、67835 等等。
回答这个要求,
在 Select 选项内:
indexOf(string(variables('<DATA Variable>')),string(item()))
解释:
item() - select 中的当前项目(所有项目中的) - 将相同的字符串化并尝试在整个数据的字符串化版本中找到相同的 - 将返回索引号。
输出
请注意:
- 没有机会检查非常大的数据集。
- 如果特定行(行中的所有值)本质上重复,这可能会失败 - 我认为这可能不会
根据您的情况(订单号可能是唯一的)
我正在使用逻辑应用程序来转换一些数据以进行集成。我正在尝试避免使用 For Each 循环,因为我正在处理的数据量很大,而这会导致 for each 循环的每个操作和迭代产生成本。
但是,我正在使用的集成要求每一行都有一个唯一的递增数字。它们不必是连续的,甚至不必从 1 开始,但顺序应保持不变。
因此,对于上面的内容,第一个将获得 LineNumber 1,第二个将获得 LineNumber 2,等等。(或者像我说的,它可能是 67829、67835 等。)
我试图在映射开始前用 ticks(utcNow())
设置一个变量,然后使用 sub(ticks(utcNow()), variables('startTicks'))
但是这只被评估一次并且相同的数字被应用到所有。
我的下一个想法是使用 azure function/inline javascript 来完成并分配它们,但只是想知道是否有办法在 select 中完成此操作。
或者像我说的,它可以是 67829、67835 等等。
回答这个要求,
在 Select 选项内:
indexOf(string(variables('<DATA Variable>')),string(item()))
解释:
item() - select 中的当前项目(所有项目中的) - 将相同的字符串化并尝试在整个数据的字符串化版本中找到相同的 - 将返回索引号。
输出
请注意:
- 没有机会检查非常大的数据集。
- 如果特定行(行中的所有值)本质上重复,这可能会失败 - 我认为这可能不会 根据您的情况(订单号可能是唯一的)