Я пытаюсь реализовать нагрузку, разделенную на партии.
Я использовал следующее руководство:
https://techcommunity.microsoft.com/t5/azure-synapse-analytics-blog/extracting-sap-data-using-odata-part-4-handling-large-volumes-of/ba-p/2849727
к сожалению, я получаю следующую ошибку:
Выражение 'concat('$top=',pipeline().parameters.Batch, '&$skip=',string(mul(int(item().value), int(pipeline().parameters.Batch)) ))» невозможно оценить, поскольку невозможно выбрать свойство «значение». Выбор свойства не поддерживается для значений типа «Целое число».
Я попытался обойти эту ошибку, добавив «установленную переменную» в действие ForEach перед копированием данных. Но я просто не знаю, как это сделать, чтобы не получить ошибку.
Может ли кто-нибудь сказать мне, какую переменную мне нужно использовать (я предполагаю, что это «Массив») и как правильно заполнить «значение» этой переменной?
большое спасибо, проблема решена! Не могли бы вы объяснить суть проблемы?
Сообщение об ошибке предполагает, что свойство value
невозможно выбрать, поскольку оно не поддерживается для значений типа «Целое число». Это означает, что выражение item()
возвращает целочисленное значение. Когда я просматриваю тот же блог, который вы предоставили, для каждого действия выражение для элементов задается как @range(1,....)
. Это вернет значения типа [1,2,....n] (только массив целых чисел). Поскольку у этого массива нет никаких свойств, использование выражения @item().value
приведет к той же ошибке. Чтобы избежать ошибки, задайте выражение в текстовом поле «Запрос данных копирования» как
@concat('$top=',pipeline().parameters.Batch, '&$skip=',string(mul(int(item()), int(pipeline().parameters.Batch))))
Можете ли вы дать такое выражение
concat('$top=',pipeline().parameters.Batch, '&$skip=',string(mul(int(item()), int(pipeline().parameters.Batch))))