Business Server Pages
Security Aspects for BSP
Security Risk List
URL Generation in an AS-ABAP - Web Dispatcher Configuration
Host Header
Absolute URL Generation
Configuration Table HTTPURLLOC
Programming Interface
Scenario 1: Direct Browser - AS-ABAP Communication
Scenario 2: Browser - AS-ABAP Communication Through a Reverse Pr
Scenario 3: Direct Communication Through a Reverse Proxy
Scenario 4: Communication with Protocol Switch Through Reverse P
Special Case: Combination with the ICFX Logon Application
User Concepts
System Logon (ICFX)
Prerequisites
Testing Security Settings
Configuration Settings
Scenarios for Changing the Password
Changing Passwords for Basic Authentication
Password Changes in the SSO Environment
User-specific Changes
Example
URL Generation in an AS-ABAP - Web Dispatcher Configuration
Using a Default User for BSP Applications
Creating a Default User
Using an Internet User for BSP Applications
Sample BSP Application for Using Internet Users
Logging On as an Internet User
Creating New Users
Programming Model
What is a BSP Application?
Structure of a BSP Application
Accessing a BSP Application
Starting and Ending a BSP Application
System-Specific URL Parameters
Processing a BSP Application
Creating a BSP Application
Application Class of a BSP Application
BSP Components
Properties
Layout
Event Handler
OnCreate
OnRequest
OnInitialization
OnInputProcessing
OnManipulation
OnDestroy
Page Attributes
Type Definitions
BSP Directives
Page Directive
Inline Code
Comments
Include Directive
OTR Directives
Extension Directive
Transferring Variables
Classes and Interfaces
Class CL_BSP_APPLICATION
Class CL_BSP_MESSAGES
Class CL_BSP_SERVER_SIDE_COOKIE
Class CL_BSP_GET_TEXT_BY_ALIAS
Class CL_BSP_CONTROLLER2
Interface IF_BSP_APPLICATION
Interface IF_BSP_APPLICATION_EVENTS
Interface IF_BSP_NAVIGATION
Interface IF_BSP_PAGE
Interface IF_BSP_RUNTIME
Interface IF_BSP_PAGE_CONTEXT
Iterator: Interface IF_HTMLB_TABLEVIEW_ITERATOR
IF_CLIENT_INFO Interface
Global Objects
Object application
Object navigation
Object runtime
Object request
Object response
Object messages
Object page
Object page_context
BSP Extensions
Button
TableView
Defining Your Own BSP Extension
BSP Extension Framework
Creating BSP Extensions
Defining BSP Elements
Defining the Element Content
User-Defined Validation
Iteration Through Element Content
Manipulation of the Element Content
Pass by Reference for Attributes
Activating the BSP Extension
Implementing Element Handler Classes
Generated Classes and Class Hierarchy
Basis Class CL_BSP_ELEMENT
Entering Documentation
Using BSP Elements
Example: Using Extensions in BSP Pages
Composite Elements
Creating Page before.htm
Design Solution
Creating a New BSP Extension with Elements
Creating Page after.htm
Dynamically Processing BSP Elements
Creating a New BSP Extension with Composite Elements
Step 1 a) Implementing <sf:SimpleFormItem>
Step 1 b) Using <htmlb:SimpleFormItem>
Step 2: Creating <sf:SimpleForm>
Step 3: Changes to the Look and Feel
Model View Controller (MVC)
MVC Design Pattern
Using MVC for BSP
Creating a Controller
Creating a View
Testing Controllers
Calling (Sub) Controllers
Calling a View
Creating Error Pages
From Pages to Controllers
Call Options of BSP Components
Navigation
Lifetime
Data Binding
Calling the Model Class by the Controller
Components
Process Flow
Creating Your Own Components
Creating the Top-Level Controller
Creating Components
Calling Components
Determining Input Processing
Class CL_BSP_CONTROLLER2
Examples of Architecture
BSP Application with Controllers and Views
BSP Application with Several Views per Controller
Combination of the Previous Examples
Calling Controllers of Other Applications
Calling Several Controllers from a View
Model View Controller Tutorial
Creating a Controller
Creating a View
Calling a Controller
Session Handling
Stateful BSP Applications
Session Cookie
Stateless BSP Applications
Server-Side Cookies and Data Persistency
Hybrid Forms
Setting Stateful or Stateless
Stateful or Stateless Programming?
A Sample BSP Application
Control Flow of BSPs
BSP Only with Layout
BSP With Layout and Initialization
BSPs with Layout, Initialization and Navigation
BSPs with Layout, Initialization and Input Processing
Caching BSPs
Page Layout
Accessibility
Programming Environment
Recommended Browser Settings
Debugging
Breakpoints for BSP Page Fragments
ICM Tracing
HTTP Browser Tracing
HTTP Proxy
Internationalization and Translation
Creating OTR Alias Text
Creating OTR Long Text
OTR Texts in ABAP
BSP Development Tools
MIME Repository
Supported MIME Categories
Importing MIMEs
Uploading and Downloading MIMEs
Creating Folders
Converting MIMEs into BSPs
Deleting MIMEs or Directories
Creating Namespace Folders
Marking MIMEs as Relevant for Translation
Additional Functions
Pretty Printer in the Web Application Builder
Implementing External Tools with WebDAV
Tag Browser
Transformation Editor
BAPI Explorer
Online Text Repository
Task Formatting
Stylesheets
Setting Stylesheets for HTMLB, XHTMLB, and PHTMLB
File Upload in BSP Applications
Uploading Files and Manipulating their Content
Handling Incorrect Entries
Outputting Error Messages for Auto Page Attributes
Creating Page Attributes
Execute the Initialization
Defining the Layout
Using Object messages
Coding Alternative Error Output
Adding Your Own Error Messages
Sending E-Mails from BSP Applications
Creating Order Pages
Creating Application Classes
Class Attributes
Class Methods
Method SET_ADDRESS
Method SET_TIME
Method SEND
Calling the Mail Class
MIME Types of a Page
Mobile Extensions to the SAP Web Application Server
Differences Between Mobile Devices
Effects of the Differences Between WAP Browsers
Device Recognition
IF_CLIENT_INFO Interface
GET_ACCEPT Method
GET_BACK_HARD_WIRED Method
GET_BACK_LABEL Method
GET_CHAR_HEIGHT Method
GET_BREAKING_SPACE Method
GET_BROWSER_CATEGORY Method
GET_BROWSER_NAME Method
GET_BROWSER_OS Method
GET_CHAR_WIDTH Method
GET_COOKIES_SUPPORTED Method
GET_CSS_SUPPORTED Method
GET_DEFAULT_ACTION_DESIGN Method
GET_DEFAULT_BLOCK_SEPARATOR Method
GET_DEFAULT_BULLET Method
GET_DEFAULT_FORM_STYLE Method
GET_DEFAULT_MENU_STYLE Method
GET_DEVICE_CATEGORY Method
GET_DEVICE_NAME Method
GET_FIELDSET_LAYOUT Method
GET_FIELDSET_TITLE_VISIBLE Method
GET_FORM_FACTOR Method
GET_FORM_MENU_SUPPORTED Method
GET_FRAMES_SUPPORTED Method
GET_HREF_WITH_PARAMS_SUPPORTED Method
GET_IMAGE_LINKS_SUPPORTED Method
GET_INPUT_SHOWN_WITH_CAPTION Method
GET_LINKS_SEPARATED Method
GET_LINK_DECORATION Method
GET_LINK_TEXT_WIDTH Method
GET_MARQUEE_LINK_SUPPORTED Method
GET_MARQUEE_TEXT_SUPPORTED Method
GET_MAX_LINK_LENGTH Method
GET_MEDIA_FORMATS Method
GET_NEWLINE_AFTER_IMAGE Method
GET_NBSP_SUPPORTED Method
GET_NESTED_TABLES_SUPPORTED Method
GET_NEWLINE_AFTER_INPUT Method
GET_NEWLINE_BEFORE_IMAGE Method
GET_NEWLINE_BEFORE_INPUT Method
GET_NEWLINE_BEFORE_LINK Method
GET_NEWLINE_BETWEEN_IMAGES Method
GET_NEWLINE_BETWEEN_LINKS Method
GET_NEWLINE_BETW_LINK_AND_TAG Method
GET_PAGE_SIZE_MAX Method
GET_PIXEL_HEIGHT Method
GET_PIXEL_WIDTH Method
GET_REDIR_RELATIVE_SUPPORTED Method
GET_SELECTION_MENU_SUPPORTED Method
GET_SKIPPING_TO_INPUT Method
GET_SOFTKEY_NUM Method
GET_SOFTKEY_STYLE1 Method
GET_SOFTKEY_STYLE2 Method
GET_SOFTKEY_TITLE_WIDTH Method
GET_SCRIPT_SUPPORTED Method
GET_SUB_CATEGORY Method
GET_TABLE_HAS_BORDERS Method
GET_TABLE_SUPPORTED Method
GET_TELEPHONY_LINKS_SUPPORTED Method
GET_TEXT_STYLES_SUPPORTED Method
GET_TITLE_SUPPORTED Method
GET_TITLE_WIDTH Method
GET_USER_AGENT Method
Administrator’s Guide to Device Recognition
Data Retention for Device Recognition
Modifying Device Properties
Integrating Additional Mobile Devices
DDIC Services for BSP Applications
Overview of the Type Properties
Technical Properties
Output Properties
Language-Specific Texts
Services and Runtime Objects
GET_FIELD_LABEL
GET_QUICKINFO
GET_DAY_COLLECTION
GET_MONTH_COLLECTION
GET_HISTORY_ID
GET_LOCAL_HISTORY_ID
GET_SIMPLE_HELPVALUES
Use in BSP Applications
Application Help
Field Labels
Field History
Calendar
Value Help
SAP Enterprise Portal
Portal and BSP Session Management
Domain Relaxing
Session Handling without Cookies
Business Server Pages
Logon Ticket Cache
HTTP Browser Tracing
HTTP Proxy
ICM Tracing
Configuration for Fully Qualified Domain and Host Names
BSP Tutorials
Getting Started with Business Server Pages
Prerequisites for Creating Web Applications
Creating a Basic BSP Application
Creating a BSP Application
Creating a BSP
Creating the BSP Layout
Page Directive
Scripting
Inserting a Picture
Activating the BSP and the BSP Application
Calling a BSP Application
Importing a MIME Object from the MIME Repository
A Simple BSP Application
A Simple Online Book Catalog with User Interaction
Processing Procedure
Creating BSP Applications and Pages
First Page
Defining the Layout for the First Page
Defining Page Attributes for the First Page
Defining Event Handlers for the First Page
Defining the Navigation Structure
List of Authors
Specifying Layout for List of Authors
Defining Event Handlers for the List of Authors
Defining Page Attributes for the List of Authors
Results List
Defining Layout for the Results List
Defining Event Handlers for the Results List
Defining Page Attributes for the Results List
A Simple BSP Application with HTMLB
Online Book Catalog
Creating BSP Applications and Pages
First Page
Defining the Layout for the First Page
Defining Event Handlers for the First Page
List of Authors
Specifying Layout for List of Authors
Results List
Defining Layout for the Results List
Online Bookshop
Online Bookshop
Processing Process
Separation of Data Retrieval, Evaluation, and Output
Data Model for the Bookshop Tutorials
Creating BSP Applications and Pages
Creating Page Fragments
Layout for the First Page
Layout for the Info Page
Search page
Layout for the Search Page
Page Attributes for the Search Page
Event Handlers for the Search Page
Layout for the “Invalid ISBN” Page
Results Page
Layout for the Results Page
Page Attributes for the Results Page
Event Handlers for the Results Page
Book Page
Layout for the Book Page
Page Attributes for the Book Page
Event Handlers for the Book Page
Layout for the Error Page
Layout for the Confirmation Page
Navigation Structure
Further Developing the Online Bookshop
What’s New?
Extending the Online Bookshop
Processing Process
The Application Class
Creating BSP Applications and Pages
Shopping Basket Page
Layout
Page Attributes
Event Handler
OnRequest
OnInitialization
OnInputProcessing
Order Page
Layout
Page Attributes
Event Handler
Registration Page
Layout
Page Fragment for User Input
Page Attributes
Event Handler
Layout for the Registration Confirmation Page
Modifying the Entry Page
Modifying the Results Page
Modifying the Search Page
Modifying the Title Bar
Modifying the Order Confirmation Page
Model View Controller Tutorial
Creating a Controller
Creating a View
Calling a Controller
Our Little Online Bookshop Using MVC and HTMLB
Bookshop Structure
Creating BSP Applications, Controllers and Views
Creating Main Controller bookshop.do
Creating Main View default.htm
Creating Page Fragment head.htm
Creating Controller search.do for the Search
Creating View search.htm for the Search
Creating Controller result.do for the Results List
Custom-Rendering for the Author Column
Iterator: Interface IF_HTMLB_TABLEVIEW_ITERATOR
Creating View result.htm for the Results List
Creating View detail.do for the Detail Display
Creating View detail.htm for the Detail Display
Creating View about.htm for the Detail Display
Creating Pages with Flow Logic corder.htm
FAQ
What is the Internet Communication Framework?
What is the BSP Runtime Environment?
Can I Access a Web Server via HTTP?
Is There a Server Cache for Storing Web Pages?
How Do I Configure SSL?
Is Single Sign-On supported for SAP Web Application Server?
Can I Generate BSPs Dynamically?
How Do I Create a Basic BSP Application?
What Is an Application Class?
How can I Transfer Data Between a View and a Page?
What Are BSP Directives and What BSP Directives Are There?
Where Can I Store Pictures?
Can I Transfer Whole Tables as Page Attributes?
How Can I Determine the URL Path for my BSP?
How Can I Transfer Language or the Client to the URL?
How Can I use Data Structures from a Different System?
How do I get a blank line using the iterator?
What Do I Do If There is a Protocol Conflict?
How Can I Specify That My Application Does Not Require Log-In?
Can I Execute a User Switch for My BSP Application?
How Do I Get a BSP into a Portal Environment?
Can I Create BSP Applications for Mobile Terminals?
How Do You Determine the Display Language?
How Can I Catch a Timeout for Long-Running Processes?
How Can I Measure the Performance of My BSP Application?