Как обойти 'lastindexof' является примитивным и не поддерживает вложенные свойства в Azure фабрике данных - PullRequest
2 голосов
/ 13 февраля 2020

Я пытаюсь взять существующее имя файла в фабрике данных и с помощью динамического c содержимого переставить его, чтобы к нему добавилась временная метка. Однако я, кажется, получаю следующую ошибку:

Позиция 172 'lastindexof' является примитивом и не поддерживает вложенные свойства.

Кажется, я не могу поместить вычисления в аргументы других функций, что действительно ограничительно. Есть ли работа вокруг этого? Стоит ли искать другой компонент в фабрике данных, чтобы упростить эту задачу?

Пожалуйста, ознакомьтесь с приведенным ниже выражением содержимого Dynami c:

@concat(substring(item().name, 0, lastindexof(item().name, '.')), '_', formatDateTime(utcnow(),'yyyyMMddhhmmss'), '.', substring(item().name, lastindexof(item().name, '.') + 1, length(item().name) - lastindexof(item().name, '.') - 1))

Основа c проверка того, чего я хочу добиться, - это взять имя входного файла abc.csv или xyz.xlsx и преобразовать его в abc_20200213131301.csv или xyz_20200213131301.xlsx.

Ответы [ 2 ]

2 голосов
/ 21 февраля 2020

То, что вы пытаетесь, сработает, я сделал это, но будет слишком много "(" и ","

. Вы можете попробовать реализовать, используя 2 Задание переменных деятельности и функцию Split.

1-е действие

для использования функции разделения с: @split (переменные ('FileName'), '.')

2-е действие

@ concat (переменные ('SplitFileName') [0], '_', formatDateTime (utcnow (), 'yyyyMMddhhmmss'), '.', переменные ('SplitFileName') 1 )

enter image description here

1 голос
/ 05 мая 2020

Вы можете попробовать что-то вроде этого.

@concat(substring(item().name,0,lastindexof(item().name,'.')),'_',formatDateTime(utcnow(),'yyyyMMddhhmmss'), replace(item().name,substring(item().name,0,lastindexof(item().name,'.')),''))

Другой вариант - использовать функции add или sub. Чтобы найти оставшиеся символы после последнего ".", Я использовал функцию sub.

@concat(substring(item().name,0,lastindexof(item().name,'.')),'_',formatDateTime(utcnow(),'yyyyMMddhhmmss'), substring(item().name, lastindexof(item().name,'.'), sub(length(item().name), lastindexof(item().name, '.'))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...