ADF : Programmatic access to View Accessor / Dependent LOV
In general,dependent LOV based on another attribute gets its value by executing view accessor.suppose i have an attribute whose view accessor is defined but the value which is required to be passed comes from various other action like previous page input. There is no view link between two view objects,no relationship .so its completely two independent view objects, but LOV in VO2 depends on VO1 input ..
In Vo2RowImpl :
//VA defined
public RowSet getMoney() {
return (RowSet)getAttributeInternal(MONEY);
}
//custom method
public Object executeViewAccessor(String val) {
RowSet rs=(RowSet)getAttributeInternal(MONEY);
rs.setNamedWhereClauseParam("str", str);
rs.executeQuery();
return rs;
}
//Code to invoke the VA from AmImpl class. AM method is the bridge between two taskflow to pass parameters since we added TF2 as region in main TF. you should add the below AmImpl method as method action before PAGE 2 in TF2
AmImpl Method :
public void executeAction(String str) {
ViewObjectImpl vo = this.getVo2();
Row row = vo.createRow();
vo.insertRow(row);
VO2RowImpl rImpl = (VO2RowImpl )vo.getCurrentRow();
rImpl.executeViewAccessor(str);
}
Now you have executed the View accessor of Money VO and your attribute in VO2 containing the LOV prepared based on the input being passed.
Note : There could be certainly many ways to achieve this functionality. This is one of the use case to explain ..
Awesome.. your snippet helped me today.. Thanks
ReplyDeletethank you.
ReplyDeletepython3 tutorial
Hibernate tutorial