1 Reply Latest reply on Jul 10, 2013 6:02 AM by Priyanka Saxena-Oracle

    Unable to get RowReference in Advanced Table

    Priyanka Saxena-Oracle



      We are trying to extend a seeded controller. The region contains an advanced table. The table contains flexfield segment columns which get displayed programmatically depending on the flexfield context.


      We have added a PPR event programmatically to one of the flexfield segment columns displayed on the table. When tabbing out from that column row we are expecting row reference to get the VO row of that table.


      But the Rowreference is coming as null and we are unable to fetch current row. Below is the code we are using in PFR for adding the PPR and fetching the RowReference:



           public void processFormRequest(OAPageContext pageContext,

      OAWebBean webBean) {

      logEntry(pageContext, "ExtComponentSerialRNCO.processFormRequest()");

      super.processFormRequest(pageContext, webBean);

      OAApplicationModule am = pageContext.getApplicationModule(webBean);


      String event =


      String flexevent = pageContext.getParameter(FLEX_FORM_EVENT);



      if ("scanSerialMultiTable".equals(event)) {


      OAAdvancedTableBean multiScantbl =


      if (multiScantbl != null) {


      int count = multiScantbl.getIndexedChildCount();

      for (int i = 0; i < count; i++) {

      OAWebBean flexfieldbean2 =


      String xcolumn = flexfieldbean2.getID();


      if ("FlexSerialAttr1_column".equals(xcolumn)) {


      int count2 = flexfieldbean2.getIndexedChildCount();

      for (int j = 0; j < count2; j++) {

      OAWebBean flexfieldbean3 =


      String xcolumn1 =

      flexfieldbean3.getID(); //qfindIndexedChildRecursive("FlexSerialAttr1");

      String columnName =



      if ("FlexSerialAttr1".equals(xcolumn1) &&

      "C_ATTRIBUTE10".equals(columnName)) {

      // add ppr


      FireAction fprA = new FireAction();


      fprA =

      OAWebBeanUtils.getFireActionForSubmit(flexfieldbean3, "macAddressEvent", null,

      null, true, true);





      // find spmac

      for (int k = 0; k < count; k++) {


      OAWebBean flexfieldbean4 =



      int count3 =



      for (int l = 0; l < count3; l++) {

      String xcolumnName = null;

      String xfoucsId = null;

      OAWebBean flexfieldbean5 =


      xcolumnName =


      xfoucsId = flexfieldbean5.getID();


      if ("C_ATTRIBUTE18".equals(xcolumnName))


      { //setting SP Mac Id as Read-Only








      } //end if SP MAC ID label

      } // end of for loop l

      } // end of for loop k


      } // end if C_ATTRIBUTE10

      } // end of for j


      } //"FlexSerialAttr1_column

      } //end of loop i

      /*   } //end of try

      catch (Exception e) {

      throw new OAException(e.getMessage(),OAException.ERROR); }*/

      } // End of multiScantbl




      if ("macAddressEvent".equals(event)) {


      System.out.println("Inside Mac address event");


      String rowRef = pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);

      Serializable[] params1 = {rowRef};

      if(rowRef != null)

      System.out.println("Inside rowref ");

      ScanComponentSerialVOImpl scanCompVO =


      ScanComponentSerialVORowImpl scanCompVORow =


      ScanComponentSerialVOImpl multiScanTableVO =



      ScanComponentSerialVORowImpl row = (ScanComponentSerialVORowImpl)am.findRowByRef(rowRef);



      Please let me know how to get the rowreference in this case.

      Thanks in Advance!