Sap Crm Web Ui Cookbook

68
SAP CRM 2006s Introduction to Web Client UI Architecture Frederic Heinemann CRM Consulting EMEA Hub The Fast Track to SAP Knowledge

Transcript of Sap Crm Web Ui Cookbook

Page 1: Sap Crm Web Ui Cookbook

SAP CRM 2006s Introduction to Web Client UI Architecture

Frederic Heinemann CRM Consulting EMEA Hub

The Fast Track to SAP Knowledge

Page 2: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 2

Layer Overview

BOL/Genil

UI Component Concept

AGENDA

UI Component Elements

UI Component Interface and Usage

Cross Component Navigation

Component Enhancement ConceptConceptsTechnical Basics

The Fast Track to SAP Knowledge

Page 3: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 3

Layer Overview

BOL/Genil

UI Component Concept

AGENDA

UI Component Elements

UI Component Interface and Usage

Cross Component Navigation

Component Enhancement ConceptConceptsTechnical Basics

The Fast Track to SAP Knowledge

Page 4: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 4

Tables

CRM WebClient

Business Server Pages (BSPs)

Presentation Layer

Business Layer

Business Object Layer(BOL)

Business Engine(e.g. mySAP

CRM)

Generic Interaction Layer(GenIL)

Appl. Progr. Interfaces(APIs)

CRM WebClient

specific Layers

Layers of underlying Business Application

ControllerModel

View

Web Browser

Layers of SAP CRM 2006s/2 Applications

Page 5: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 5

Tables

CRM WebClient

Business Server Pages (BSPs)

Presentation Layer

Business Layer

Business Object Layer(BOL)

Business Engine(e.g. mySAP

CRM)

Generic Interaction Layer(GenIL)

Appl. Progr. Interfaces(APIs)

ControllerModel

View

Layers of CRM 5.1 Applications

CRM WebClient

specific Layers

Layers of underlying Business Application

Web Browser

Page 6: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 6

Component –

General Parts

Main Component M

IP

IP

OP

OP

NavBar

(Profile)

Logical Link

Technical

ID =

(Target-ID)

Sub componentSearch

ViewSet

View

WindowIP

Search

Display

OP

Window

ViewSet

View

IP

Sub componentHeader

OP

Page 7: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 7

UI Component

is the logical grouping for UI implementationis assigned to a packageSAP Naming conventions–

Oneorder-

BT<object><type>_<speaking string> where <type> is „S“, „H“, „I“

or „M“–

Other components ( e.g. Business Partner, Marketing) have own naming conventions

GS<speaking string> = General Services ( Reusable Components)–

BT<speaking string> = reusable components for Transactions

Page 8: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 8

Component Workbench: View, Controller and Model

Transaction Code BSP_WD_CMPWB

View: Layout

Model:Context & Context Nodes

Controller:Event Handling & Navigation

Controller:Class

Page 9: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 9

Component Workbench: Context Nodes, Attributes

Context Nodes

Context

Attributes (Fields)

Page 10: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 10

Component Workbench (I)

Browser Application StructureInventory of all items–

Views–

Component Controllers–

Custom Controllers–

Windows–

Runtime Repository*

* Each UI Component has it’s own Runtime Repository. There is no longer one central repository.

Page 11: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 11

Component Workbench (II)

Runtime Repository EditorInventory of all items–

Windows–

View sets–

Navigational Links–

Component Interface–

Component Usage

The runtime repository editor is not only a visualization tool for the xml file,but offers a set of functionality as wizards to create e.g. navigational links.

Page 12: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 12

Component Workbench (III)

BOL Model Browser

Access BOL Model from Component Workbench

Direct testing of component(or with alternative Test Application)

Page 13: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 13

Tables

CRM WebClient

Business Server Pages (BSPs)

Presentation Layer

Business Layer

Business Object Layer(BOL)

Business Engine(e.g. mySAP

CRM)

Generic Interaction Layer(GenIL)

Appl. Progr. Interfaces(APIs)

ControllerModel

View

Layers of CRM 5.1 Applications

CRM WebClient

specific Layers

Layers of underlying Business Application

Web Browser

Page 14: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 14

BOL and GenIL: Tools

ControllerModel

PresentationLayer

BusinessLayer

BusinessEngine

BOL

GenIL

View

BSP

Display BOL ModelTransaction: BSP_WD_CMPWB or GENIL_MODEL_BROWSER

GenILIMG: Generic Interaction Layer/Object Layer Basic Settings

test data retrieval from database to BOL through the GENIL

Transaction:GENIL_BOL_BROWSER

API API API

Page 15: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 15

Layers of new UI Framework

Presentation Layer (BSP)

Layers of underlying Business Application

Tables

Business Engine(e.g. mySAP

CRM)

API

Interaction Layer (GenIL)

Business Layer (BOL)

Model Browser: Visualizing BOL Model

BOL Browser: Testing Data retrieval from DB to BOL

BOL and GenIL: Tools

Page 16: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 16

Page 17: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 17

Definitions 1

Business Object (BO): Smallest unit of an object model with exclusively unstructured attributes. Each BO is assigned a unique name. A BO can be either an access object, a dependent object or a query object.

BO instance: Instance of a BO that is uniquely identified by the name of the BO and an identifier (ID).

Relation: A relationship between two BOs

that is assigned a unique, cross-

component name. The relation is assigned “a cardinality value”

for each BO. The navigation direction is a characteristic of the relation.

Object model: Number of BOs

and their relations.

Page 18: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 18

Definitions 2

Access Object: An access object is a special type of BO, whose ID can be used to determine both the

attributes of the access object itself and those of its dependent objects.

Dependent Object: A dependent object is a special type of BO, whose attributes cannot be determined solely from the ID of this BO, but instead, only or together with the ID of the superior access object.

Root object: A root object is a special element within a group of objects that are linked to one another

in a hierarchy structure via aggregations. The root object is the only object within this structure that is assigned as a superior object to all other objects. Each root object is also an access object.

Search-Object: A query object is a special type of BO whose attributes are the parameters of a search request.

Dynamic Search-Object: A dynamic query object is a type of BO whose attributes are the parameters of a search

request. It is possible to create select options for these parameters.

Search Result Object: The result object of a search request is an associated access object at the uppermost

level of the hierarchy.

Page 19: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 19

Getting to know the GENIL...

Access the GENIL Component Details

Transaction: SPRO ->IMG -> Customer Relationship Management -> CRM Cross-Application Components -> Generic Interaction Layer/Object Layer -> Basic Settings

Page 20: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 20

Definitions 3

Component: A component is an ABAP OO class which implements the component interface. It exposes a set of CRM business objects to

the Generic IL, which form an aggregation hierarchy. Each component must have a unique root object.

Component Set A component set is a collection of components that build a

business context for a specific application that uses the business layer as its framework.

Page 21: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 21

Layer Overview

BOL/Genil

UI Component Concept

AGENDA

UI Component Elements

UI Component Interface and Usage

Cross Component Navigation

Component Enhancement ConceptConceptsTechnical Basics

The Fast Track to SAP Knowledge

Page 22: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 22

BOL Services

Buffering service–

any data is only read once until it is changed

all changes are buffered and will be send together–

automatic buffer synchronization in almost all cases

Transaction service–

objects may be saved individually or all together

all changed/created object will be saved or reverted

Query services–

New Query service for dynamic searches with CRM 2006

Simple sorting and filtering on object lists (collections)Attribute properties–

for each attribute of an entity a property is available

possible properties: read-only, hidden, mandatory ...

Page 23: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 23

BOL Transaction Model

The transactional behavior of BOL objects is modeled in the transaction context. A transaction context is created:–

when an entity is locked, or

if it is requested, but not yet existing.

A transaction context can have several kinds of granularity–

The smallest granularity of a transaction context is a root entity instance

The biggest granularity are all changed/created entity instances–

The custom transaction context allows any granularity in between

Each transaction context has a defined life cycle. Once it was created it ends with either–

Saving all covered entities, or

Reverting all covered entities

Page 24: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 24

BOL Transaction Model 2

Data is always saved synchronously. Either within the dialog process (local update), or, if this is not possible, with COMMITWORK and WAITAfter saving the BOL buffer is invalidated and refreshed on the next accessAfter reverting data the BOL buffer is actively refreshed

Page 25: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 25

BOL Services –

Message Service

Message ServiceThere is one message protocol/container per root object instance and the message container manager handles them all. Additionally oneglobal message container exists were all non-business object (BO) instance-related messages should go to.

CL_CRM_BOL_CORE

CL_CRM_GENIL_MESS_CONT_MANAGER

1

1

IF_GENIL_MESSAGE_CONTAINER

1

*

Page 26: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 26

Architectural Overview

Order API

GENIL OrderComponent

Generic ILR

R R

R

BOL

R

UI Controller / BSP page

R

Browser Client

R

IBAse

API Other API

GENIL IBaseComponent

Other GENILcomponent

R R

App

licat

ion

Mod

el

R

R

R

Data

Contai

ner

Cache

R

Page 27: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 27

Business Object Layer vs. Generic Interaction Layer

GenericInteractionLayer

API 1 API 2 API ... API n

genILComponent 1

genILComponent 2

genILComponent ...

genILComponent n

Component IF

Generic Interaction Layer

Component IF Component IF Component IF

Application Interface

R R R R

R R R R

Database(s)

BusinessObjectLayer

Cache

R

Entities QueryServices Core

Page 28: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 28

Page 29: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 29

Layer Overview

BOL/Genil

UI Component Concept

AGENDA

UI Component Elements

UI Component Interface and Usage

Cross Component Navigation

Component Enhancement ConceptConceptsTechnical Basics

The Fast Track to SAP Knowledge

Page 30: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 30

Views of the CRM Web Client

Other persistent views

Nav

igat

ion

Bar

(pe

rsis

tent

)

Work area view

setview

view

Page 31: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 31

Layer Overview

BOL/Genil

UI Component Concept

AGENDA

UI Component Elements

UI Component Interface and Usage

Cross Component Navigation

Component Enhancement ConceptConceptsTechnical Basics

The Fast Track to SAP Knowledge

Page 32: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 32

New Component Concept

A Component...…is a meaningful bundle of view sets, views and custom controllers…is a self-contained reusable unit –

black box approach:-

Own runtime repository-

Exposes clear interface to the outside:-

windows (as interface views)-

public context nodes

… can have multiple instances at runtime… technically is mapped to a BSP application–

thus it is the organizational unit in the development logistic that is assigned to a package

With the new CRM UI Framework a new concept is introduced validfor all Applications which are based on this Framework.

Page 33: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 33

New Window Concept

A Window...… is part of a component and defines a root for a hierarchy of view sets and views in the runtime repository–

A viewset

or view can only be part of exactly one

window (still no direct reuse of views)

Navigation between views is only possible within

a single window

…. mediates between the embedding and the embedded component during runtime–

has the character of a view to the inside (window aspect)

has the character of a simple view to the outside (interface view aspect)

Each component must have one or more windows which are hostingthe views

Page 34: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 34

UI-Elements: ViewSet, ViewArea

and View

ViewSet

ViewArea View

ViewArea

ViewSetView

Page 35: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 35

Runtime Repository

Each component has its own runtime repository fileIt acts a a catalogue containing –

views, viewsets

and the composition of views within viewsets–

Navigational links (with target and source view)–

Inbound and outbound plugs definitions–

etc.Technically stored as .xml file

Can be displayed and maintained in the Runtime repository editor of the Component workbench

Page 36: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 36

Response

RequestControlleruser

input

data output

View

Model

* .DO

*.

HTM

Context

ContextNodes

Method

*_ CTXT

*_CN01

GET_S_STRUCT

Methods:Before Output

WD_CREATE_CONTEXTSET_MODELS

After InputDO_HANDLE_DATADO_HANDLE_EVENT

Layout:ABAP/HTMLB-code

describing the view layout

e.g. Bus. Partnere.g. Address

Address Field Structure

DB Tables

BOL

Class _IMPL

Method CREATE_CONTEXT_NODES

*_CN00

Model View Controller in WebClient

BSPs

Page 37: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 37

CRM Web Client: View Details

Each configurable view is based on:A page type related configuration tagStructural setters/getters

Specific implementations possible via:Dedicated setter/getter implementationAdditional usage of base tags

In contrast to former implementations the CRM Web Client views can be based on a minimal amount of coding

Page 38: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 38

Component Workbench: Context Nodes, Attributes (II)

Generic Setter Getter methods

Explicitly create setter and getter with additional methods:

Get_V_ (Value Help)

Get_P_ (Properties)

Page 39: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 39

Navigation Between Views (in Same Window)

Navigation Flow

Method: DO_HANDLE_EVENT

Outbound PlugMethod: OP_DETAILSOV

….….….

….….….

DetailsEF

….….….

….

DetailsOV

Button

back

Source View

Target View

method

DO_HANDLE_EVENT .[…] WHEN 'new'.

CALL METHOD eh_onNew. […]

method

EH_ONDONE.* navigate

op_detailsov( ). […]

method

OP_DETAILSOVview_manager->navigate(

SOURCE_REP_VIEW = rep_viewOUTBOUND_PLUG =

‘ToDetailsOV' ). […]

Method: EH_ONDONE

Inbound PlugMethod: IP_FROMDETAILSEF

method

FROMDETAILSEF

Page 40: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 40

Custom Controller

Presentation Layer (BSP)

Controller

View 1

ModelContext Node

ModelContext Node

Custom Controller

ModelContext Node

Lifespan

Business Layer (BOL, GenIL)

Database

Lifespan Lifespan

View 2

Controller

Page 41: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 41

Page 42: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 42

Layer Overview

BOL/Genil

UI Component Concept

AGENDA

UI Component Elements

UI Component Interface and Usage

Cross Component Navigation

Component Enhancement ConceptConceptsTechnical Basics

The Fast Track to SAP Knowledge

Page 43: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 43

New Component Concept: Inside and Outside View

Inside perspectiveA component is represented by a component controller–

has a context that is partially public to the outside

A component consists of custom controllers and one or more windowsthat host the views

Outside perspectiveA component can be (re-)used by one or more other components The embedding component defines a component usage in it’s runtime repository to formally declare the dependencyAlso at runtime the component has access to the component usage to get access to the Interface of the embedded componentEach component usage gets it’s own component instance at runtime

Each component could be looked at from the inside as well as fromthe outside, but what can be seen is different.

Page 44: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 44

Component Controller

highest level of all controllersis loaded at initial load of componentcan serve as data containermanages binding of usagesmanages data transfer between componentsBinding of Context Node from custom controller to component controller

Coding not done by wizard, has to be inserted manually

Page 45: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 45

New Window Concept: Inside and Outside View

Inside: (window aspect)Technically a window is a special type of view–

hosts (serves as root viewset

) views and viewsets

of the component–

has a context that contained views and viewsets

can bind to–

can trigger navigation inside the window

Outside: (Interface view aspect)has inbound and outbound plugs as entry and exit points from the view of the embedding component–

inbound plugs are called when the embedding component navigates to the view

can fire an outbound plugs (e.g. if view request so) to request navigation on the level of the embedding component -> navigation destination is determined by embedding component (runtime repository)

Each Window can as well be seen from the inside as well as from the out-side.

Page 46: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 46

Component Interface

Needs to be defined if a component shall be reusable

is defined in the runtime repository editorContext nodes of component controller are made visible to outsideWindow is made visible to outside

Page 47: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 47

Component Usage(1)

Components with a component interface can be included in other components (reuse)usages are defined in the runtime repository editor

Page 48: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 48

Component Usage(2)

Component controllers need to be bound against each otherthis is done in method WD_USAGE_INITIALIZE of the component controller class

Page 49: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 49

Page 50: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 50

Layer Overview

BOL/Genil

UI Component Concept

AGENDA

UI Component Elements

UI Component Interface and Usage

Cross Component Navigation

Component Enhancement ConceptConceptsTechnical Basics

The Fast Track to SAP Knowledge

Page 51: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 51

Customizing of Navigation: Overview

Component: e.g. Service Ticket

NavBar

Service ticket

Work Area Component: e.g. Service Ticket

Navigation Bar (as part of L-Shape)

Scenario I)Navigation from Navigation Bar Button to a Component(Button = Work Center)

Component: e.g. Product Details

NavBarScenario II and III)Cross Workarea

Component Navigation (always) through Navigation Bar

Component: e.g. Service Ticket

Overview

Link/Button

Page 52: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 52

I) Navigation from the Navigation Bar to a Component

CRMC_UI_NBLINKSClient dependant

Define NavBar

Profile:

Profile:

DEFAULT_IC

Assign Work Centers:Work Center

IC_BT_SVT

CRMC_UI_NBLINKSClient dependant

Define Logical LinksLogLink

ID: IC_BT_SVTType: Work CenterTarget ID:

IC_BT_SVT

Define Work CenterWork Center:

IC_BT_SVTLogicalLink

ID:

IC_BT_SVTTitle:

Service Ticket

Main Window

Component

IP1

NavBar

(Profile)

WorkCenter Logical Link Target ID1.

1.

2.

2. 3.

3.

IP2

Other WindowIP3

IP4

0.

0.

CRMC_UI_WA_COMP_REPCross client

Component Definition:Component Name

ICCMP_BT_SVT Window Name

Main

Inbound Plug Definition:Target ID: IC_BT_SVTIP: DEFAULT Object Type:

IC_BT_SVTObject Action:

Display

Page 53: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 53

Main Component

M-ComponentWrapper for assigned componentsManages subcomponents

Customizing storesM-Components onlyDefinition of In- and outboundPlugs of component

Page 54: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 54

Component B

CRMS_UI_TLINK Cross client

Component Definition:Component Name

ICCMP_BT_SVT Window Name

Main

Outbound Plug Definition:Source ID: OP_SVT_PROOP: PRODUCTObject Type:

IC_PRODUCTObject Action:

Display

Main Window

Component C

Create

NavBar

(Profile)

Technical

ID (= Target

ID)

2.

4.

Search

Other WindowCreate

Search

Main Window

Component A

OP1

OP2

Other WindowOP7

OP8

1.

Object TypeObject Action

Displ. Product 1.

Hard coded

2.

2.

3.

CRMC_UI_NBLINKSClient dependent

Define NavBar

Profile:Profile:

DEFAULT_IC

Define Generic OP Mapping:Object Type:

IC_PRODUCTObjAction:

DisplayTarget ID:

IP_PRODUCT3.

CRMS_UI_TLINK Cross client

Component Definition:Component Name

ICCMP_PRODUCT Window Name

Main

Inbound Plug Definition:Target ID: IP_PRODUCTIP: DEFAULT Object Type:

IC_PRODUCTObject Action:

Display

4.

II) Cross Component Navigation (Object Type Determined by Outbound (OP) Plug Definition)

Page 55: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 55

CRMC_UI_NBLINKSCross client

Define NavBar

Profile:

Profile:

DEFAULT_IC

Define Generic OP Mapping:Object Type:

IC_PRODUCTObjAction:

DisplayTarget ID:

IP_PRODUCT

Main Window

Component C

Create

NavBar

(Profile)4.

Search

Main Window

Component A

OP_DEFAULT

1.

Object TypeObject Action

Displ. Ticket 1.

Descriptor Object:

e.g.Hard coded CL_CRM_UIObj.Action

+ a)

ObjType

orb)

BOR Obj

Type, Key, Log Sys orc)

BOL Obj

instance

Add to collection hand over to OP

3.

3.

CRMS_UI_TLINKCross client

Component Definition:Component Name

ICCMP_PRODUCT Window Name

Main

Inbound Plug Definition:Target ID: IP_PRODUCTIP: DEFAULT Object Type:

IC_PRODUCTObject Action:

Display

4.

Displ. Order

Displ. EMail

Displ. Prod.

2. In case of b) or c)hard coded* Determination of Object Type

* with mapping class in case of b) or c): CRMC_UI_OBJ_MAP or CRMS_UI_OBJ_MAP

2.

Target IDTarget ID

Target ID

III) Cross Component Navigation (Object Type Determined by Descriptor Object)

Technical

ID (=

Target ID)

Page 56: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 56

Navigation Between M-Components

Navigation via NavigationBar from M to M components

CL_CRM_UIU_BT_NAVIGATE=>prepare_col_for_navigate.

Page 57: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 57

Page 58: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 58

Layer Overview

BOL/Genil

UI Component Concept

AGENDA

UI Component Elements

UI Component Interface and Usage

Cross Component Navigation

Component Enhancement ConceptConceptsTechnical Basics

The Fast Track to SAP Knowledge

Page 59: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 59

Component Enhancement Principle

Standard View

Copied and modified View

Views from an existing component can be copied into a customer componentThe copy can be modified (new context nodes, new buttons, navigation etc.)At runtime, the standard view will be replaced by the copied and modified viewThis process is supported by wizards

Page 60: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 60

Component Enhancement Concept: 1

SAP Component

Window Main

Comp. Controller

View 3

View 1

View 2

Context

Runtime RepositoryComponent UsagesView Set CompositionNavigation

Enhance Component(wizard supported)

Configure Views

Page 61: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 61

Component Enhancement Concept: 2

SAP Component

Window Main

Comp. Controller

View 3

View 1

View 2

Context

Runtime RepositoryComponent UsagesView Set CompositionNavigation

Customer Component

Window Main

Comp. Controller

View 3

View 1

View 2

Context

Runtime RepositoryComponent UsagesView Set CompositionNavigation

Element Referenced

Element Copied automatically

Page 62: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 62

Component Enhancement Concept: 3

SAP Component

Window Main

Comp. Controller

View 3

View 1

View 2

Context

Runtime RepositoryComponent UsagesView Set CompositionNavigation

Customer Component

Window Main

Comp. Controller

View 3

View 1

Context

Runtime RepositoryComponent UsagesView Set CompositionNavigation

Element Referenced

Element Copied automatically

Element Inherited if required

View 2

Page 63: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 63

Page 64: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 64

Layer Overview

BOL/Genil

UI Component Concept

AGENDA

UI Component Elements

UI Component Interface and Usage

Cross Component Navigation

Component Enhancement ConceptConceptsTechnical Basics

The Fast Track to SAP Knowledge

Page 65: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 65

View, Controller, Context and Context Node

BTAdminHOBJECT_ID

DESCRIPTION

BTOpportHBUDGET

REVENUE

BTHeaderOpportunityExtCL_BT111H_O_

DETAILSEF_CTXT

CL_BT111H_O_DETAILSEF_CN00

CL_BT111H_O_DETAILSEF_CN01

CL_BT111H_O_DETAILSEF

BT111H_OPPT/DetailsEF.htm

BT111H_OPPT/DetailsEF.do

Create and

bind to

BOL

Create and

bind to BOL

Create

Call

Call

via page attribute and Getter/Setter

CL_BT111H_O_DETAILSEF_IMPL

Inherit

Page 66: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 66

ZCL_DETAILSEF_CN00

Create and bind to BOL BTCustomerH

attr

BTHeaderCustExt

Enhancing Context and Context Nodes

BTAdminHOBJECT_ID

DESCRIPTION

BTOpportHBUDGET

REVENUE

BTHeaderOpportunityExtCL_BT111H_O_DETAILSEF_CTXT

CL_BT111H_O_DETAILSEF_CN00

CL_BT111H_O_DETAILSEF_CN01

CL_BT111H_O_DETAILSEF

BT111H_OPPT/DetailsEF.htm

BT111H_OPPT/DetailsEF.do

Create and

bind to

BOL

Create

Call

Call

via page attribute and Getter/Setter

CL_BT111H_O_DETAILSEF_IMPL

Inherit ZCUST/DetailsEF.htm//CustomerH/attr

ZCUST/DetailsEF.do

ZCL_DETAILSEF_IMPLWD_CREATE_CONTEXT

ZCL_DETAILSEF_CTXTCREATE_CONTEXT_NODES

Page 67: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 67

Page 68: Sap Crm Web Ui Cookbook

© SAP AG 2007, SAP Skills 2007 Conference / F4 / 68

Copyright 2007 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, Excel, Outlook, and PowerPoint 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, System i, System i5, System p, System p5, System x, System z, System z9, z/OS, AFP, Intelligent

Miner, WebSphere, Netfinity, Tivoli, Informix, i5/OS, POWER, POWER5, POWER5+, OpenPower

and PowerPC are trademarks or registered trademarks of IBM Corporation.

Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States 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, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin

are trademarks or registered trademarks of Citrix Systems, Inc.

HTML, XML, XHTML and W3C 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.

MaxDB

is a trademark of MySQL

AB, Sweden.

SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, Duet, PartnerEdge, 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 the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.

The information in this document is proprietary to SAP. No part of this document may be reproduced, copied, or transmitted in any form or for any purpose without the express prior written permission of SAP AG.

This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document contains only intended strategies, developments, and functionalities of the SAP®

product and is not intended to be binding upon SAP to any particular course of business, product strategy, and/or development. Please note that this document is subject to change and may be changed by SAP at any time without notice.

SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the

information, text, graphics, links, or other items contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.

SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. This limitation shall not apply in cases of intent or gross negligence.

The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that

you may access through the use of hot links contained in these materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web pages.