How I may help
LinkedIn Profile Email me!
Call me using Skype client on your machine

Reload this page SAP NetWeaver Enterprise Portal Development

Here is a concise yet in-depth explanation of how to install and customize SAP Enterprise Portal from a hands-on approach, without the sales hype and repetition typical of tutorials. Differences among versions are described. These SAP Netweaver topics are linked to certification exam content and other web pages. Detailed diagrams of the underlying infrastructure accompanied by well-sequenced descriptions make the complexity easy to understand. Cross-reference tables of PCD objects and classes plainly cut through the confusion. Portal layout components are listed for quick reference.

 

Site Map List all pages on this site 
About this site About this site 
Go to first topic Go to Bottom of this page


SAP Enterprise Portal 6.0 SP2 Learning Maps OKP in SAP Service Marketplace

Set screen Topics this page:   RSS 2.0 XML feed [Accessibility key: Alt-X] Related Topics:  

Set screen Portal Technical Consultant Certification Content Index

    Here are links to exam content for the SAP C_TEP10_04s Technology Consultant SAP NetWeaver 2004s - Portal 3 hr. 40 ques. exam. and the C_TEP12_04s 3 hours 80 ques. Developer exam.

    SAP Web AS Fundamentals < 10%
    TADM10 / SAPTEC
    Enterprise Services Architecture
    SAP System Architecture
    Navigation
    SAP Solution Offering
    SAP NetWeaver, Overview
    SAP Web AS ABAP Administration < 10%
    TADM10 / ADM100
    Starting and Stopping SAP systems
    Configuring SAP Web AS ABAP
    User Management in SAP Web AS ABAP
    Configuring Remote Connections
    Patching SAP Web AS ABAP
    Scheduling Background Jobs
    Monitoring SAP Systems
    Technology Components for Browser-based User Interfaces [+TADMD5 / ADM102]
    SAP Web AS Java Administration 11-20%
    TADM10 / TADMD5 / ADM200
    Java Basics (non-programming topics)
    Starting and Stopping SAP Web AS Java
    Configuring SAP Web AS Java
    User Management in SAP Web AS Java
    Patching SAP Web AS Java
    Software Logistics for SAP Web AS Java
    Monitoring SAP Web AS Java
    SAP NetWeaver Portal Fundamentals > 20%
    TEP10 E-Learning / SAPEP
    The Big Picture
    The End-User's Perspective
    Technical Infrastructure
    Portal Platform Content
    Security Aspects
    SAP NetWeaver Portal System Administration > 20%
    TEP10/EP200
    User Administration and Authentication
    Portal Authorization Concept
    Single Sign-On to Backend Systems
    Integrating SAP Applications
    Solution Managementanother page on this site
    Secure System Management
    Design Modifications and Branding
    Advanced Portal Scenarios
    Configuration of Knowledge Management and Collaboration 11-20%
    TEP10 / EP300
    Introduction to Knowledge Management [+ SAPEP]
    CM Functions and Configuration
    KM Technical Infrastructure
    Introduction to Collaboration [+ SAPEP]
    Virtual Rooms
    Real-Time Collaboration
    Groupware Integration
    TREX Administration
    Implementation 11-20%
    TEP10
    Installation
    Sizing
    Implementation and Methodology
    Clustering and High Availability


Go to Top of this page.
Next topic this page

Set screen Portal Development Consultant Certification Content Index

    Here are links to the SAP NW Portal Development classroom course TEP12 and exam content for the SAP C_TEP12_04s 3 hours 80 ques. Developer exam.

    Visual Composer < 10%
    TEP10 / EP120
    Build and Run Applications
    Portal Runtime < 10% Definition
    Portal Components 11-20% Portal Services
    Web Services
    User Management < 10% User Management Engine, Persistent Manager and Adapters
    LDAP directories
    Interfaces
    User Management methods and states
    Connector Framework < 10% Overview, resource adapters, JCA and CCI
    SAP BAPI, transactions and Function Builder
    Jar Files for Connector Framework
    Deployment descriptor Interaction Spec and closing connections
    JDBCanother page on this site
    Enterprise Portal Client Framework < 10% Client Eventing, Client Data Bag and EPCF levels
    Subscribing and Raising Events
    WebDynpro Integration < 10% General Concepts and Integration
    SAP Enterprise Portals Fundamentals < 10%
    SAPEP
    The Big Picture
    The End-User Perspective
    Technical Infrastructure
    Portal Platform Content
    WebDynpro 11-20% User Interfaces
    Controller Contexts
    Controller Architecture
    Components
    Generic UI-Services
    Dynamic Programming
    Models
    Internationalization
    Web Dynpro Security
    Debugging
    Adaptive RFCs


Go to Top of this page.
Next topic this page

Set screen Product Version History

    SAP purchased its Enterprise Portal (EP) technology from TopTier in 2000.
    SAP EP 4.5 is the first SAP branded version.
    SAP EP 5.0 (EP5) came out in 2001. It was the previous version (SAP Note 732461).
    Its concept of "Channels" was obsoleted in EP6.
    References from EP6 to EP5 applications require additional DD specifications.

    SAP EP 6.0 SP2 has reached end of maintenance (SAP Note 961629) http://service.sap.com/ep6 Media Library
    SAP EP 6.0 SP3 on Web AS 6.40 is part of SAP NetWeaveranother page on this site

    EP6 requires OS environment variables JAVA_HOME=/usr/j2sdk1_3_1_06 and $JAVA_HOME/bin in PATH

    Product Availability Matrix for Portal Content


Go to Top of this page.
Next topic this page

Set screen Starting

    SAP Portals run as a "SAP J2EE Engine" cluster instance started by
    /usr/sap/Name/j2ee/j2ee_instance number/cluster/dispatcher/go


Go to Top of this page.
Next topic this page

Set screen Technical Walththrough

    Communication among J2EE and portal apps are managed by the PRT (Portal Runtime), packaged as a J2EE Web App called the Enterprise Portal Base Component (EPBC), which provides the hosting environme for the Portal Server logical environment. The PRT Container manages deployment of portal applications

    Each Portal Application project consists of:

    • Portal background services (not bound to a specific HTTP request) that
    • Portal components triggered by HTTP request to display HTML in an iView: (Java controller and view code to render dynamic web content as different user interface "modes")
      • Page Builder
      • Admin Tools
      • Custom

    Portal applications are defined by its portalapp.xml file stored in the Application Reposity

    Incoming HTTP requests are routed through the J2EE Dispatcher Servlet, which determines which application/project the request belongs, then checks the web.xml file in the WEB-INF of that project/application.

    The request is sent to the gateway servlet defined by the web.xml (servlet-class com.sap.portal.navigation.Gateway). The gateway servlet matches a url-pattern associated with a servlet-name in the web.xml:

    • /portal/* to gateway (the standard PRT connection)
    • /irj/* to prt
    • /go/* to prt

    After authentication, the J2EE engine hands off the request (with a logon cookie) to the PRT dispatcher servlet (servlet-class com.sapportals.portal.prt.dispatcher.Dispatcher).

    A request from an internet browser client (such as Internet Explorer or Firefox) such as:
    http://www.sdn.sap.com:80/irj/portal causes the PRT engine to run its portallauncher component to call the desktop service, launches the framework page after getting a "desktop" for the current user with a masthead, navigation, and home page (usually at the lower right iView). The "irj" is an abbreviation of the iView Runtime for Java.

    The Request Manager (Page Builder) builds the POM (Portal Object Model) tree of all components involved in generating HTML for a request with code such as: request.getNode().getPortalNode().addChildNode(componentNode);

    The PRT stores its configuration settings, personalization, etc. in a Portal Content Directory (PCD) within a Portal System Database (PSD) instance "su - orapor".

    The Object Broker manages the creation, class loading, and dependency issues of all portal component and service objects.


Go to Top of this page.
Next topic this page

Set screen Portal Installation

  1. Mount the install directory with a command such as:
      mount -F nfs server:/software /mnt
  2. Start the installer SAPInst by
    sh /mnt/ep60_march/SAPINST/UNIX/OS/INSTALL

    where mnt is the mount name,
    where OS is SUNOS_64 or whatever is the operating system code.

    The installer generates several files:

    • Install.log contains error messages, if any.
    • Keydb.xml contains responses to installer questions.
    • Install_dev.log contains detailed information.

  3. Import ande apply dbpatch_oracle.zip with command of format:
      ./dpatch_oracle.sh server:port SID User password
  4. Apply CM patch SAP Note 597187 and 552522.
  5. As user j2eeadm, add to server boot sequence script the cluster/dispatcher startup:
    cd /usr/sap/J2EE ServiceName/j2ee/j2ee_00/configtool
    ./unixdaemon -start
  6. Add to Configtool Server settings and Java cmdline.properties file:
      -XX:MaxPermSize=128M
      -XX:PermSize=128M
      -XX:NewSize=256M
      -XX:+DisableExplicitGC

Go to Top of this page.
Next topic this page

Set screen SSO (Single Sign On)

    A logon ticket contains information about the authenticated user is stored as a non-persistent cookie on the client browser and sent with each client request. It contains the digital certificate of the portal server and the user ID of the portal user. It is normally for a single domain.

    External authentication methods include:

    • X.509 SAP Trust Center Service or internal PKI CA.
    • HTTP Header variable authentication
    • Security Assertion Markup Language (SAML OASIS std. for Java)
    • Pluggable Authentication Services (PAS for ITS)
    • Java Authenticatio and Authorization Services (JAAS for Java)


Go to Top of this page.
Next topic this page

Set screen Portal Services

    • Audit, Log, Monitoring
    • User Management (UM) Service references (on another server) a User Management Engine with its own User Persistence Store (which can include a database, LDAP, SAP system, or external system via XML replication)
    • Caching Service
    • Rendering Service

    Generic Layer (GL) Services within the PCD:

    • Personalization (for different views of the PCD by different users)
    • Search & Filter
    • Delta Links (to track changes)
    • Version
    • Relations
    • Notification
    • Caching

    Services:

    • ACL Service
    • Lock Service
    • Transport Service
    • Object Cache Service
    • Messaging Service

    Services used by developers:

    • XML Transformation
    • EPCF (Enterprise Portal Client Manager) service for creating Javascript in an iView

    Portal services are created by implementing IService class with methods init() and destroy().

    Unification refers to harmonization, Consolidation, and management of master data.


Go to Top of this page.
Next topic this page

Set screen Portal Content Directory (PCD) of Objects

    The PCD is a JNDI provider. Instead of using low-level JNDI interfaces such as javax.naming.directory.DirContext,

    1. Administrative component objects access the PCD (which in turn can access other repositories) through the PCM (Portal Content Model), a set of common interfaces for all portal objects.
    2. other components use class com.sapportals.portal.pcd.gl.IPcdContext. to access the PCD directly

    Core applications are deployed on each server node (not stored in the PCD).

    The PCD stores (as a collection of attributes) semantic portal objects:

    • iView
    • Page
    • Layout
    • System

    The PCD queries portal semantic object providers (such as iView, Page, Layout, and System) defined by attribute com.sap.portal.pcd.gl.ObjectClass aspect (environment variable in a Hashtable specifying the type of object returned) determined by the semantic object factory.

    The PCD is organized in a tree hierarchy of folders from this top level:

    • User Management
    • Landscape
    • Branding
    • Portal Content

    Atomoic names (such as "stocks") are looked up using a PCD Name path with a prefix:
    pcd:portal_content/myFolder/stocks

    PCD Folders are accessed by object class com.sap.portal.pcd.gl.GlContext. Within each folder are objects:

    • Roles (extended beyond "Role_admin" in EP5)
    • Folders
    • Worksets (a work area's tasks, services, and info. assignable to roles)
    • Pages (such as the Portal Desktop and its containers built by the Page Builder Portal component according to the defined
    • Layouts (new to EP6) are default frameworks with various column configurations
    • Templates (reusable instance of a portal component enhanced by parameters - new to EP6)
    • iViews
    • Systems (Landscape)

    Only units (semantic objects whose parent hierarchy consists only of plain folders) have ACLs and can be cached and transported.

    System landscape files in the PCD define connection information:

    • systems.xml for apps using ITS
    • jcoDestinations.xml for apps using RFCs

    Follow Portal Content Naming Conventions in SDN Portals and Collaboration > Vendor Zone > Development > Development Resources


Go to Top of this page.
Next topic this page

Set screen iViews

    An iView is the smallest content unit, so is not a container for other objects. Created by a Wizard framework based on a template for a System Landscape and a connector.)

    There are 3 types of iViews:

    • Embedded iViews of simple HTML painted with all other content. Loading content into this refreshes the whole page (including IFrames).
    • URL Isolated iViews presented in an HTML IFrame refreshed (from HTML at another URL) independent of other content. This can be defined by a wizard that creates AppIntegrator iViews.
      • HTTP based web applications (such as from Google, Yahoo, etc.)
      • SAP Transactions
      • Internet Application Component (IAC)
      • Business Server Pages (BSP)
      • BEx Web Applications (formerly BW Report)
      • Cyrstal Reports
      • Workplace 2.x MiniApps
    • Pumped iViews where the portal server loads content into memory and sends it all at once to the client.

    The address to which an iView connects is looked up in the PCD using getSystemId(alias) from associations designated at design time. But getAlternateSystem() is used if a ROOT/runtime/alias.mappers/service at runtime determines if the association is defined for Dynamic System Resolution based on the Portal Registry within the portalapp.xml file. These are displayed in the Portal Registry Browser from System Administration > Support > Support Desk > Port Runtime.

    A personalized page without a framework is exposed in a URL like
    http://localhost:8100/irj/servlet/prt/portal/prtroot/PCD address

    A personalized framework page is exposed in a URL like
    http://localhost:8100/irj/servlet/prt/portal?NavigationTarget=PCD address or Navigation Node

      A Navigation Node (such as "ROLES://portal_content/myRole/myIView") can be defined in a JSP (Java Server Pages) tag library. This is the SAP-recommended approach.

      Such a URL can also be issued as a result of client-Side Eventing Mechanism (EPCM) Javascript such as:
      <a href="myLink" onclick="return EPCM.doNavigate ('ROLES://portal_content/myRole/myIView')">
      The navigation node can be in a StringBuffer obtained from NavigationEventsHelper.addClickEvent() supported by the
      com.sapportals.portal.navigation.NavigationEventsHelperService.

      Is this the navigation service???

    A portal component (without the personalized framework page) is exposed in a URL like
    http://localhost:8100/irj/servlet/prt/portal/prtroot/AppProjectID.ComponentName

      Such a PRT link (embedded within a HTML anchor tag) is defined using Java casting code such as this:
      IPortalComponentURI componentURI = request.createPortalComponentURI();
      componentURI.setContextName("myApp.myComponent");
      myUrl = componentURI.toString();


Go to Top of this page.
Next topic this page

Set screen Business Packages and Roles

    Business packages are predefined collections of role-based portal content that are often shipped with worksets which admins assign to roles. This is a key differentiator for SAP.

    Sample code for coding portal apps are included in the NetWeaver Developer Cockpit business package. Where is this???

    Business Package for Common Parts (com.sap.pct.erp.common.erp_common) uses ERP Common.

    For example, the Business Package for Manager Self-Service runs on top of the HCM capability of the mySAP HR solution.

    Among 100+ Roles are Customer, Partner, Employee, Supplier.

    The Universal Worklist has four tabs: Inbox, Outbox, Resubmission, and Information.

    Support for the WSRP (Web Services for Remote Portals) standard defines sharing (syndicated and federated portal scenarios) for any portlet, including MS.NET.

    Support for the JSR 168 portlet standard means use of a common Java API.

    www.iviewstudio.com, SAP's portal content catalog claims to have 75 business and 15 vendor packages.

    Wiki features SAP Germany calls Web Editing and offers on a Consulting basis only.


Go to Top of this page.
Next topic this page

Set screen PDK

  1. Download the PDK from iviewstudio.

  2. Copy file com.sap.portal.pdk.PortalDevelopmentKit.epa into folder usr/sap/servername/global/config/pcd/import

  3. Import the PDK Business Package from EP6 menu System Administration > Transport > Import

  4. Assign role com.sap.portal.pdk.JavaDeveloper from EP6 menu System Administration > Role Assignment

  5. Install Eclipse and stop it.

  6. When Eclipse is stopped, unzip the wizard into the Eclipse \plugins directory.

    The WEB-INF folder contains files (such as static data files, private JSPs, etc.) NOT accessible via http requests.

    Early versions of the PDK runs as a Web application in an Apache Tomcat servlet container.


Go to Top of this page.
Next topic this page

Set screen PAR Files

    Application files in PAR In EP6, each Portal Application distribution (dist folder) is packaged as a PAR (Portal Application ARchive) file, a JAR (ZIP) format that the Portal Runtime (PRT) accepts for deployment. (To make use of EP5 ZAR files, they first have to be renamed to PAR.)

    Transport configuration defined in pcdStartup.installer.properties.

    Each PAR file distribution contains CSS, images, (Java) scripts web resources publicly accessible through a URL, plus one or two folders:

    META-INF (optional) contains a MANIFEST.MF file containing origin and versioning info.
    PORTAL-INF holds

      a portalapp.xml deployment descriptor (DD) file which defines each Portal Application. It consists of:
      *.WSDL files
      JSP source files compiled to WEB-INF/portal/portalapps/app/work folder.
    Its subfolders:
      lib contains public (shared) API JAR files referenceable by other portal apps.
      classes contains public (shared) API class files used by refeencing portal apps.
      localization contains language resource files.
      private folders contain core files (implementations) used exclusively by the application. It contains:
        private/lib jar files
        private/classes
      taglib contains JSP tags.


Go to Top of this page.
Next topic this page

Set screen <application-config> Properties

    In the DD xml, within <application-config> are properties

    <perperty name="startup" value="true" /> is added if the app should always be started (initialized) when the server is started. Its default is "false".

    <perperty name="releaseable" value="false" /> is added if the app should NOT be released (e.g., should be resident). Its default is "true".

    <perperty name="PrivateSharingReference" value="?"/>
    is specified when "non-transitive" private web services are used internally within the app and not shared/exposed with other servers.

    <perperty name="SharingReference" specify what ClassLoader loads into the portal app's memory space.

      value="com.sap.portal.runtime.application.soap"/>
      is specified when web services are shared/exposed to other servers. This defines "trasitive" API extensions. In EP5, this was the ShervicesReference property.

      <value="com.sap.portal.navigation.navigationtaglibrary"/>
      is specified when a JSP tag library is used.

      <value="com.sap.myApp"/>
      is specified to reference an external app named "myApp".

    <perperty name="DeploymentPolicy" value="5.0" /> specifies that resources are treated during local deployment as if it was EP50.

    <perperty name="ClassLoadingPolicy" value="transitive" /> is assumed for EP6 unless "5.0" specifies that definitions of the app are exported and imported by this and other apps as if it was EP50.


Go to Top of this page.
Next topic this page

Set screen Consuming External Web Services

    To access external web services, the PRT generates proxies used by portal apps.

    For example, to make use of Google's Custom Search Engine (public search service), the portalapp.xml <services> section contains:

    <service alias=GoogleSearch" name="GoogleSearch">

      <service-config>
        <property name="className" value="com.sap.portal.prt.webservice.GoogleSearch.GoogleSearch"/>
        <property name="startup" value="false"/>
        <property name="WebEnable" value="false"/>
        <property name="WebProxy" value="true"/>
        <property name="WSDL" value="GoogleSearch.wsdl"/>
      </service-config>
      <service-profile/>
    </service>

    <service-config> properties can be programmatically accessed through the interface com.sapportals.portal.prt.service.IServiceConfig.
    <service-profile> properties can be programmatically accessed through the interface com.sapportals.portal.prt.service.IServiceProfile.

    This can be generated by IBM Eclipse-based wizards within SAP's Portal Development Kit (PDK) 6.0. A Portal Applications and objects within them can be created from File > New > Other...

    1. Create a Portal Application Project (i.e., "MyEP6").
    2. Create a new Portal Application Object that
    3. calls the web service Project selected
    4. Among templates, selecting "Portal Service from Wsdl file - Client side" creates a new proxy (wrapper) to the external web service. Wrapper classes transfer SOAPanother page on this site objects into Java objects.
    5. Specify the WSDL (Web Service Description Language) file. The XML within, a language-independent version of legacy IDL (Interface Definition Language), should follow standard WSDL 1.1 defined by the W3C Web Services Activity. NOTE: SAP Labs' Canyan Kevin Liu is an editor of WSDL 2.0.
    6. Select the methods to expose: doGetCachePage, doSpellingSuggestion, doGoogleSearch are used in the custom written code package referencing them (i.e., com.sap.eprig).

    Web services configurations are stored in Central Config. Storage.


Go to Top of this page.
Next topic this page

    Set screen Sample Component Code That Uses GoolgeSearch Web Service

    package com.sap.eprig;
    import com.sap.sapportals.protal.prt.component.*;
    import com.sap.sapportals.protal.prt.runtime.*;
    import com.sap.portal.prt.webservice.GoogleSearch.*;
    public class CallWebService extends AbstractPortalComponent{
      // No doEdit(), so default personalization dialog is offered users.
      // No doHelp(), doAbout() here.
      public void doContent( // the default UI mode that must be implemented.
      IPortalComponentRequest request,
      IPortalComponentResponse response){
        system.setProperty("http.proxyHost","proxy.wdf.sap.corp");
        system.setProperty("http.proxyPort","8080");
        system.setProperty("http.nonProxyHosts","p1111|localhost|p2222*,wdf.sap-ag.de");

        String key = "whatever"; // provided during GoogleSearch registration.
        String wrongtext = "Hello Woarld";

        IGoogleSearch mySearch = (IGoogleSearch)PortalRuntime.getRuntimeResources().getService("GoogleSearch");
        String result = mySearch.doSpellingSuggestoin(key,wrongtext);
        response.write("Text: "+wrongtext+" corrected to: "+result);
      }
    }

    JSPs (Java Server Pages) can be added to this.


Go to Top of this page.
Next topic this page

Set screen Component Config. & Profile Descriptors

    Within the <components> section,
    <component name="myComp"> defines the class name of the component.

    Within <component-config> are optional resource properties that can be programmatically accessed through the interface com.sapportals.portal.prt.component.IPortalComponentConfig.

      <property name="ClassName" value="com.sap.eprig.Test"/> // is required. Others options:
        ComponentType (value servlet, jspnative)
        JSP (value path)
        ResourceBundleName (for Java multi=language support)
        AuthRequirement (is only used by EP5, with value User, admin, none, Role List required to run the component)

      <property name="mode" value="edit"/>

        <property name="delegate" value="DelegateComp.default"/>
      </property>
      specifies delegation to the doEdit() method within DelegateComp.default. instead of the default doContent() method which must be defined.
      This switch continues until prtmode is set to "default" again by the INode interface's setNodeMode() method.

      <property name="SecurityZone" value="com.sap.portal/high_safety"/> where:

          high_safety requires administrator rights
          medium_safety requires the authenticated user to be assigned certain roles (such as "content_admin")
          low_safety requires user authentication
          no_safety enables anonymous access NOTE: Users, groups, and roles are associated to each zone in the ACLs (Access Control Lists) created by the administrator.

    Within <component-profile> are customization properties that can be programmatically accessed through the interface com.sapportals.portal.prt.component.IPortalComponentProfile.

        CachingLevel (predefined)
        ValidityPeriod (milliseconds)
        EPCFLevel
          0 = No Javascript nor Java applet framework functions
          1 = Javascript (scripting between IFrames within the same domain)
          2 = Javascript and Java applet framework functions (including Client Data Bag, a buffer that stores client data during a portal session).

        personalization
        type
        description
        plainDescription

      <property name="NavigationTagLibrary" value="/SERVICE/com.sap.portal.navigation.navigationtaglibrary/taglib/TagLibrary.tld"/> supports JSP tag libraries.


Go to Top of this page.
Next topic this page

Set screen Portal Registry Descriptors

    Between <registry> and </registry> tags:

    <entry parth="runtime/prt.modes/admin" name="myApp.adminDelegate"
    type="component" rebind="false"/>
    specifies a delegate (substitute) component called in admin mode for the sub-context "/runtime/prt.modes".


Go to Top of this page.
Next topic this page

Set screen Default Portal Framework Page Layout Component Page Structure

    com.sap.portal.frameworkpage in portal_content/com.sap.pct/every_user/general/

    • com.sap.portal.layoutPortal1_Framework in <admin_templates>/layouts/
    • com.sap.portal.masthead in <admin_templates>/iViews/ [Help, Log Off] app com.sap.portal.navigation.masthead
    • (Tools Area visible only when displaying KM components) app com.sap.portal.navigation.toolarea
    • com.sap.portal.topLevelNavigationiView (TLN) in <admin_templates>/iViews/ app com.sap.portal.navigation.toplevel
    • (Page Title Bar to refresh page or opening page in a new window) app com.sap.portal.navigation.pagetoolbar
    • com.sap.portal.innerpage (Desktop) in .../com.sap.portal.frameworkpage/ com.sap.portal.layoutPortal1_WAandNavPanel app com.sap.portal.layouts.framework (WAandNavPanel.jsp)
      • com.sap.portal.detailedNavigationTree (DTN) in <admin_templates>/iViews/ app com.sap.portal.navigation.detailedtree
      • (Dynamic Navigation for the current content) app com.sap.portal.layouts.framework (dynNavArea.jsp) app com.sap.portal.navigation.dynnavarea
      • com.sap.portal.targetsiView (Drag&Relate Targets) in <admin_templates>/iViews/ app com.sap.portal.navigation.targets
      • com.sap.portal.targetsiView_ in .../com.sap.portal/frameworkpage/
      • (Related Links) app com.sap.portal.navigation.targets
      • (Portal Favorites chosen by the user) app com.sap.km.cm

      • com.sap.portal.contentarea in <admin_templates>/iViews/ app com.sap.portal.navigation.contentarea
        • com.sap.portal.pagebuilder.default in archives/com.sap.portal.pagebuilder.par


Go to Top of this page.
Next topic this page

Set screen Portal Java Environment Variables

    Current User (IUser) INavigationConstants.NAVIGATION_PRINCIPAL
    Navigation Target (String) INavigationConstants.MANDATORY_PARAM_NAME
    Previous Navigation Target (String) INavigationConstants.PREVIOUS_NAVIGATION_TARGET
    Execution Flag INavigationConstants.EXECUTE_LOCALLY (or on the remote portal, in a remote scenario)


Go to Top of this page.
Next topic this page

Set screen Exposing Web Services to Others

    A portal's web services are exposed in a URL like
    http://localhost:8100/irj/servlet/prt/soap/PortalServiceName?wsdl

    External clients use the WSDL to prepares a SOAP request sent over HTTP.

    The PRT listens for SOAP requests by running the service inqmyXML parser in component com.sap.portal.runtime.application.soap.par within the inqmysoap.jar external library, an implementation of JAXM (Java XML) 1.0 API developed as JSR 067: Java APIs for XML Messaging 1.0 under Sun's Java Community Process.

    The portal processes the SOAP message by deserializing its information to Java objects.

    The portal may return a SOAP message back to the requesting client.

    A web service can be defined from IBM Eclipse-based wizards within SAP's Portal Development Kit (PDK) 6.0.

    1. Create a Portal Application objects from File > New > Other...
    2. Select a Portal Service to convert
    3. (Portal Web Service from Portal Service)
    4. Specify the Interface Path (java file)
    5. Specify the methods (and signature) within that Interface to expose
    6. Define properties of the Portal web service:
      • Alias Name (in the portappl.xml),
      • WSDL output file name and URL Location
      • Generate the virtual Portal Service Client (proxy service between two PRT)
      • Enable the getter/setter limitation (only for SOAP response ???)
      • Enable Security (based on ACL/Portal User)

    Set screen UDDI

    The service may be published to a registry of services so that they can be discovered through a industry-standard mechanism called UDDI (Universal Description Discovery and Integration).

    SAP's UDDI Business Registry is at uddi.sap.com.

    web services


Go to Top of this page.
Next topic this page

Set screen Connectors and Resource Adapters

    A portal application can access SAP R/3, databases (via JDBC), and other systems (such as Sibel and PeopleSoft) by making use of SAP Java Connector (JCo) technology (from thomas schuessler [tgs] at ARAsoft).

    JCo has been deprecated by SAP as of EP 6.0 in favor of the SAP Connector Framework based on industry JCA (J2EE Connector Architecture) standards (with JCA 1.5 support to come).

    The JCo library consists of the JCO.lib referencing in the Windows System32 librfc32.dll, plus jRFC11.dll (for Jco 1.1 with JDK 1.1) or jRFC12.dll (for JCo 2.0 with Java 2 and SAP 6.20+).

    Connectors run on the SAP J2EE Engine, not on the PRT or the portal platform.

    To simplify connection coding, the Connector Framework (CF) API makes use of pre-defined resource adapters to specific systems (such as SAP R/3, Siebel, etc.).

    Resource adapters enable use of generic connector Interfaces which includee:

    • executeFunction() - Execute a function with given parameters.
    • executeQuery() - Execute a given query in the target application.
    • Retrieve a list of capabilities supported by the connector.
    • Retrieve input/output metadata for a given function name,
    • Return a list of all business objects in the application.

    The JAR files containing the code of the connector are packaged into a RAR (Resource Adapter Archive) file (such as "SAPCFConnector.rar and jdbcConnector.jar) which also contain a ra.xml descriptor file.

    A portal ConnectorWebService can be defined to provide these interfaces.

    SAP EP6 Connector Config

    The SAP PDK contains a Connector Framework SDK which includes the Eclipse "SAP Connector Framework Wizard" plug-in to create new connectors. Its toolbar is made visible by selecting "SAP Portal Actions" from Window > Customize Perspective > Other.

    The portal extracts them to the SAP J2EE additional lib folder. JAR files there are listed in the library.txt and reference.txt files which the JNDI connection factory uses to look up connectors.

    This DevX article describes use of Jco code to access the traditional "Hello, World" example for Web-enabling SAP -- BAPI_COMPANYCODE_GETLIST.


Go to Top of this page.
Next topic this page

Set screen Portal Services called from WebDynPro within WebAS 6.40

    Portal Services can be called from within WebDynPro apps (running within the same J2EE Engine) by using the WebDynProRuntime API com.sap.tc.webdynpro.clientserver.portal.WDPortalUtils described in Help Contents. The calling code is:

    IMyPortalService portalService = (IMyPortalService) WDPortalUtils.getserviceReference(String ParName.ServiceName);
    portalService.method();

    Enable this by adding in the "Java Build Path" The Portal Application API prtapi.jar within /irj/root/WEB-INF/portal/lib.

    On the portal server, add "PORTAL:sap.com/portal app name in Sharing References among "Web Dynpro References" properties.


Go to Top of this page.
Next topic this page

Set screen Embedding WebDynpro apps within a Portal iView

    As long as the WebDynpro app and EP6 are on the same URL domain, an example:
    http://localhost:50000/webdynpro/dispatcher/WebDynproNamespace/AppName?SAPtestId=1

    These packages are used in the WebDynproRuntime API:
    com.sap.tc.webdynpro.clientserver.event.api.*
    com.sap.tc.webdynpro.clientserver.navigation.api.*
    com.sap.tc.webdynpro.clientserver.portal.api.*

    WDPortalEventing.subscribe() is used with
    WDPortalEventing.fire()


Go to Top of this page.
Next topic this page

Set screen HTMLB

    HTMLB (HTML for Business) is, like Java AWT, a set of classes, methods, and JSP tags to display the GUI.

    HTMLB and EPCM are considered too heavy-weight for external-facing (public) web sites. The need for Javascript eventing is specified by a component's EPCFLevel profile property.

    With Java DynPage, the first call by user invokes dInitialization() and doProcessBeforeOutput().
    User clicks, or something else.
    Subsequent calls invoke:

      doProcessAfterIntput()
      onMyClick(Event event)
      doProcessBeforeOutput()

 
Go to Top of this page.
Next topic this page

Set screen Functional Testing

    SOAP Test Suite???

 
Go to Top of this page.
Next topic this page

Set screen Portal Performance Testing

    JLin, a plug-in to SAP NetWeaver Development Studio, contain rules to perform static code checks which spot coding issues known to be of concern, such as:

    • Thread creation from within a custom portal application.
    • Synchronization for single-threaded processing.
    • NullPointer Check finds check blocks for NullPointerExceptions instead of fixing the underlying if statement. Creating and throwing exceptions is expensive in Java.
    • Map Iteration finds where the keySet() method can be replaced by the entrySet() method which works without a lookup for every element.
    • String Concatenation finds where string concatenation operator "+" can be replaced by an append() method on a StringBuffer.

    These rules can be exported and import as an XML file.

    Coding techniques known to improve performance include:

    • Use of Message Driven beans for asynchronous parallel processing rather than per-request I/O.

    APIs are known to be I/O intensive:

    • PCD
    • UME (User Management Engine)
    • KM (Knowledge Management)
    • JCo (Java Connector for SAP backend)

    Measure the performance of custom objects rather than the performance of core functionality provided by the package.

    What is the cost of typically "expensive" activities done dynamically?

    How does PCD GL JNDI performance degrade as more semantic portal data is stored in the PCD?

    The impact of a custom component can be measured by comparing its cost versus a standard component performing similar functionality.

 
Go to Top of this page.
Next topic this page

Set screen Tuning for Performance

  • The KM Cache Configuration
  • Load Balancing of clusters KM servers
    • All interactive CM nodes share
      • the same etc and config directory on a common file share specified in servletpath= within config_local.properties
      • identical ACLs
      • a central database
    • A separate CM server (not load balanced) is uniquely configured for scheduled jobs.
      • index management crawling task

Go to Top of this page.
Next topic this page

Set screen SAP Portal Core Monitoring Points

    Layer L2 L3 L4 Classes & Methods
    Portal SAP Authentication - com.sapportals.portal.prt.service.permissionservice.IPermissionService com.sapportals.portal.prt.service.authenticationservice.IAuthenticationService com.sap.security.api.logon.ILogonAuthentication com.sap.security.api.IAuthentication com.sapportals.portal.security.usermanagement.IPortalLogin
    Authorization - com.sap.security.core.acl.imp.AclManager
    com.sap.security.core.acl.imp.Acl com.sap.security.core.acl.imp.wcm.jdbc.JDBCAclEntry com.sap.security.core.acl.imp.wcm.jdbc.JDBCAcl
    Components - com.sapportals.portal.prt.component.IPortalComponentConfig
    Content Generation:
    com.sapportals.portal.prt.component.AbstractPortalComponent
    Profile:
    com.sapportals.portal.prt.component.IPortalComponentProfile com.sapportals.portal.prt.component.IServiceProfile
    com.sapportals.portal.prt.component.IPortalComponentRequest [OFF] com.sapportals.portal.prt.component.IPortalComponentResponse
    Runtime:
    com.sapportals.portal.prt.component.IPortalComponent service() com.sapportals.portal.prt.component.IPortalComponent init() destroy() com.sapportals.portal.prt.component.IPortalComponentInit com.sapportals.portal.prt.component.AbstractPortalComponent com.sapportals.portal.prt.pom.IPortalNode com.sapportals.portal.prt.component.IPortalComponentSession com.sapportals.portal.prt.component.IPortalComponentURI com.sapportals.portal.pb.PageBuilder
    com.sapportals.portal.prt.event.IPortalRequestEvent [OFF] com.sapportals.portal.prt.event.IPortalComponentEvent [OFF] com.sapportals.portal.prt.component.IPortalComponentContext [OFF]
    Service:
    com.sapportals.portal.prt.service.IService [OFF] com.sapportals.portal.prt.service.IServiceContext [OFF]
    JNDI (PCD) - com.sapportals.portal.prt.jndisupport.JNDISupport
    com.sap.portal.ivs.api_iview
    com.sap.portal.pcm.admin.apiservice
    PageRender - com.sapportals.htmlb.rendering.IPageContext
    Runtime - com.sapportals.portal.prt.dispatcher.Dispatcher
    Wait - com.sapportals.portal.prt.core.async.IAsyncPortalComponentResponse


Go to Top of this page.
Next topic this page

Set screen SAP Portal Web Tier Monitoring Points

    Layer L2 L3 Classes & Methods
    Web Tier Session HTML javax.servlet.http.HttpServletRequest
    Servlet - javax.servlet.http.HttpServlet javax.servlet.Filter
    JSP - javax.servlet.jsp.HttpJspPage
    SAP DynPage com.sap.htmlb.page.DynPage
    JSP DynPage com.sap.portal.htmlb.page.JSPDynPage
    Page Processor com.sap.portal.htmlb.page.PageProcessorComponent
    Spring - -
    Struts - -


Go to Top of this page.
Next topic this page

Set screen Resources

 
Go to Top of this page.
Next topic this page

Portions ©Copyright 1996-2010 Wilson Mar. All rights reserved. | Privacy Policy | | HTMLHELP | CSS | Cynthia 508 |

Related Topics:
another page on this site LoadRunner 
another page on this site SNMP 
another page on this site Rational Robot 
another page on this site Free Training! 
another page on this site Tech Support 


How I may help

Send a message with your email client program


Your rating of this page:
Low High




Your first name:

Your family name:

Your location (city, country):

Your Email address: 



  Top of Page Go to top of page

Thank you!