Running an Enterprise Portal
Getting Involved
Portal Architecture
How Requests Are Handled (by Server)
Portal URLs
Portal Runtime
Portal Applications
Components
Services
Object Names, Aliases and References
Object Names
Object Aliases
Object References
Portal Application Project
Deployment Descriptor (portalapp.xml)
Application Configuration
Components
Services
Registry
Deployment Descriptor Example
How Requests Are Handled (by Portal Runtime)
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 AS Java Applications
Calling Portal Applications from J2EE Applications
Accessing the PCD from a J2EE Application
Calling Java EE 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
Developing Web Dynpro Applications for the Portal
Web Dynpro Java in the Portal
Calling Portal Services
Page Service
Adding Dynamic iViews
Printing the iView/Page
Tray Service
Navigating in the Portal
Absolute Navigation
Relative Navigation
Navigating with OBN
Communicating with Other iViews
Subscribing to a Client Event
Firing a Client Event
Creating Personalizable Properties
Naming Rules to Ensure Personalization
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
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
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 Management Engine
User Authentication and Single Sign-On
Authentication
Developing a Custom Logon Screen
User
Role
Group
Searching for Users, Roles and Groups
Access Control List (ACL)
User Agent Service
Modifying the Desktop and Navigation
Navigating in the Portal
Overview
Navigation Model
Navigation Hierarchy
Navigation URLs
Navigation Service
Navigation Helper Service
Methods
Framework Page
Light Framework Page
Special Navigation Features
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
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
Managing the Navigation Cache
Object-Based Navigation
Overview
Use Case
OBN Terminology
Workflow
Runtime Flow
Key Classes and Interfaces
Creating an OBN Link
Creating an OBN Link (Web Dynpro)
Creating an OBN Link (Portal Runtime)
Sending Parameters to Navigation Target
Navigating within the Source Role
Creating an OBN Dropdown Menu
Querying OBN
Querying Business Objects
Querying Content with the Analyzer
Object-Based Navigation
Overview
Use Case
OBN Terminology
Workflow
Runtime Flow
Key Classes and Interfaces
Creating an OBN Link
Creating an OBN Link (Web Dynpro)
Creating an OBN Link (Portal Runtime)
Sending Parameters to Navigation Target
Navigating within the Source Role
Creating an OBN Dropdown Menu
Querying OBN
Querying Business Objects
Querying Content with the Analyzer
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
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
Ensuring Supportability with Metrics and Audits
References/Bibliography
General Rules and Guidelines for Managing Exceptions
Reference
Javadocs
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
OBN Web Service
getAllDfltImpls
getDfltImpl
getImplBOs
getImplOps
hasImpls
Batch Requests
OBN Data Types
OBNWsFilter
OBNWsMetaData
OBNWsParam
OBNWsResult
XML Content and Actions Web Service
createContentByXmlString
Page Web Service
getPage
Page Data Types
AdditionalAttributesProperties
Cell
Iview
Page
PageRequest
Row
Table