SAP NetWeaver Developer’s Guide
Release Notes
SAP NetWeaver: Architecture
Fundamentals
Using ABAP
Using Java
Creating First-Class User Interfaces
Creating Composite Applications
Developing Composite Applications with CAF Core
Developing Composite Applications with CAF GP
Making Applications Enterprise-Ready
Supportability for Developments Under SAP NetWeaver
Search Integration Capabilities
Developing Forms Using Interactive Forms Based on Adobe Software
Developing Data Archiving Solutions
Introduction to Data Archiving (CA-ARC)
Archive Development Kit
IT Scenario-Driven Enhancements to Applications
Developing, Configuring, and Adapting Applications
Developing Java Applications Using Web Dynpro
Leveraging J2EE Standards for Porting and Adopting Applications
Creating Composite Applications
Developing ABAP Applications Using Web Dynpro
Running an Enterprise Portal
Getting Involved
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
Internationalization
Lookup of Resource Bundle
Accessing Strings
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 Support
SOAP Framework
SOAP Fault Process
Creating Web Services
Managing Web Services Security
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
Web Dynpro Applications for the Portal
Web Dynpro Java
Web Dynpro Page Builder
Creating Web Dynpro Based Portal Content
Single Full-Page iView
Multiple iViews
Portal Service Factory
Page Service
Tray Service
Explicit Personalization
Application Specific Property Categories
Accessing Application Specific Properties
Compatibility
Portal Events
Subscribe to a Client Event
Unsubscribe a Client Event
Raise a Client Event
Portal Navigation
Absolute Page Navigation
Relative Page Navigation
Object Based Navigation (OBN)
Triggering Object Based Navigation
Using the IUserObjectBasedNavigation Service
Accessing an Enterprise Portal Service
Using the Work Protect Mode
Defining the Theme for Web Dynpro Applications
Web Dynpro ABAP
Binding to Portal: Prerequisites
Integrating an Application in the Portal
Portal Events
Triggering a Portal Event
Registering and Handling an Event
Portal Navigation
Object-Based Navigation (OBN)
Absolute Navigation
Relative Navigation
Work Protect Mode
SAP NetWeaver Developer Studio Plug-In
Configuring the Plug-In
Managing Enterprise Portals
Managing PAR and JAR Files in the Project
Enterprise Portal Unit Test Studio Perspective
Writing Test Code
Unit Test Studio Helper Classes
Test Example
Enterprise Portal Web Services Checker Description
Development Configuration
Managing Development Components
Creating References Between PAR Development Components
Package PAR Development Components in an EAR file
Registering an Additional Plug-in
Go and Create
Creating Your First Portal Application
Portal Runtime Basics
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
Managing iViews and Other PCD Objects
Architecture
Atomic Name
How to Manage Semantic Objects
Creating Objects
Looking Up Objects
Getting/Setting Attributes
Deleting Objects
How to Manage iViews
Adding Related Items
How to Manage Pages
Adding Layouts to a Page
Setting the Default Layout for a Page
Adding iViews to a Page
Removing iViews from a Page
How to Manage Layouts
Adding iViews to a Page (via Layout)
How to Manage Systems
Getting/Setting System Aliases
Getting User Mapping
Getting Aliases for All Systems
Essential Information
portalapp.xml
JARs and Packages
Working with XML
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
Step 2: Creating Content Provider Entities
Creating HTTP Entities
Creating SOAP Entities
Step 3: Creating Entity Portal Components
Drag&Relate Links
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
Mobile Enhancements
Mobile HTML-Business for Java
Mobile HTML-Business for Java – An Overview
Model View Controller Architecture – The Underlying Concept
Special Features of Web Controls for Mobile Applications
Using JSP Tags and Components Similar to Beans
Example: Displaying the tableView Web Control
Mobile Extensions to the Java Servlet Container
Differences Between Mobile Devices
Effects of the Differences Between WAP Browsers
Device Recognition
The ClientInfo Interface in the Java Servlet Engine
ClientInfo Interface
getAccept Method
isBackHardWired Method
getBackLabel Method
getBreakingSpace Method
getBrowserCategory Method
getBrowserName Method
getBrowserOS Method
getCharHeight Method
getCharWidth Method
isCookiesSupported Method
isCssSupported Method
getDefaultActionDesign Method
getDefaultBlockSeparator Method
getDefaultBullet Method
getDefaultFormStyle Method
getDefaultMenuStyle Method
getDeviceCategory Method
getDeviceName Method
getFieldsetLayout Method
isFieldsetTitleVisible Method
getFormFactor Method
isFormMenuSupported Method
isFramesSupported Method
isHrefWithParamsSupported Method
isInputShownWithCaption Method
isImageLinksSupported Method
isLinksSeparated Method
getLinkDecoration Method
getLinkTextWidth Method
isMarqueeLinkSupported Method
isMarqueeTextSupported Method
getMaxLinkLength Method
getMediaFormats Method
isNbspSupported Method
isNestedTablesSupported Method
isNewlineAfterImage Method
isNewlineAfterInput Method
isNewlineBeforeImage Method
isNewlineBeforeInput Method
isNewlineBeforeLink Method
isNewlineBetweenImages Method
isNewlineBetweenLinks Method
isNewlineBetwLinkAndTag Method
getPageSizeMax Method
getPixelHeight Method
getPixelWidth Method
isRedirRelativeSupported Method
isScriptSupported Method
isSelectionMenuSupported Method
isSkippingTolnput Method
getSoftkeyNum Method
getSoftkeyStyle1 Method
getSoftkeyStyle2 Method
getSoftkeyTitleWidth Method
getSubCategory Method
isTableHasBorders Method
isTableSupported Method
TelephonyLinksSupported Method
isTextStylesSupported Method
isTitleSupported Method
getTitleWidth Method
getUserAgent Method
The Administrator’s Guide to the Device Recognition Process
The Deployment Descriptor
Changing Deployment Descriptor Elements
Modifying Device Properties
Adding a New Mobile Device
User Management Engine
SAP Web AS Java
Authentication
SAP Enterprise Portal
LoginModule Example
Customized Password Authentication
Customized Authentication Implementation
Configure the Portal for Customized Authentication
Changing the Logon Screen
Advanced Authentication Example
User
Service User
Role
Group
Searching for Users, Roles and Groups
User Mapping
Access Control List (ACL)
User Agent Service
Modifying the Desktop and Navigation
Navigation
Navigation Model
Navigation Hierarchy
Navigation iViews
Navigation Connector
Navigation API
Navigation Client Features
Object-Based Navigation
Glossary
Defining the End-User Experience
Business Object Operation
Implementing iViews
The OBN Call
OBN with Relation Resolving
Getting Started: OBN Examples
Example 1: Basic OBN
Example 2: OBN with Parameter
Example 3: OBN with Parameter Modification
Example 4: OBN with Relation Resolving
Example 5: OBN with Designated Relation
Connecting to Backend Systems
Application Integrator
Creating an Application Integrator Component
Component com.sap.portal.appintegrator.sap.Generic
Connector Framework
J2EE Connector Architecture (JCA)
Connector Framework Structure
Interface ICapabilities
Interface IStructure
Interface ConnectionSpec
Metadata Retrieval
Data Access and Method Execution
Using a Connector
Using the SAP System Connector
Using the JDBC Connector
Using Connectors with the Distributed Query Engine
Using the Web Service Connector
Data Type Handling by the Web Service Connector
Developing a Connector
Connector Wizard
Installation
Using the Connector Wizard
Packages Created by the Connector Wizard
Connector Deployment
Unmanaged Mode
Deployment Descriptor Example
Programming Tips
Connector Web Service
Client Application Coding Example
Test Connector Web Service Utility
Dynamic System Resolution
Dynamic System Resolution Workflow
Writing a System Resolving Service
IDynamicSystemService
portalapp.xml
User Mapping
Checking Deployment
Removing a Resolving Service
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
Enterprise Portal Performance Ruleset for JLin
Checklist for Reviews
Ensuring Supportability with Metrics and Audits
References/Bibliography
General Rules and Guidelines for Managing Exceptions
Reference
Portal APIs
Samples
Enabling User Collaboration
Enterprise Knowledge Management
Business Planning and Analytical Services
Enterprise Reporting, Query, and Analysis
Enterprise Data Warehousing
Enabling Application-to-Application Processes
Enabling Business-to-Business Processes
Business Process Management
Business Task Management
SAP NetWeaver Operations
Software Life-Cycle Management
Authentication and Single Sign-On
Integrated User and Access Management