Как сохранять порядок полей при автосинхронизации?

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

Выходные и выходные порты запоминают порядок полей, приходится ходить по узлам и упорядочивать связи. Возможно ли автоматически упорядочивать связи на входных и выходных портах?

Ответ: 1 шт.

0 голосов
elizaveta.l

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

Также можете добавить компонент Сортировка или Параметры полей после узла импорта и перед дальнейшей обработкой.

Андрей АВ
Набор входящих полей динамический (Например может прийти А, B,C, D , а может А, S, C,B)  зависит от входного файла (xlsx), мне нужно чтобы при обработке данных и их экспорте порядок сохранялся. Если на входе А, B,C, D, то на выходе А, B,C, D, если на входе А, S, C,B, то на выходе А, S, C,B и так во всех узлах через которые движутся данные.
vitaliy.tatarskih

В версии Loginom 7.3 задать нужный порядок полей в runtime (т.е. в ходе выполнения сценария) в выходном порту можно в компонентах JavaScript или Python используя режим динамического создания полей в ходе выполнения их кода. См.  функции: 

- OutputTable.AddColumn 

- OutputTable.InsertColumn 

- OutputTable.AssignColumns

Страницы справки с примерами:

- https://help.loginom.ru/userguide/processors/programming/java-script/output-tables.html

- https://help.loginom.ru/userguide/processors/programming/python/output-table.html

Андрей АВ

1) Выходящий порт в 7.3 в компонентах JavaScript или Python не запоминают порядок?

2) После JS и Py компонентов я использую Экспорт в xlsx, а у него входящий порт запоминает порядок. Это не обойти?

vitaliy.tatarskih

Предполагалось, что в выходных портах JavaScript или Python отключена автосинхронизация и это итоговый/результирующий набор. Если вам еще необходимо делать выгрузку в xlsx с нужной последовательностью полей, то тогда придется делать ее узлом Python используя библиотеки работы с xlsx, например, openpyxl.

.

...