Sei sulla pagina 1di 25

6$3 7HFKQ

7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

6$3 6.,//6
&21)(5
1)(5(1
(1&(
&(
6$3 81,9(5
9(566,7<

:25.6
:25.6++23

Oct. 28 – Oct. 30, 02 St.Leon-Rot

Developing Web Applications


with ABAP

Ulrich Klingels, SAP AG

Learning Objectives

$V D U
UHHVX
VXOOW RI WKLV Z
ZRRUNVKRS \RX ZLOO 
„ Understand the Serverside Scripting model BSP
„ Know how to use the BSP Extensions...
„ ...and the Model View Controller concept
„ See the way to Web Dynpro development in ABAP

 SAP AG 2002, SAPSkills Conference, Klingels / 2

35,17 2 1 '(0
'(0$1
$1''
sponsored by 1
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Agenda

„ Business Server Pages

„ BSP Extensions

„ Model View Controller

„ Outlook Web Dynpro for ABAP

„ Summary

 SAP AG 2002, SAPSkills Conference, Klingels / 3

%DVLFVRI%XVLQHVV
6HUYHU3DJHV

 SAP AG 2002, SAPSkills Conference, Klingels / 4

35,17 2 1 '(0
'(0$1
$1''
sponsored by 2
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Business Server Pages - Hello World

D VLPSOH %63 SDJH WKDW  <%@page language="abap"%> Layout

„ Shows serverside scripting with


<html>
<body>
<center>
ABAP <% do 5 times. %>
„ Contains static HTML (or XML, <font size=“<%=sy-index%>“>
Hello World! <br>
or...) parts mixed with serverside </font>
<% enddo. %>
scripting </center>
„ Is similar to Active Server Pages </body>
</html>
(Microsoft) or Java Server Pages
„ Is accessible via URL like
common pages of a web server

 SAP AG 2002, SAPSkills Conference, Klingels / 5

BSP Application Structure

BSP Application
%63 $SSOLFDWLRQ BSP Page
„ Business Server Pages <html>
...
BSP
BSP Page
BSP
which define the Web UI and <% loop at
contain serverside scripting itab.... %>

„ Arbitrary additional files


(Images, background pics,
button GIFs,...), Style-Sheets,
etc.
„ Application class, that Application Class
contains the application Attributes
logic Methods
„ Accesses backend
functionality
Business Object Class
6HSDUDWLRQ RI SUHVHQWDWLRQ Business Object Class
Business Object Class
DQG EXVLQHVV ORJLF Attributes
Attributes
Methods
Attributes
Methods
Methods

 SAP AG 2002, SAPSkills Conference, Klingels / 6

35,17 2 1 '(0
'(0$1
$1''
sponsored by 3
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Demo

'HPR

 SAP AG 2002, SAPSkills Conference, Klingels / 7

'DWDEDVH$FFHVVLQ
%63$SSOLFDWLRQV

 SAP AG 2002, SAPSkills Conference, Klingels / 8

35,17 2 1 '(0
'(0$1
$1''
sponsored by 4
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

BSP – Initialization and Layout

Business Server Page

Attribute Typ. Ass.Type Page Attributes


FLIGHTS TYPE FLIGHTTAB

Every page has a defined


select * from sflight into table flights. Initialization step for data retrieval that
is used in the layout step.

<%@page language="abap"%>
Layout
<html>
<body>
<table border=1>
<tr> The layout part contains
<th>Carrier</th> script code mixed with
<th>Connection</th> static formatting directives
<th>Date</th> (e.g. HTML).
</tr> The data sources declared
<% data: wa like line of flights. as page attributes are
loop at flights into wa. %> directly accessible in the
<tr> initialization and layout
<td> <%= wa-carrid %> </td> step.
<td> <%= wa-connid %> </td>
<td> <%= wa-fldate %> </td>
</tr>
<% endloop. %>
</table>
</body>
</html>

 SAP AG 2002, SAPSkills Conference, Klingels / 9

Event Handler

(YHQWV WKDW DUH FDOOHG GXULQJ WKH


SURFHVVLQJ RI WKH UHTXHVW RI WKH SDJH

2Q,QLWLDOL]DWLRQ
„ called before the
page is rendered
„ for data retrievel
2Q,QSXW3URFHVVLQJ
„ handling of the user
input

2Q&UHDWH
„ at first creation of
the page



 SAP AG 2002, SAPSkills Conference, Klingels / 10

35,17 2 1 '(0
'(0$1
$1''
sponsored by 5
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Page Attributes

„ Objects that are


accessible in all page
events and the layout
section

„ Example: tables that are


filled in the Initialization
step and used in the
layout step

 SAP AG 2002, SAPSkills Conference, Klingels / 11

Application Class

BSP Application

BSP Page BSP


<html> BSP Page
...
BSP
<% application->...
%>

Application Class
Attributes
Methods
An instance of the application class is
created at every request to the page
(stateless) and is available in all events
and in the layout

 SAP AG 2002, SAPSkills Conference, Klingels / 12

35,17 2 1 '(0
'(0$1
$1''
sponsored by 6
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

MIME Repository

&RQWDLQV DUELWUDU\
ILOHV WKDW DUH XVHG E\
%63 $SSV
„ Images
„ Backgrounds
„ Static HTMLs
„ Style sheets
„ ...
,V SDUW RI WKH
LQIUDVWUXFWXUH
„ Translation
„ Transport
,V DFFHVVLEOH YLD
+773

 SAP AG 2002, SAPSkills Conference, Klingels / 13

+DQGOLQJ8VHU
,QWHUDFWLRQ

 SAP AG 2002, SAPSkills Conference, Klingels / 14

35,17 2 1 '(0
'(0$1
$1''
sponsored by 7
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

HTML Forms

8VHG IRU XVHU LQSXW <form action="/cgi-bin/proc.pl" method=get>

„ texts
your Nickname:
<input type=text name="nickname">

„ list boxes
<input type=submit name="Submit">
</form>

„ checkboxes <form method=get>

„ file upload ... <input type=checkbox name="sel"


value="apple"> Apple
<input type=checkbox name="sel"
,QSXW LV WUDQVIHUUHG YLD value="orange"> Orange
<input type=checkbox name="sel"
*(7 RU 3267 UHTXHVW WR value="cherry"> Cherry
<input type=submit name="Submit">
WKH VHUYHU </form>

„ as part of the URL <form action="/cgi-bin/procxls.pl" method=post>

„ as part of the request body Upload Text File:


<input type=file name="data" accept="*/text">
<input type=submit value="Upload">
</form>

<form action="output.htm" method="post" >


<select name="sel_category">
<option value="apple"> Apples
<option value="orange"> Oranges
</select>
<input type="text" name="search" value="">
<input type="submit" value="Select">
</form>

 SAP AG 2002, SAPSkills Conference, Klingels / 15

Demo

'HPR

 SAP AG 2002, SAPSkills Conference, Klingels / 16

35,17 2 1 '(0
'(0$1
$1''
sponsored by 8
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Where to do the Input Processing?

3UREOHP ZLWK VXFK


Adress.htm Order.htm
GLUHFW QDYLJDWLRQ
„ User input from page X
... ...

<form ...> <form ...>


must be processed by the <input <input
type=text type=text
initialization of the next name=“state“ name=“number“
page Y ...>
</form>
...>
</form>

„ complex initialization
coding for events coming
from an arbitrary number
of other pages
„ In most cases the next PriceInfo.htm NotAvail.htm

page Y depends on the if state ...


select * ...
input of page X. itStreets
<html>
if number ...
(„You´re wrong here!“ endif.
SORRY!
Your selected
code) product...
<html> </html>
price:...

 SAP AG 2002, SAPSkills Conference, Klingels / 17

Event after the Input

6ROXWLRQ IRU WKH Adress.htm Order.htm

QDYLJDWLRQ SUREOHP ... ...

„ It would be much better to <form ...>


<input
<form ...>
<input
process the input coming type=text type=text
name=“state“ name=“number“
from page X „at the end“ of ...> ...>
</form> </form>
page X and then to
if state...
determine the next page navigation->
if number...
navigation->

„ New user input handling


event
OnInputProcessing
that belongs to the page PriceInfo.htm NotAvail.htm
which contains the HTML if state ...
form select * ...
itStreets

„ Navigation to next pages


<html>
if number ...
SORRY!
endif.
Your selected
dynamically, depending on product...
<html> </html>
the user‘s input price:...

 SAP AG 2002, SAPSkills Conference, Klingels / 18

35,17 2 1 '(0
'(0$1
$1''
sponsored by 9
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Business Server Pages - Input Processing

Business Server Page


...
Initialization

Layout
...
<form method="post">
<input type=text name= "carrier" value="">
<input type=submit name="OnInputProcessing" value="Search">
</form>
...

data: carr TYPE string. Input Processing


InputProcessing depending on the
carr = request->get_form_field( 'carrier' ).
user’s input (input
navigation->set_parameter( name = ‘sel_carr'
fields, pressed
value = carr ).
navigation->goto_page('flights.htm' ).
buttons, links) the
Input Processing
allows database
updates and the
dynamic navigation to
the next page

 SAP AG 2002, SAPSkills Conference, Klingels / 19

BSPs - Input Processing Event ID

Business Server Page


...
Initialization

Layout
...
<form method="post">
<input type=text name= "carrier" value="">
<input type=submit name="OnInputProcessing(select)" value="Search">
<input type=submit name="OnInputProcessing(exit)" value="Exit"> more then one submit
</form>
...
button can be
distinguished by an
arbitrary event name
Input Processing that is available as
case event_id. InputProcessing
EVENT_ID in the Input
when 'select'. Processing
data: carr TYPE string.
carr = request->get_form_field( 'carrier' ).
navigation->set_parameter( name = ‘sel_carr'
value = carr ).
navigation->goto_page('flights.htm' ).
when 'exit'.
navigation->exit( exit_url='http://www.sap.com' ).
endcase.

 SAP AG 2002, SAPSkills Conference, Klingels / 20

35,17 2 1 '(0
'(0$1
$1''
sponsored by 10
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

%63([WHQVLRQV

 SAP AG 2002, SAPSkills Conference, Klingels / 21

BSP Extensions

„ Uniform look&feel
„ Built-in functionality
‹ Scrolling
‹ Sort
‹ ...
„ Reusable rendering
„ Browser-independent

<table> <htmlb:tableView
id ="table"
...75 lines of HTML table ="<%=FLIGHTS%>"
...tons of javaScript rowCount ="15"
headerVisible="true"
...some scripting design ="ALTERNATING"
</table> />

BSP Extension
HTML
element
 SAP AG 2002, SAPSkills Conference, Klingels / 22

35,17 2 1 '(0
'(0$1
$1''
sponsored by 11
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

BSP Extensions – Tag Libraries

7DJ /LEUDULHV
„ Well known from JSP
„ User defined tags linked
with
„ Program coding that
generates at runtime the
HTTP response
„ Predefined UI elements
(TableView, TreeView,
InputFields,...)

„ Flicker free (delta


handling)
„ Browser independent

 SAP AG 2002, SAPSkills Conference, Klingels / 23

Demo

'HPR

 SAP AG 2002, SAPSkills Conference, Klingels / 24

35,17 2 1 '(0
'(0$1
$1''
sponsored by 12
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

HTML-Business Extension - UI-Elements for BSP

„<textView> „<group> „<fileUpload>


„<textEdit> „<groupBody> „<chart>
„<button> „<tray> „<tableView>
„<inputField> „<trayBody> „<dateNavigator>
„<tabStrip>
„<itemList>
„<breadCrumb>
„<comboBox>
„<listBox>
„<radioButtonGroup>
„<checkBoxGroup>
„<checkBox>
„<tree>
„<treeNode>
„<form>
„<link>
„<gridLayout>
„<gridLayoutCell>
„<image>
 SAP AG 2002, SAPSkills Conference, Klingels / 25

Composite BSP Extensions

7KH JRDO
„ Unified UI for the
whole application
„ Identify typical
patterns
„ List – Detail
„ Search
„ Form
„ Build special
composite
Extensions

 SAP AG 2002, SAPSkills Conference, Klingels / 26

35,17 2 1 '(0
'(0$1
$1''
sponsored by 13
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

BSP Extension Framework - Concept

BSP page

<%@ extension name="MyExtension" prefix="ext" %>

<ext:doSomething />

BSP Extension Definition Class CL_MYCLASS


Extension MyExtension method DO_AT_BEGINNING
...
Element doSomething out->print_string('<tr><td>').
Element-Handler CL_MYCLASS
...

 SAP AG 2002, SAPSkills Conference, Klingels / 27

0RGHO9LHZ&RQWUROOHU

 SAP AG 2002, SAPSkills Conference, Klingels / 28

35,17 2 1 '(0
'(0$1
$1''
sponsored by 14
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Model-View-Controller (MVC)

Design pattern for decoupling presentation and logic of an application

„„ Handle
Handleevents
events
„
„ Update application
Update applicationdata
data

Request
„
„ Define control flow
Define control flow
Controller

Model
„„ Defines
Definesapplication
applicationdata
data
„„ Usually
Usually connectedto
connected to
business
businessfunctionality
functionality

Response
View
„„ Visualization
Visualizationof
ofthe
the
application
applicationdata
data

 SAP AG 2002, SAPSkills Conference, Klingels / 29

BSP page

„ Layout rendering and event handling is done by the


pages
„ Business logic included via application class
„ Flow between pages defined in event handler

BSP page
Request
events

<form ...>
<input
application->
...>
</form>
Response

Application Class
Attributes
Methods

 SAP AG 2002, SAPSkills Conference, Klingels / 30

35,17 2 1 '(0
'(0$1
$1''
sponsored by 15
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Model-View-Controller in BSPs

„ Extend the BSP programming model with the MVC paradigm


„ Enable programming model similar to Java world
„ Simplify BSP pages in order to support further customizing options

BSP Controller
Request
METHOD
DO_REQUEST
...
CALL_VIEW

Application Class
Attributes
Methods
BSP View
Response <form ...>
<input
...>
</form>

 SAP AG 2002, SAPSkills Conference, Klingels / 31

Demo

'HPR

 SAP AG 2002, SAPSkills Conference, Klingels / 32

35,17 2 1 '(0
'(0$1
$1''
sponsored by 16
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Complex MVC Scenarios

„ Complex call sequence BSP Controller BSP View


<form ...>
METHOD
during one HTTP request DO_REQUEST
<input

„
...>
...
Parts of a page CALL_VIEW
</form>

aggregated during
runtime BSP View
BSP View
<form ...>
<input <form ...>
...> <input
</form> ...>
BSP Controller </form>
BSP Controller METHOD
Request DO_REQUEST
METHOD ... BSP View
DO_REQUEST CALL_VIEW
Response CALL_VIEW <form ...>
CALL_CONTR <input
...>
</form>

„ controller and views


BSP View
BSP Controller
combined into
<form ...>
components METHOD
DO_REQUEST <input
... ...>
CALL_VIEW </form>

 SAP AG 2002, SAPSkills Conference, Klingels / 33

Demo

'HPR

 SAP AG 2002, SAPSkills Conference, Klingels / 34

35,17 2 1 '(0
'(0$1
$1''
sponsored by 17
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

:HE '\QSUR IRU$%$3

 SAP AG 2002, SAPSkills Conference, Klingels / 35

Web Dynpro as a Unification Platform


'HOLYHU DQ (QWHUSULVH 4XDOLW\ :HE
'HYHORSPHQW (QYLURQPHQW Web Dynpro Web Dynpro
„ Minimize coding, maximize design Tools Meta-Data
„ Support reuse of components
„ Support web services and data-binding
„ Separate layout and programming logic Web Dynpro Runtime
.NET J2EE ABAP
$FKLHYH ,QGHSHQGHQFH
„ From platform
„ From UI technology
,PSURYH 8VHU ([SHULHQFH WKURXJK
D +LJK )LGHOLW\ :HE 8,
„ Browser based front-end, zero footprint
„ Flicker-free screen, minimal refreshes
„ Client-side dynamics
„ Minimal response times
„ Personalization of the user interface 0XO
0XOWWL 'HYLFH ,QWHUQH
,QWHUQHWW
„ 508 accessibility compliance
 SAP AG 2002, SAPSkills Conference, Klingels / 36

35,17 2 1 '(0
'(0$1
$1''
sponsored by 18
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Web Dynpro Landscape

Web Dynpro Meta-Data


Web Dynpro Dynpro
Platform-independent
Tools Converter
C# Java ABAP

C# Generator Java Generator ABAP Generator


Dynpros
C# / .NET Java / J2EE ABAP

.NET Runtime Java Runtime ABAP Runtime

Portal
Web Services
WD WD WD WD WD WD
Dynpro
Services Controls Services Controls Services Controls
Common Native
.NET .NET J2EE J2EE ABAP ABAP
Runtime Web AS
Services Services
Web Dynpro Web Dynpro
Unified UI Elements Unified Rendering

 SAP AG 2002, SAPSkills Conference, Klingels / 37

Web Dynpro Architecture ABAP

Designtime Runtime
WD Tools (SE80)
Project Application WD
Browser Modeler
Generator Runtime
View
Controller
Model for ABAP
/Context
Designer Editor
Editor

Metadata API Runtime Metadata API

Design Gen.
time Runtime
Objects Objects
Database
 SAP AG 2002, SAPSkills Conference, Klingels / 38

35,17 2 1 '(0
'(0$1
$1''
sponsored by 19
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Tools – ABAP Workbench (SE80) Integration

„ New object list for Web


Dynpro Component
„ Tool navigation
„ Active/Inactive-
Management
„ Integrated in the
Transport Organizer

 SAP AG 2002, SAPSkills Conference, Klingels / 39

Tools – Application Modeller

)XQFWLRQDOLW\
„ Hierarchical editing of Viewset hierarchy
„ Hierarchical/table editing of navigational links
„ Wizards for optimizing complex operations
„ Property box
„ No graphical support

 SAP AG 2002, SAPSkills Conference, Klingels / 40

35,17 2 1 '(0
'(0$1
$1''
sponsored by 20
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Tools - View Designer

Trigger events

Construction /
manipulation
of UI Tree
using Metadata API

Render (UR)
 SAP AG 2002, SAPSkills Conference, Klingels / 41

Controller Editor

)XQFWLRQDOLW\
„ Tabstrip for entities (e.g. events, validators, eventhandlers,… )
„ Wizards for frequently used tasks
„ Integrated method editor (syntax check, …)
„ Automatic code generation
„ Synchronization of
declarative and coded parts
„ Separation of generated
and manually implemented
parts

 SAP AG 2002, SAPSkills Conference, Klingels / 42

35,17 2 1 '(0
'(0$1
$1''
sponsored by 21
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Context Editor

)XQFWLRQDOLW\
„ Hierarchical editing of context
nodes/attributes
„ Data binding
„ Drag and drop support
„ Property box
„ Context view for View
Designer

 SAP AG 2002, SAPSkills Conference, Klingels / 43

Pattern-based UI Design

&RQVLVWHQW 8VHU ,QWHUIDFHV


„ faster learning, less training
„ less user specialization
7KUHH OHYHOV RI 8, SDWWHUQV
„ Business Processes Business
screen layout, interaction and Processes
semantics for a generic application
„ Components
reusable, task-oriented building
blocks
„ Controls
Components
atomic elements in the layout,
constitute the look & feel

$VVHPEO\OLQH 'HYHORSPHQW RI
8,V

„ Developing a User Interface =


parameterize a Business Process
„ less development, less Controls
maintenance

 SAP AG 2002, SAPSkills Conference, Klingels / 44

35,17 2 1 '(0
'(0$1
$1''
sponsored by 22
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Do's and Don'ts Writing BSP Applications

,VVXH

„ You want to develop a web application based on Web AS 6.20. This is why you
have chosen Business Server Pages as the means to create your application.
„ You want to stay consistent with SAP's strategic Web Dynpro approach, and
you expect that you can extend and modify your application in later releases via
Web Dynpro tools. You are aware that BSP is one of the runtimes of Web
Dynpro.

'R
V

„ Use only BSP HTMLB Extensions (tags)


„ Use the Model-View-Controller (MVC) programming model offered by BSP
„ Clearly separate business from visualization logic
'RQW
V

„ Do not use Web AS 6.10


„ Do not use native HTML
„ Do not use scripting - neither client-side, nor server-side
„ Do not use "old" BSP Page based approach
„ Do not mix business with visualization logic

 SAP AG 2002, SAPSkills Conference, Klingels / 45

Further Advice

„ Use the CL_BSP_MODEL base class for your models

„ Do not use view attributes (except model references)

„ Bind your tag attributes to the model only

„ Use the <bsp:viewArea> tag to embed views in pages

„ Make sure that your view layouts do not contain <htmlb:content>,


<htmlb:form>, <htmlb:page> or <htmlb:document * > tags

„ Do not use the BSP NAVIGATION object

„ Make your application stateful

 SAP AG 2002, SAPSkills Conference, Klingels / 46

35,17 2 1 '(0
'(0$1
$1''
sponsored by 23
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Summary

„ BSP: Serverside Scripting Model

„ Free HTML: max flexibility

„ BSP Extensions: predefined UI elements

„ Model View Controller: mighty


framework for structuring

„ Web Dynpro: Tools, generators for max.


productivity

 SAP AG 2002, SAPSkills Conference, Klingels / 47

4 $

 SAP AG 2002, SAPSkills Conference, Klingels / 48

35,17 2 1 '(0
'(0$1
$1''
sponsored by 24
6$3 7HFKQ
7HFKQLLFDO (G
(GXXFDWLR
FDWLRQQ &RQ HUHHQFH 
&RQIIHU 
September 30 – October 2, 2002
Bremen, Germany

Copyright 2002 SAP AG. All Rights Reserved

„ No part of this publication may be reproduced or transmitted in any form or for any purpose without the express
permission of SAP AG. The information contained herein may be changed without prior notice.
„ Some software products marketed by SAP AG and its distributors contain proprietary software components of other
software vendors.
„ Microsoft®, WINDOWS®, NT®, EXCEL®, Word®, PowerPoint® and SQL Server® are registered trademarks of
Microsoft Corporation.
„ IBM®, DB2®, DB2 Universal Database, OS/2®, Parallel Sysplex®, MVS/ESA, AIX®, S/390®, AS/400®, OS/390®,
OS/400®, iSeries, pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere®, Netfinity®, Tivoli®, Informix
and Informix® Dynamic ServerTM are trademarks of IBM Corporation in USA and/or other countries.
„ ORACLE® is a registered trademark of ORACLE Corporation.
„ UNIX®, X/Open®, OSF/1®, and Motif® are registered trademarks of the Open Group.
„ Citrix®, the Citrix logo, ICA®, Program Neighborhood®, MetaFrame®, WinFrame®, VideoFrame®, MultiWin® and
other Citrix product names referenced herein are trademarks of Citrix Systems, Inc.
„ HTML, DHTML, XML, XHTML are trademarks or registered trademarks of W3C®, World Wide Web Consortium,
Massachusetts Institute of Technology.
„ JAVA® is a registered trademark of Sun Microsystems, Inc.
„ JAVASCRIPT® is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and
implemented by Netscape.
„ MarketSet and Enterprise Buyer are jointly owned trademarks of SAP Markets and Commerce One.
„ SAP, SAP Logo, R/2, R/3, mySAP, mySAP.com and other SAP products and services mentioned herein as well as
their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries
all over the world. All other product and service names mentioned are trademarks of their respective companies.

 SAP AG 2002, SAPSkills Conference, Klingels / 49

35,17 2 1 '(0
'(0$1
$1''
sponsored by 25

Potrebbero piacerti anche