Search This Blog

Thursday, May 29

Object Based Navigation

Purpose

Purpose of this wiki is to provide a central entry for information regarding Object Based Navigation (OBN), explaining different scenarios, configuration, settings and common issues when using OBN Navigation in SAP Netweaver Enterprise Portal.

Overview

Object-based navigation (OBN) is a runtime portal capability of navigating and passing business data between applications in the scope of the user roles or only in the source role. Offers to portal users an additional method of navigation based on business objects and its operations to reach/launch target iviews/pages.

OBN - Structure

A business object may have multiple operations attached to it the single business object operation may have multiple implementing iViews associated with it. The implementing iView displays business information relevant to the users for whom it is authorized. In the event of multiple associated operations, the iView implemented during runtime depends on two considerations:
  • The role of the user: iViews are role-based, with permissions defined for them by the portal administrator.
  • The operation priority

OBN - Terms:

  • Source Application:  The iView/page from which the OBN action is launched.
  • Target Application: The iView/page that is launched as a result of the OBN action, or an iView/page that implements a certain operation.
  • System Alias: The Back-end or Logical system that you are using for that business object.
  • Object name ID: it is the ID used for the business Object in an OBN call (it is case sensitive).
  • Operation ID: it is the ID used in an OBN call for specific action (it is case sensitive).
  • Resolving mode/scope: It is the way OBN will look for the targets, it can be set as "sourceRole" or "default",

OBN - Usage:

OBN is used in many SAP applications and business packages, but it can also be created by customers based in needed business logic.

OBN - Error messages:

  • "There is no iView available for system , object "
  • "Page not found or not available"

OBN - Investigation

When facing an OBN issue get all the OBN relevant information as per SAP documentation :
  • "SAP note 1646042 - Information required for issue handling in OBN area"
  • Create an httpwatch file following SAP note 1558903 and check information below:
  • FQDN: Ensure customer is using it as per SAP notes
    (#654982 : URL requirements due to Internet standards.
    #1334956 : Various problems that solved by using FQDN in portal URL)
  • Check protocol (mixing http / https)
  • Check domain (mixing domains)
  • OBN info: In a "POST" method you will find the OBN information that was triggered by the application:
    ( "object_name" / "operation" / "system_alias" / "resolvingmode"
  • In case resolvingmode is sourceRole then check also "source" parameter
    If value is a NAVURL rash you need to decode it in system administration >> navigation >> shortURL >> decode the string ).
  • Check "NavMode" value as per SAP note #1354803.
  • Try to identify if the OBN call is being done by doObjNav (Two round trip) or if it is doNav (one round trip)
    eg.:NavigationTarget=OBN://BOTechnicalName=/
    BOSystemAlias=/Operation=.

OBN - Tests at Runtime:

  • In a HTTP connection check the following
  • Ensure business object exists and that it was created for the relevant system:
    Once you know the "system_alias" value check if there is a system/system alias resolving it correctly on system landscape;
    You can search for it in the portal content using the "search" tab in this format: <system_alias>.<obj_name>
  • Ensure the PCD path of the target (iview / page) that should be launched.
  • In the business object editor select the relevant OBN and operation and press the display iviews/pages
  • Make sure that the target iview/page is assigned to the specific role (In OBN editor column NAV must show as Yes).
  • The role that includes the target iview/page must be assigned to the relevant users.
  • In case of SourceRole mode, the target iview/page must be located in the same role as the source application.
  • Test’s Result from OBN_source iview in support page
    Portal >> System Administration >> Support >> Web dynpro OBN source >> OBN source >>
    fulfill all data and test the navigation with the relevant user (who has the needed roles assigned)

OBN - NW 7.3 :

OBN changed a lot from designtime point of view on 7.3 version and it is very important to explain here the main differences when analysing / checking / changing OBN scenarios. However from runtime point of view it is still same concepts with minor changes which will also be explained here:
  • DesignTime SAP changed a lot the OBN editors in order to provide a clear/detailed view of OBN settings in the UI making it more organized and logical;
    In NW 7.3 OBN editor has 2 phases in adding a target since you need to add portal content objects to a second tree which can define the targets for OBN operations.
    In the new editor there is a link called Show "all implemented targets" which is responsible to get all valid targets for all operations in a business object and it mounts them in a dynamic tree in a more organized view.
    In the OBN editor you set target/operation priority based on the tree position using "-" or "+" buttons.
  • Runtime SAP changed the OBN concept once it is not obligatory anymore on 7.3 to have a SystemAlias context for each business object, however it is still possible to have it and OBN call / API does support calling OBN object passing as "blank" the "systemAlias" value;

OBN - Known issues:

Most OBN errors are caused by wrong configuration of the OBN scenario.
SAP Note 1494536: Object Based Navigation - Specific Component Note.
SAP Note 1651958 Portal Navigation using OBN doesn’t work in SourceRole mode/scope.
Business object name/ID properties - Be careful! "ID" is the relevant property for the code and it is "case sensitive".

OBN - On a FPN scenario:

  • Check if OBN works fine at least in the producer portal...
  • Check if customer is using compatible versions as per FPN note (FPN interoperability)
  • Check if customer is using merged roles (in RRA it is a limitation for OBN in sourceRole mode SAP note #1547740)
  • Check if user does have the source and target roles assigned on Producer(RRA) or whether the source and target objects are copied as RDL to consumer in order to get OBN resolved successfully.
  • Check if customer has the sourceRole assigned on Producer AND on Consumer to resolve the navigation correctly as per SAP note #1902470

Conclusion:

You are now able to analyze and understand OBN scenarios, and you can also use them as a guide to configure and Troubleshoot Portal OBN navigation functionality.

Creating iviews for Webdynpro Applications in EP 7.3

Below is the process followed.
1) Goto Content Administration
2) Select the folder in which you want to create the ivew and then Right click on the folder
3) This action will open popup menu then select "NEW"
4) And then select "iview"
5) And then select "iview from Remote source"
6) And then and page is displayed in which you have to
Select System alias from Drop done and enter Webdynpro Application ID  ,
7) Select Webdynpro ABAP as Application Type And
8) Click On Start Upload
iview Will be created.

Error creating JCO connection: java.lang.NullPointerException

Symptom
When creating or viewing a Jco connection in the Web Dynpro Content Administrator it fails with a similar error to the following:
Error as seen in the defaultTrace:
  • Exception occured during processing of Web Dynpro application sap.com/tc~wd~tools/Explorer. The causing exception is nested.
    [EXCEPTION]
     java.lang.NullPointerException
    at com.sap.tc.webdynpro.serverimpl.wdc.sl.SystemLandscapeFactory.checkStatus(SystemLandscapeFactory.java:991)
    at com.sap.tc.webdynpro.services.sal.sl.api.WDSystemLandscape.checkStatus(WDSystemLandscape.java:485)
    at com.sap.tc.webdynpro.tools.sld.NameDefinition.updateJCODestinations(NameDefinition.java:286)
    at com.sap.tc.webdynpro.tools.sld.NameDefinition.updateNavigation(NameDefinition.java:251)
    at com.sap.tc.webdynpro.tools.sld.NameDefinition.wdDoInit(NameDefinition.java:158)
    at com.sap.tc.webdynpro.tools.sld.wdp.InternalNameDefinition.wdDoInit(InternalNameDefinition.java:236)
    .............

Environment
  • SAP J2EE Engine 640
  • SAP J2EE Engine 700

  • Reproducing the Issue
    Create or modify a JCo connection using the Web Dynpro Content Administrator.

    Cause
    The cause of the issue is that the JCO connections have been created directly using the SLD WebUI. When they are created this way certain other internal actions won't be executed which is the task of the Web Dynpro Content Administrator.

    Resolution
    To solve the issue you have to delete the jco connections in the SLD then only use the Web Dynpro Content Administrator to create and maintain connections.
    1. Invoke the SLD WebUI: http://:/sld
         > Administration
         > Content Maintenance  
         > choose here 'JCO Message Server Destination (X)'
    2. Here delete the entries.
    3. Then you should be able to successfully create JCo connections in the Web Dynpro Content Administrator.