Конвертировать количество строк в INT в Azure фабрике данных - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь использовать операцию поиска для возврата количества строк. Я могу сделать это, но как только я это сделаю, я бы хотел выполнить с ним оператор If, и если счетчик возвращает более 20 MIL в строках, я хочу выполнить дополнительный конвейер для дальнейшей обработки таблицы. Проблема, однако, заключается в том, что я не могу сравнить возвращаемое значение с целым числом c. Ниже приведено текущее выражение Dynami c, которое у меня есть для этого оператора If:

@ больше (int (активность ('COUNT_RL_WK_GRBY_LOOKUP'). Output), 20000000)

и при срабатывании возвращается следующая ошибка: {"errorCode": "InvalidTemplate", "message": "Функция 'int' была вызвана с недопустимым параметром. Значение не может быть преобразовано в целевой тип", "failType": " UserError "," target ":" If Condition1 "," details ":" "}

Можно ли преобразовать это возвращенное значение в целое число, чтобы выполнить сравнение? Если нет, можно ли обойти это, чтобы достичь желаемого результата?

1 Ответ

0 голосов
/ 08 апреля 2020

Похоже, проблема в вашем динамическом c выражении. Исправьте динамическое выражение c, аналогичное приведенному ниже, и повторите попытку.

  • Если для firstRowOnly установлено значение true: @greater(int(activity('COUNT_RL_WK_GRBY_LOOKUP').output.firstRow.propertyname),20000000)

  • Если для firstRowOnly установлено значение false: @greater(int(activity('COUNT_RL_WK_GRBY_LOOKUP').output.value[zero based index].propertyname),20000000)

  • Результат поиска возвращается в разделе output результата выполнения действия.

  • Если для firstRowOnly установлено значение true (по умолчанию), выходной формат будет таким, как показано в следующем коде. Результат поиска находится под фиксированным ключом firstRow. Чтобы использовать результат в последующих действиях, используйте шаблон @{activity('MyLookupActivity').output.firstRow.TableName}. Пример вывода JSON код выглядит следующим образом:
{
    "firstRow":
    {
        "Id": "1",
        "TableName" : "Table1"
    }
}
  • Когда для firstRowOnly установлено значение false, формат вывода такой, как показано в следующем коде , Поле подсчета указывает, сколько записей возвращено. Подробные значения отображаются в массиве фиксированных значений. В таком случае за операцией «Уточняющий запрос» следует действие «По каждому». Вы передаете массив значений в поле элементов действий ForEach, используя шаблон @activity('MyLookupActivity').output.value. Чтобы получить доступ к элементам в массиве значений, используйте следующий синтаксис: @{activity('lookupActivity').output.value[zero based index].propertyname}. Примером является @{activity('lookupActivity').output.value[0].tablename}. Пример вывода JSON Код выглядит следующим образом:
{
    "count": "2",
    "value": [
        {
            "Id": "1",
            "TableName" : "Table1"
        },
        {
            "Id": "2",
            "TableName" : "Table2"
        }
    ]
}

Надеюсь, это поможет.

...