Как я могу дополнить строку переменным числом ведущих нулей? - PullRequest
0 голосов
/ 01 февраля 2019

У нас есть эта формула в нашей задаче MS Flow - Update Item ...

concat(items('Apply_to_each')['T_x002d_Code']
,'-'
,items('Apply_to_each')['BoxNo']
,'-'
,
items('Apply_to_each')['ID'])

, но нам нужно добавить ведущие нули в BoxNo и ID, чтобы получилось так:

A02-00001-000235

мы также пытались:

substring(concat('000000', variables('ItemID'))
, sub(5, length(variables('BoxNo')))
, add(6, length(variables('ItemID'))))

, но безуспешно.

BoxNo значение может варьироваться от 1 до 99 999, поэтому нам нужно добавить до 4 ведущих нуля

ItemID может перейти от 1 до 999 999, поэтому нам нужно увеличить 5 ведущих нулей

Как мы можем отформатировать эти поля таким образом?

1 Ответ

0 голосов
/ 05 февраля 2019

Для этого вам понадобится пара выражений .

  1. Объявите строковую переменную для хранения ввода (например, с именем InputVar).Вам нужно будет продолжать использовать выражение concat() здесь со значением ввода, чтобы добавить максимально возможные нули, необходимые для каждого элемента (например, 4 для BoxNo и 5 для ItemID ).

    Это, очевидно, неэффективно, но нет лучшего способа вставить динамическое число символов в Flow, насколько мне известно.

  2. Объявить вторую переменную Integer, чтобы определитьдлина (например, с именем InputVarLength), со следующим пользовательским выражением в качестве значения:

    length(variables('InputVar'))
    
  3. Наконец, объявите третью переменную, которая будет вычислять результат подстроки (например, с именем * 1025)*).Используйте это выражение пользовательской подстроки в качестве значения:

    substring(variables('InputVar'),sub(variables('InputVarLength'),5),5)
    

Для ItemID или других результатов вы должны заменить 5 s в выражении подстрокис соответствующими startIndex и length, чтобы вернуть размер, который вы хотели бы.Для справки, формат подстроки:

substring(text, startIndex, length)

, который включает в себя значение String, из которого вы хотите найти подстроку, позицию в этой строке, с которой вы хотите начать, и сколько символов из этой начальной позицииВы хотите включить в результат подстроки.

Вложенный формат вычитания:

sub(minuend, subtrahend)

, который включает в себя целочисленное значение, которое нужно вычесть из (minuend), и целочисленное значение, которое вы хотитевычитать (вычитать).Например, sub(10, 2) вернет целочисленное значение 8.

...