[Oracle ADF] Получить из inputListOfValues нужные данные с помощью bindings


Есть inputListOfValues.

Нужно получить идентификатор выбранного элемента а не его название. Название вообще без каких-либо действий можно получить, а чтобы получить ID, нужно еще и повозиться.

Если зайти во ViewObject–>Query или ViewObject–>Query–>Attribute Mappings, то интересующее нас поле пристутствует.

Тогда делаем слудующее.

// Если не выполнить эти 2 команды, то возвращаться будут не текущие данные а ранее выбранные.
FacesContext contxt = FacesContext.getCurrentInstance();
valueChangeEvent.getComponent().processUpdates(contxt);


Integer PromoID = (Integer)BindingsUtils.getValFromIterator(ITERATOR, ID_FIELD);


package ru.javadev.project.view.rimutils.findvaluefrombindings;

import oracle.adf.model.BindingContext;
import oracle.adf.model.binding.DCBindingContainer;
import oracle.adf.model.binding.DCIteratorBinding;

import oracle.jbo.Row;
import oracle.jbo.ViewObject;

public class BindingsUtils {


    public static Object getValFromIterator(String iteratorName, String attrName){

        try {
           DCIteratorBinding dcItteratorBindings =  ADFUtils.findIterator(iteratorName);
           ViewObject vo = dcItteratorBindings.getViewObject();
           Row rowSelected = vo.getCurrentRow();
           return (rowSelected.getAttribute(attrName));

        } catch (Exception e) {
            System.out.println("*getValFromIteratorByIteratorName*" + e.getMessage());
            return "";
        }
    }
}