Portal Eventing or FPM - navigate to diff comp controller view and ....

Hi,
   The query is simple, i guess -
From a particular component controller ( not from its view ) how can i navigate to a view of different component controller.
Also how can i navigate to diff view ( within the same controller ) by the same controller.
I tried Portal Eventing and FPM -
WDPortalEventing.fire( "urn:com.sap.xss.hr.per.tw.bank.overview.Vc...Overview.Eventing","send","N");
and at receiver
WDPortalEventing.subscribe("urn:com.sap.xss.hr.per.tw.bank.overview.VcPerBankTWOverview",
     "send", wdThis.wdGetPortalEventAction() );
it didn't worked.
Also tried FPM after creating an FPM view , but need inputs from you to link it in event links as target.
ECC6.0 - mysaperp2005.
EP7
THanks,
Regards,
Ankit

Vishwas.. / Chaitanya -
Thanks for the reply -
-   I want to navigate to CompB's view from Component Controller A ( not frm the view ).
- Another query was - how can i get to View2 of comp controller A via Comp Controller A itself. 
Your answers were helpfull but i need some more info..
The forums link u mentioined had some body mentioned this -
" 2 ways to do this...
The first way:
1) Create a separate window in Comp B for each view that you need to navigate directly to (an interface view is created for each window)
2) Embed the multiple interface views of Comp B into Comp A
3) Use a separate outbound plug in Comp A for each Comp B interface view
AFTER STEP 2 ON STEP 3 HOW CAN I HAVE AN OUTBOUND PLUG FROM COMP CONTROLLER A ( not from the view ). i.e., outbound plug from Comp A to the Comp B inteface view
Lokesh -
Trying same namespace didn't worked , - i guess Portal eventing might work between views , but here i have a component controller and a view.

Similar Messages

  • Diff bt Help view and Maintanence view

    hi gem's
    i need the diff bt Help view and Maintanence view with example...............

    Hi
    The followings are different types of views:
    - Database View (SE11)
    Database views are implement an inner join, that is, only records of the primary table (selected via the join operation) for which the corresponding records of the secondary tables also exist are fetched. Inconsistencies between primary and secondary table could, therefore, lead to a reduced selection set.
    In database views, the join conditions can be formulated using equality relationships between any base fields. In the other types of view, they must be taken from existing foreign keys. That is, tables can only be collected in a maintenance or help view if they are linked to one another via foreign keys.
    - Help View ( SE54)
    Help views are used to output additional information when the online help system is called.
    When the F4 button is pressed for a screen field, a check is first made on whether a matchcode is defined for this field. If this is not the case, the help view is displayed in which the check table of the field is the primary table. Thus, for each table no more than one help view can be created, that is, a table can only be primary table in at most one help view.
    Go thru this link plzz
    http://help.sap.com/saphelp_nw2004s/helpdata/en/cf/21ecf9446011d189700000e8322d00/frameset.htm
    Difference between "Help View" and "Search Help"
    - Projection View
    Projection views are used to suppress or mask certain fields in a table (projection), thus minimizing the number of interfaces. This means that only the data that is actually required is exchanged when the database is accessed.
    A projection view can draw upon only one table. Selection conditions cannot be specified for projection views.
    - Maintenance View ( SE54 )
    Maintenance views enable a business-oriented approach to looking at data, while at the same time, making it possible to maintain the data involved. Data from several tables can be summarized in a maintenance view and maintained collectively via this view. That is, the data is entered via the view and then distributed to the underlying tables by the system.
    Please have a look at below link. It will help you.
    http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ed06446011d189700000e8322d00/frameset.htm
    for more detailed info look on:
    http://www.sap-img.com/abap/what-is-the-different-types-and-usage-of-views.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/abap+dictionary&
    1.Go to se11
    2. select view radiobutton and give a name
    3. Create
    4. select type of view you want to create. Such as database view.
    5. give short description
    6. give a table name such as mara
    7. press the pushbutton relationship. here you will find all the tables which are allowed to create view with mara.
    8. select one or mane tables.
    8 copy
    9.save , check and activate.
    Regards
    Anji

  • Diff between database view and inner join

    Hello,
    I need to select data from multiple tables. I need to choose between 2 options.
    1) create a database view and use this view for select.
    2) write an inner join in abap prorgam.
    In which cases we should create a view and in which cases we should use a inner join?
    What are the factors which decide these?
    Pls advice.
    Thanks,
    Rupali.

    Hi,
    Both are same..
    But if you use regulary and used view in Multiple programs then create view..
    If inner join in abap prorgam between two or more table used in less Programs and do not want to
    create View (Means not to create transport request) then go for JOin in Program.
    Prabhudas

  • DIFF. between Quick Viewer and Query Builder

    Hi experts,
    can any body explain the difference between Quick Viewer and Query Builder with examples and can u forward the related material( how to create Quick Viewer and Query Builder ) other than help.sap.com.
    useful answers duly rewarded
    thanks in advance
    sai krishna

    my mail id: was [email protected], please send me the material
    i will assign the points
    thanks in advance
    sai krishna

  • Portal eventing in WD ABAP

    Hello ,
    We have an requirment to pass values from one WD ABAP application iView to another in the Enterprise portal.Is there any configuration that needs be done in WD ABAP or is there any setting in EP that we need to do ??
    Rahul

    Rahul,
    Though most of this stuff is of web dynpro for java. You can just replace java Code with ABAP.
    You need to use eventing functionality.In the SAP Enterprise Portal, different application types in specific iViews can be arranged on one page. To communicate between the different iView types the portal provides the Enterprise Portal Client Framework (EPCF), also known as client-side eventing. This document describes how Web Dynpro applications can use EPCF.
    http://help.sap.com/saphelp_nw04/helpdata/en/24/243ca46e1c334f8a6f8b0792656bc7/content.htm
    The following code shows the signature of the subscribe method:
    WDPortalEventing.subscribe(java.lang.String nameSpace, java.lang.String event, IWDAction action);
    for example
    WDPortalEventing.subscribe (“urn:com.sap.tc.webdynpro.test.portal”,
        “TestEvent”,
        wdThis.wdGetTestEventAction());
    You have to define the event’s name and its namespace. The combination of these two names must be unique.
    The third parameter is the Web Dynpro action, which should be mapped to the portal event. The action event handler is called if the Web Dynpro application receives the specified portal event on the client side. The mapping between a portal event and a Web Dynpro action is done automatically and it is completely transparent for the Web Dynpro application developer.
    You can reuse a Web Dynpro action for several portal events. If you want to receive the portal event’s data you have to define the following parameters for your Web Dynpro action:
    ·        dataObject
    The dataObject parameter contains the portal event parameter.
    ·        nameSpace
    The namespace parameter contains the portal event’s namespace.
    ·        name
    The name parameter contains the portal event’s name.
    It is useful to add the nameSpace and nameparameters to the Web Dynpro action if the action is reused for several portal events because you can use this information to differentiate between the portal events.
    Note: In the current version a portal event subscription is valid for a Web Dynpro view. Therefore you should add the required Java coding, for example in the wdDoInit() method of the generated view class. If you navigate between different views, you have to subscribe to every view for the portal event required.
    Unsubscribe from a portal event
    Unsubscribing from a portal event is very similar to subscribing. The following code shows the signature of the unsubscribemethod:
    WDPortalEventing.unsubscribe(java.lang.String nameSpace, java.lang.String event, IWDAction action);
    for example
    WDPortalEventing.unsubscribe (“urn:com.sap.tc.webdynpro.test.portal”,
        “TestEvent”,
        wdThis.wdGetTestEventAction());
    Note: You must unsubscribe every Web Dynpro view, because subscription and unsubscription is valid only for the current view.
    Raise a portal event
    The following example shows how to raise a portal event. The signature is:
    WDPortalEventing.fire(java.lang.String nameSpace, java.lang.String event, java.lang.String parameter);
    for example
    WDPortalEventing.fire (“urn:com.sap.tc.webdynpro.test.portal”,
         “TestEvent”,
        “AParameter”);
    You can fire a portal event anywhere in your Web Dynpro application. The event is sent to the client  with the next response. You can also raise more than one portal event in a request-response cycle. Typically, you will fire a portal event in a Web Dynpro action event handler (for example, as a response to pressing a button).
    The following step-by-step example shows how to carry out portal eventing within two simple Web Dynpro example applications.
    Example Description
    The user can enter an arbitrary string in an input field. If the user presses the pushbutton Click here in the sender view, the input string will be displayed in a TextView UI element of the listener application.
    Prerequisites
    You have built two Web Dynpro applications. How to build Web Dynpro applications is described in Creating a Simple Web Dynpro Application. In each application you have created a Web Component with a view that uses the portal eventing.
    You can find the detailed procedure describing how to insert UI elements into a view in Creating a Simple Web Dynpro Application.
    Further information about the integration of a Web Dynpro application into the SAP Enterprise Portal can you find under Running a Web Dynpro Application in SAP Enterprise Portal.
    Procedure
    Creating the Web Dynpro applications
           1.      Create the Web Dypro project. Call it webdynproexample_portal_eventing.
           2.      Create two Web Dynpro components. Call them:
                                a.      EventSenderComponent
                                b.      EventListenerComponent
           3.      Create two Web Dynpro applications. Call them:
                                a.      EventSenderApplication
                                b.      EventListenerApplication
    Creating the necessary views:
    Create the layout of the EventSenderView in the EventSenderComponent as follows:
    Create the context structure of the EventingSender View:
    The context value attribute Name must be of type String.
    Create an action “Show”
    Define the data binding of corresponding UI element properties:
    The appropriate properties of the UI elements must be bound to the context that contains and displays the data.
           4.      Define a text, for instance, “Enter a text:” for the label UI element (ID: NameLabel) using the property text.
           5.      Bind the property value of the input field (ID: NameInputField) to the context attribute Name.
           6.      Bind onAction of the button (ID:ShowButton) to the corresponding action Show.
    Implementation of the view controller
           7.      If you create an action declaratively within the SAP NetWeaver Developer Studio, the Web Dynpro framework automatically generates an onAction method in the controller’s implementation. The generated method enables you to write code to fetch the input string and to fire the portal event. The fire method of WDPortalEventing passes the data and the name of the event that should be handled by the second application as parameters. The following code shows the implementation of onActionShow method:
    public void onActionShow(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionShow(ServerEvent)
       String name = wdContext.currentContextElement().getName();
        WDPortalEventing.fire("urn:com.sap.tc.webdynpro.example.portaleventing",
                           "Show",
                           name);
        //@@end
    Create the layout of the EventListenerView in the EventListenerComponent as follows:
    Create the context structure of the EventingListenerView:
    The context attribute Name must be of type String.
    Create an action, for example, ReactPortalEventing which should be mapped to the portal event.
           8.      Create an action ReactPortalEventing.
           9.      Add the parameter dataObject. It should have the type java.lang.String.
    Define the data binding of the corresponding UI element properties:
    The corresponding properties of the UI elements must be bound to the context that contains and displays the data.
    10.      Define a text for the NameLabel for example, The entry is displayed in a TextView UI element:
       11.      Bind the property text of the TextView UI element (ID: TextViewShow) to the context attribute Name.
    Implementation of the view’s controller
       12.      You have to subscribe to the event within the wdDoInit method. You have to define the namespaceof the event and the name of the event, for example Show. The third parameter is the Web Dynpro action, which should be mapped to the portal event.
       13.      You have to implement the action (ReactPortalEventing) that passes the dataObjectand fills the context with data. The following code shows the implementation of the wdDoInit and the reactPortalEventing methods:
    public void wdDoInit()
        //@@begin wdDoInit()
        WDPortalEventing.subscribe("urn:com.sap.tc.webdynpro.example.portaleventing", "Show",
        wdThis.wdGetReactPortalEventingAction() );
        //@@end
    public void onActionReactPortalEventing(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent, java.lang.String dataObject )
        //@@begin onActionReactPortalEventing(ServerEvent)
        wdContext.currentContextElement().setName(dataObject);
        //@@end
    Deploying the Web Dynpro Application
    Before you can call the Web Dynpro application, you have to build the Web Dynpro project and deploy the application on the J2EE Engine.
    Simple Testing of the Portal Eventing and Calling the Web Application
       14.      Create two iViews in the newly-created example folder as described in Running a Web Dynpro Application in SAP Enterprise Portal.
       15.      Create a page and add the two iViews to the newly-created page.
    To preview the Web Dynpro applications, choose the button Preview in the Portal Content Studio.
       16.      Enter your input and choose button Click here.
    Result
    A page preview will demonstrate portal eventing.
    Also, Please refer to these links,
    http://help.sap.com/saphelp_nw04/helpdata/en/c6/21fc3f82c2e469e10000000a155106/content.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/portal integration of web dynpro applications.pdf
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/cfb80249-0801-0010-3eaa-829afeac170f
    Please let me know whether its useful.
    Thanks,
    Raj.

  • Portal eventing in a cross domain system

    Hi,
    I have facing a problem in my project. We have both Java web dynpro iviews and ABAP iviews. The portal server is installed in the daomain <system>.blrl.sap.corp and the ABAP web dynpro applications are runnning in the Back End server which is there int eh domain <system>.wdf.sap.corp.
    We use portal eventing to navigate from ABAP iviews to Java iviews. But from t he portsl server if i click any button(which supposed to take us to ABAP iview) it is not opeing the ABAP iview. But if a portal server running in the same domain, <system>.wdf.sap.corp, the iviews are opening correctly.
    Please let me know if you face this problem and the solution exists.
    Kind regards,
    Ramesh.

    Hi
    Currently you have two domains, wdf.sap.corp and blrl.sap.corp. You will not be able to use the portal eventing because this is classed as cross site scripting and is not allowed due to security restrictions of browsers. However, because the two URLs you mentioned are in the same sub-domain, sap.corp, then there is a work around. You will have to relax the domain of both servers. This is configurable in the portal (although I can't remember from the top of my head). The same would have to be done for the environment for the web dynpro applications.
    I hope this helps a little
    D

  • Portal eventing between pages

    Hi,
    I read around that portal eventing can be done only on the same page and not between pages, is this correct? if so, how do we make events between pages after all?
    Thanks in advance,
    Aviad

    Hi Aviad,
    Portal eventing takes place between different iviews of the same page only.
    To pass between values between different pages, you can store the required value in a Portal Request object or Session object.
    Also you can refer to this link,
    iView to iView communication with EPCF
    This link  contains the code to establish connection between pages .Finally obtaining paramaters through request.getParamater().
    Hope this helps,
    Regards
    Uma.
    Note: It will be better from next time if you could post portal related queries in the EP forum to get quicker responses and ep related guidances.

  • Portal Eventing in Webdynpro ABAP

    Hello,
    I am trying to implement Eventing in Webdynpro ABAP using 2 components ,Com1 serving as the source component and Com2 serving as Target. In Com1 I created a Inputfield and a button ,and then tied an action to the button and called the FIRE method of the IF_WD_PORTAL_INTEGRATION and sent the value in the Inputfield as the eventing parameter.
    In Com2, i subscribed to the event in the wddoinit() method and then defined an action for the same and got the parameter value sent in the Com1 and set the value in the context attribute in the Com2 which is bound to the inputfield.
    But still the value sent in Com1 is not displayed in the Com2 Inputfield.
    Any help would be highly appreciated.
    Thanks.

    >
    SAPEPDeveloper wrote:
    > Hello,
    >
    > I am trying to implement Eventing in Webdynpro ABAP using 2 components ,Com1 serving as the source component and Com2 serving as Target. In Com1 I created a Inputfield and a button ,and then tied an action to the button and called the FIRE method of the IF_WD_PORTAL_INTEGRATION and sent the value in the Inputfield as the eventing parameter.
    >
    > In Com2, i subscribed to the event in the wddoinit() method and then defined an action for the same and got the parameter value sent in the Com1 and set the value in the context attribute in the Com2 which is bound to the inputfield.
    >
    > But still the value sent in Com1 is not displayed in the Com2 Inputfield.
    >
    > Any help would be highly appreciated.
    >
    > Thanks.
    Hi I assume the following, please correct me if my understanding is not correct.
    1.First of all you try this in Portal.
    2.The moment you fire the event, the comp-2 view is active and subscribed to the portal event.
    If the above are true then tell me if the portal eventing enter into the action ?Have you checked in bebug that your action is triggerred on portal_event ?
    If portal event is action handler is called then if you have a importing parameter portal_event_parameter then your input value should be there.

  • Portal event not working

    Hi,
    I am try to handle portal event in my WD ABAP i view. The event is fired by WD Java team viewer iView in MSS. What I want is when someone select an employee from team viewer iview from MSS, my WD ABAP iview should react accordingly.
    I check SAP note 1112733 for corresponding solution to handle event but it didnt worked. My WD ABAP application is not able to subscribe to the event.
    I wrote the following code in WDINIT method of my view
    DATA: l_api_component  TYPE REF TO if_wd_component,
            l_portal_manager TYPE REF TO if_wd_portal_integration,
            view TYPE REF TO if_wd_view_controller.
      l_api_component = wd_comp_controller->wd_get_api( ).
      l_portal_manager = l_api_component->get_portal_manager( ).
      view ?= wd_this->wd_get_api( ).
      l_portal_manager->subscribe_event(
    portal_event_namespace = 'urn:com.sap.mss.employeesearch'
    portal_event_name      = 'selection_changed'
    view                   = view
    action                 = 'RECIEVE_EMP_DATA' ).
    and the code written in event handler method is:
    METHOD onactionrecieve_emp_data .
      DATA: evt_name TYPE string.
      DATA lo_nd_gc_event_data TYPE REF TO if_wd_context_node.
      DATA lo_el_gc_event_data TYPE REF TO if_wd_context_element.
      DATA ls_gc_event_data TYPE wd_this->element_gc_event_data.
      DATA lv_event_string LIKE ls_gc_event_data-event_string.
    navigate from <CONTEXT> to <GC_EVENT_DATA> via lead selection
      lo_nd_gc_event_data = wd_context->get_child_node( name = wd_this->wdctx_gc_event_data ).
    get element via lead selection
      lo_el_gc_event_data = lo_nd_gc_event_data->get_element(  ).
    get single attribute
      lo_el_gc_event_data->set_attribute(
        EXPORTING
          name =  'EVENT_STRING'
          value = 'before handle' ).
      evt_name = wdevent->get_string( name = 'PORTAL_EVENT_NAME' ).
      IF evt_name = 'selection_changed'.
        lv_event_string = wdevent->get_string( name = 'PORTAL_EVENT_PARAMETER' ).
    get single attribute
      lo_el_gc_event_data->set_attribute(
        EXPORTING
          name =  `EVENT_STRING`
          value = 'handled' ).
      ENDIF.
    ENDMETHOD.
    In debugging mode, I am not able to go inside my event handler method.
    Please help why this event is not getting handled .
    Thanks
    Vishal Kapoor

    >
    Jon MB wrote:
    > Hi Thomas
    >
    > Please, can you confirm the restriction above applies to the following scenario?
    >
    > - We have an ECC system with the following URL: ecchost.domain.suffix
    > - We have a portal with the following URL: portalhost.subdomain.domain.suffix
    >
    > We have configured the portal for domain relaxing and SSO is working fine.
    >
    > Each system is under the same domain (domain.suffix), but in different subdomains.
    >
    > Shoudl this be the cause of ABAP WD applications not working? Is there any way to fix this without changing the URLs?
    >
    > Thanks in advance,
    > Jon
    I'm not a portal consultant, so I can only related the requirement from the WDA side that the domains must be the same. I don't know if the domain relaxation on the portal sise will take take of the subdomain.  My guess is that if you are having problems, that it doesn't.  You would probably need to ask this question in the portal forum or discuss with a portal consultant.
    > Is there any way to fix this without changing the URLs?
    I don't know of any.
    >Shoudl this be the cause of ABAP WD applications not working?
    What do you mean, not working?  Is the portal eventing just not work or are you not able to load the WDA applications at all.

  • Fpm.navigate - using the FPM to redirect application to a new URL

    Hello All,
    Has anyone managed to successfully used the fpm navigate method to cause the application to close and open a URL when the application is not running in a portal?
    I tried to do the following in the onInit of my Fc, but got an error in that the FPMComponentWindowInterfaceView controller was not instantiated...
         NavigationTarget restartURL =
         new NavigationTarget(                         
         null,
         NavigationTarget.NAVIGATION_TYPE_URL,
         null,
         null,
         null,
         true,
         themeURL,
         null,
         null,
         null,
         null,
         WDPortalNavigationMode.SHOW_INPLACE,
         null);
         fpm.navigate(restartURL);
    error occurs in the FPM code of com.sap.pcuigp.xssfpm.wd.Navigation.java:
    if (exitUrl != null && !"".equals(exitUrl)) {
         if ("".equals(windowTarget)) {
              // replace current application with navigation target in same browser window
              wdThis.wdGetFPMComponentWindowInterfaceViewController().wdFirePlugExitPlug(exitUrl);
         } else {
         // open navigation target in new browser window; different targets are not supported by WD
              IWDWindow window =
              wdThis.wdGetAPI().getComponent().getWindowManager().createExternalWindow(exitUrl, text, false);
              window.setWindowPosition(WDWindowPos.CENTER);
              window.open();
    the
    wdThis.wdGetFPMComponentWindowInterfaceViewController()
    fails.
    Has anyone else managed to get this method to work? Is there something I should be doing before executing my code? I would have thought that as this interface view controller is the one that all FPM apps use as a starting point, that it would be instantiated...
    Help/ideas appreciated.
    Thanks,
    Chris

    No response was ever forthcoming - I'm not sure if the same issue still exists - but I'm going to close this off as I really can't be sure it is still relevant.
    - Chris

  • Portal eventing and Navigation in Federated portal environment

    Hello Experts,
    We have developed our portal content in Web Dynpro Java and it has been used in portal framework.In Some of custom web Dynpro applications,we are using portal eventing for communication between different iViews on a same  Page and Portal Navigation APIs to navigate to different portal object.
    Now We want to integrate all these portal objects(Mainly Custom web Dynpro applications without EP masthead,TLN,Desktop inner page ..etc) with Oracle portal.I want to know if we can use portal eventing when applications are integrated with Oracle porta or an other non-SAP portal or is there any other way to achieve the same.
    I have gone through some of the SAP documentation and it is stated that Portal eventing will not work when applications are integrated with non-EP portals.
    Any thoughts??
    Thanks in advance.
    Thanks,
    Naidu

    Hello Koti Raddy,
    Thanks  for your quick replay.I didn't understand exactly about custom framework page that you have mentioned.I am not sure what is purpose of framework page when i want to integrate all  portal Pages(consists of Web Dynpro based iViews) in non-SAP portal.
    We are going to use Navigation panel of non-sap portal and i want to integrate SAP portal pages in Oracle portal.
    I could able to use individual web Dynpro applications Urls in Oracle portal using iFrame portlet,but portal eventing is not working with this approach.
    As far as Authentication is concerned,we dont have any issues.it is already in place.
    Thanks in advance.
    Thanks,
    Naidu

  • Raising a Portal Event

    I am trying to raise a portal event via the signal out. It seems when raising an event, the Flash runtime actually puts all the parameters in an XML-like string and then passes them on to EPCM.  The EPCM, however, is expecting this data as an object, not as a string. Has anyone been able to actually raise an event (specifically the navigate event) that can be handled by the standard portal framework?
    What I am really trying to do is navigate from one iView to another within the same browser window. Has anyone done this?  I know that there is HTML view but I don't want to use this because of I want the user to navigate away from the current application.
    Thanks for your help

    HI,
        U can EPCM inside script tags and raise or subscribe the events.
    In one of the JSP (inside portal project), u can write
    <SCRIPT language ="JavaScript">
    EPCM.raiseEvent( "urn:com.sap:MyEvent", "EventName", "Hello" );
    <SCRIPT>
    In the iView to be subscribed, u can write
    <script language ="JavaScript">
    function onMyEvent ( eventObj ) {
    alert( "Got message:" + eventObj.dataObject );
    EPCM.subscribeEvent( "urn:com.sap:MyEvent", "MyEvent", onMyEvent );
    <script>
    This will raise event from first iView and the data will be available in the second iView.
    Regards,
    Vijai

  • Subscribe to Portal Events

    Hi
       Im tryng to make a AbstractPortalComponent subscribe to a Client-side Portal event raised by EPCM. I know this is possible using javascript code as EPCM.subscribevent but i need to run some Java Logic when the event happens.
       Basicly i want every Portal Navigation ( EPCM.Navigate Event) to raise a eventhandler on my portal component/service that will validate if i have to pass aditional parameters to the navigation node). This parameters are based on an array of correspondencies Navigation_Node_Path / Parameters in Java.  The Parameters are generated used a number of portal services methods like navigation helperservice etc.
    Thanks in advance

    Hi Jason,
    EPCM.raiseEvent('urn:com.sapportals:framework','CollapseNavPanel', "");
    EPCM.raiseEvent('urn:com.sapportals:framework','ExpandNavPanel', "");
    Best regards, Maksim Rashchynski.

  • Portal events are not getting loaded into the Analytics database tables

    Analytics database ASFACT tables (ASFACT_PAGEVIEWS,ASFACT_PORLETVIEW) are not getting populated with data.
    Possible diagnosis/workarounds tried:
    -Checked the analytics configuration in configuration manager, Enable Analytics Communication option checked
    -Registered Portal Events during analytics installation
    -Verified that UDP events are sent out from the portal: Test: OK
    -Reinstalled Interaction analytics component
    Any inputs highly appreciated.
    Cheers,
    Sandeep
    In collector.log, found the exception:
    08 Jul 2010 07:12:54,613 ERROR PageViewHandler - could not retrieve user: com.plumtree.analytics.collector.exception.DimensionManagerException: Could not insert dimension in the database
    com.plumtree.analytics.collector.exception.DimensionManagerException: Could not insert dimension in the database
    at com.plumtree.analytics.collector.cache.DimensionManager.insertDB(DimensionManager.java:271)
    at com.plumtree.analytics.collector.cache.DimensionManager.manageDBImage(DimensionManager.java:139)
    at com.plumtree.analytics.collector.cache.DimensionManager.handleNewDimension(DimensionManager.java:85)
    at com.plumtree.analytics.collector.eventhandler.BaseEventHandler.insertDimension(BaseEventHandler.java:63)
    at com.plumtree.analytics.collector.eventhandler.BaseEventHandler.getUser(BaseEventHandler.java:198)
    at com.plumtree.analytics.collector.eventhandler.PageViewHandler.handle(PageViewHandler.java:71)
    at com.plumtree.analytics.collector.DataResolver.handleEvent(DataResolver.java:165)
    at com.plumtree.analytics.collector.DataResolver.run(DataResolver.java:126)
    Caused by: org.hibernate.MappingException: Unknown entity: com.plumtree.analytics.core.persist.BaseCustomEventDimension$$BeanGeneratorByCGLIB$$6a0493c4
    at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:569)
    at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1086)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:83)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)
    at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)
    at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)
    at com.plumtree.analytics.collector.cache.DimensionManager.insertDB(DimensionManager.java:266)
    ... 7 more
    In analyticsui.log, found the exception below:
    08 Jul 2010 06:50:25,910 ERROR Configuration - Could not compile the mapping document
    org.hibernate.MappingException: duplicate import: com.plumtree.analytics.core.persist.BaseCustomEventFact$$BeanGeneratorByCGLIB$$6a896b0d
    at org.hibernate.cfg.Mappings.addImport(Mappings.java:105)
    at org.hibernate.cfg.HbmBinder.bindPersistentClassCommonValues(HbmBinder.java:541)
    at org.hibernate.cfg.HbmBinder.bindClass(HbmBinder.java:488)
    at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:234)
    at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:152)
    at org.hibernate.cfg.Configuration.add(Configuration.java:362)
    at org.hibernate.cfg.Configuration.addXML(Configuration.java:317)
    at com.plumtree.analytics.core.HibernateUtil.loadEventMappings(HibernateUtil.java:796)
    at com.plumtree.analytics.core.HibernateUtil.loadEventMappings(HibernateUtil.java:652)
    at com.plumtree.analytics.core.HibernateUtil.refreshCustomEvents(HibernateUtil.java:496)
    at com.plumtree.analytics.ui.common.AnalyticsInitServlet.init(AnalyticsInitServlet.java:104)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.plumtree.container.Bootstrap.start(Bootstrap.java:531)
    at com.plumtree.container.Bootstrap.main(Bootstrap.java:254)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.tanukisoftware.wrapper.WrapperStartStopApp.run(WrapperStartStopApp.java:238)
    at java.lang.Thread.run(Thread.java:595)
    08 Jul 2010 06:50:25,915 ERROR Configuration - Could not configure datastore from XML
    org.hibernate.MappingException: duplicate import: com.plumtree.analytics.core.persist.BaseCustomEventFact$$BeanGeneratorByCGLIB$$6a896b0d
    at org.hibernate.cfg.Mappings.addImport(Mappings.java:105)
    at org.hibernate.cfg.HbmBinder.bindPersistentClassCommonValues(HbmBinder.java:541)
    at org.hibernate.cfg.HbmBinder.bindClass(HbmBinder.java:488)
    at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:234)
    at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:152)
    at org.hibernate.cfg.Configuration.add(Configuration.java:362)
    at org.hibernate.cfg.Configuration.addXML(Configuration.java:317)
    at com.plumtree.analytics.core.HibernateUtil.loadEventMappings(HibernateUtil.java:796)
    at com.plumtree.analytics.core.HibernateUtil.loadEventMappings(HibernateUtil.java:652)
    at com.plumtree.analytics.core.HibernateUtil.refreshCustomEvents(HibernateUtil.java:496)
    at com.plumtree.analytics.ui.common.AnalyticsInitServlet.init(AnalyticsInitServlet.java:104)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.plumtree.container.Bootstrap.start(Bootstrap.java:531)
    at com.plumtree.container.Bootstrap.main(Bootstrap.java:254)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.tanukisoftware.wrapper.WrapperStartStopApp.run(WrapperStartStopApp.java:238)
    at java.lang.Thread.run(Thread.java:595)
    wrapper_collector.log
    INFO | jvm 1 | 2009/11/10 17:25:22 | at com.plumtree.analytics.collector.eventhandler.PortletViewHandler.handle(PortletViewHandler.java:46)
    INFO | jvm 1 | 2009/11/10 17:25:22 | at com.plumtree.analytics.collector.DataResolver.handleEvent(DataResolver.java:165)
    INFO | jvm 1 | 2009/11/10 17:25:22 | at com.plumtree.analytics.collector.DataResolver.run(DataResolver.java:126)
    INFO | jvm 1 | 2009/11/10 17:25:22 | Caused by: java.sql.SQLException: [plumtree][Oracle JDBC Driver][Oracle]ORA-00001: unique constraint (ANALYTICSDBUSER.IX_USERBYUSERID) violated
    INFO | jvm 1 | 2009/11/10 17:25:22 |
    INFO | jvm 1 | 2009/11/10 17:25:22 | at com.plumtree.jdbc.base.BaseExceptions.createException(Unknown Source)

    Key words from the error msg suggests reinstallation of Analytics is needed to resolve this.Analytics database is failing to get updated with the correct event mapping and this is why no data is being inserted.
    "Could not insert dimension in the database",
    "ERROR Configuration - Could not configure datastore from XML
    org.hibernate.MappingException: duplicate import: com.plumtree.analytics.core.persist.BaseCustomEventFact$$BeanGeneratorByCGLIB$$6a896b0d"
    "ORA-00001: unique constraint (ANALYTICSDBUSER.IX_USERBYUSERID) violated",
    "ERROR Configuration - Could not compile the mapping document

  • Calling Portal event from ABAP class

    Hi Experts,
    I need a following clarificatrion, Please help,
    1. Is it possible to call a webdynpro method from a normal ABAP class?
    2. If no, we need a functionality of a class 'CL_WDR_HTTP_EXT_MIME_HANDLER' having method 'DO_DOMAIN_RELAX_HTML'.
    Is there any alternative method which can be used in ABAP having the same functionality.
    3. Is there any ways with which we can call portal event from ABAP class?
    Thanks,
    Shabir

    >1. Is it possible to call a webdynpro method from a normal ABAP class?
    I wouldn't necessarily recommend this approach. You shouldn't try to trigger events or any of the standard WDDO* methods from outside the WD Component itself.  That said, you can pass the object reference (like the WD_COMP_CONTROLLER object reference or the View Object Reference) into methods of normal classes.  Be careful if you are finding yourself calling a lot of your added methods from outside WD.  This is probably a sign that these methods should be in the Assistance Class or some other Class functioning as a Model Object.
    >2. If no, we need a functionality of a class 'CL_WDR_HTTP_EXT_MIME_HANDLER' having method 'DO_DOMAIN_RELAX_HTML'.
    Is there any alternative method which can be used in ABAP having the same functionality.
    What exactly do you want to do here?  Do you just want to get the relaxation script?  For what purpose?  You should never need to inject the relaxation script into WDA. 
    >3. Is there any ways with which we can call portal event from ABAP class?
    To what purpose.  Do you just want to delegate the triggering of the event that is inside WD Component to be called from a class?  If so you can pass the portal API object reference into a class from the WD Component.  However this only works while running within WD.
    How is this class used?  Are you running in WD?  Are you trying to generate some HTML code that runs in the portal independent of WD?

Maybe you are looking for