SAP Reuse Tools

20
ABAP Reuse Tools ata Glance: Examples, Best Practices forUsage& Documentation Issues Documentation Issues Tobias Trapp, AOK Systems GmbH Enterprise Architect, SAP Mentor

description

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.

Transcript of SAP Reuse Tools

Page 1: SAP Reuse Tools

ABAP Reuse Tools at a Glance:

Examples, Best Practices for Usage &

Documentation IssuesDocumentation Issues

Tobias Trapp, AOK Systems GmbH

Enterprise Architect, SAP Mentor

Page 2: SAP Reuse Tools

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� SAP Business Workflow

� BRFplus

� tools for financial mathematics

� parallelization tools

� framework for personalization

� generic object services

� tools for document archiving

Page 3: SAP Reuse Tools

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� 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

Page 4: SAP Reuse Tools

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

Page 5: SAP Reuse Tools

Deep Copy Tool

� SAP_BS_FND contains a class CL_ABAP_TOOLthat performs a

MOVE-CORRESPONDINGbetween deep structures

� We‘ll discuss the following example:

� The report copies the content of deep structures if the name and data

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:

Page 6: SAP Reuse Tools

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� He devised a number of techniques for breaking German

ciphers and found settings of Enigma machine

� He also worked on mathematical biology and chemistry

Page 7: SAP Reuse Tools

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 existsfeasable region – if it exists

� we are not resticted to the two

dimensional case – here‘s the

general problem:

Page 8: SAP Reuse Tools

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� in ABAP exists a simplex solver in SAP_BS_FND

Page 9: SAP Reuse Tools

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:� The solution:

Page 10: SAP Reuse Tools

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:

Page 11: SAP Reuse Tools

Enumeration Value Help

� Report REP_EVH_DEMOcontains 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 inputABABP 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.

Page 12: SAP Reuse Tools

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� 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*'

Page 13: SAP Reuse Tools

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.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.

Page 14: SAP Reuse Tools

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. 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.

Page 15: SAP Reuse Tools

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 beuse 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?

Page 16: SAP Reuse Tools

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 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?

Page 17: SAP Reuse Tools

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…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

Page 18: SAP Reuse Tools

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.customizing.

Page 19: SAP Reuse Tools

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:

Page 20: SAP Reuse Tools

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: