Professional Documents
Culture Documents
Content
Content
1. Scope
o 1.1. In Scope
o 1.2. Out of Scope
2. Overview
3. Configuration
o 3.1. Property Handling
3.1.1. Property Change Notifications
3.1.2. Property Determination
o 3.2. Read Nodes
o 3.3. Write Nodes
o 3.4. Loadable Node Groups
o 3.4. Field Mapping Reuse Component
o 3.6. Group Names of data includes
4. Implementation
o 4.1. Mass Data Processing
o 4.2. Data References
o 4.3. Message Object Handling
o 4.4. Typed Buffer Implementation
o 4.5. Types Data Access Implementation
1. Scope
1.1. In Scope
The purpose of this guideline is to provide BOPF users with some basic
rules to help them increase the performance of their objects. This
guideline is valid for AP and BS BOPF.
3. Configuration
3.1. Property Handling
The Property Handling from the Service Provider (or Service Manager in
BS-BOPF) point of view consists of two parts. The Service Provider can
notify about property changes out of every Core Service that provides a
Change Handler (e.g. Modify). If the Service Consumer wants to retrieve
the currently valid properties the Core Service RETRIEVE_PROPERTIES is
called. Because not all consumers
are evaluating the properties the property determination should be done
only when the corresponding Core Service is called.
3.1.1. Property Change Notifications
To inform the consumer of property changes is done the same way like to
inform about data changes of node attributes. It is up to the Consumer to
read the changed data or properties in order to refresh for example read
buffers. In order to enable the BOPF to notify correctly about property
changes, the dependency between data changes and resulting property
changes has to be modeled in BOPF. Otherwise either too much or even to
less property changes are notified, which may lead to a wrong Service
Consumer behavior. Therefore Property Change Triggers should be
maintained in BOPF to ensure functional correctness
and improve the overall performance.
3.1.2. Property Determination
The determination of properties shall only be done within Determinations
configured at the execution time "before retrieve". The corresponding
Determination shall only change data of the BOPF Property Node
generated at each standard node. Note that it is not necessary to delete
all properties before creating new once. If the buffer detects an already
existing entry during
created it performs automatically an update of the corresponding entry.
Read Nodes is a concept to pre-fetch data into a read buffer. Each action,
determination and validation can have every other node of the model as
read node. If the read node is not the same node the part of business
logic belongs to, an association needs to be assigned. The BOPF uses the
association to navigate to the node instances that have to be pre-fetched
into
the read buffer.
Note: The read nodes are not evaluated at runtime if they are marked as
modeled only. The following rules should be taken into account:
persistent node is loadable, meaning that all groups consist of exactly one
node, which means that the read buffer of each node is managed
separately. This is the best approach regarding memory consumption and
performance. The
only use case to change is if two or more nodes use the same database
table. All of the nodes that use the same database table and are linked
with compositions have to be in the same loadable node group.
4. Implementation
4.1. Mass Data Processing
The BOPF is completely enabled for mass data processing. To take
advantage of the mass data processing, all parts of an application have to
be implemented to support mass data processing. Therefore, the
application implementation only needs to work with mass calls. In theory,
the number of calls of each method is independent of the number of node
instances being processed.
et_data = lt_node ).
LOOP AT lt_node INTO ls_node.
CREATE DATA ls_node_r.
ls_node-attribute = new_value.
MOVE-CORRESPONDING ls_node TO ls_node_r.
io_modify->update(
iv_node = if_constant=>sc_node
iv_key = ls_node-key
is_data = ls_node_r ).
ENDLOOP.