Sei sulla pagina 1di 20

ABAP Reuse Tools at a Glance:

Examples, Best Practices for Usage &


Documentation Issues
Tobias Trapp, AOK Systems GmbH
Enterprise Architect, SAP Mentor

AS ABAP contains a Treasure Chest


of Reuse Tools
 Reuse tools allow rapid development of business solutions, e.g.:
 Business Application Log
 Change Protocols
 Archiving Engine
 Post Processing Office
 SAP Business Workflow
 BRFplus
 tools for financial mathematics
 parallelization tools
 framework for personalization
 generic object services
 tools for document archiving

How are Reuse Tools shipped?


 SAP NetWeaver platform contains a technical foundation in SAP_BASIS
 AS ABAP contains a set of reuse tools in software component SAP_ABA
(structure package FS_REUSE)
 In Business Suite systems (ERP, CRM,) there is an additional software
component SAP_BS_FND (structure package BS_REUSE). It is not part of
SAP NetWeaver and not shipped in NSP demosystem
 Lots of tools in reuse packages are very mature and come from SAP
SAP Banking Solution and other Industry Solutions

Outline of this Talk


 I will introduce some useful tools: Deep Copy Tool and EVH. It is Turing
year so I will start with a tool for mathematical optimization: GENIOS
 I will discuss best practices for using a framework in custom
development and how to get information about them
 Unfortunately there is no official documentation for most reuse tools.
I will discuss how SAP could provide more information with the help of
SAP Ecosystem

Deep Copy Tool


 SAP_BS_FND contains a class CL_ABAP_TOOL that performs a
MOVE-CORRESPONDING between deep structures
 Well discuss the following example:
Microsoft Office
Word-Dokument

 The report copies the content of deep structures if the name and data
type of a component is the same in source and target:

2012 is Turing Centenary!


 Alan Turing was born in 1912 and commited suicide in 1954.
 He developed the first mathematical model of a computer
and algorithm and worked on limitations of computability:
ON COMPUTABLE NUMBERS WITH AN APPLICATION

TO THE ENTSCHEIDUNGSPROBLEM
 He devised a number of techniques for breaking German
ciphers and found settings of Enigma machine
 He also worked on mathematical biology and chemistry

Linear Optimization
 feasable region defined using a set
of linear expressions:
(a1j,a2j) * (x1,x2) = bj
a linear function c is maximized
 the solution is a edge of the
feasable region if it exists
 we are not resticted to the two
dimensional case heres the
general problem:

Applications in Operations Research


 many mathematical problems in can be solved in terms of linear
programming:
 production programming, network flows
 resource allocation, game theory
 the simplex algorithm can solve linear programs
 in ABAP exists a simplex solver in SAP_BS_FND

GENIOS an LP Solver in ABAP


 objective function: 15 x1 + 10 x2 + 40 x3

 feasable region defined using: x1 <= 100, x2 <= 50, x3 <= 40,
10 x1 + 50 x2 + 80 x3 <= 2000
 The ABAP program for the computation:
 The solution:

Hierarchical F4-value tool in SAP_ABA


 Selection of a hierarchical set of values with an UI control
 Look at report REP_EVH_DEMO in package FS_ENUM_VALUE_HELP
 Selection of a geographical object REGION-SETTLEMENT-TOWN as
REG.STL.TWN:

Enumeration Value Help


 Report REP_EVH_DEMO contains a link to SAP internal docu:
http://pwdf0626.wdf.sap.corp:1100/MiniReuse/index.php/Enumeration_Value_Help

 There is a generic dialog class


CL_EVH_FACTORY

 We define the possible value in an


ABABP interface given as input
parameter of method
cl_evh_factory=>get_ie_tree_provider

 On the right side there is an example


of an interface that defines
REG.STL.TWN as constant.

How to use EVH


Lets look at the example report REP_EVH_DEMO
It shows interesting features
of class cl_evh_factory:
 We can restrict the constants to
certain data elements like the
values C, P, E of data element
CNS_DTE_CP_STATUS
 We can restrict the input values
to certain values with parameter
i_filter = 'WAT*'

Where is EVH used in


SAP Business Suite?
 If you want to learn how to use a framework you should check
documentation of reports and data elements, test packages and unit tests.
 Furthermore you should check how a framework is used by SAP Business
Suite and Industry Solutions: You can learn how to use a framework.
 If a framework is used in many applications it is likely that it will be
supported in the future.
 EVH is used in PPO, Change Notification Service and HDS (as part of
ECH for configuration of residence times in Archive Engine). The scope
seems to be limited.
 All those frameworks have been created by highly skilled developers and
I recommend to study them if you are interested in advanced ABAP
development.

HDS, PPO, ECH & CNS


Advanced Reuse Tools
 The HDS (hierarchical derivation service) is a framework for simple
business rules that is useful for business rules defined in customizing.
Unfortunately you cant reuse it because of an SAP internal BAdI.
 PPO (Post Processing Office) is a generic error management that is used in
SAP Banking Solution and Error and Conflict Handler tool in SAP toolsuite.
You can use it for own error processes.
 ECH is an AddOn to local integration engine, PPO & Archive Engine which
can be used for custom SOA forward error handling.
 Change Notification Service (CA-GTF-TS-CNS) is a framework for data
replication using change pointers that is used in SAP Banking Solution.
There are examples in ABAP Unit-test classes in
CL_CNS_CHANGE_POINTER_MANAGER &
CL_CNS_CHANGE_POINTER.

Should you use CNS in Custom


Development Projects?
CNS was developed in SAP Banking Solution and is now part of SAP_ABA
and contains a sophisticated agent framework: provisioning and consuming
of changes are controlled by agents (derivations of CL_OAF_AGENT)
If you develop am AddOn to an application that uses CNS then you should
use it. In a general SOA context there are other frameworks that can be
used to expose changes of objects and processes: BAM, event proxies in
NW 7.30 and Process Observer. At the moment Process Observer seems to
be most promising
This leads to following question: What are strategic frameworks? What
should you check before reusing an SAP framework?

What are Strategic Frameworks?


 Has SAP declared a framework as strategic? But even in this case there can
remain lots of questions just think of WDA. When will it replace UIs of
SAP Business Suite?
 Is there a documentation in help.sap.com? In this case we can open OSS
messages because in case of errors
 Is it a core framework of an application you want to extend?
 Is it in maintenance mode or still under development?
 Are there Customer Engagement Initiatives for this framework?
Unfortunately many of the reuse tools are not strategic according to above
criteria but there used in many applications of SAP Business Suite.
Most documentation of Reuse Tools is only SAP internal. Can we change
that?

Documentation for SAP Ecosystem


a Community Driven Approach
 To build applications on top of AS ABAP or Add-Ons to SAP Business Suite,
SAP Partners and Customers need to know how to use those tools.
 If there is no documentation or it comes too late, customers and partners
wont understand SAPs products, and wont adopt them
 SAP should focus on the most important and strategic frameworks and
deliver high quality documentations, trainings
 For the remaining frameworks I suggest that SAP should take a
Community Driven Approach:
 On SCN, many people give answers in forums, blogs, wikis
 SAP gives internal developer documentation to SCN topic leaders &
top contributors. With help of the community they create readable,
non-normative documentation

Missing Documentation:
Post Processing Office
 PPO is a generic application for error processing. An error is characterized
by a general business objects in different roles: main object, additional
objects.
 Error messages are stored as BAL protocols.
 There are manual and automatic error processes that you can define using
customizing.

Missing Documentation:
SOA Layer of SAP Business Suite
There is only official documentatation of NetWeaver tools for Enterprise
Services (sequences, ECH, service groups) but not of SOA layer of SAP
Business Suite:

Missing Documentation:
General Mapping Tool
Mappings are part of many processes: mappings in Enterprise Services,
MDG and so on. There is a general mapping tool in ABAP:

Potrebbero piacerti anche