0% found this document useful (0 votes)
7 views6 pages

Upload 6

Uploaded by

zahidgulzar78
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views6 pages

Upload 6

Uploaded by

zahidgulzar78
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

BOL Tree (Generic Tree)

2.2 Define Node Presentation


For the definition of the node presentation the following data are required:
Presentation ID: The key of one node presentation
You can assign this ID to a node in the hierarchy definition (see Define a tree profile Hierarchy
Presentation ID). It can be assigned to multiple nodes and multiple tree hierarchies.
Presentation Text: Just a description, not relevant for the UI
External Object Name: The BOL object type for this node presentation
The same object type that is defined in the corresponding hierarchy
node

2.2.1 Define Columns

Like in the tree profile definition, multiple columns (up to 20) can be defined, too.
One entry in this table defines the content of one tree cell:

Define Columns Detail


Column ID: The column ID is the key of this column.
The content defined here will be displayed in the column with the same Column ID which is defined
in the tree profile (see Define a tree profile Define Columns).
Icon: Optionally you can define an icon. It will appear before the content. You can either define a
CRM icon (file name, e.g. delete.gif) or a SAP icon name (Transaction ICON, e.g ICON_LOCKED)
as icon. This icon is not an OCA. It is recommended to use either icons or OCAs in one tree profile.
Value Path A:
o A BOL value path starting from the BOL object type defined in External Object Name can be
defined as value path.
o The syntax for the path is the following:
“//<BOL_Atribute_Name>” or
//<BOL_Relation_Name1>/<BOL_Relation_Name2>/.../<BOL_Atribute_Name>”. The
value of the attribute with the name “BOL_Atrribute_Name” will be displayed in the cell.
The relations in the path can be used optionally to display attributes of objects which are
defined beneath the current object in the GenIL model.
o E.g. the current object is a Business Partner and we want to display the street of the bill
address in the same tree row, but in the model the address is an own object beneath the BP.
The path would be: “//BillAdressRelation/STREET”

Page 7
BOL Tree (Generic Tree)

o It is also possible to define translatable OTR texts as the content of the cell. The syntax for
the OTR path is: “OTR/<otr_alias_name>”. E.g. “OTR/CRM_IC_APPL/PARTNER”. The
OTR texts can be found or created in the transaction SOTR_EDIT
Value path B, C: You can define up to 3 values in the paths A, B and C which will be concatenated
and separated by a blank and diplayed in the cell
Editable: Defines whether this cell can be edited. If the Edit Mode (see Implementation Tasks) is
active and the flag is marked the value defined in Edit Value Path is rendered as an input field. The
value paths A, B and C are not used in edit mode.
Edit Value Path: The value path for the edit mode. (see Value Path A for syntax, don’t use OTR
texts here)
Is Link: Defines whether the value should be rendered as a link within this cell.
Link Event ID: An event handler method of the parent UI Component is called when this link is
clicked, this ID is passed to differentiate between the links. (see Implementation Tasks)

Define Columns Overview

3 Implementation Tasks
This chapter describes the needed implementation tasks to use the generic tree component IUBOTREE.

3.1 Manditory Steps


First of all define in the parent component a usage of the IUBOTREE component:

The next step is to set the tree profile which should be used in the tree component. This can be done
e.g in the method WD_USAGE_INITIALIZE of the parent component controller class:

Page 8
BOL Tree (Generic Tree)

data: lr_profile type ref to if_bol_bo_property_access,


lr_node type ref to cl_bsp_wd_context_node.

lr_node = iv_usage->get_context_node( 'PROFILE' ).


if lr_node is bound.
lr_profile = lr_node->collection_wrapper->get_current( ).
if lr_profile is bound.
lr_profile->set_property( iv_attr_name = 'PROF_ID'
iv_value = 'IPM_VITALI' ).
endif.
endif.
Then depending on what object type(s) is defined as root object in the treeprofile the
“ROOTOBJECTS” node should be filled with root objects. This can be done via bounding a node of the
parent component to the “ROOTOBJECTS” node or via filling the “ROOTOBJECTS” node-collection with
objects manually.
If the tree is not used as an assignement block (in an overview page), one of the inbound plugs
beginning with “DEFAULT*” has to be triggered or the tree property “INITIAL_SELECT” has to be set
(see tree properties).
The last mandatory step is to handle the outbound plugs of the generic tree component
(NODE_CLICKED and NODE_SELECTED). Therefore, you have to create navigational links or
delegate them to outbound plugs of the parent component.
After these mandatory steps the tree will behave as follows (this behaviour can be influenced by further
optional steps):
the tree type is “Table Tree” (non-navigable; technical COLUMN). See UI Guidelines for SAP CRM
Chapter 10 (There are two types of hierarchies, the second type is Hierarchy Map -> navigatable)
there are no toolbar buttons
If the tree is an assignment block, it can be personalized, otherwise not
the tree can not be scrolled
tree rows are filled up until the number “Rows per Page” is reached
the tree is by default in edit mode -> cells defined as edit cells will be editable when object is locked
no row will be initially selected
the tree is in SINGLESELECT mode, deselection is not possible

3.2 Tree properties


The behaviour of the tree the can be influenced by setting the tree properties in the parent component. This
can be done in the same way as setting the tree profile in the WD_USAGE_INITIALIZE (see above):
data: lr_profile type ref to if_bol_bo_property_access,
lr_node type ref to cl_bsp_wd_context_node,
ls_tree_props type crm_isutree_tree_properties.

lr_node = iv_usage->get_context_node( ‘PROFILE’ ).


if lr_node is bound.
lr_profile = lr_node->collection_wrapper->get_current( ).
if lr_profile is bound.
*setting the profile
lr_profile->set_property( iv_attr_name = ‘PROF_ID’
iv_value = ‘IPM_VITALI’ ).
*setting the mode
lr_profile->set_property( iv_attr_name = ‘MODE’
iv_value = ‘E’ ).
*setting the tree properties
ls_tree_props-type = ‘COLUMN’.

Page 9
BOL Tree (Generic Tree)

ls_tree_props-toolbar_foreign_use = ‘TRUE’.
ls_tree_props-maxbuttonnumber = ‘8’.
ls_tree_props-fill_up_empty_rows = ‘FALSE’.
ls_tree_props-personalizable = ‘FALSE’.
ls_tree_props-display_mode = ‘X’.
ls_tree_props-initial_select
= if_crm_iu_bol_tree_evt_service=>co_mode_select_first.
ls_tree_props-expand_collapse_all = abap_true.
ls_tree_props-find = abap_true.
ls_tree_props-allow_unselect = abap_true.
ls_tree_props-multiselect = abap_true.

lr_profile->set_property( iv_attr_name = ‘TREEPROPERTIES’


iv_value = ls_tree_props ).
endif.
endif.
MODE: the value ‘E’ lets appearing the ‘environment’ toolbar buttons over the tree. These buttons
are: (from right to left:)
o Refresh: The tree is rebuilt (e.g. the agent assumes that some other objects could appear in
the tree).
o Display Superior Object: This button is active if a row is selected, it selects (sets the focus
to) the superior row.
o Display Lower-Level Object: selects the lower row.
o Restrict Environment to Focus Object: Only active if a row is selected, the slected row
becomes the root object (“zoom to the selected row”).
o Extend Evironment: only active if the zoom-button was clicked before(Restrict Environment
to Focus Object), it re-zooms, the root object becomes a child again.
o Display Entire Environment: only active if the zoom-button was clicked before (maybe
several times), it re-zooms to the top root object which is defined in the tree profile (it
executes several “Extend Environment” steps).
tree property TYPE:
o possible values: SIMPLE, COLUMN
o default value: COLUMN
o There are two types of hierarchies : See UI Guidelines for SAP CRM Chapter 10
tree property TOOLBAR_FOREIGN_USE
o possible values: TRUE, FALSE
o default value: FALSE
o If the the toolbar should be displayed within an assignment block header, set this property to

TRUE:
tree property MAXBUTTONNUMBER
o possible values: integer numbers
o default value: 8
o A “more” button appears if there are more buttons available the defined in this property.

tree property FILL_UP_EMPTY_ROWS


o possible values: TRUE, FALSE

Page 10
BOL Tree (Generic Tree)

o default value: TRUE


o if TRUE -> tree rows are filled up with empty rows util the number “Rows per
Page”(Customizing) is reached
tree property PERSONALIZABLE
o possible values: TRUE, FALSE
o default value:FALSE
o If TRUE-> personalizable icon appears
tree property DISPLAY MODE
o possible values: '' = edit mode; X = display mode
o default value: ‘’
tree property INITIAL_SELECT
o possible values: F=first; R=virtual root; S=current; N = ’’ = no selection
o default value: ‘’
tree property EXPAND_COLLAPSE_ALL
o possible values: '' = no buttons visible; X = buttons visible
o default value:’’

o if TRUE: Expand All and Colapse All buttons appears in the toolbar:
o if no line is selected, everything is expanded/collapsed, if lines is are selected, only the are
expanded/collapsed
tree property FIND
o possible values: '' = no buttons visible; X = Position/Next Hit butt. visible
o default value: ‘’

o if TRUE: Position/Next Hit buttons appears:


o With Position you can search for a string/pattern within the tree, the first found row will be
selected. With Next Hit the next found row will be selected.

tree property SCROLLROWCOUNT


o possible values: integer numbers or initial
o default value: initial

Page 11
BOL Tree (Generic Tree)

o the maximal visible rows are defined here, if more rows are there a vertical scroll bar
appears:

tree property MULTISELECT


o possible values: '' = SINGLESELECT; X = MULTISELECT
o default value:’’
tree property ALLOW_UNSELECT
o possible values: " = unselect a line not possible; X = unselect possible
o default value:’’

3.3 Tree Event Handling


Since CRM 2007 it is possible to define 3 types of events in the tree:
Link Events (in each cell)
One Click Action Events (OCA Events)
Toolbar Button Events

To define a link event see 2.2.1 (cell attribute “Is Link” is marked and Link ID is defined)
To define a OCA event see 2.1.4 (OCA with OCA-ID is defined)
Toolbar buttons can not be defined via customizing, but via implementation (see below in this chapter)

To handle the events in the parent component the tree provides an event service. This event_service is a
public component node of the tree component. The event_service node implements the interface
if_crm_iu_bol_tree_evt_service. To get an instance of the service the public static method
cl_iubotree_bspwdcomponen_cn08=>get_event_service( ir_parent_component = <parent
component instance> iv_tree_usage_name = <tree usage name> )should be used. This can
be done e.g. in the WD_USAGE_INITIALIZE of the parent component. Additionaly, to the event service you
need to implement one or more event handler. An event handler has to implement the interface
IF_CRM_IU_BOL_TREE_EVT_HANDLER. E.g. the parent component itself could be the event handler.
So, if you have the service and an event handler you can register(subscribe) the handler to all events or only
to an event type or even only to a specific event:
data tree_event_service type ref to if_crm_iu_bol_tree_evt_service.

tree_event_service = cl_iubotree_bspwdcomponen_cn08=>get_event_service( ir_paren


t_component = me iv_tree_usage_name = iv_usage->usage_name ).

if tree_event_service is bound.
* subcsibe to all events:
tree_event_service-
>subscribe( event_handler = me event_type = space event_id = space ).

Page 12

You might also like