Saturday, July 2, 2011

Key flexfield (KFF) validation in custom webadi template

I executed the following steps to  accomplish the validation of key flexfields :-

Step1 :- In the main procedure for the custom integrator, added a column which is not a table mapped column before registering the integrator. This column will only be present in the layout.Eg:- segment_name.

Step2 :- Updated the following columns of the bne_interface_cols_b for column(segment_name) mentioned in step1 using the update api present in the package BNE_INTERFACE_COLS_PKG.
LOV_TYPE='STANDARD',
OFFLINE_LOV_ENABLED='Y',
VAL_OBJ_NAME='oracle.apps.bne.integrator.validators.BneAccountingFlexValidator',
GROUP_NAME='TEST',
OA_FLEX_CODE='GL#' (code of KFF),
OA_CONCAT_FLEX='N'(to keep values in separate column on upload)
VAL_TYPE='KEYFLEX',
VAL_COMPONENT_CODE='OA_FLEX',
VAL_COMPONENT_APP_ID='231',
OA_FLEX_APPLICATION_ID='101'(application id of KFF),
DATA_TYPE=null,
UPLOAD_PARAM_LIST_ITEM_NUM=null

Step3 :- Updated the bne_interface_cols_b  for the child fields or table mapped fields for which the column created in step1 is parent using the package BNE_INTERFACE_COLS_PKG.Columns which should be updated :
DISPLAY_FLAG='N',
GROUP_NAME='TEST' (one created for parent),
VAL_TYPE='KEYFLEXSEG'.

Step4: Created the layout using Oracle WebADI responsibility and added the parent column in the layout. After  downloading the webadi, the parent column was an LOV(KFF) validated field and the data from the LOV(KFF) will be mapped to the child table mapped columns on upload.


1 comment:

  1. I followed you steps. But I got the following error in the trace file, can you help me to correct the error!


    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 TRACE BneOAExcelViewer:appendListOfValues() Done.
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 TRACE BneOAExcelViewer:getComponentFieldListOfValues()
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 TRACE Enter BneComponentFactory.create, loading component = oracle.apps.bne.integrator.component.BneOAFlexComponent
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 TRACE Leave BneComponentFactory.create
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 WARNING BneComponentPageContoller:init() has not been over-ridden.
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 TRACE BneComponentPageContoller:setParameters()
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 TRACE BneComponentPageContoller:setParameters()
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 TRACE BneXMLPrintWriter.bneEnsureOpen(), Accept-Encoding = gzip, deflate
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 TRACE BneXMLPrintWriter.bneEnsureOpen(), Using GZIPOutputStream
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 CRITICAL ERROR BneAbstractXMLServlet.doRequest(), fatal exception: java.lang.NullPointerException
    8/12/11 11:07 AM AJPRequestHandler-HTTPThreadGroup-3 CRITICAL ERROR java.lang.NullPointerException
    at oracle.apps.bne.utilities.BneViewerServerUtils.getFlexListOfValues(BneViewerServerUtils.java:269)
    at oracle.apps.bne.integrator.document.BneOAExcelViewer.appendParentListOfValuesColumn(BneOAExcelViewer.java:2803)
    at oracle.apps.bne.integrator.document.BneOAExcelViewer.appendParentMethods(BneOAExcelViewer.java:2711)
    at oracle.apps.bne.integrator.document.BneOAExcelViewer.appendActiveSheet(BneOAExcelViewer.java:1627)
    at oracle.apps.bne.integrator.document.BneOAExcelViewer.getViewerBean(BneOAExcelViewer.java:183)
    at oracle.apps.bne.integrator.document.BneViewerXMLService.handleRequest(BneViewerXMLService.java:187)
    at oracle.apps.bne.framework.BneAbstractXMLServlet.doRequest(BneAbstractXMLServlet.java:396)
    at oracle.apps.bne.framework.BneAbstractXMLServlet.doPost(BneAbstractXMLServlet.java:163)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
    at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26)
    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
    at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:642)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)
    at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
    at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234)
    at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29)
    at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    at java.lang.Thread.run(Thread.java:735)

    ReplyDelete