在 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 中的当前项目(所有项目中的) - 将相同的字符串化并尝试在整个数据的字符串化版本中找到相同的 - 将返回索引号。

输出

请注意:

  • 没有机会检查非常大的数据集。
  • 如果特定行(行中的所有值)本质上重复,这可能会失败 - 我认为这可能不会 根据您的情况(订单号可能是唯一的)