вот код создания FTP:
%dw 2.0
output application/csv separator='|',
header = false
---
payload distinctBy $.integrationid orderBy $.integrationidl
- "integrationid" - "integrationidl"
В приведенном выше коде я хочу использовать столбцы Integrationid и Integrationdl для порядка и сортировки. но я не хочу, чтобы эти столбцы из полезной нагрузки печатались в файле CSV. Я попробовал приведенный выше код в соответствии с документацией mulesoft, но он не работает. скорее всего, потому что это массив. Не могли бы вы помочь, как это может быть достигнуто?
Привет @Vineetz. Пожалуйста, добавьте образец ввода и ожидаемый результат в каждый вопрос. Пожалуйста, добавьте их в виде текста как часть вопроса. Скриншоты следует использовать только для отображения экрана, а не данных.
@Салим и Алед обеспечат это в будущем. Спасибо обоим за помощь.
Функция orderBy() возвращает массив. Оператор -
применяется к объекту, а строка удаляет пару ключей из объекта по имени ключа. Вы не можете применить его к массиву. Это означает, что вам нужно отобразить каждый элемент массива и удалить ключи из каждого.
%dw 2.0
output application/csv separator='|', header=false
---
payload
distinctBy $.integrationid
orderBy $.integrationidl
map $ - "integrationid" - "integrationidl"
Другой альтернативой оператору -
является использование filterObject()
с условием, которое отфильтровывает, какие ключи-значения остаются в каждом объекте. Преимущество в том, что мы можем использовать contains()
со списком имен столбцов в условии, чтобы сделать сценарий более общим.
%dw 2.0
output application/csv separator='|', header=false
var filterColumns=["integrationid", "integrationidl"]
---
payload
distinctBy $.integrationid
orderBy $.integrationidl
map ($ filterObject !(filterColumns contains ($$ as String)))
Пример ввода и ожидаемый результат?