Setting View Object Attribute Values in Code

The following code example updates values in a database table by setting attributes of a Business Component. The example uses the generic Application Module and calls Row.setAttribute to set attributes.

package d2e;
import oracle.jbo.*;
import oracle.jbo.server.*;
import oracle.jbo.domain.Number;
public class SetAttrDemo {
public static void main(String[] args) {
    // Helper routine connects to the generic Application Module.
ApplicationModule appMod =
QueryDemo.getGenericAppMod(JboContext.PLATFORM_LOCAL);
    // Specify the XML file that defines the View Object.
// Format: <package>
String voDefFile = "d2e.EmpView";
    // Identify the View Object. Must be a valid Java identifier.
String voName = "demoEmpVO";
    // Create the View Object within the context defined 
// by the Application Module.
ViewObject vo = appMod.createViewObject(voName, voDefFile);
Number newVal = new Number(6543);
if (updateAttr(vo, newVal)) {
      try {
// Commit changes to the database, making
// updated data available to other Application Modules.
appMod.getTransaction().commit();
System.out.println("\n Transaction committed. \n");
}
catch (JboException ave) {
        // Handle Entity-level validation exceptions here.
System.out.println("\n (Entity) Invalid value: " + newVal);
throw ave;
}
}
}
  public static boolean updateAttr(ViewObject vo, Object newVal) {
boolean res = false;
       // Optional: specify a WHERE clause to narrow the query.
vo.setWhereClause("EMPNO = 7369");
       // Execute the query, set new attribute value. Only one row 
// should be returned, so use vo.first().
vo.executeQuery();
while (vo.hasNext()) {
Row row = vo.first();
          try {
row.setAttribute("Sal", newVal);
}
catch (JboException ave) {
          // Handle Attribute-level validation exceptions here.
System.out.println("\n (Attribute) Invalid value: " + newVal);
throw ave;
}
res = true;
}
return res;
}
}