In this session from SAP Inside Track Hamburg 2012 I'm introducing frameworks from SAP Business Suite Foundation and discuss the problem of missing documentation.
Powerful Google developer tools for immediate impact! (2023-24 C)
SAP Reuse Tools
1. ABAP Reuse Tools at a Glance:
Examples, Best Practices for Usage &
Documentation Issues
Tobias Trapp, AOK Systems GmbH
Enterprise Architect, SAP Mentor
2. 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
3. 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
4. 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
5. Deep Copy Tool
SAP_BS_FND contains a class CL_ABAP_TOOL that performs a
MOVE-CORRESPONDING between deep structures
We‘ll 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:
6. 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
7. 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 – here‘s the
general problem:
8. 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
9. 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:
10. 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:
11. 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.
12. 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*'
13. 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.
14. 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 can‘t 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.
15. 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?
16. 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?
17. 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
won‘t understand SAP‘s products, and won‘t 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
18. 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.
19. 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:
20. 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: