ABAP OO Runtime Versioning and Other Tools

Powerful Tools Help You Reach Your Goal Quicker

IT departments deal with new challenges in their field daily. In many cases, the requirements can only be addressed by customised programs.

Why Uplift tools?

The requirements can be pooled or a new module implemented within the framework of a larger project. Often it is a case of smaller implementations that are carried out within the framework of change requests or ad-hoc developments.

However, specific functions are always required for the implementation. They are developed again and againy, although they already exist from other projects.

There are several reasons for this:

  • The functions are developed only with a view to the current project and aren’t actually all that “generic”
  • The functions are unknown because they date back to an older project
  • The functions are not documented
  • No one knows who is responsible for the functions and whether they are stable

Uplift IT has collected the most important functionalities from many years of project experience and combined them in the Uplift-Tools module.

The Uplift-Tools module provides you with tools that can be integrated into existing applications or used for new implementations. With them, you can make stable and documented tools available to all projects and improve quality while reducing implementation effort:

  • No repeat implementations
  • The developers know the functions and their behavior
  • The functions are stable. There is no need to retest them
  • The quality of your applications improves because the functions that are used no longer contain errors• Your applications become more robust, because they can be versioned (for example, further development and bug fixing parallel)

The Tools

Uplift-VAD Version Management

How it works:
The typical SAP landscape consists of 3 systems: one for development, one for testing and one for production. From the viewpoint of application development, this division works well as long as no more developments are planned on program objects that are already productive.

A well-known practical example:

  • Object A contains the Functions A_1 and A_2 (for example, a report with subprograms or a function group with function modules)
  • Object A is already productive
  • In order to implement a new requirement, Object A must be extended by Function A_3 in the development system
  • While Function A_3 is being implemented in the development system, an error occurs in the productive system in Function A_1 that must be fixed as quickly as possible due to external circumstances
  • The error is fixed in the development system in Function A_1, however a change must also be made to Object A
  • In order for the correction to become productive, both Object A and Function A_1 must be transported
  • Object A has however, already been extended by Function A_3, so that either Function A_3 must also be transported or removed

In the case of just one object, this dilemma can be recognized and the necessary precautions taken; however, if we are looking at more complex applications and the cooperation of several different developers and projects it is easy to lose track. Transport errors and aborts in the productive system are the result.

Uplift-VAD can mitigate these problems because the coexistence of 2 versions of the same object allows for the following:

  • Object A contains the functions A_1 and A_2 (a class with methods)
  • Object A is already productive (as version 1, AV1)
  • In order to implement a new requirement, Object A must be extended by Function A_3 in the development system
  • To do this, a Version 2 of Object A is created in the development system (AV2)
  • While Function A_3 is being implemented in the development system, an error occurs in the productive system in Function A_1 that must be fixed as quickly as possible due to external circumstances
  • The error is fixed in the development system in Function A_1, the change is made to Object AV1
  • At the same time, the new requirement is implemented in Object AV2
  • As soon as Object AV1 has been corrected, it can be transported to the test and productive system
  • As soon as the implementation of the new requirement in AV2 is completed, then this object can also be transported and activated per customizing

Requirements for the use of Uplift-VAD
Uplift-VAD can be introduced at any time for new implementations. The step-by-step migration of existing applications is also possible. However, in this case a few important points must be considered:

  • All implementations must be executed in the form of instantiable classes (except Dynpros, selection screen, DDIC objects, etc.)
  • The class design should be oriented on common rules, so that the redefinition of methods can take place with little effort
  • The instantiation of objects in the program must always take place via the central Uplift-VAD-Factory method (where the active version of the class is automatically determined)

Uplift-LOG Indexed Application Log

How it works:
Many applications generate protocols in order to document processes or errors around the clock. The SAP system provides the application log to generate, save and display protocols in a standardized form. In addition, it has a wide range of useful additional functions, in order to for example navigate to the originating documents. This makes the application log perfect for generating protocols.

Often however, it is necessary to link the generated protocols with various keys so that they can be reassigned later. Uplift-LOG provides functions that allow you to use customer tables as an index for protocol searches in the application log.

The functionality as a whole is implemented in two classes that can generate and change protocols with and without an index. Useful help functions are also available, which guarantee the uniform creation and management of protocols in customer applications.

Requirements for the use of Uplift-LOG

  • Messages are available as SAP messages or free text
  • The keys for protocol indexing can be mapped in a database table

Uplift-GLV Global Application Management and Customizing

How it works:
It is necessary in almost every application to store specific values. This data could be RFC connections or default values for order categories or lists of permitted values for the validation of user input.

Often, separate tables are created for this and access to the tables is programmed individually. This can however, be very confusing (“Where do I set that again?”) and result in performance problems because the data isn’t always being accessed in an optimized a/o buffered way.

Uplift-GLV helps you avoid these problems. With it, all of the values are stored centrally and can be checked resp. read in an optimized manner.

Values are entered for freely defined parameters in a maintenance view. The parameters and their values can be transportable or set per system. Groups can be defined to structure the settings, for example according to departments or applications.

Each parameter value can be delimited depending on the system ID and/or up to three variable keys (for example, organizational data such as the company code or sales area).

A class with static methods for every possible application purpose serves as an interface to the parameter values. With it:

  • individual values can be loaded or checked depending on the variable keys (does the value X exist for parameter Y?)
  • several values can be fetched depending on variable keys
  • values can be checked against patterns or loaded

Every access is buffered and performance optimized, so that for example, the use of the check methods in conditions is possible without a loss of performance in the application.

Requirements for the use of Uplift-GLV:

  • The values you wish to store must be able to be mapped as unique name/value pairs
  • The qualification of the values for access must be possible using the parameter name, system ID and three additional keys

Uplift-ECP E-Mail Content Parser

How it works:
The processing of incoming e-mails in the SAP system per SAPConnect is optimized in the standard version for dialog applications. This means that the mail is forwarded to a recipient’s SAP user.

The technical processing of mails, for example saving the content of a mail in the form of text and document attachments to an SAP document, is however, more difficult. E-mails can enter the system as text, HTML, richt text and/or multi part. In addition, many users use their own formats for the layout of the mail’s body.

Uplift-ECP can differentiate between the various e-mail formats and return the content separately to the calling program for further processing.

The entire functionality is implemented in a class that can be used in customer programs (for example, BAdI for the inbound processing of e-mails in SAPConnect).

E-mails can thus, be interpreted uniformly and reliably.

Requirements for the use of Uplift-ECP

  • The e-mail is available in the program as a MIME stream

Technology

  • The Uplift-VAD module can be imported without modification per transport in any SAP system from the basis release 700 (lower versions on request)
  • The module resides completely in the Uplift IT namespace; conflicts that could arise from importing the module are thus, prevented
  • The module includes demo programs that make it very easy to understand how the tools work