Web ADI to Create Dependent LOV

Create sql file

=========================SQL JAVA FILE==============================

package xxudc.oracle.apps.pn.pnlov.sql;

import java.sql.Connection;
import java.sql.SQLException;

import oracle.apps.bne.exception.BneException;
import oracle.apps.bne.framework.BneWebAppsContext;
import oracle.apps.bne.utilities.sql.BneBaseSQL;
public class XxpnPropertyNameSQL extends BneBaseSQL {
    public XxpnPropertyNameSQL(BneWebAppsContext paramBneWebAppsContext,
                                    String paramString) throws SQLException,
                                                               BneException {
        Connection connection = paramBneWebAppsContext.getJDBCConnection();
        StringBuffer stringBuffer = new StringBuffer();

        stringBuffer.append("SELECT PNP.PROPERTY_NAME PROPERTY_NAME,PNP.PROPERTY_CODE PROPERTY_CODE FROM PN_PROPERTIES_ALL PNP , HR_OPERATING_UNITS HROU WHERE PNP.ORG_ID=HROU.ORGANIZATION_ID AND PNP.ACTIVE_PROPERTY='A' AND HROU.NAME=:1");


        if ((paramString != null) && (!paramString.trim().equals(""))) {
            stringBuffer.append("AND " + paramString);
        }

        //stringBuffer.append(" ORDER BY VENDOR_SITE_CODE, ADDRESS ");

        setQuery(connection, stringBuffer.toString());
    }
}


==============================================================

Create validator file
=====================Validator File ===============================

package xxudc.oracle.apps.pn.pnlov.validator;


import java.util.Hashtable;

import oracle.apps.bne.exception.BneException;
import oracle.apps.bne.exception.BneFatalException;
import oracle.apps.bne.exception.BneMissingParameterException;
import oracle.apps.bne.framework.BneWebAppsContext;
import oracle.apps.bne.integrator.validators.BneUploadValidator;
import oracle.apps.bne.utilities.sql.BneCompositeSQLCriteria;
import oracle.apps.bne.utilities.sql.BneResultSet;
import oracle.apps.bne.utilities.sql.BneSQLStatement;

import xxudc.oracle.apps.pn.pnlov.sql.XxpnPropertyNameSQL;

public class XxpnPropertyNameValidator extends BneUploadValidator {

    public String[] getDomainParameters() {
        return new String[] { "P_OPERATING_UNIT" };
    }

    public BneResultSet getDomainValues(BneWebAppsContext paramBneWebAppsContext,
                                        Hashtable paramHashtable,
                                        BneCompositeSQLCriteria paramBneCompositeSQLCriteria) throws BneException {

        XxpnPropertyNameSQL XxpnPropertyNameSQL = null;
        BneResultSet bneResultSet = null;
        BneSQLStatement bneSQLStatement1 = new BneSQLStatement();

        if (paramBneCompositeSQLCriteria != null) {
            bneSQLStatement1 =
                    paramBneCompositeSQLCriteria.evaluate(bneSQLStatement1);
        }

        String str1 = (String)paramHashtable.get("P_OPERATING_UNIT");

        if (str1 == null) {
            throw new BneMissingParameterException("Provide Org Name Field Error");
        }


        try {
            XxpnPropertyNameSQL =
                    new XxpnPropertyNameSQL(paramBneWebAppsContext,
                                                 bneSQLStatement1.getStatement());
            BneSQLStatement bneSQLStatement2 =
                new BneSQLStatement(XxpnPropertyNameSQL.getQuery(),
                                    new Object[] { str1 });

            bneSQLStatement2.append("", bneSQLStatement1.getBindValues());
            bneResultSet =
                    XxpnPropertyNameSQL.getBneResultSet(bneSQLStatement2.getBindValuesAsArray());
        } catch (Exception exception) {
            throw new BneFatalException(exception.toString());
        }


        return bneResultSet;
    }


}


==========================================================

Create component file

======================Component File=========================

package xxudc.oracle.apps.pn.pnlov.component;


import java.sql.ResultSetMetaData;
import java.sql.SQLException;

import java.util.Hashtable;
import java.util.Vector;

import oracle.apps.bne.exception.BneException;
import oracle.apps.bne.exception.BneMissingParameterException;
import oracle.apps.bne.exception.BneParameterException;
import oracle.apps.bne.exception.BneSQLException;
import oracle.apps.bne.framework.BneBajaContext;
import oracle.apps.bne.framework.BneBajaPage;
import oracle.apps.bne.framework.BneWebAppsContext;
import oracle.apps.bne.integrator.component.BneAbstractListOfValues;
import oracle.apps.bne.parameter.BneParameter;
import oracle.apps.bne.repository.BneResourceString;
import oracle.apps.bne.utilities.BneUIXUtils;
import oracle.apps.bne.utilities.sql.BneCompositeSQLCriteria;
import oracle.apps.bne.utilities.sql.BneResultSet;
import oracle.apps.bne.utilities.sql.BneSimpleSQLCriteria;
import oracle.apps.bne.webui.control.BneLOVControlBean;

import xxudc.oracle.apps.pn.pnlov.validator.XxpnPropertyNameValidator;

import oracle.cabo.servlet.Page;
import oracle.cabo.servlet.event.PageEvent;
import oracle.cabo.ui.data.DictionaryData;

public class XxpnPropertyNameComponent extends BneAbstractListOfValues {

    private XxpnPropertyNameValidator VALIDATOR = null;
    private String[] VALIDATOR_PARAMS = null;

    private String FILTERFIELD = null;
    private String FILTERVALUE = null;

    public String getLOVProcessorType() {
        return "TABLE";
    }

    public void init(BneBajaContext paramBneBajaContext, Page paramPage,
                     PageEvent paramPageEvent) {
        if (VALIDATOR == null) {
            VALIDATOR = new XxpnPropertyNameValidator();
            VALIDATOR_PARAMS = VALIDATOR.getDomainParameters();
        }
    }

    public BneBajaPage handleListOfValues(BneBajaContext paramBneBajaContext,
                                          Page paramPage,
                                          PageEvent paramPageEvent,
                                          BneLOVControlBean paramBneLOVControlBean) throws BneException {
        BneWebAppsContext bneWebAppsContext =
            paramBneBajaContext.getBneWebAppsContext();
        BneCompositeSQLCriteria bneCompositeSQLCriteria = null;
        Hashtable hashtable = new Hashtable();

        handlePageParameters(paramPageEvent);

        for (int i = 0; i < VALIDATOR_PARAMS.length; i++) {
            String str2 =
                getParameterValue(bneWebAppsContext, VALIDATOR_PARAMS[i]);
            if (str2 == null)
                continue;
            hashtable.put(VALIDATOR_PARAMS[i], str2);
        }

        if ((FILTERVALUE != null) && (!FILTERVALUE.trim().equals(""))) {
            bneCompositeSQLCriteria = new BneCompositeSQLCriteria();
            if (FILTERFIELD != null && !FILTERFIELD.equals("")) {
                BneSimpleSQLCriteria bneSimpleSQLCriteria;
                if (FILTERFIELD.equals("PROPERTY_NAME"))
                    bneSimpleSQLCriteria =
                            new BneSimpleSQLCriteria(0, "PROPERTY_NAME", 0,
                                                     9, FILTERVALUE, 2);
                else
                    bneSimpleSQLCriteria =
                            new BneSimpleSQLCriteria(0, "PROPERTY_NAME || ',' || PROPERTY_CODE ",
                                                     0, 9, FILTERVALUE, 2);
                bneSimpleSQLCriteria.setSearchsCaseInsensitivity(true);
                bneCompositeSQLCriteria.addCriteria(bneSimpleSQLCriteria);
            }

        }

        setTableFilter(true);
        setTableData(getTableData(bneWebAppsContext, paramBneLOVControlBean,
                                  hashtable, bneCompositeSQLCriteria));
        return null;
    }

    public void getListOfValueParameters() throws BneParameterException {
        for (int i = 0; i < VALIDATOR_PARAMS.length; i++) {
            String str1 = VALIDATOR_PARAMS[i];
            String str2 =
                "Oracle Applications Property Name Test." + str1 + " field.";
            addComponentParameter(new BneParameter(str1, "", str2));
        }
    }

    private void handlePageParameters(PageEvent paramPageEvent) throws BneException {
        FILTERFIELD =
                BneUIXUtils.getPageEventParameter(paramPageEvent, "listOfValues:bne:filterField");
        FILTERVALUE =
                BneUIXUtils.getPageEventParameter(paramPageEvent, "listOfValues:bne:filterValue");
    }

    public DictionaryData[] getTableData(BneWebAppsContext paramBneWebAppsContext,
                                         BneLOVControlBean paramBneLOVControlBean,
                                         Hashtable paramHashtable,
                                         BneCompositeSQLCriteria paramBneCompositeSQLCriteria) throws BneException {
        DictionaryData dictionaryData = null;
        Vector vector = new Vector();
        BneResultSet bneResultSet = null;
        ResultSetMetaData resultSetMetaData = null;
        try {
            String str = null;

            bneResultSet =
                    VALIDATOR.getDomainValues(paramBneWebAppsContext, paramHashtable,
                                              paramBneCompositeSQLCriteria);

            if (bneResultSet != null) {
                resultSetMetaData = bneResultSet.getResultSet().getMetaData();

                while (bneResultSet.next()) {
                    dictionaryData = new DictionaryData();

                    for (int i = 1; i <= resultSetMetaData.getColumnCount();
                         i++) {
                        str = bneResultSet.getString(i);

                        if (str == null) {
                            dictionaryData.put(resultSetMetaData.getColumnName(i),
                                               "");
                        } else {
                            dictionaryData.put(resultSetMetaData.getColumnName(i),
                                               str);
                        }
                    }

                    vector.addElement(dictionaryData);
                }
            }
        } catch (SQLException sqlException) {
            throw new BneSQLException(BneResourceString.getMlsString(-1L, -1L,
                                                                     "Cannot get Property Name information"),
                                      sqlException);
        } catch (BneMissingParameterException bneMissingParameterException) {
            paramBneLOVControlBean.addError(bneMissingParameterException.getMessage());
        }

        DictionaryData[] arrayOfDictionaryData =
            new DictionaryData[vector.size()];

        for (int i = 0; i < vector.size(); i++) {
            arrayOfDictionaryData[i] = ((DictionaryData)vector.elementAt(i));
        }

        return arrayOfDictionaryData;
    }

    public String getComponentName() {
        return "SupplierSiteName";
    }

    public String getComponentVersion() {
        return "R12";
    }
}


===========================================================

move above files on java_top path

/u01/app/EBSINT/fs1/EBSapps/comn/java/classes/xxudc/oracle/apps/pn/pnlov/sql/XxpnPropertyNameSQL

/u01/app/EBSINT/fs1/EBSapps/comn/java/classes/xxudc/oracle/apps/pn/pnlov/validator/XxpnPropertyNameValidator

/u01/app/EBSINT/fs1/EBSapps/comn/java/classes/xxudc/oracle/apps/pn/pnlov/component/XxpnPropertyNameComponent

On putty Go that perticular foldar file and compile all files


On Path :- /u01/app/EBSINT/fs1/EBSapps/comn/java/classes/xxudc/oracle/apps/pn/pnlov/sql/
Compile code :- javac XxpnPropertyNameSQL.java


On Path :- /u01/app/EBSINT/fs1/EBSapps/comn/java/classes/xxudc/oracle/apps/pn/pnlov/validator/
Compile code :- javac XxpnPropertyNameValidator.java


On Path :-  /u01/app/EBSINT/fs1/EBSapps/comn/java/classes/xxudc/oracle/apps/pn/pnlov/component/
Compile code :-  javac XxpnPropertyNameComponent.java


Create JAR file on the (java top ) only on JAVA_TOP not where our file is store

First go to java Top := CD $JAVA_TOP

then Enter


then run command:- adcgnjar

command to check the updated todays date :- ls -lrt

jar file has created or updated now


We have a 2 choice to create component from backend and front end also

1) Create component from front end (Desktop Integrator manager)

component type :- Java lov

Component entity:- path (xxudc/oracle/apps/pn/pnlov/component/XxpnPropertyNameComponent)


2 ) Create component and attach to that field from backend

begin
BNE_INTEGRATOR_UTILS.CREATE_JAVA_LOV
(P_APPLICATION_ID       => 240,
P_INTERFACE_CODE       => 'BUILDING_XINTG_INTF1',      -- Interface_code name
P_INTERFACE_COL_NAME   => 'P_PRECINT_NAME',                -- Interface parameter name
P_JAVA_CLASS           => 'xxudc.oracle.apps.pn.pnlov.component.XxpnPropertyNameComponent',  --PATH of component file
P_WINDOW_CAPTION       => 'Property Name',
P_WINDOW_WIDTH         => 500,
P_WINDOW_HEIGHT        => 500,
P_TABLE_BLOCK_SIZE     => 50,
P_TABLE_COLUMNS        => 'PROPERTY_NAME,PROPERTY_CODE',    --PROPERTY_NAME
P_TABLE_SELECT_COLUMNS => 'P_PRECINT_NAME',
P_TABLE_COLUMN_ALIAS   => 'P_PRECINT_NAME,PROPERTY_CODE',
P_TABLE_HEADERS        => 'PROPERTY_NAME,PROPERTY_CODE',
P_TABLE_SORT_ORDER     => 'Yes,Yes',
P_USER_ID              =>7212); 
commit;
end;

or use any one (below is for display two column  in lov line name and description)

BEGIN
   BNE_INTEGRATOR_UTILS.
    CREATE_JAVA_LOV (
      P_APPLICATION_ID         => 240,
      P_INTERFACE_CODE         => 'BUILDING_XINTG_INTF1', -- Interface_code name
      P_INTERFACE_COL_NAME     => 'P_PRECINT_NAME', -- Interface parameter name
      P_JAVA_CLASS             => 'xxudc.oracle.apps.pn.pnlov.component.XxpnPropertyNameComponent', --PATH of component file
      P_WINDOW_CAPTION         => 'Property Name',
      P_WINDOW_WIDTH           => 800,
      P_WINDOW_HEIGHT          => 500,
      P_TABLE_BLOCK_SIZE       => 50,
      P_TABLE_COLUMNS          => 'PROPERTY_NAME,PROPERTY_CODE',
      P_TABLE_SELECT_COLUMNS   => 'P_PRECINT_NAME',
      P_TABLE_COLUMN_ALIAS     => 'P_PRECINT_NAME',
      P_TABLE_HEADERS          => 'Property_Name,Property_Code',
      P_TABLE_SORT_ORDER       => 'Yes,Yes',
      P_USER_ID                => 7212);
   COMMIT;
END;

Bounce the server on this top

cd $ADMIN_SCRIPTS_HOME

./admanagedsrvctl.sh stop oacore_server1

Then

./admanagedsrvctl.sh start oacore_server1

Check Web ADI