Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
176 lines (124 sloc) 5.47 KB

This documentation follows the arc42 template for architecture documentation (https://arc42.org/).

Introduction and Goals

Requirements Overview

  • Extract model information from a SAP system to be analyzed with Moose and Moose2Model.

  • Provides where used informations over multiple levels.

  • Provides informations what is used (Downsearch).

Quality Goals

  • Easy to install

  • Easy to upgrade

  • Does not extract code (Potentially sensitive information shall not be extracted)

  • Does not write into the system (Does not destabilize the system)

  • Extracts an application that contains of about a view 1000 elements in a few minutes

  • Is not able to handle an inconsistent Where Used Index of the extracted SAP system

Stakeholders

Table 1. Stake Holders
Role/Name Expectations

SAP Developer

Get an overview of the coding elements, there dependences and links to simplify opening them in an editor

Software Architect

Get an overwiew of the coding elements. Have the opportunity to display dependencies on class and package level.

System Owner

Protect coding. Prevent the system from activities that might destabilize it.

Architecture Constraints

  • Has to be easy to install in the analyzed system. A single report with texts should suffice.

  • Does not write any information in the analyzed system.

  • Uses only a file import to extract informations. Web Calls and other techniques are not allowed.

System Scope and Context

Components of SAP2Moose. Contains also components to maintain, test and documentate (including images used to documentate).

SAP2Moose Components
Table 2. Explanation
Component Explanation

SAP2Moose (Global classes and report templates

To simplify the development, SAP2Moose is developed using global classes

Report to convert global to local classes to make a simple ABAP report

This is the coding that converts global classes to local classes of the report that runs in the analyzed SAP system

Github

This contains sub components to explain better how texts and images of the documentation are maintained

png file

The information how the png file is build is part of the image file. This is an option when it is exported from draw.io. Open the file with draw.io to be able to edit it and include a copy of the diagram when you export it.

Solution Strategy

Table 3. Solution Strategy
Challenge Solution

Install logic as a single report without making the development more complex

Develop with global classes. Convert the coding to local classes of a single report before installation.

The extractor shall run in older SAP releases

Do not use modern ABAP statements in the main logic. Use modern in unit tests and supporting code as these are not part of the single report that runs in the analyzed system

The extractor shall be fast and reliable

Do not use SAP method and functions to read code components and where used information. Reading the database tables is faster and more robust.

Building Block View

The following diagram visualizes the main components that are called when an extraction is done.

Block diagram level 1

Design Decisions

Read system informations

Table 4. Decision Strategy reading

Criteria

Performant, stable, independend from SAP releases

Alternatives

1. Read database tables directly. 2. Access SAP functions or methods (preferrable API)

Decision

1. Reading database tables directly fullfills all criteria

Determine dynamic usages

Table 5. Decision Strategy dynamic usages

Criteria

Independend from the SAP2 Moose extractor, shall be able to use application specific logic, shall be able to reflect tables that specify dynamic calls.

Alternatives

1. Provide an application specific class that can be used by SAP2Moose during extraction. 2. Store informations about dynamic usages in Moose2Model

Decision

1. The possibility to implement an application specific class that can be used by SAP2Moose fullfills all criteria.

Risks and Technical Debts

Release dependency

Using SAP2Moose to extract SAP systems with very different releases is currently not well supported in the project. There is only a single branch that focuses on the most recent SAP releases.

Error handling

Errors that could be deteckted during extraction are not reported to the user.

Completeness

It is not fully transparen what is extracted and what is not extracted. This is especially problematic in case of down search.

No dumps

Especially the down search is currently quite unstable. Dumps occur often when the down search is done over many levels.

Runtime

The extraction takes for typical prjects often minutes. The down search is generally slower than the up search.

Glossary

Table 6. Glossary
Term Explanation

Down Search

Search for what an element is using. This is currently not supported in the Where Used function of SAP.

Up Search

This is similar to the Where Used function of SAP. Not all is found as in Where Used. On the other hand interfaces, redefinitions and dynamic usages may be found in an Up Search of SAP2Moose

You can’t perform that action at this time.