pub.document.sortДокументы не сортируются

Я застрял, у меня это работало на прошлой неделе, теперь я что-то изменил, и это не сработает!

У меня есть простой потоковый сервис следующим образом:

pub.file.getFile 
pub.flatFile.convertToValues 
pub.document.sortDocuments

Но этап sortDocuments ничего не делает. Список документов recordWithNoID идеален, и все поля верны (поэтому схема и словарь работают как положено), но когда я пытаюсь отсортировать его по ключу «Поле1», сортировка ничего не делает, документы не меняют порядок вообще.

См. два прикрепленных снимка экрана: На снимке экрана 1 показан конвейер во время шага pub.document.sortDocuments. Ключевая переменная: Переменная порядка Field1: по возрастанию

На снимке экрана 2 показана запись без идентификатора после запуска потоковой службы. Как вы можете видеть, столбец Field1 не был упорядочен правильно (он все еще находится в исходном порядке документа). Я также попытался сопоставить результаты с другими типами документов с тем же результатом.

Как я уже сказал выше, у меня это работало на прошлой неделе, и теперь я не могу заставить его работать. Я даже начал весь процесс с нуля, и он все равно не работает. Любая помощь будет очень высоко ценится!

Снимок экрана 1

Снимок экрана 2

РЕДАКТИРОВАТЬ: я решил эту проблему, сопоставив тип документа, созданный из схемы.


person Gazza Knight    schedule 07.03.2018    source источник


Ответы (2)


Похоже, что вы сопоставляете документ ffValues (IData), а не список документов recordWithNoID (массив IData) внутри него, что было бы неправильным уровнем.

Вместо этого сопоставьте recordWithNoID и сообщите нам, решит ли это проблему.

Хотя это и не связано с вопросом, кажется, что в конвейере есть некоторый «беспорядок». Я всегда рекомендую людям отказаться от переменных как можно раньше. В основном для улучшения читаемости, но также и для производительности.

person Christoph Jahn    schedule 06.05.2018

Я не уверен, но, возможно, проблема в этом: на скриншоте1 мы видим, что вы сортируете ffValues, но вы сопоставляете его с документом. (поскольку вы используете вызов, это делается автоматически) Экран номер два показывает ffValues ​​или переменную документа? Может быть, вы проверяете неправильную, не отсортированную переменную?

Я также хочу предложить использовать карту и преобразователь, а не вызывать, потому что использование карты дает вам возможность управлять конвейером. При использовании вызова каждая переменная сохраняется в конвейере (наличие переменной с тем же именем в конвейере на выходе службы приведет к перезаписи переменной конвейера).

person MDaniluk    schedule 12.03.2018