Making LOV off of an exposed method from second application module

Hello,
I am on JDev 11.1.1.4.0.
My ADF project worked fine until the spec changed on how Lookups are going to be handled. Previuosly, all the lookup tables were in the same database as other tables. Change is that FND Lookups will be created in the "Oracle" and my ADF project should connect to "Oracle" to get appropriate lookup values to build LOVs while maintaining the main database connection intact.
After some research, I now have 2 Application Modules, one my project and the other for Lookups to create LOVs. I went to Application Module configuration wizard to edit JDBC setting to point to "Oracle" database and created a read only view with the following SQL:
SELECT LOOKUP_CODE, MEANING, DESCRIPTION FROM FND_LOOKUP_VALUES  
WHERE LOOKUP_TYPE = 'MY_LOOKUP'
AND ENABLED_FLAG = 'Y'
AND LANGUAGE = 'US'I can run both AMs via "Oracle Business Component Browser" fine. However, I somehow have to set the lookup view object as data source to create LOV on the main updatable view object's attribute. If I set it the way I used to do treating the lookup view as a view object residing in the same AM I am getting "table or view does not exist" error. I guess it is something to do with the lookup view object, but I cannot seem to make any kind of progress on this.
Any help would be greatly appreciated.
Thank you
Bones Jones
Edited by: Bones Jones on May 19, 2011 10:40 AM

Well, I think I have found a solution which I didn't have to write a single line of code. My mistake was to think that I have to write code to achieve this.
Here is what I did:
*I already have the main AM and View Objects created for my project.  The following steps are done on top of that to bring LOV to life
1. Create a new, pretty empty AM, named LovAM.
1.1 Right click on the newly created AM and select 'Configurations'
1.2 Click JDBC Name value and click 'Edit'
1.3 Select the second database source where Lookup is defined. If not listed, go back out and create a new Database connection and come back.
2. Create a View Object with the following SQL:
SELECT
    TO_NUMBER(LOOKUP_CODE) ID,
    MEANING NAME,
    DESCRIPTION
FROM
    FND_LOOKUP_VALUES
WHERE
    LOOKUP_TYPE = 'MY_LOOKUP' AND ENABLED_FLAG = 'Y' AND LANGUAGE = 'US'3. Notice you now have LovAMDataControl
4. Create a jspx page and create a table with the main data control's binding (This was a part of the requirements).
5. I create a read-only table with LovAMDataControl.LovLookUp1 binding (I think this creates/exposes correct binding in the pageDef).
6. Now I drag-and-drop an attribute that I have been wanting to display LOV from the main binding.
7. Selected single select listbox. You will be presented with 'Edit zlist Binding' screen.
8. Base Data Source is the main data control binding.
9. Select Dynamic List
10. Select LovAM data control binding as List Data Source.
11. (optional) Selected 'Name' as Display Attribute.
11.1. (optional) I don't want to see the table created in step 5. On the jspx page, go to Source tab and delete the table from there. I think this keeps binding in pageDef while the UI component is deleted from the page.
12. Save and Run
Now, I didn't have to create Root Application Module in the code, but still achieved what I wanted.
Thanks
Bones Jones

Similar Messages

  • Calling custom methods from Nested Application Modules

    We are having a problem with passing parameters to our nested App Modules.
    We have a custom method in our nested app module and when we drag that method from our data control palette in our page everything seems to work just fine. We are binding our NamedData values to #{requestScope.<field>} where the fields are inputText controls. When we run it will execute the function but the parameters are null.
    It seems to me that the Nested App Module can not evaluate the EL expression, or in other words when it gets evaluated it returns a null.
    Can anyone help with this?
    Thanks,
    Peter

    If you use an EL expression of some hard-coded value instead of #{requestScope.XXX} does that value correctly get passed to the function?
    In other words, are you 100% sure that EL expression is not evaluating to null ?
    If you drop an AM method as a parameter form on a page, you'll see that by default it's NamedData elements use EL expressions that reference attribute bindings that are bound to local page-def variables, rather than to #{requestScope.something}

  • ADF Groovy call method in different application module

    Hi All,
    I have two different application modules(Say TestAM.xml and MyTestAM.xml). I have a method in second application module. I want to call that method from Entity object. Normally we use adf.object.applicationModule.getName()  if it is in the first application module
    So how do I call a method in second application module from Entity object?
    I am using JDev 11.1.1.5 and ADF BC.
    Thanks,
    Rajesh

    Hi,
    In my opinion the second way have a advantage, which its method could be invoke automatically using a invokeAction on pageDef, if necessary.
    regards

  • BPF Launch from second application server

    I have the following setup.
    SAP BPC 7.0 SP9 Patch 1
    SQL Server 2005 Enterprise Edition SP2
    Two application servers and one database server.
    We have a loadbalancer F5.
    When I launch the BPF and the loadbalancer takes me to the second application server. Then the message comes up that the templates does not exist. When I go to eTools and try to open the Company folder, first it says that the folder thas not exist and after about 30 seconds the templates start appearing.
    I have followed the instructions on how to do the Loadbalancer, and I can see that the balancer is working, but templates take long to appear from the second application server.
    It seems like there is a delay in the templates showing.. Do you have any idease why this happens? Or what settings I can have a look at?
    Regards
    Henry

    So first of all I will check the tables:
    tblserverinfo and tblappsetinfo.
    Into tblserverinfo you must have just records with suffix 1 and for application server and web server you must have virtual Ip of your NLB.
    Iinto tblapsetinfo all the records refering servers must you just name with suffix 1. (sql server1, olap server 1...)
    The second check I will do it regarding where do you have the file server.
    Because you have two application servers then you must have a share drive where you have the file server because the templates must be access from both servers.
    So for the file server you will not be able to use local drive because this can be a problem when you try to open the templates.
    That's means you have to check if you can access the path specified for file server (you can find it into tblserverinfo) from both application server. It can be that actually from second application server you have access problems.
    The third thing to be check is the affinity(persistency) of you NLB F5.
    In your case because the afinity must be single (persistency on) because once which you connect to one application server you would like to have all request going to same application server.
    All the tests must be done with antivirus and firewall disable into both application servers.
    Regards
    Sorin radulescu

  • How to call  Java method from SAPUI5 applications?

    Hi Experts,
        Please give me information that how can I call Java method or jars from SAPUI5 applications?
    Thanks,
    Nag

    Hello Nag,
    why do open this thread in BRM Space? I would suggest reopen this in "UI Development Toolkit for HTML5 Developer Center" Space.
    Regards,
    Tobias

  • Adding and Calling custom method to the application module or view object

    My project uses jheadstart 10.1.2.
    I want to run "oracle reports" from my uix page. I have coded a method which takes "VOParameter view object" as a parameter to run report.
    I have generated the input page (parameter page) which based on VOParameter view object, by using jheadstart for using jheadstart lov, date etc. advantages. But I dont know how can I add custom method on application module or view object implementation class and custom button on uix page to call from uix page.
    THANKS for your help

    Yes, method binding has been added to the page UI model.
    I have find some clue that When I darg and drop metod as a submitButton, the code "
    <SubmitButton text="runReport" model="${bindings.runReport}" id="runReport0" event="action" />"
    is added to the uix page code. I change this code like this;
    <button text="runReport" model="${bindings.runReport}" id="runReport0" event="action" onClick="submitForm('dataForm',1,{'event':'action','source':'runReport0'});return false"/>
    by adding onClick method and changed submitButton to button tag..
    Then button action is triggered. But I can not pass to the design part of the uix page. It gives me the message like that "The document is not a valid state" But it works. I dont know why?

  • Two different ways to execute a custom method in an Application Module

    I have a custom method exposed in an Application Module's Client Interface, and i know two different ways of executing it from my ADF Faces project (both works fine):
    1) Calls the method directly through the Data Control:
    MyModule service = (MyModule)JSFUtils.resolveExpression("#{data.MyModuleDataControl.dataProvider}");
    service.myMethod();
    2) Adding a Method Action in the PageDef's file:
    <methodAction id="myMethod" InstanceName="MyModuleDataControl.dataProvider"
    DataControl="MyModuleDataControl" MethodName="myMethod"
    RequiresUpdateModel="true" Action="999"
    IsViewObjectMethod="false"/>
    //Call the method from the binding container
    BindingContainer bindings = getBindings();
    OperationBinding operationBinding = bindings.getOperationBinding("myMethod");
    operationBinding.execute();
    Basically i want to know: what are the differences (pros & cons) of each approach ??

    Hi,
    In my opinion the second way have a advantage, which its method could be invoke automatically using a invokeAction on pageDef, if necessary.
    regards

  • Defining bc4j.xcfg for Webservice from ADF Application Module

    Hi all,
    I've already posted my previous question in JBO30003 while executing ADF Application Module WebService
    but no replies at all :)
    after thorough inspection, i found that why my client can connect to ADF AM and why my WebService Invocation is failed with JBO 300003. My J2EE Client application is connected to ADF AppModule with some configuration in CPX file.
    <JboProject
       id="DataBindings"
       xmlns="http://xmlns.oracle.com/adfm/application"
       version="10.1.2.18.73"
       SeparateXMLFiles="false"
       Package=""
       ClientType="JClient" >
       <Contents >
          <DataControl
             id="AppModuleDataControl"
             SubType="DCBC4J"
             SupportsFindMode="true"
             SupportsTransactions="true"
             Package="package"
             FactoryClass="FactoryImpl"
             Configuration="AppModuleEmbeddedAS" >
             <Parameters >
                <Parameter
                   name="Sync"
                   value="Immediate" >
                </Parameter>
             </Parameters>
          </DataControl>
    and so forththis CPX file define that this client connect to Application Module on my AppServer with "AppModuleEmbeddedAS" configuration, as stated in my BC4J.XCFG.
    <AppModuleConfig name="AppModuleEmbeddedAS">
             <AppModuleJndiName>AppModuleBean</AppModuleJndiName>
             <java.naming.security.credentials>welcome</java.naming.security.credentials>
             <DeployPlatform>EjbIas</DeployPlatform>
             <java.naming.security.principal>admin</java.naming.security.principal>
             <jbo.internal.embedded>true</jbo.internal.embedded>
             <HostName>localhost</HostName>
             <jbo.ampool.dynamicjdbccredentials>false</jbo.ampool.dynamicjdbccredentials>
             <ApplicationName>AppModule</ApplicationName>
             <jbo.ampool.doampooling>false</jbo.ampool.doampooling>
             <java.naming.security.authentication>simple</java.naming.security.authentication>
             <java.naming.factory.initial>oracle.jbo.common.JboInitialContextFactory</java.naming.factory.initial>
             <ConnectionPort>23891</ConnectionPort>
             <JDBCDataSource>jdbc/DBGEBPOC_on_LOCALHOSTDS</JDBCDataSource>
             <java.naming.provider.url>ormi://localhost:23791/current-workspace-app</java.naming.provider.url>
             <jbo.server.internal_connection>jdbc/DBGEBPOC_on_LOCALHOSTCoreDS</jbo.server.internal_connection>
             <jbo.dofailover>false</jbo.dofailover>
             <ApplicationPath>current-workspace-app</ApplicationPath>
             <jbo.ampool.resetnontransactionalstate>false</jbo.ampool.resetnontransactionalstate>
          </AppModuleConfig>Now, how could I define configuration like my J2EE Client in my web service? as we know that web service's client is web browser. Does it mean that we can't define any CPX file?
    FYI, My webservice's End Point pages is successly shown up. but when i invoke the method, it returns XML with faultmessage Error JBO30003.

    Hi,
    You can directly edit the bc4j.xcfg file. Note that the WebService binding is not created from the Am directly but from the deployed WSDL file.
    Frank

  • View link between VO from two application modules

    Is it possible to create view link between VOs from 2 different Application modules?

    Here is what it says:
    SymptomsYou have an ADF BC (BC4J) project and you are getting the following error:
    oracle.jbo.domain.Number; local class incompatibleA more detailed error looks similar to:
    oracle.jbo.domain.Number; local class incompatible: stream classdesc
    serialVersionUID = -7171468674200794918, local class serialVersionUID =
    -6507359405709672486
    CauseThis problem is caused by either that:
    You have inadvertently mixed two mutually exclusive domain libraries like "BC4J Generic Domains" (bc4jdomgnrc.jar) and "BC4J Oracle Domains" (bc4jdomorcl.jar).
    or
    You have added the "BC4J Datum" library (bc4jdatum.jar) to your middle-tier class path, and are trying to use a JDBC driver different from the one that ships with JDeveloper 10g in the box.
    The BC4J Generic Domains and the BC4J Oracle Domains are never meant to be used in the same application classpath. They contain different implementations of the same set of classes, one destined for use in Oracle JDBC driver environments, and the other for use with other non-Oracle JDBC drivers.
    The BC4J Datum library is designed for use in a thin-client Classpath that is remotely accessing an ADF Business Components middle tier deployed as an EJB Session bean. It contains only the domain classes (typically jar'ed up as part of the whole Oracle JDBC Driver JAR) without having to have the rest of the JDBC Driver JAR on the thin client. SolutionPlease check if any of the above suggested scenarios is applicable to your application.
    If you have the BC4J Generic Domains and the BC4J Oracle Domains in the same project despite that they are never meant to be used in the same application classpath you will get this error. They contain different implementations of the same set of classes, one destined for use in Oracle JDBC driver environments, and the other for use with other non-Oracle JDBC drivers.
    Goto the Project Properties for you project.
    Select Profiles -> <Profile Name> -> Libraries
    Check in the Selected list (to the right) if you have both BC4J Generic Domains and the BC4J Oracle Domains there. If so, remove the one not appropriate for your project.

  • JNDI lookup from Portal Application Module

    Dear Experts,
    I have a problem with looking up a Deployable Web Service Proxy from within a Portal Application Module.
    I use NWDI and created both the Deployable WS Proxy DC and the Portal App DC.
    I added the generated Proxy to the Proxy DC's public part and added it as used DC to the Portal Module DC.
    When I perform the JNDI lookup, no exception is thrown but the Code is not executed any further...
    Here is the source:
    Category.APPLICATIONS.infoT( loc, "lookup JNDI...", new Object[] { this });
    Object o = ctx.lookup(JNDI_NAME);
    Category.APPLICATIONS.infoT( loc, o.getClass().getName(), new Object[] { this });
    service = (OrchestrationService)o;
    Category.APPLICATIONS.infoT(loc, "success!", new Object[] { this });
    The log shows the name of the class (OrchestrationServiceImpl) but not the success! part.
    As I said: No exceptions are thrown...
    Any help is appreciated!
    Matthias

    Solved the problem!
    It's allways the same:
    As soon as you ask the question the answer comes to you by itself...
    I needed to add a reference to the using DC. I already did that before but not correctly:
    If you want to add a reference to a j2ee application you need to read this document:
    [Calling J2EE Applications from Portal Applications|http://help.sap.com/erp2005_ehp_03/helpdata/EN/42/9ddf20bb211d72e10000000a1553f6/frameset.htm]
    It says the reference has to look like this:
    <property name="SharingReference" value="SAPJ2EE::sap.com/Hello"/>
    I hope it helps someone.

  • Calling ABAP class methods from JAVA application

    Hi All,
    I want to fetch ITS related information (SITSPMON Tcode) in my JAVA application. But i didnt find much BAPIs for the same. While debugging I came accross few class methods with help of which I can get the required information. So is there any way we can call and execute methods of ABAP classes through java application?
    for e.g. I want to call GET_VERSION method of CL_ITSP_UTIL class.
    Thanks,
    Arati.

    Hi,
    Yes, as per my knowledge the only way to interact is using BAPI exposed as RFCs. So try to invoke those class methods in one CUSTOM BAPI and expose that BAPI as RFC and consume that RFC to get those details.
    Regards,
    Charan

  • Non-Serializable Parameter in client methods on an Application Module

    Hello,
    I want to create a client method which expects an java.io.InputStream as input parameter. Unfortunately all method parameters must be of a data type that implements the Serializable Interface. This might be good and reasonably for remote deployments as EJBs, but I want to use them local.
    Is there any solution for this problem?
    Thanks,
    Christian

    The use of our interface-based approach is for guaranteeing that your client layer is always separable from your middle-tier layer.
    If you are implementing a project where you are making the assumption that you won't be separating the two, then you can:
    (1) Make sure you're using Immediate sync mode, and
    (2) Have your client downcast to your *Impl class to call your method with non-serializable parameter.
    This isn't best practice in general, but given your constraints, it's the way to solve this problem.

  • Unable to extend from object Application Module

    Hi All,
    oracle.apps.icx.por.reqmgmt.server.ReqMgmtAM has an invalid View Instance AllReqsVO.
    In 11i there were customizations in iproc in which the ReqMgmtAM has been extended and some methods have been coded .Now I am working on porting the changes to R12 instance and wanted to redo the changes R 12.1.2 jdeveloper version 10.1.3.3.0.
    The extended AM in R11 has two overriden methods getGroupVOName, bindSummaryQueryInnerWhereParams to call two extended VO objects .
    Now in R12 Jdeveloper when I am trying to extend the ReqMgmtAM it does not allow me mentioning oracle.apps.icx.por.reqmgmt.server.ReqMgmtAM has an invalid View Instance AllReqsVO.
    What should I do ? Please advise .
    The changes is to have a poplist instead of MyRequisitions and choosing MyRequisitions or Mylocation requsitions will show all the requisitions belonging to that Deliver to location ...and user should be able to go the requisition details page and should be able to copy to cart and perform actions as it is .
    --Chandra                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    hi
    is this ReqMgmtAM a root AM ,if it is so, extension of root Am may cause so many problems ,if u provide your requirement details ,we can go for some alternate solution also .
    thanx
    Pratap

  • Calling stored procedures from entity object and application module

    Hello
    I've put in place an EntiyImpl base class containg helper methods to call stored procedures.
    I now need to call stored procedures from the application module.
    Apart from creating an application module base class and duplicating the helper method code is there a way
    to share the helper methods for calling stored procedures between the entity impl and application module impl ?
    Regards
    Paul

    Does the helper code depend on features of a particular entity object instance, beyond its database transaction?
    If so, I'm not sure I see how it could be used from an application module class.
    If not, here's what you do:
    Step 1:
    Parametrize the database transaction--you might even want to. So instead of
    protected myHelperMethod(Object someParam) {
    DBTransaction trans = getDBTransaction();
    change this to
    protected myHelperMethod(DBTransaction trans, Object someParam) {
    Step 2: make the method public and static--once you parameterize the DBTransaction, you should be able to do this.
    public static myHelperMethod(DBTransaction trans, Object someParam) {
    Step 3: Remove the method from your EntityImpl base class into a utility class:
    public abstract class PlSqlUtils {
    private PlSqlUtils() {}
    public static myHelperMethod(DBTransaction trans, Object someParam) {
    When you want to call the method from an application module, entity object, or even view object class, call
    PlSqlUtils.myHelperMethod(getDBTransaction(), paramValue);
    Unlike Transaction.executeCommand(), this lets you provide functionality like setting procedure parameter values, retrieving OUT parameter values, etc.
    Hope this helps,
    Avrom

  • Call a  Webservice method from DotNetApplication

    Hi all,
    I have created One web service using Axis. My WebServices are below:
    import java.util.*;
    public class NHLService {
      HashMap standings = new HashMap();
      public NHLService() {
        // NHL - part of the standings as per 04/07/2002
        standings.put("atlantic/philadelphia", "1");
        standings.put("atlantic/ny islanders", "2");
        standings.put("atlantic/new jersey", "3");
        standings.put("central/detroit", "1");
        standings.put("central/chicago", "2");
        standings.put("central/st.louis", "3");
      public String getCurrentPosition(String division, String team) {
        String p = (String)standings.get(division + '/' + team);
        return (p == null) ? "Team not found" : p;
    }Its name is NHLService.jws. Then I run this service in my localhost like this "http://localhost:8080/axis/NHLService.jws" It is running and show that
    There is a Web Service here
    Click to see the WSDL Now I can view the wsdl. Now I want to call this webservice method from DotNet Application.Please any one knows that can you guide me the steps.
    Thanks in Advance,
    Raj

    but i don't understand a thing...
    when i create a static stub client i link with the config-wsdl file the path of my webservices wdsl and the client compile and run well...
    why with the servlet i had to link .class file or jar file??
    thanks a loto

Maybe you are looking for