CAF Framework

Hi,
My application is a web application. I am planning to port it to SAP EP. I just heard about CAF Framework.
Can any one of you please tell me, what is the broad picture of CAF Framework and when it can be used?
Thanks and Regards,
Rangaraj

Hi Rangaraj,
Check the following link. it gives a detailed description about CAF.
The SAP Composite Application Framework (CAF) comprises design tools, methodologies, services and processes, an abstraction layer for objects, and user interface and process pattern libraries. On the other hand, the CAF process layer (Guided Procedures) helps orchestrate the different pieces in order to create multi-step, workflow-based solutions beyond the scope of a single computer desktop.
The CAF Knowledge Center is a compendium of CAF Core and CAF Guided Procedures (GP) content.
https://www.sdn.sap.com/sdn/index.sdn?page=caf_knowledge_center.htm
Regards
Rajeev.
Do award points for helpful answers.

Similar Messages

  • CAF language

    Hi people,
    Inside my CAF Core Project i have created entities and defined some fields as language dependent. I am using this CAF project as DC for other webdynpro component.
    Now I test my WD application. How can I realize during the runtime, which language is actualy the current one for the CAF component? I want to print out this information for example as a Caption on the screen to be able identify missing  language dependent entries and create them within CAF framework later on?
    Thanks in advance
    Kamil

    Hi Kamil,
    In our project we retrieve the locale the following way:
    <i>userName = sessionContext.getCallerPrincipal().getName();
    IUser user = UMFactory.getUserFactory().getUserByUniqueName(userName);
    Locale currLocale = user.getLocale();</i>
    The <i>userName</i> is automatically retrieved by the generated code at the beginning of every method, so actually you can use the <i>CAF_user</i> generated variable.
    Regards,
    Robert

  • CAF without SAP Portal

    Hi,
    Is it possible to use ALL CAF functionalities and potentialities without having portal installed?
    A customer has portal from other vendor and wants to use our CAF Framework to develop composite applications and integrate with their portal, is this possible?
    Thanks & Regards,
    John

    Hi,
    Depends on what you want to use from the CAF framework:
    1. CAF core
    2. CAF UI/Guided Procedures
    CAF core is a toolset and a runtime environment to create business applications, which can be published as, for instance, web services.
    These webservices can be used from any other system/language. For the execution of these applications you need at least a SAP Web Application Server with the CAF components installed.
    With CAF UI you can model processes in the portal, based on services that can reside anywhere, and execute these from within the portal. For this you need a SAP Portal installation.
    Johan

  • How to Execute WebDynpro Applications as Background Job ?

    Hi Gurus,
    We have developed a lot of WDJ applications with component reusage; ie,
    quite a lot of business logic are wrapped in WDJ Components which are
    re-used by other WD UIs.
    Now we'd like to automate some of the processes with background jobs
    and faced with a few problems :
    #1. How can we write a background WD application which can be
    triggered by external mechanism and without presenting any UI?
    #2. If we write the background program in a Java DC, how can we
    invoke existing methods in WD components ?
    Anyone got a clue ??
    Ying-Jie Chen

    Hello Amit,
    > Well I can think of a workaround in this case.If you are aware
    > of the suspend-resume functionality of the WD application then
    > its possible to run the WD application virtually in background.
    [ stuffs deleted ...]
    It sounds like a possible alternative to our requirement, I'll
    spend some time to investigate on the WD suspend-resume mechanism !
    > Also let me know why are you preffering the WD if you dont
    > require its UI
    Our application requires the process to be performed with UI interaction;
    with some instances it should be run as a background job. Either case involves
    RFC calls to backend SAP R/3 and it's easy for RFC access with WD
    Component.  Though it's also possible to use CAF application service for
    RFC access; due to some technical constrains, we did not use CAF
    framework. Therefore it ends up where we are now ...
    Thanks for your tip!
    Ying-Jie Chen

  • Problem in MI 2.5 Customisation

    Hi,
       While creating a new time confirmation in the MI application, the line
    private TimeConfirmationFactory tconfFactory = (TimeConfirmationFactory)naming.lookup(TimeConfirmationFactory.class.getName());
    is not getting executed in MI2.5. But it working in MI2.1.
    In MI 2.5 it producing the following error,
    Error has occurred 
    Error Code E103
    Error Message Cannot find implementation for: com.sap.mbs.mam.order.process.TimeConfirmationFactory. 
    com.sap.mbs.core.api.CAFException: Cannot find implementation for: com.sap.mbs.mam.order.process.TimeConfirmationFactory. 
    Can you please suggest me what may be the reason behind this error.

    hello sub,
    i think the CAF framework for 2.1 differs from 2.5 in the
    sense that 2.1 and 2.5 MI APIs are not compatible. thus
    your should use proper CAF version.
    regards
    jo

  • JSF RI 1.1_01: IndexOutOfBoundsException with permanent application scope

    Hi,
    I'm wondering if anybody experienced an IndexOutOfBoundsException. We get this regularly using JSF RI 1.1_01 (20040806)
    The strange thing is, that once this exception occurs no users can use the webapplication anymore. Which is obviously problematic. I can accept a local bug making some page(s) unavailable. But disabling the whole application is catastrophic.
    According to the releasenotes problems with your components can make your JSF session /JSFContext corrupt, but this should be fixed by ending your HTTP session (closing browser).
    Any thoughts?
    See attached stacktrace.
    java.lang.IndexOutOfBoundsException
         at javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:1456)
         at javax.faces.webapp.UIComponentTag.createChild(UIComponentTag.java:1047)
         at javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:742)
         at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:423)
         at home.jspService(_home.java:192)
         [SRC:/home.jsp:49]
         at com.orionserver[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:349)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:220)
         at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
         at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
         at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
         at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:220)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.EvermindPageContext.forward(EvermindPageContext.java:224)
         at index.jspService(_index.java:48)
         [SRC:/index.jsp:55]
         at com.orionserver[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:349)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)

    Hello,
    We are getting the following exception while viewing the JSF page.
    java.lang.IndexOutOfBoundsException
    at javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:1445)
    at com.ibm.faces.component.UIJspPanel$ChildrenListEx.add(UIJspPanel.java:108)
    at javax.faces.webapp.UIComponentTag.createChild(UIComponentTag.java:1042)
    at javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:730)
    at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:423)
    at com.ibm.faces.taglib.html_extended.CommandExButtonTag.doStartTag(CommandExButtonTag.java:529)
    at org.apache.jsp._view_5F_insureds._jspService(_view_5F_insureds.java:1666)
    at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344)
    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:683)
    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:781)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1038)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:603)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)
    at com.aig.cafe.framework.webcontainer.ContentGenerator.generateDispayContent(ContentGenerator.java:291)
    at com.aig.cafe.framework.webcontainer.ContentGenerator.doPost(ContentGenerator.java:176)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1038)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:603)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)
    at com.aig.cafe.framework.webcontainer.ActionDispatcher.callContentGenerator(ActionDispatcher.java:195)
    at com.aig.cafe.framework.webcontainer.ActionDispatcher.dispatchAction(ActionDispatcher.java:389)
    at com.aig.cafe.framework.webcontainer.ActionDispatcher.doPost(ActionDispatcher.java:539)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1038)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:603)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)
    at com.aig.cafe.framework.webcontainer.ActionController.dispatchRequest(ActionController.java:366)
    at com.aig.cafe.framework.webcontainer.ActionController.doPost(ActionController.java:239)
    at com.aig.dbg.gems.controllers.GemsActionController.doTask(GemsActionController.java:58)
    at com.aig.dbg.gems.controllers.GemsActionController.doPost(GemsActionController.java:41)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1038)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:603)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)
    at com.ibm.faces.context.MultipartExternalContextImpl.dispatch(MultipartExternalContextImpl.java:320)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:142)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1038)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:603)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)
    at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:125)
    at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:286)
    at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
    at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
    at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
    at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
    at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:615)
    at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:912)
    Is there a solution for this? Has this issue has been fixed?

  • How to undeploy dictionary projects?

    Hello!
    Does anybody know how to undeploy the Dictionary-Projects generated by the CAF-Framework?
    When I undeploy this dictionary do I also delete all associated entity-Data and schemes in the Database?
    Thank´s for your help.
    Jörg

    Hello Austin!
    Unfortunately that does not work. I also tried that before. Anyway it is a little bit mysterious. When you choose the undeployment tab without selecting the Deployment-Tab before you cannot see any Dictionary-project. But if you choose the deployment tab at first and then the undeployment tab then you can also see the Dictionary projects. But when you select (button select) one of them it is not shown in the right window that shows the the SDA for undeployment. That´s not good.
    Possibly I do something wrong?
    Best regards,
    Jörg

  • Guided procedures scenario, don't know where too start.

    Hi all,
    I am totally new to the CAF framework.
    I've done a lot of reading and also did the tutorial "My first process".
    The scenario:
    I need to have a scenario where a user fills out an interactive form and submits this form. The data is also submitted in a SQL database.
    His manager (a dynamic user) has to approve this form.
    After the approval the form has to go to the inbox of a department where they can fill in additional information.
    After filling in this information a feedback has to be sent to the user that filled in the form.
    Problems:
    - After doing the first tutorial i wanted to do some more turorials to learn more about guided procedures. All tutorials that I have found requires some beginning point like a Web Dynpro CO or something else. Are there more tutorials that guide you trough a process from scratch?
    - The tutorials that I have found with Interactive forms are designed with the Adobe Designer, not with the NWDS designer. So if you want to add a CO Interactive form you can't use this one because you don't have a .XDP file.
    - Is there a clear tutorial how to add a user dynamicly? For example in the tutorial "My first process" you have to add users while initiate the process. I also read the blog "Passing email address for Interactive Form step". But here the user still have to define to wich email address the form has to be sent. In my scenario the right email address is already in the Adobe form so I want to sent it to that email address.
    - Does a user always has to go to Guided Procedures > Runtime in the portal or can you make your own menu items for starting a process, approve a process etc.
    I know it are a lot of questions but I hope that you can help me out with at least some of them because it is really dazzeling right now.

    The scenario you mentioned should be possible using GP.  In response to your questions,
    > The tutorials that I have found with Interactive forms are designed with the Adobe
    > Designer, not with the NWDS designer. So if you want to add a CO Interactive form
    > you can't use this one because you don't have a .XDP file.
    Adobe LiveCycle designer comes packaged with NWDS.  You can download it from service marketplace and run it standalone:
    How to assign Dynaminc Approver in GP
    > Does a user always has to go to Guided Procedures > Runtime in the portal or can
    > you make your own menu items for starting a process, approve a process etc.
    No, the runtime doesn't have to be used.  Check out this thread for more details:
    how to start a GP process from a url within EP?
    ~Greg

  • CAF (Composite Application Framework) and ESA

    Hi,
    As far as I understand, XApps is presented as a piece of Netweaver (the column on the left side of the NetWeaver stack), an XApps is also a kind of business process based on several applications (or services ?).
    XApps runtime and composition platform is the CAF and not NetWeaver ?
    So I am confused and I do not understand if
    - ESA and XApps is the same concept
    - ESA and XApps are not based on the same technology
    - XApps will be part of the Enterprise Services Repository and CAF will be rewrtitten to be based on XI so that the vision and the strategy is coherent
    If someone ca nclarify, I will greatly appreciate.
    Cheers.Christophe

    XApps is a concept. There is no general implementation of it. You can write Xapps in Java, In ABAP, or whatever. However, there are nice tools in development to do XApps, which are completely Java based.
    > XApps runtime and composition platform is the CAF and
    > not NetWeaver ?
    CAF does run on NetWeaver. As it has a "Framework" in it's name it naturally should not contain a server environment, should it?
    >
    > So I am confused and I do not understand if
    > - ESA and XApps is the same concept
    No.
    > - ESA and XApps are not based on the same technology
    Yes.
    > - XApps will be part of the Enterprise Services
    > Repository and CAF will be rewrtitten to be based on
    > XI so that the vision and the strategy is coherent
    where did you hear this?
    Regards,
    Benny

  • Internal Server error while configuring External service for CAF

    Dear All,
    While configuring the External Service (RFC) for CAF Core project in our EP7 SP11 server we are getting error message we are getting Internal server error when we click on service registry.
    500   Internal Server Error
      SAP NetWeaver Application Server 7.00/Java AS 7.00 
    Failed to process request. Please contact your system administrator.
    [Hide]
    Error Summary
    While processing the current request, an exception occured which could not be handled by the application or the framework.
    If the information contained on this page doesn't help you to find and correct the cause of the problem, please contact your system administrator. To facilitate analysis of the problem, keep a copy of this error page. Hint: Most browsers allow to select all content, copy it and then paste it into an empty document (e.g. email or simple text file).
    Root Cause
    The initial exception that caused the request to fail, was:
       java.lang.NullPointerException
        at com.sap.caf.mp.mmr.adapter.ServiceDefinitionTypeConverter.convertExternalInterface(ServiceDefinitionTypeConverter.java:507)
        at com.sap.caf.mp.mmr.adapter.MMServiceRetrievalAdapter.getExternalInterfaces(MMServiceRetrievalAdapter.java:547)
        at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerBean.getExternalInterfaces(MMServiceRetrievalAdapterCallerBean.java:158)
        at com.sap.caf.mp.mmr.ejb.MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0_0.getExternalInterfaces(MMServiceRetrievalAdapterCallerLocalLocalObjectImpl0_0.java:477)
        at com.sap.caf.mp.core.data.service.DataServiceBridge.getExternalServices(DataServiceBridge.java:201)
        ... 47 more
    Please let me know what shd be done to correct the error.
    Warm Regards
    Mazdul
    [email protected]

    The solution is mentioned in this thread:
    Error on External Serrvice Configuration Page NW 20047s SP10
    re-create your configuration if possible and see whether that fixes it

  • How to send e-mails using CAF GP?

    Hi All,
    I have created a sample application which uses Process Control -> Visual Approval Callable Object for approving a vendor. I have also developed two mail templates for Approval and Rejection.
    The SMTP server is set to the mail server of the company.
    But the system is unable to send mails to the recipient. The following error message is displayed on clicking on "Approve":
    <i>Recipient data is missing.
    The system failed to send an e-mail notification to <Initiator>.</i>
    Can any of you suggest what the problem is and what is the possible workaround?
    Thanks in advance,
    Pavithra

    Hi Pavithra,
    Have u completed all the necessary configurations needed at the Visual Administrator level,
    You need to configure GP to be capable of picking the mails from your mail server at some regular intervals of time,
    You can refer to the document "Configuring GP for Interactive forms" at
    SAP Composite Application Framework - CAF Tutorial Center [original link is broken]
    Hope this will help,
    Rgds
    Deepak

  • Step by Step procedure to create an entire scenario Using CAF

    Dear All,
        I have a scenario to develop using Composite Application Framework.After creating the CAF i need to display the CAF on the portal. step by step procedure(if possible with screen shots) to create a CAF and how to find web services and then display this application on portal.
    Thanks

    Hi Yogi,
    In your sceanario if you are looking to build either Enity or Application service then create it and test that service from "Service Browser". Once your service is working as per your reqyurements then we have to options to bring it into the Portal:
    1. Generate Web Service for you Service (Entity or Application).
    2. Consume that Web Service in WebDynpro application using Model concepts.
    3. Deploy your WebDynpro Application into your portal Server.
    4. Create a WebDynpro iView for your application and assign it any where you want.
                                                         OR
    1. Generate WebDynpro model for your CAF application.
    2. Create a public part for you application webdynpro project of your CAF application.
    3. Create a new WebDynpro DC and use the Models generated for your CAF application.
    4. Deploy your WebDynpro Application into your portal Server.
    5. Create a WebDynpro iView for your application and assign it any where you want.
    If you can give your complete scenario then that would be more helpful for any one to provide best answer which is approapriate for you.
    Thanks,
    Uday.

  • CAF GP - SAP XI BPM

    Hello *,
    I'm new to CAF and I'd like to implement a pricing process tool within this framework.
    The process has just the following process steps / services (data flow in brackets):
    - Taking new defined products and data from SAP PLM (SAP PLM <-> SAP XI <-> Application Service wraps Web Service of XI)
    - Show a UI to define prices for the new products
    - Saving new defined prices to SAP SD (Application Service wraps Web Service of XI <-> XI <-> SAP SD)
    Up to know XI is just part of the process because of monitoring aspects and CAF GP for modeling the process.
    But as I read about BPM in SAP XI I'm not sure if CAF GP is the right and only choice for process modeling.
    So my questions are:
    1. When do I have to use CAF GP and when the BPM component of SAP XI? 
    2. Can I use both in collaboration? Or do I even have to?
    3. What are the differences (advantages/disadvantages) of CAF GP / SAP XI BPM?
    Could anyone give me some advice?
    Thanks in advance...
    Regards,
    Joschi

    Hi Divya,
    First of all I can't really accept the statement <b>"Modeling in GP"</b>. Guided Procedure is NOT a tool for modeling to be used by a BPX according to my opinion. Developing a process in GP requires more technical knowledge than functional/business knowledge. The example of modeling environment/tool is ARIS/Websphere Business Modeler , etc - where the BPX can "model" a business process purely based on business knowledge without having any so-called technical knowledge. And in turn this model can be converted into the technical artifacts to be modified or developed by the technical experts. The example of this kind of business modeling to implementation is ARIS modeling -> XI ccBPM.  But in GP there is no such tool as of now for modeling. What we do in the GP design time is only development.
    Now coming to your question - you can use BPM engine as your GP runtime engine. But that still doesn't solve our first issue. Modeling of GP process is still missing. And one more interesting observation is if you go through the <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/706005a3-3bd6-2910-91ae-a2016239bdcf">Netweaver PI 7.1 presentation</a> you can find there are lot of similarities between PI 7.1 and existing CAF Guided Procedure. Previously XI-BPM was usually used for non-interactive processes (with background message exchange) and Guided Procedure used for more interactive processes (with UI). But in PI 7.1 a new human task action has been added in ccBPM based on BPEL 2.0 specification. That means now XI-BPM can also support interactive processes as well. So doesn't this sound a kind of parallel technology to CAF GP? My question is if these two are getting really parallel one has to die out and which's that one? And if CAF-GP going to stay what's the modeling environment for the same?
    Thanks,
    Dipankar

  • CAF and custon data source in CE 7.2?

    Hello,
    is it in CE 7.20 possible to use the CAF Framerwork with a custom JDBC data source instead of the system data base?
    Best Regards
    Sebastian
    Edited by: Sebastian Lenk on Mar 2, 2011 5:25 PM

    Hi,
    in theory this should work because even SAP and CAF do not break the way Java EE handles database persistence, in practice it is very difficult, probably impossible.
    CAF generates something like a Java EE 5 application with JPA 1.0 persistency, so it is in principle unaware of a system datasource. If you look at src/META-INF/persistence.xml, you find a jta-datasource called SAP/CAF_RT which is an alias to system datasource. This persistence.xml is regenerated every time you generate your CAF app so your changes are lost.
    In NWA, you cannot change the alias SAP/CAF_RT to point to another JDBC Datasource (at least I did not manage it - getting an error message).
    And there are about 25 CAF*-tables in the schema of system datasource which CAF will probably need and maybe will expect in the same datasource as your app tables.
    In principle, you could try to create these CAF* tables in another database scheme and maybe it is somehow possible to let SAP/CAF_RT point to another data source by editing some of SAP's CAF ears, but this sounds experimental.
    So I am quite sure CAF only supports the system datasource. CAF was not invented to support agilty and degrees of freedom for the developer.
    Cheers
    --Rolf
    P.S. IMHO with EJB 3.x and JPA it is not a good idea to use CAF for persistence at all. With EJBs there is even no good reason to use for local apps at all. CAF was useful in times EJB 2.x where development of persitent classes took a lot of boilerplate code. SAP updated the framework towards  EJB 3 but kept the unflexible structure whereas with JPA 1.0 it is easy to learn and write @Entity, @Column, EntityManager.find or EntityManager.persist. E.g. the CAF way to handle relations between tables is a pain and the programming model with data access is outdated. And CAF way of model driven development is too unflexible to support an agile development process in 2011. So use CAF for small projects that will not increase.

  • JPA and CAF BO - are there any editors of the JPA data (like CAF)?

    Hello!
    As you know SAP invented some layer above JPA and called it CAF. There is a very convenient way to edit data in CAF.
    But now I have to create a complex database scheme, also with CAF doesn't allow us to work with objects. So we can't use someObject.getChildren().
    So my question is are there any editors of the JPA data (like it is done in CAF)?

    Hi Kirill,
    at the beginning of our project at the end of 2009, we did a deep analysis of CAF since our architect vehemently suggested to use this framework.
    First about the history and purpose of CAF: Initially, CAF was never meant to be a layer above CAF since CAF was invented in the time before EJB 3.0 and JPA standard where writing persistence with EJB 2.x CMP forced the developer to write pages of boiler plate code. This background was approved by SAP.
    With upcoming of JPA, CAF ist mostly useless (except for very simply structured data) and prevents you from writing good software.
    It is easy just to write @Entity, @Id and @OneToMany (for complex database schemes) and CAF forces you to use an ugly, imperformant database scheme (e.g. CAF uses mapping tables even for 1:n relationships, a clear antipattern!)
    The CRUD-services generated with CAF are a pain, too. Usage of pessimistic locking is not up to date for web applications.
    With your complex database schemes, you exceed the limit of CAF.
    (We decided not to use CAF and did never regret this.)
    Concerning your question: There is an "JPA Details" view in NWDS that might help you. It needs JPA Persistence facet on your project to work. Developed by SAP. For JPA beginners, it is a good cheat sheet for JPA annotations and their attributes.
    You do not need more since a JPA POJO is easy to code.
    Regards,
    Rolf

Maybe you are looking for

  • How to delete Ubuntu virtual desktop and free up allocated space in windows 8?

    I have tried out Hyper-V for the first time to install Ubuntu desktop. During the installation process, 10GB of space is allocated. I believe this space would have been  created as a separate partition and formatted to linux file system. Please corre

  • How to tell if the nano has a defective screen...

    Ok, earlier today I had my iPod nano in my pocket with NOTHING EXCEPT THE IPOD NANO IN IT (not even headphones!). The iPod nano was in the iSee nano case and also had the decal girl crystal shield under it. I was wearing my favourite pants. They are

  • How to get the real texts according to Standard Text Key maintained in CA10

    Hi ; I have a requirement to fetch the standard text based on the standard text key which is maintained by CA10. is there any direct way to get those texts without giving 'TEXT NAME', 'TEXT ID' and 'TEXT OBJECT' but just by the standard key? Thanks i

  • Bug with number of new emails?

    The "new mail" count on the home screen is always 2 times as high as the real number of new emails. The badge shows 4 when I have 2 new emails, 6 when I have three etc. I've restored the iPhone, no luck. I have Gmail configured on Imap. Would you kno

  • Exclude Materials with only 1 PO count

    Hello experts, I have a multiprovider with 5 DSOs corresponding to 5 Logical SOurce systems. All DSOs have a similar structure..like ..... Logical Source System, PO number , PO item, Material, quantity, price.......... In a query I wish to compare pr