Running an Enterprise Portal
Navigation
Web Dynpro Page Builder
Getting Involved
Portal Architecture
How Portal Requests Are Handled
Portal URLs
Portal Runtime
Portal Applications
Components
Services
Object Names, Aliases and References
Object Names
Object Aliases
Object References
PAR Files
Deployment Descriptor (portalapp.xml)
Application Configuration
Components
Services
Registry
Deployment Descriptor Example
How Requests Are Handled
Portal Object Model (POM)
Request Flow
Including Another Component's Content
Creating and Adding Nodes
Modes
Delegation
Events
Request URL
Creating URLs to Components
Creating URLs to Web Resources
Hooks
Portal Registry
Working with the PRT
Permission Model
Using Resource Bundles
Defining and Accessing Runtime Strings
Lookup of Resource Bundle
Encoding
Customizing Caching
Component Profile
Caching Interfaces
ICachablePortalComponent
ICacheValidator
ICacheDiscriminator
Browser Caching
Writing JSP Pages
Packaging JSP Pages
JSP as Portal Component
JSP as Standalone Resource
JSP Objects and Directives
Page Directive (ErrorPage Attribute)
Include Directive
Tag Libs
Built-In Tag Libs
Beans
Servlets
Web Services
Exposing Portal Services as Web Services
Calling a Web Service
Integrating with the SAP J2EE Engine
Calling Portal Applications from J2EE Applications
Accessing the PCD from a J2EE Application
Calling J2EE Applications from Portal Applications
Packaging PARs in J2EE Applications
Deployment of Applications
Application Repository
Deployment Flow
Deploying Applications Via the Archive Uploader
Checking Deployment
Testing Components
Enterprise Portal Unit Test Studio Perspective
Writing Test Code
Unit Test Studio Helper Classes
Test Example
Web Dynpro Applications for the Portal
Web Dynpro Java in the Portal
Calling Portal Services
Page Service
Dynamic iViews
Tray Service
Navigating in the Portal
Absolute Navigation
Relative Navigation
Navigating with OBN
Creating OBN Links
Communicating with Other iViews
Subscribing to a Client Event
Firing a Client Event
Sending URL Parameters to Applications
Enabling Multiple iViews from an Application
Using WorkProtect Mode
Setting the Theme
Web Dynpro ABAP in the Portal
Binding to Portal: Prerequisites
Creating Web Dynpro ABAP iViews
Portal Events
Triggering a Portal Event
Registering and Handling an Event
Portal Navigation
Object-Based Navigation (OBN)
Absolute Navigation
Relative Navigation
Resume Plugs and Portal Navigation
Work Protect Mode
Go and Create
Enterprise Portal Perspective in NetWeaver Developer Studio
Configuring the Perspective
Creating Portal Application Projects
Managing PAR and JAR Files in the Project
Checking Web Services
Working with NWDI
Managing Development Components
Creating References Between PAR Development Components
Package PAR Development Components in an EAR file
Registering a Plug-in
Tutorial I: Creating a Portal Application
Creating a Portal Application Project
Creating an AbstractPortalComponent
Writing the Code
Deploying the Portal Application
Tutorial II: Creating a Site Map
Writing the Code
portalapp.xml
mySiteMap.java
Tutorial III: Building a JSP DynPage
Creating the JSPDynPage
JSPDynPage Event Handling
Data Exchange between JSPDynPage and JSP
Data Exchange Using a Bean
Data Exchange Using the Session Object
Data Exchange Using the Context Object
Data Exchange Using the Request Object
Core Development Tasks
Creating and Managing Content
Accessing the PCD
Overview
How PCD Lookups are Performed
Semantic Objects
Aspects
PCD Name
Units
Portal Content Model (PCM)
Working with Semantic Objects
All Semantic Objects
Creating Objects
Looking Up Objects
Getting/Setting Attributes
Deleting Objects
iViews
Adding Related Items
Pages
Adding iViews to a Page
Removing iViews from a Page
Adding Layouts to a Page
Setting the Default Layout for a Page
Layouts
Moving iViews on a Page
Systems
Getting/Setting System Aliases
Getting User Mapping
Getting Aliases for All Systems
Working with Administration (PCM) Objects
Attributes
Getting/Setting Attributes
Permissions
Catalog Node Attributes
Working with PCD Objects
Contexts and Attributes
Delta Links
Permissions
Types of Permissions
Looking Up/Adding/Removing Permissions
Personalization
Removing Personalization
Storing User Data in the User Content Directory (UCD)
Creating the UCD Structure
Accessing the UCD
Using the InitialContextFactory Class to Access the UCD
Using URL Support to Access the UCD
Namespace Semantics
Managing the UCD
Code Examples for Working with the UCD
Displaying XML Content
Transformation Service
XML Transformation
Providing Transformers
Simple Providers
SAX Providers
Resource Bundle Holders
Customizing Options
Creating a Provider Step-by-Step
Declaring Transformer Parameters
Built-in Transformers
XHTMLB Transformer
XHTMLB Specification
XHTMLB GridLayout Example
XHTMLB TableView Example
RSS Transformer
Busdoc Transformer
XSLDateFormatter
Displaying External XML-Based Content
Architecture
Content Provider Objects
What Happens During Runtime?
getSource() Method (HTTP)
getSource() Method (SOAP)
Parameter Handling
Linking iViews
Content Provider Utility Service
How to Build a Content Provider
Step 1: Creating a Content Provider Service
Creating an Authentication Manager
Creating a SOAP Message Processor
Step 2: Creating Content Provider Entities
Creating HTTP Entities
Creating SOAP Entities
Step 3: Creating Entity Portal Components
Step 4: Creating Transformers
Step 5: Creating a Content Provider Business Package
Content Provider Logging and Tracing
Essential Information
portalapp.xml
JARs and Packages
Parameters and Constants
Creating Administration Interfaces
Creating Wizards
Architecture
Wizard Look and Feel
Wizard Framework Objects
Data Model
Process Flow
How to Create a Wizard
Step 1: Creating Panes
Step 2: Creating the Wizard Component
Step 3: Creating Conditions
Essential Information
portalapp.xml
JARs and Packages
Creating PCM Wizards
Architecture
PCM Wizard Look and Feel
Process Flow
Wizard Toolkit Objects
Synchronizing with the Property Editor
Data Model
How to Create a PCM Wizard
Step 1: Creating User Panes
Step 2: Creating a PCM Wizard Component
Step 3: Creating Conditions
Essential Information
portalapp.xml
JARs and Packages
Creating Editors
Architecture
Editor Look and Feel
Editor Framework Objects
Data Model
Events
Generic Events
Custom Events
Process Flow
Parameters
How to Create an Editor
Step 1: Creating Panes
Step 2: Creating an Editor Component
Step 3: Creating a Data Handler
Essential Information
portalapp.xml
JARs and Packages
Working with Users, Groups and Roles
Client-Side Eventing
EPCF Levels
EPCF API
System API
Event API
Client Data Bag API
WorkProtect API
Navigation API
EPCM Proxy
EPCF Configuration
WorkProtect Feature for EP 6.0
Navigation
Glossary
Client Data Bag
JavaScript Origin Policy
Namespaces
Page Builder
Isolation Modes
Page Builder API
Client API
Client Events
Advanced Features
HTML-Business for Java
What is HTMLB?
About the Reference
General
Customer Branding and Style Editor
Style Editor
HTMLB Controls and Style Editor
Error Handling
Error Prevention
Error Handling for Fields
Error Handling in Tables
Accessibility of HTMLB Controls
Layout
General Page Layout Aspects
Layout Hierarchy
From Containers to the Layout Hierarchy
Layout Hierarchy for iViews and Web Applications
Table Overview of the Layout Hierarchy
General Nesting Rules
Spacing Between Grouped Controls
Benefits of Correct Spacing
Spacing in a Tray
Spacing between Primary and Secondary Groups
Spacing between Group Controls with Header and Border
Spacing of Elements in Groups
Arranging Groups
Spacing Soft Groups
Spacing Between Single Controls
Groups of Entry Fields
Check Box Groups
Radio Button Groups
Mixed Form Elements in Vertical Succession
Layout Controls
Content
Document
DocumentBody
DocumentHead
Page
Form
Flow Layout
Usage & Type
Browser Support & 508
Form Layout
Usage & Type
Browser Support & 508
Grid Layout
Usage & Type
Browser Support & 508
Visible Controls
Breadcrumb
Usage & Type
Browser Support & 508
Button
Usage & Type
Browser Support & 508
Button Row
Chart
Usage & Type
Browser Support & 508
Checkbox
Usage & Type
Browser Support & 508
Date Navigator
Usage & Type
Browser Support & 508
Drag Source
Dropdown List Box
Usage & Type
Browser Support & 508
Drop Target
File Upload
Usage & Type
Browser Support & 508
Group
Usage & Type
Browser Support & 508
Hover Menu
HTML Edit
Image
Usage & Type
Browser Support & 508
Input Field
Usage & Type
Browser Support & 508
Isolated HTML Container
Item List
Usage & Type
Browser Support & 508
Label
Usage & Type
Browser Support & 508
Link
Usage & Type
Browser Support & 508
List Box
Usage & Type
Browser Support & 508
List Box Item
Menu Bar
Message Bar
Nonisolated HTML Container
Progress Indicator
Radio Button
Usage & Type
Browser Support & 508
Radio Button Group
Scroll Container
Table View
Events
onCellClick
onHeaderClick
onNavigate
onRowSelection
Usage & Type
Browser Support & 508
Tabstrip
Usage & Type
Browser Support & 508
Text Edit
Usage & Type
Browser Support & 508
Text View
Usage & Type
Browser Support & 508
Tool Bar
Tool Bar Button
Tool Bar Dropdown List Box
Tool Bar Input Field
Tool Bar Separator
Tray
Tree View
Usage & Type
Browser Support & 508
Non Visible Controls
Applet Container
Bookmark
Component
Event Validation (Client Eventing)
Image Map
Timer
Models
DateNavigatorModel
IChartModel
IListModel
TableViewModel
AbstractDataType
Beans
Data Storing & Retrieving in the Portal
Usage & Scopes
Using a Bean with the Taglib
JavaScript API
Examples
Building a JSPDynPage
Creating the JSPDynPage
JSPDynPage Event Handling
Data Exchange between JSPDynPage and JSP
Data Exchange Using a Bean
Data Exchange Using the Session Object
Data Exchange Using the Context Object
Data Exchange Using the Request Object
User Agent Service
Modifying the Desktop and Navigation
Navigating in the Portal
Overview
Navigation Model
Navigation Hierarchy
Navigation URLs
Navigation Service
Special Navigation Features
Navigation Cache
Managing the Navigation Cache
Short (Hashed) URLs
Quick Links
Navigation Zoom
Creating Navigation iViews
Navigation Tag Library
Types of Tags
Glossary
How to Use the Tag Library
Tag Reference
doNotRecurseNavNodeChildren
ifAnonymousUser
ifHasMoreIterations
ifNavNodeEqualsLaunchedNavNode
ifNavNodeEqualsSelectedNavNode
ifNavNodeHasChildren
ifNavNodeInSelectedPath
ifNavNodeIsFolder
ifNavNodeIsIView
ifNavNodeIsNavZoom
ifNavNodeIsPage
ifNavNodeVisualizationType
ifNextRecursionDepthWillDecrease
ifNextRecursionDepthWillIncrease
ifNextRecursionDepthWillNotChange
ifNot ...
iterateInitialNavNodes
iterateNavNodeChildren
iterateNavNodesInSelectedPath
iterateSelectedNavNodesLevel
launchedNavNode
navNode
navNodeAnchor
navNodeDescription
navNodeParent
navNodePictogram
navNodeTitle
recallNavNode
recurseNavNodeChildren
selectedNavNode
storeNavNode
Samples
Top-Level Navigation iView
Detailed Navigation iView
Framework Tag Library
How to Use the Tag Library
Navigation API for the Ajax Framework Page
NavigationNode Object
AFPModel Object
getNode Method
getCurrentLaunchNode Method
getCurrentSelectedPath Method
getCurrentNavigationSubTreeFromLevel Method
getNavigationSubTree Method
AFPController Object
AFPService Object
navigate Method
Tutorial: Using the Navigation API
Writing the JSP Code
Creating Navigation Connectors
Step 1: Creating a Navigation Connector Node
Step 2: Creating a Navigation Connector
Step 3: Registering the Connector
External Connectors
Creating an External Connector
Adding External Connector Nodes
Redirectors
Triggering Navigation
Creating Custom Layouts
How to Create a Custom Layout
Layout Tag Library
Types of Tags
How to Use the Tag Library
Tag Reference
container
containerWithTrayDesign
IfIViewNameAvailable, IfNotIViewNameAvailable
IfShowTray, IfNotShowTray
IViewContent
IViewFamily
IViewTitle
IViewToggleOpen, IViewToggleClose
IViewTrayColor
template
Tray Function Tags
Sample Layout
Object-Based Navigation
Glossary
Defining the End-User Experience
Business Object Operation
Implementing iViews
The OBN Call
Getting Started: OBN Examples
Example 1: Basic OBN
Example 2: OBN with Parameter
Example 3: OBN with Parameter Modification
Setting/Getting Available Languages
Connecting to Backend Systems
Application Integrator
Creating an Application Integrator Component
Component com.sap.portal.appintegrator.sap.Generic
Connector Framework
Connector Framework Architectural Context
Connector Framework Structure
Interface ICapabilities
Interface IStructure
Interface ConnectionSpec
Connection Interfaces
Metadata Retrieval
Data Access and Method Execution
Functions and Queries
Using Existing Connectors
Workflow for Consuming a Connector
Defining the EIS
Getting the Connection
Running a Function/Query
Handling the Output
Closing the Connection
Using the SAP System Connector
Using the JDBC Connector
Using the Web Service Connector
Data Type Handling by the Web Service Connector
Portal Destination Service
Developing a Connector
Connector Wizard
Installation
Using the Connector Wizard
Packages Created by the Connector Wizard
Connector Deployment
Non-Managed Mode
Deployment Descriptor Example
System Template
Dynamic System Resolution
Dynamic System Resolution Workflow
Writing a System Resolving Service
IDynamicSystemService
portalapp.xml
User Mapping
Checking Deployment
Removing a System Resolving Service
Specialities in the Portal
Implementing an External-Facing Portal
Developing WSRP-Compliant Applications
Generating Portal URLs
Other Guidelines
Displaying a Customized Error Message
Ensuring Quality
Developing Well Performing Portal Applications
Server Side Programming
Memory Usage
CPU Usage and Threads
Scalability
Caching and Deferred Execution
Java Programming
Program Flow
Build-In Types (java.lang)
Collection Classes (java.util)
I/O Classes (java.io)
Memory Management
Resource Management
Portal Application Programming Model
Lifecycle of an Portal Application
Storing Execution State
Portal Application Performance
Enterprise Portal Services
JCo Client Service
User Management Engine (UME)
Logging
Database Access
Releasing JDBC Objects
Transactions
Harnessing SQL
Prepared Statements
Stored Procedures
Checklist for Reviews
Enterprise Portal Performance Ruleset for JLin
Ensuring Supportability with Metrics and Audits
References/Bibliography
General Rules and Guidelines for Managing Exceptions
Reference
Portal APIs
Portal Web Services
Navigation Web Service
getNavigationTree
getNavigationURLPrefix
getSelectedPathTree
Navigation Data Types
CollectionMapEntry
KeyValueEntry
NavigationCollection
NavigationExternalView
NavigationLink
NavigationNode
NavigationTree
NavigationTreeRequest
NavigationTreeResponse
NavigationURLPrefixRequest
NavigationURLPrefixResponse
SelectedPathTreeRequest
SelectedPathTreeResponse
Connector Web Service
Control API document
Query Execution during Runtime