но у меня вместо планов в конкретном статусе (пусть их будет 5 штук), в PlanBrowse открываются все планы (пусть будет 10 штук). Не понимаю, как прописать условие, чтобы открывались только нужные планы?
Здравствуйте! Я так понимаю plans после строки screen.show() уже поздно передавать. Экран на этом этапе сформирован. Их надо как-то до build передать, чтобы это сработало. Но вот метода подходящего найти не могу.
Конечно я тут все утрировал. Как я понимаю у вас стандартный browse экран с загрузчиком и контейнером. То логично перед show (то есть перед загрузкой сущностей) передать нужные сущности в экран и делегировать фактическую загрузку чтоб тот возвращал нужные сущности. Но это в случае если в экране нет фильтра.
Переопределением делегата вы фактически можете выключить фильтр. Все зависит от того как вы это реализуете.
Если у вас есть фильтр в экране то я вижу несколько вариантов решения:
В обоих случая в экран передавать статус по которому вы хотите фильтровать.
В загрузчике добавить условие на этот статус и отдельным методом его проставлять пример с условием запроса. (При этом желательно обновить caption у экрана чтоб юзер понимал что все Планы отфильтрованы по статусу)
Обновить фильтр чтоб юзер мог если что сбросить его. В документации вы наврядли найдете что-то на эту тему. Но можно посмотреть на реализацию FilterAddConditionAction, как там добавляется PropertyCondition.
Однако у меня все равно в PlanBrowse открывается список всех планов. Хотя дебажу и в .withContainer(plansDc) приходит нужный список планов в конкретном статусе. Как-будто бы игнорируется метод .withContainer(plansDc), но не понимаю почему?
Потому что withContainer предназначен для установки контейнера в который данные будут положены после того как пользователь выберет их из вашего lookup.