Custom method in application service

Hi All,
i have created a custom method in an application service.But It is not being shown in service browser.
Can you  plz tell me what is the reason?.
Thanks
Sampath.G

Hi Sampath,
I think you haven't checkied the thread I mentioned carefully. As I mentioned in my previous reply the CAF Service Browser is based on CAF Web Dynpro model which has lot of limitations. You can refer the <a href="https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes/sdn_oss_caf/~form/handler">SAP Note 1030595</a> and <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/20063659-4f03-2a10-6a8a-d88786c39b71">this document</a>. After refering these documents you'll understand that CAF Service browser don't support all types of custom application service operations. To test the application service create web service out of it and test it from wsnavigator.
Thanks,
Dipankar

Similar Messages

  • Invoking custom methods in application modules

    Hi,
    I am absolutely new to oracle ADF.I was recently working with application module.My question is how do I call a custom method(say myCustomMeth(String str) ) residing inside my application module from my Managed bean?I saw one example where the operation(i.e. the method) was directly dragged and dropped onto the jspx page from the data control.Is it the right way of doing it?I also saw one example where operation binding was used to invoke a method inside the application module although I didn't understand the code fully.I am really confused now.Please help.
    Thanks in advance.

    user11930797 wrote:
    My question is how do I call a custom method(say myCustomMeth(String str) ) residing inside my application module from my Managed bean?You write the custom Application Module method and you expose it to the AM's client interface. By doing so, the custom operation becomes available in the AM Data Control and can be bound to your jspx page.
    I saw one example where the operation(i.e. the method) was directly dragged and dropped onto the jspx page from the data control.Is it the right way of doing it?I also saw one example where operation binding was used to invoke a method inside the application module although I didn't understand the code fully.Both of the methods that you are mentioning above are used:
    1. You can drag the custom method from the data control in JDeveloper and drop it in your page as a command button or link to create a method binding declaratively this way. The method binding is executed via some command button or link and your custom AM method is called, or
    2. You can create the method binding yourself in the bindings tab of you jspx page, add the command button in your page and define an action listener for it in your backing bean. In your backing bean action listener you can write the necessary code to execute the method binding, which will call your custom AM method.
    Hope it is clear.
    Nick

  • 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?

  • Method signature of Application Service is changed by Webdynpro

    Hi,
      I have created  a method in application service which takes 3 string arguments. It access create() of Entity service. when I try to access the same method in webdynpro, I found the signature of method is changed.
      Method   in Application service  is  <b>addNewRecord(String, String, String</b>). I found in webdynpro ..<b> addNewRecord(IAspect,String,String,String)</b>. why signature of method is changed? how to construct IAspect object?
    Thanks in advance..
    Haribabu ch.

    This is how you would execute such method
              IServiceFacade serviceFacade = CAFServiceFactory.getServiceFacade();
                             IServiceModule serviceModule = serviceFacade.getServiceModule(CorecafDefinition.APPSERVICE);
                             IAspect aspect = serviceModule.createAspect(CorecafDefinition.APPSERVICE);
              IAction action = aspect.createAction(bams1cafDefinition.APPSERVICE_METHOD);          
              action.getInputParameterStructure().setAttributeValue("Var1", val1);
              action.getInputParameterStructure().setAttributeValue("var2", val2);
              action.getInputParameterStructure().setAttributeValue("var3", val3);
              action.execute();

  • How to catch the user defined  exception in application service

    Hi All,
    How to catch the user defined  exception in application service  when it is throwed by the external service..
    Regards,
    Thirumurugan.

    Hi,
        Thanks for your reply,
            Actually I  am calling validate Login method of External service from the application service. When the login fails, my external service will throw user defined Exception.I want to catch the user defined Exception.
        But in the application service , validate Login method can catch  only Invocation Exception and Engine Exception.
       These two exception are present in the Application service remote interface.
      public com.sap.comptest.extsrv.accrjavawsvi__document.output.
    Ns1_validateLoginResponse validateLogin(com.sap.comptest.extsrv.accrjavawsvi__document.input.Ns1_validateLogin input) throws com.sap.caf.mp.base.exception.InvocationException, com.sap.caf.mp.base.exception.EngineException;
    User defined exception is not present there. When i include the webservice as external service in CAF, it suppossed to generate the java file for the custom exception of validate Login method and this generated file should be included in the application service remote interface..
    public com.sap.comptest.extsrv.accrjavawsvi__document.output.
    Ns1_validateLoginResponse validateLogin(com.sap.comptest.extsrv.accrjavawsvi__document.input.Ns1_validateLogin input) throws com.sap.caf.mp.base.exception.InvocationException, com.sap.caf.mp.base.exception.EngineException,
    (generated file name of user defined Excpetion.
      Then only  validate login method  of application service can catch  the user defined Exception which is thrown by the  external service.
    regards,
    Thirumurugan.p

  • Call external service in a Application service created from ES

    Hi Experts
    I have the follow situation:
    I've modeled a new service in Enterprise Service Builder. This service i'll implement in caf application. In the method create by application i'll call one method of external service.
    I imported this modeled service in Create Web Service Provider option in external package, select the Enterprise Service Repository source option and choice the respective Service Interface.
    In this moment the caf created a new application service, with methods of modeled service. That's all right.
    Now i import a external service of esworkplace. All the step are ok. But the problem is going to next step.
    I need to call this imported service in the method of application service. I know 3 way to do this:
    1. Mapping the external service with this application service. In this case i have a problem - the method of external service is expose as web service, and i don't want this. Just the method of modeled service must be expose.
    2. Create another application service, map the external service with this application service, and create a depency between this application service and the application service created by modeled service. I think this work fine and resolve the problem of expose the method of external service. However i think this isn't a good way to do.
    3. Instantiate the service class of exernal service. From this class i can call the method of external service in application service. But now i have another problem. If i see the implementation of this class, it have a static block which call a URL class, and pass as parameter a wsdl file located in one directory of my computer like
    url = new java.net.URL("file:/D:/SAP7110Workspace.jdi/LocalDevelopment/CRVP/demo.sap.com//ejbmodule/
    _comp/tmp/0/EJB/src/META-INF/xml/ext/rootwsdl_WorkCentreSimpleByPlantQueryResponse_InService.wsdl");
    when execute the application in the server it don't find this file and i give one error.
    I think the best way to do is the 3° way. But why did the caf generate the URL with My computer directory instead of in directory of application? There are some solution to this problem?
    I've change this line manualy, but all the time when i generate the project, i need change this code again.
    Regards
    Marcos

    Hi,
    You may consume external service via JNDI
    Context context = new InitialContext();
    <JNDI OBJECT> local = (<CAST JNDI OBJECT>)context.lookup("<JNDI OBJECT>");
    //Call the method
    If you are using CE 7.11, go to NWA -> Problem Management -> JNDI browser  > ..... -> ObjectName for <JNDI OBJECT>
    - julius

  • 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

  • Step by Step to access custom Java API in Application Service.

    Hi Experts,
           I have a situation to access the custom Java API in CAF. The Java API fetches the data from MDM. I need to get the data from that API and and use it in the CAF Application Service layer? Is there a way to access the JAVA API in the Application Service Layer? If so please do help me out. Step by Step solution would be appreciated.
    thanks in advance.
    Regards
    Ketan

    Hi Ketan,
    You can do it in two ways.
    1. You can create your own custom class in the ejbmodule which you can see in the Navigator view.
    2. You can have a ear having the custom class. This ear will be in a separate DC and CAF will have dependency to it.
    Regards,
    Srinivasan Subbiah

  • Complex data type to application service create method(CRUD)(Urgent)

    Hi Experts,
    I have created an entity service with remote persistency(Web service).i am mapping the entity service CRUD methodes to web service methodes and i am calling these CRUD methodes form the corresponding applicaion service CRUD methodes.With out complex data types both sevices are working  fine.I have tested them in the service browser.
    Later I have created a complex data type in the entity service and mapped it to web service.But when i am creating the application service create(CRUD) method for this entity service the complex data type which i have created in the entity service is not being shown as possible input attributes of the application service create method.Due to this i am not able to pass this complex attribute form the application service create method to the entity service create method.
    Plz tell me how can i resilve this issue.(Urgent)
    Thanks
    Sampath.G

    Hi Sampath,
    Please check SAP note 1004108. I think the issue you describe is one of the limitations described in this note.
    Regards,
       Jan

  • Exception while exposing Application Module Methods as Web Service

    Hello Everyone,
    I am working on Jdeveloper 11.1.1.3.0 version and tried to expose one method of application module as web service. To do this, i used "Service Interface" tab of Application module within Jdeveloper and Jdeveloper had generated all interfaces, stubs, code for the Session bean required for web service. I am now trying to "Test Web Service" from the implementation class generated then i am getting this error in Weblogic deployment. Any help/pointers would be highly appreciated.
    I used another installation of Jdeveloper same version at my collegues desktop but getting the same error. Not sure, if this version of Jdeveloper is having issue in exposing application module as web service. I think that database related exception can be ignored as no database call is being made by the application.
    [Running application SalaryControlService on Server Instance IntegratedWebLogicServer...]
    [10:41:26 AM] ---- Deployment started. ----
    [10:41:26 AM] Target platform is (Weblogic 10.3).
    [10:41:27 AM] Retrieving existing application information
    [10:41:27 AM] Running dependency analysis...
    [10:41:27 AM] Deploying 2 profiles...
    [10:41:27 AM] Wrote EJB Module to C:\Documents and Settings\sacggupt\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SalaryControlService\ModelEJB.jar
    [10:41:28 AM] Wrote Enterprise Application Module to C:\Documents and Settings\sacggupt\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SalaryControlService
    [10:41:29 AM] java.lang.NullPointerException
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.jaxws.AssemblerProcessor.getClassNamesFromEjb(AssemblerProcessor.java:180)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.jaxws.AssemblerProcessor.processEjb(AssemblerProcessor.java:149)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsEjbAssembler.processEjb(JaxwsEjbAssembler.java:182)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsEjbAssembler.ejbAssemble(JaxwsEjbAssembler.java:152)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.jaxwsEjbAssemble(Processor.java:630)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.execute(Processor.java:327)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.execute(Processor.java:230)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.Main.mainNoSystemExit(Main.java:84)
    [10:41:29 AM]      at oracle.j2ee.ws.tools.wsa.Main.main(Main.java:49)
    [10:41:29 AM] WARNING: Error while processing ejb-jar.xml for ejb module at "C:\Documents and Settings\sacggupt\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SalaryControlService\ModelEJB.jar".
    [10:41:29 AM] INFO: Unable to load annotation weblogic.javaee.CallByReference for parsing. The annotation is ignored.
    [10:41:29 AM] INFO: Unable to load annotation weblogic.javaee.CallByReference for parsing. The annotation is ignored.
    [10:41:29 AM] INFO: GenericWSWarAnnotationListener.parseAnnotatedClass Adding Servlet Mapping with URL pattern /HrModuleService for annotated WebService class lt.andrejusb.model.server.serviceinterface.HrModuleServiceImpl
    [10:41:30 AM] WSA process exited with code 0
    [10:41:30 AM] Deploying Application...
    <Jan 3, 2011 10:41:31 AM IST> <Warning> <J2EE> <BEA-160195> <The application version lifecycle event listener oracle.security.jps.wls.listeners.JpsAppVersionLifecycleListener is ignored because the application SalaryControlService is not versioned.>
    <ServerMessages><warningMBeanRegisterError> Failed to register the web service Config MBeans for application: SalaryControlService endpoint: SalaryControlService the error is: oracle.as.jmx.framework.util.MissingConfigurationFileException: The configuration at URI "WEB-INF\oracle-webservices.xml" cannot be loaded.
    [10:41:36 AM] Application Deployed Successfully.
    [10:41:36 AM] The following URL context root(s) were defined and can be used as a starting point to test your application:
    [10:41:36 AM] http://10.176.162.16:7101/SalaryControlService
    [10:41:36 AM] Elapsed time for deployment: 9 seconds
    [10:41:36 AM] ---- Deployment finished. ----
    Run startup time: 9391 ms.
    [Application SalaryControlService deployed to Server Instance IntegratedWebLogicServer]
    Target URL -- http://localhost:7101/SalaryControlService/HrModuleService
    Edited by: LearningToFly on Jan 2, 2011 9:13 PM

    Hello,
    Is this resolved yet? The reason I am asking is that I'm getting the same error as yours. I am trying to run the StoreFront tutorial in JDeveloper 11.1.1.3 and here's what I got:
    [04:21:31 PM] ---- Deployment started. ----
    [04:21:31 PM] Target platform is (Weblogic 10.3).
    [04:21:32 PM] Retrieving existing application information
    [04:21:32 PM] Running dependency analysis...
    [04:21:32 PM] Deploying 4 profiles...
    [04:21:32 PM] Wrote MAR file to C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule\metadata1.mar
    [04:21:33 PM] Wrote Web Application Module to C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule\StoreFrontUIWebApp.war
    [04:21:38 PM] Wrote EJB Module to C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule\StoreFrontServiceEJB.jar
    [04:21:40 PM] Wrote Enterprise Application Module to C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule
    [04:21:41 PM] java.lang.NullPointerException
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.jaxws.AssemblerProcessor.getClassNamesFromEjb(AssemblerProcessor.java:180)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.jaxws.AssemblerProcessor.processEjb(AssemblerProcessor.java:149)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsEjbAssembler.processEjb(JaxwsEjbAssembler.java:182)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.jaxws.JaxwsEjbAssembler.ejbAssemble(JaxwsEjbAssembler.java:152)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.jaxwsEjbAssemble(Processor.java:630)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.execute(Processor.java:327)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.cli.Processor.execute(Processor.java:230)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.Main.mainNoSystemExit(Main.java:84)
    [04:21:41 PM]      at oracle.j2ee.ws.tools.wsa.Main.main(Main.java:49)
    [04:21:41 PM] WARNING: Error while processing ejb-jar.xml for ejb module at "C:\Documents and Settings\ylin\Application Data\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\StoreFrontModule\StoreFrontServiceEJB.jar".
    [04:21:41 PM] INFO: Unable to load annotation weblogic.javaee.CallByReference for parsing. The annotation is ignored.
    [04:21:41 PM] INFO: Unable to load annotation javax.interceptor.Interceptors for parsing. The annotation is ignored.
    [04:21:41 PM] INFO: Unable to load annotation weblogic.javaee.CallByReference for parsing. The annotation is ignored.
    [04:21:41 PM] INFO: Unable to load annotation javax.interceptor.Interceptors for parsing. The annotation is ignored.
    [04:21:41 PM] INFO: GenericWSWarAnnotationListener.parseAnnotatedClass Adding Servlet Mapping with URL pattern /StoreFron
    Can someone help with this? Thank you in advance!
    Edited by: 834077 on Mar 5, 2011 6:28 AM

  • How to expose custom methods of servlet as web services

    Can i know how to expose the custom methods of the servlet as web services. if it is not posssible then what alternate ways are possible other than ejbs?
    regards

    Hi
    I want to know that whether the custom methods of servlet can be exposed as webservices or not?
    Secondly is there init method like we have in servlets so that we can do all the one time loading in the init() method.
    regards

  • Method as a WEB Service in an Application Service

    Dear Colleaguaes,
    When importing a web service method into a caf project, and exposing it as method into an application service, is it necessary to create an Entity Service as Web Service wrapper still?
    I can check that a web service method works, it returns the data, but it returns nothing when I try to test the corresponding method in the application service.
    I've also created a destination in Destination Template Management and done the external service to the destination configured mapping. But still without success....
    Thank you in advance,

    Hi,
    Thanks a lot for your help.
    Sorry i didn't specify before but I also have created Web Service Proxy from the URL of my Web Service into my web app. But now I don't now how to use the method that i created on my web service on to my web application.
    To be more specific I don't know how to wire the two af:InputText with my web service method in the way when I click the submit button it past the info to web service and which has to return the Student ID :
    Ex:
    Name: af:InputText
    LastName: af:InputText

  • How can I call the create method in BO from Application Service

    Hello!
    When I create a Business Object, CAF generates some methods automatically.
    How can I call the create method in the BO from Application Service logic?
    When i call the method then the entityManager and the sessionContext is NULL.
    How can I initialize this?
    Can anybody help me?
    Thanks, Thomas

    If you are using CE 7.11...
    1) In the Application Services, add the BO as dependant object in dependencies tab.
    2) In the implemention, add the following codes to call create method of the BO:
    this.get<BO>.createMethod();
    julius

  • How to get currentRow in an Application Module custom method?

    I have written a custom method in the BC4J AppModule. In that custom method I want to update a row. But I do not know how to getCurrentRow in my custom method.

    this is probably better since nobody is giving other solutions:
    Repost: Simple question but no one answers

  • Problem in Viewing Application service methods through Service Browser.

    Hi All,
    I have an Application Service (ReadFundDetails) which contains some Operations
    1> createFundAtSA
    2> updateFundAtSA
    But I can’t see the operations under the Application Service through service browser.
    I have deployed the project in two diff server. But the same problem persists in both the server. All the class files under the jar file have been generated successfully. There is no build issue. I have undeployed the project then build and redeploy but still the problem comes.
    I have another project for which i can see the Application Service operations successfully.
    Regards,
    Mithu

    Hi Mithu,
    CAF service browser is based on CAF Web Dynpro model which has several limilations. Check the SAP note <a href="https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes/sdn_oss_caf/~form/handler">1030595</a> and <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/20063659-4f03-2a10-6a8a-d88786c39b71">this</a> document for more details on the limitations of CAF Web Dynpro model. To check the operations working properly create a web service for the app service test from the wsnavigator.
    Thanks,
    Dipankar

Maybe you are looking for

  • Flash Pro CC is crashing when trying to create new of open existing document.

    These are the things that I have already tried: Sign out and back in to Creative Cloud App. >> did not work Unistall and reinstall the app. >> did not work The is a portion of the crash report I get:      Crashed Thread: 0  Dispatch queue: com.apple.

  • One user can't get Outlook to work

    Hi, We have one user who is having problems with Outlook. It started a few weeks ago, and no one else is having the same problem. It says "The connection to Microsoft Exchange is unavailable. Outlook must be online to complete this action" Environmen

  • Backup Server Farm

    Hi, Is it possible to configure a backup serverfarm so that when the primary serverfarm receives a certain number of connections (based on L3, L3+L4, or info within L7) all new connections are redirected to the backup serverfarm? Thanks.

  • Flash CS5 + Adobe AIR2 class error

    As you all know, Flash CS5 is now released. It is confusing me as AIR2.0 is still in beta. so is the air2 in flash cs5 stable or not? I tried to use DatagramSocket class in Flsh CS5 but failed import flash.net.DatagramSocket Up to this point, everyth

  • Filtering out rows based on field value

    Hello, I have something like this: create table stuff avalue varchar2, anothervalue varchar2, thirdvalue varchar2, anumber number INSERT INTO stuff Values('abc', 'cde', efg', 2); INSERT INTO stuff Values('abc', 'cde', efgggg', 4); INSERT INTO stuff V