Sie sind auf Seite 1von 10

Oracle Web ADI Dependent LOV Process Steps:

STEP1: Package Creation


CREATE OR REPLACE PACKAGE XXAA_TEST_WEBADI_LOV AUTHID
CURRENT_USER
IS
/*
******************************************************************************
NAME: XXAA_TEST_WEBADI_LOV
PURPOSE:
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 Raju Chinthapatla Oracle Web ADI Dependent LOV Creation Steps
*****************************************************************************
*/
procedure XXAA_LOV_DATA(p_supplier_name varchar2, p_supplier_site varchar2);
END;
/
CREATE OR REPLACE PACKAGE BODY XXAA_TEST_WEBADI_LOV
IS
l_org_id number :=apps. FND_PROFILE.VALUE('ORG_ID');
l_user_id number := apps.fnd_profile.value('USER_ID');
lv_supplier_id number;
lv_supplier_number varchar2(1000);
Procedure XXAA_LOV_DATA(p_supplier_name varchar2,p_supplier_site varchar2)
as
begin
apps.FND_FILE.PUT_LINE (APPS.FND_FILE.LOG,' Testing LOV:');
lv_supplier_id := 0;
IF P_SUPPLIER_NAME IS NULL
THEN
apps.FND_FILE.PUT_LINE (APPS.FND_FILE.LOG,' Testing LOV P_Supplier_name:');
ELSE
BEGIN
SELECT VENDOR_ID,
SEGMENT1
INTO lv_supplier_id,
lv_supplier_number
FROM APPS.AP_SUPPLIERS
WHERE vendor_name = P_SUPPLIER_NAME
AND enabled_flag = 'Y';
EXCEPTION
WHEN NO_DATA_FOUND THEN
apps.FND_FILE.PUT_LINE (APPS.FND_FILE.LOG,' Testing LOV P_Supplier_name1:' ||
SQLERRM);
WHEN OTHERS THEN
apps.FND_FILE.PUT_LINE (APPS.FND_FILE.LOG,' Testing LOV P_Supplier_name2:' ||
SQLERRM);
END;
END IF;
exception
when no_data_found
then
apps.FND_FILE.PUT_LINE (APPS.FND_FILE.LOG,' Exception: NO_DATA_FOUND:');
when others
then
apps.FND_FILE.PUT_LINE (APPS.FND_FILE.LOG,' Exception: OTHERS:');
END ; -- End of XXAA_LOV_DATA
END XXAA_TEST_WEBADI_LOV;
/

STEP2: TABLE LOV Creation for the field Supplier

BEGIN
BNE_INTEGRATOR_UTILS.CREATE_TABLE_LOV
(P_APPLICATION_ID => 50202,
P_INTERFACE_CODE => ' GENERAL_5_INTF',-->Created Interface Code
-->BNE_INTERFACE_COLS_B.INTERFACE_CODE
P_INTERFACE_COL_NAME => 'P_SUPPLIER_NAME', -->Interface Column Name
(BNE_INTERFACE_COLS_B.INTERFACE_COL_NAME)
P_ID_COL => 'SEGMENT1', -->Column Name from the table "AP_SUPPLIERS"
P_MEAN_COL => 'VENDOR_NAME',
P_DESC_COL => NULL,
P_TABLE => 'AP_SUPPLIERS',
P_ADDL_W_C => null,
P_WINDOW_CAPTION => 'Suppliers', -->Window name of the Suppliers LOV
@Template
P_WINDOW_WIDTH => 400,
P_WINDOW_HEIGHT => 300,
P_TABLE_BLOCK_SIZE => 10,
P_TABLE_SORT_ORDER => 'ascending',
P_USER_ID => -1,
P_TABLE_COLUMNS => NULL,
P_TABLE_SELECT_COLUMNS => NULL,
P_TABLE_COLUMN_ALIAS => NULL,
P_TABLE_HEADERS => NULL,
P_POPLIST_FLAG => 'N'
);
COMMIT;
END;
/

Create a folder structure in $JAVA_TOP/xxaa/oracle/apps/bne/lov/webui


(/devapp/oracle/EBSDEV/fs1/EBSapps/comn/java/classes/xxaa/oracle/apps/bne/lov/webui)

Upload and Compile below JAVA files @ $JAVA_TOP/xxaa/oracle/apps/bne/lov/webui/

STEP3: JAVA Class File Creation

i. SQL Class Creation XXAASiteNameSQL.java


package XXAA.oracle.apps.bne.lov.webui;
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 XXAASiteNameSQL extends BneBaseSQL


{
public XXAASiteNameSQL(BneWebAppsContext paramBneWebAppsContext, String
paramString) throws SQLException, BneException
{
Connection connection = paramBneWebAppsContext.getJDBCConnection();
StringBuffer stringBuffer = new StringBuffer();

stringBuffer.append("SELECT ss.vendor_site_code, ss.address_line1 || ',' || ss.city || ',' ||


ss.state address FROM ap_suppliers s,ap_supplier_sites_all ss WHERE ss.vendor_id =
s.vendor_id AND s.vendor_name = :1");

if ((paramString != null) && (!paramString.trim().equals("")))


{
stringBuffer.append("AND " + paramString);
}
setQuery(connection, stringBuffer.toString());
}
}

Save the file with XXAASiteNameSQL.java

ii. Validator Class Creation XXAASiteNameValidator.java


package xxaa.oracle.apps.bne.lov.webui;
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 xxaa.oracle.apps.bne.lov.webui.XXAASiteNameSQL;

public class XXAASiteNameValidator extends BneUploadValidator {

public String[] getDomainParameters()


{
return new String[] { "P_SUPPLIER_NAME" };
}

public BneResultSet getDomainValues(BneWebAppsContext paramBneWebAppsContext,


Hashtable paramHashtable,
BneCompositeSQLCriteria paramBneCompositeSQLCriteria) throws
BneException
{
XXAASiteNameSQL XXAASiteNameSQL = null;
BneResultSet bneResultSet = null;
BneSQLStatement bneSQLStatement1 = new BneSQLStatement();

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

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

if (str1 == null)
{
throw new BneMissingParameterException("Supplier Field Error");
}

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

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

Save the file with XXAASiteNameValidator.java

iii. Component Class Creation XXAASiteNameComponent.java


package xxaa.oracle.apps.bne.lov.webui;

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 oracle.cabo.servlet.Page;
import oracle.cabo.servlet.event.PageEvent;
import oracle.cabo.ui.data.DictionaryData;
import xxaa.oracle.apps.bne.lov.webui.XXAASiteNameValidator;

public class XXAASiteNameComponent extends BneAbstractListOfValues


{
private XXAASiteNameValidator 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 XXAASiteNameValidator();
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("VENDOR_SITE_CODE"))
bneSimpleSQLCriteria = new BneSimpleSQLCriteria(0,
"VENDOR_SITE_CODE", 0, 9, FILTERVALUE, 2);
else
bneSimpleSQLCriteria = new BneSimpleSQLCriteria(0, "ADDRESS_LINE1 || ',' ||
CITY || ',' || STATE",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 Sup Sup Site 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
Supplier Site 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";
}
}

Save the file with XXAASiteNameComponent.java

STEP4: JAVA_LOV Creation


BEGIN
BNE_INTEGRATOR_UTILS.CREATE_JAVA_LOV
(P_APPLICATION_ID => 50202, -->Custom Application ID
P_INTERFACE_CODE => 'GENERAL_5_INTF',
-->BNE_INTERFACE_COLS_B.INTERFACE_CODE
P_INTERFACE_COL_NAME => 'P_SUPPLIER_SITE',
-->BNE_INTERFACE_COLS_B.INTERFACE_COL_NAME
P_JAVA_CLASS => xxaa.oracle.apps.bne.lov.webui.XXAASiteNameComponent',
-->from $JAVA_TOP/custom path of the Component class file,
P_WINDOW_CAPTION => 'Supplier Sites', -->Window name for the suppliers Site
P_WINDOW_WIDTH => 500,
P_WINDOW_HEIGHT => 500,
P_TABLE_BLOCK_SIZE => 50,
P_TABLE_COLUMNS => 'VENDOR_SITE_CODE,ADDRESS',
-->These 2 fields will displays @ pop-up window of the Supplier sites
P_TABLE_SELECT_COLUMNS => 'P_SUPPLIER_SITE',
P_TABLE_COLUMN_ALIAS => 'P_SUPPLIER_SITE,ADDRESS',
P_TABLE_HEADERS => 'Vendor Site Code, Address',
P_TABLE_SORT_ORDER => 'yes, yes',
P_USER_ID => -1);
COMMIT;
END;
/
STEP5: Jar file Creation and Server bounce
Take the backup of customall.jar file
Create JAR file by running the adcgnjar @ $JAVA_TOP
Ex:- [. Classes ] $ adcgnjar (It will prompt for user/pwd: provide the APPS user name pwd
to generate the customall.jar)

Restart the OA Core services

After creating the customall.jar fie download to local system and verify our three .class files
are added or not.(Three .class files should be add into this customall.jar file)

Das könnte Ihnen auch gefallen