[Oracle ADF] Задать и считать программно bind variables во ViewObject

Имеем ViewObject с bind variables. Нужно задать значения программно.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import oracle.jbo.VariableValueManager;
import oracle.jbo.ViewObject;

***

ViewObject vo = VOUtils.getViewObjectByName(CONSTANTS_VO.VO_NAME);

String date1 = "2015-11-11";
String date2 = "2016-11-11";

VariableValueManager vm = vo.ensureVariableManager();

vm.setVariableValue("vo_param_date1", date1);
vm.setVariableValue("vo_param_date2", date2);

vo.executeQuery();

Просто получаем доступ к ViewObject и устанавливаем параметны для bind variables.

CONSTANTS_VO.VO_NAME - константа в которой прописано название нужного VO.




Cчитать программно bind variables из ViewObject

Пример 1


1
2
3
4
ViewObject vo = VOUtils.getViewObjectByName(voName);
Long supIdFromVO = (Long)vo.getNamedWhereClauseParam("p_supplier");
System.out.println("supIdFromVO ");
System.out.println("  supIdFromVO " + supIdFromVO.toString());



Пример 2


1
ADFUtils.findIterator("ITERATOR_NAME").getViewObject().getNamedWhereClauseParam("myVar");


Пишу далее без проверки:

Если переменная типа date

1
2
3
4
5
6
7
8
public String getDate1() {
       oracle.jbo.domain.Date date1 =
           (oracle.jbo.domain.Date)
           ADFUtils.findIterator("ITERATOR_NAME").getViewObject().getNamedWhereClauseParam("date1");
       System.out.println("####################### DATE1 " + date1);
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       return sdf.format(date1.getValue());
   }