SAP ABAP Analyzer - 1.0


Compatibility: v2 v3 Cloud
What's new? Release Notes
ID: com.castsoftware.sap

Description

This extension provides support for SAP ABAP. If your application contains SAP ABAP source code and you want to view these object types and their links with other objects, then you should install this extension.

Function Point, Quality and Sizing support

  • Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
  • Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points (transactions) Quality and Sizing
:<white_check_mark:

Compatibility

Requires:

  • CAST AIP Core 8.3.43 (or later)

Technical information

Extension information

When installed, this extension replaces the SAP ABAP Analyzer embedded in CAST Imaging Core:

  • The SAP ABAP Analyzer embedded in AIP Core will continue to exist and will be shipped “out of the box” with CAST Imaging Core,
  • Critical bugs will continue to be fixed in the Mainframe Analyzer embedded in CAST Imaging Core but no new features or functionality will be added.
  • 5 new quality rules will be added in the first release of the “standalone” SAP ABAP Analyzer extension, but otherwise the extension will have the same features and functionality on release as the SAP ABAP Analyzer embedded in CAST Imaging Core.
  • All future development of the SAP ABAP Analyzer (bug fixes, new features, functionality etc.) will be completed in the SAP ABAP Analyzer extension only.
  • The behaviour is as follows:
    • Nothing is automatic - for both CAST Console and “legacy” CAST deployments, the SAP ABAP Analyzer extension must be manually downloaded and installed in order to use it
    • If the standalone extension is installed, CAST Console will automatically detect that it exists and will use the extension rather than the analyzer embedded in CAST Imaging Core.
    • Once the extension has been installed and used to produce analysis results, it is not possible to reverse this choice by removing the extension and re-analyzing the source code again.

Supported releases

The SAP ABAP Analyzer supports all SAP ABAP products, running with SAP modules Basis and ABA of NetWeaver v7.

Supported SAP products:

  • ECC5, ECC6, S/4HANA
  • CRM v7
  • SRM v7
  • SCM v7
  • ISU v7

Unsupported SAP products:

  • CE
  • XI/PI
  • BW/BI
  • Mobile

Supported SAP technologies:

  • ABAP / ABAP Object 4.6 - 7.5
  • ABAP Script 4.6 - 7.5 (support provided by com.castsoftware.sqlanalyzer)
  • BAPI 4.6 - 7.5
  • Web Dynpro for ABAP 4.6 - 7.5

Unsupported SAP technologies:

  • BSP
  • iDoc
  • SAPScript
  • Search Help
  • Smart Forms
  • Workflow
  • Web Dynpro for Java

Source code preparation

There are two available methods for collecting source code for the com.castsoftware.sap extension:

Name Programming Language Supported Description
*.abap ABAP True objects, programs, classes
*.sap.xml ABAP True SAP Tables, transactions, views, CDS
*.tabl.xml ABAP True SAP Tables
*.tran.xml ABAP True SAP transactions
*.view.xml ABAP True SAP views
*.wdya.xml ABAP True web dynpros
*.wdyn.xml ABAP True web dynpros
package.devc.xml ABAP True packages
*.asddls ABAP CDS True CDS
*.ddls.asddls ABAP CDS True CDS

Source code discovery

The extension will “discover” one project (and configure one “Analysis Unit”) for the highest level folder (within the root folder) containing files that use the .ABAP file extension. If multiple SAP extractions are delivered at the same time, one project will be created for each SAP extraction within the delivered source code.

The following technical items are discovered:

  • Root path
  • SAP Table extraction folder (no discovery scan will take place in sub-folders of a SAP Table extraction folder)

.SQLTABLESIZE file

XXL table rules are performance related rules that help detect incorrect or poorly performing SQL queries running on XXL tables. XXL tables can be defined as extremely large tables, containing a large amount of data. The goal is to use table size from production systems because development / integration systems may not feature really large tables and would not help detect real threat on application performance levels.

Note that:

Download and installation instructions

The extension is downloaded and installed automatically.

What analysis results can you expect?

Objects

Main

Icon ID Description Concept
icon AbapAlias ABAP Alias
icon abapBookmarkFile ABAP File used for bookmark (invisible)
icon abapFrame ABAP Frame
icon AbapClass ABAP Class Class
icon AbapInterface ABAP Interface Class
icon AbapConstructor ABAP Constructor Class Constructor
icon abapBadi ABAP BADI Class Grouping
icon AbapClassPool ABAP Class Pool Class Grouping
icon AbapInterfacePool ABAP Interface Pool Class Grouping
icon abapModulePool ABAP Module Pool Class Grouping
icon AbapEvent ABAP Event Event Handling
icon abapEventBlock ABAP Event Block Event Handling
icon abapFlowLogicFile ABAP Flow Logic File File
icon abapInclude ABAP Include File
icon abapTypePool ABAP Type Pool File
icon abapUserExit ABAP User-Exit File
icon AbapEventMethod ABAP Event Method Function
icon abapForm ABAP Form Function
icon abapFunction ABAP Function Function
icon AbapMethod ABAP Method Function
icon abapModule ABAP Module Function
icon abapUnresolvedObject ABAP Unresolved Object Function
icon abapFunctionPool ABAP Function Pool Function Grouping
icon abapMacro ABAP Macro Macro
icon abapProgram ABAP Program Program
icon abapUnresolvedFolder ABAP Unresolved Folder Project
icon abapProcessingScreen ABAP Processing Screen UI
icon abapSelectionScreen ABAP Selection Screen UI
icon AbapMember ABAP Member Variable

SAP objects

Icon ID Description Concept
icon SAPUnresolvedFolder SAP Unresolved Folder Project
icon SAPTransaction SAP Transaction Transaction
icon SAPTransactionFile SAP Transaction File Transaction
icon SAPView SAP View UI
icon SAPCDSView SAP CDS View View

SAP OpenSQL Objects

Icon ID Description Concept
icon CAST_ABAP_SAPTableIndex SAP table index Index
icon CAST_ABAP_SAPTableForeignKey SAP table foreign key SQL Key
icon CAST_ABAP_SAPTablePrimaryKey SAP table primary key SQL Key
icon CAST_ABAP_SAPUnresolvedTable SAP unresolved Table Table
icon SAPTable SAP Table Table
icon CAST_ABAP_SAPTableColumn SAP table column Table Column

BAPI objects

Icon ID Description Concept
icon CAST_SAP_BAPI_EVENT SAP BAPI Event Event Handling
icon CAST_SAP_BAPI_File SAP BAPI File File
icon CAST_SAP_BAPI SAP BAPI Function
icon CAST_SAP_BAPI_METHOD SAP BAPI Method Function
icon CAST_SAP_BAPI_KEY_FIELD SAP BAPI Key Field UI
icon CAST_SAP_BAPI_ATTRIBUTE SAP BAPI Attribute Variable

Web Dynpro for ABAP

Icon ID Description Concept
icon CAST_SAP_R3WDYN_Application R3 WebDynpro Application Application
icon CAST_SAP_R3WDYN_EventHandler R3 WebDynpro Event Handler Event Handling
icon CAST_SAP_R3WDYN_File SAP Web Dynpro File File
icon CAST_SAP_R3WDYN_Action R3 WebDynpro Action Function
icon CAST_SAP_R3WDYN_Method R3 WebDynpro Method Function
icon CAST_SAP_R3WDYN_SupplyFunction R3 WebDynpro Supply Function Function
icon CAST_SAP_R3WDYN_Attribute R3 WebDynpro Attribute UI
icon CAST_SAP_R3WDYN_Component R3 WebDynpro Component UI
icon CAST_SAP_R3WDYN_ComponentController R3 WebDynpro Component Controller UI
icon CAST_SAP_R3WDYN_InboundPlugin SAP R3WDYN inbound plugin UI
icon CAST_SAP_R3WDYN_InterfaceController R3 WebDynpro Interface Controller UI
icon CAST_SAP_R3WDYN_InterfaceView R3 WebDynpro Interface View UI
icon CAST_SAP_R3WDYN_OutboundPlugin SAP R3WDYN outbound plugin UI
icon CAST_SAP_R3WDYN_View R3 WebDynpro View UI
icon CAST_SAP_R3WDYN_Window R3 WebDynpro Window UI
Link type When is this type of link created? Example
ACCESS EXEC This link is created when a piece of code calls a method.
CALL METHOD oref->method1...
ACCESS MEMBER This link is created when an object make an access to a member of another object.
METHOD mymethod.
   WRITE ref->attr
ENDMETHOD.
ACCESS READ This link is created when an object reads a value of another object.
METHOD mymethod.
   X = ref->attr
ENDMETHOD.
ACCESS WRITE This link is created when an object modifies a value of another object.
METHOD mymethod.
   ref->attr = 10
ENDMETHOD.
BELONGS TO This link is created when one object belongs to another object.
report abapReport
Function f
Endfunction

(f belongs to abapReport).

CALL This link is used to describe a function that is called in a code block.
Function f
Perform g
Endfunction

(f calls g)

CALL This link is created when a SAP transaction calls another SAP transaction. This information is extracted from the SAP system.
CALL This link is created when a SAP transaction calls the processing screen or the selection screen of an ABAP program. This information is extracted from the SAP system.
CALL This link is created when an ABAP program calls a SAP transaction.
CALL TRANSACTION SA10 AND SKIP FIRST SCREEN.
...
LEAVE TO TRANSACTION SA10.
CALL This link is created when an event block of a screen calls an ABAP module.
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
CHAIN.
FIELD: SDYN_CONN-CITY, SDYN_CONN-COUNTRY,
SDYN_CONN-CARID, SDYN_CONN-MARK.
MODULE USER_COMMAND.
ENDCHAIN.
CALL This link is created when an ABAP component calls a screen. This information is extracted from the SAP system.
INCLUDE This link is used when a file includes another file.
Report abapReport
Include include_name
INHERIT EXTEND This link is created from a class A to a class B if A inherits B.
CLASS subclass DEFINITION
   INHERITING FROM superclass.
ENDCLASS.
INHERIT OVERRIDE If a method of a class overrides a method belonging to a parent class, then this link is created between the two methods.
METHODS mymethod REDEFINITION.
INHERIT IMPLEMENT This link is created from a class to an interface when the class implements this interface.
CLASS myclass DEFINITION.
PUBLIC SECTION.
INTERFACES: interf1, interf2 ... 
ENDCLASS.
INHERIT IMPLEMENT If a class implements an interface, this link is also created between the method belonging to the class and the corresponding method belonging to the interface.
INTTERFACE status.
METHODS write.
ENDINTERFACE.

CLASS counter DEFINITION.
PUBLIC SECTION.
INTERFACE status.
...
ENDCLASS.

CLASS counter IMPLEMENTATION.
METHOD status~write.
...
ENDMETHOD.
...
ENDCLASS.
RAISE This link is created when a method activates an event.
RAISE EVENT evt EXPORTING ...
RELY ON This link is created when a method is a handler for an event.
METHODS handler FOR EVENT evt OF {class|interf}
IMPORTING ... ei ...[sender].
USE This link is created when a processing screen or a selection screen is used in conjuncton with an ABAP program. This information is extracted from the SAP system.
USE This link is created when a SAP transaction calls an ABAP program. This information is extracted from the SAP system.
USE This link is created when an ABAP component calls a screen. This information is extracted from the SAP system.
USE This link is created when a processing screen or a selection screen is used in conjuncton with an ABAP program. This information is extracted from the SAP system.
USE SELECT This link is used when a code block contains an SQL request with a select statement (in the case of embedded SQL or native SQL).
Report abapReport
Select col from table
USE UPDATE This link is used when a code block contains an SQL request with an update statement (in the case of embedded SQL or native SQL).
Report abapReport.
Update table set col=’a’
USE DELETE This link is used when a code block contains an SQL request with a delete statement (in the case of embedded SQL or native SQL).
Report abapReport
Delete from table
USE INSERT This link is used when a code block contains an SQL request with an insert (in the case of embedded SQL or native SQL).
Report abapReport
Insert into table values vals

Quality rules

A global list is also available here: https://technologies.castsoftware.com/AIP/technologies/TG001external link.

Log messages

ABAP.01

Info Explanation
Identifier ABAP.01
Message Unresolved Reference to ‘<CALLEE_NAME>’ found in object ‘<CALLER_NAME>’.
Severity Warning
Explanation The analyzer found a reference to an object called <CALLEE_NAME> and was not able to find out that object in the source code to be analyzed.
User Action Select the object <CALLEE_NAME> in the list of objects in the Unresolved folder of the technical browser in CAST Enlighten. Check the source code with the application team. If this is an application specific component, then it is recommended to add it to the analysis scope. Missing components could affect reference resolution and potentially quality rules.

ABAP.02

Info Explanation
Identifier ABAP.02
Message Unresolved Include ‘<INCLUDE_NAME>’ found in object ‘<CALLER_NAME>’.
Severity Warning
Explanation The analyzer found a reference to an include file called <INCLUDE_NAME> and was not able to find out the corresponding file in the source code to be analyzed.
User Action
Select the object <INCLUDE_NAME> in the list of objects in the Unresolved folder of the technical browser in CAST Enlighten. Check the source code with the application team. If this is an application specific include, then it is recommended to add it to the analysis scope. Missing components could affect reference resolution and potentially quality rules.

ABAP.03

Info Explanation
Identifier ABAP.03
Message Include resolution completed.
Severity Information
Explanation All the include file references have been processed. The analyzer will now start the analysis. 
User Action Nothing special to do.  

ABAP.04

Info Explanation
Identifier ABAP.04
Message Unsupported syntax found at line and column in file ‘’ (<CODE>).
Severity Warning
Explanation The analyzer is not able to parse the piece of ABAP source code <CODE> correctly. The parsing of the source file will not complete and only the corresponding object will be created without any properties and children objects.
User Action Identify with the application team whether it is an incorrect syntax on the customer side (the source code should compile correctly). If not, then contact CAST Support.

ABAP.05

Info Explanation
Identifier ABAP.05
Message Duplicated object ‘<OBJECT_NAME>’ found in file ‘<FILENAME>’.
Severity Warning
Explanation The analyzer found 2 objects with the name <OBJECT_NAME> and same type in the source file <FILENAME>. Only the first one is taken in account.
User Action Identify with the application team the ABAP element and check if the source code compile correctly. If yes, then contact CAST Supportexternal link.

ABAP.06

Info Explanation
Identifier ABAP.06
Message Starting macros resolution. This action may take a while…
Severity Information
Explanation The analyzer starts to process the macro directives in the source code. 
User Action Nothing special to do. 

ABAP.07

Info Explanation
Identifier ABAP.07
Message Macros resolution completed.
Severity Information
Explanation All the macro directives found in the source code have been processed. 
User Action Nothing special to do. 

ABAP.08

Info Explanation
Identifier ABAP.08
Message The following file will not be processed ‘<FILENAME>’: duplicated program or report ‘<PROGRAM_NAME>’.
Severity Warning
Explanation The analyzer found a source file containing a program called <PROGRAM_NAME> that has been already analyzed in another source file. In order to avoid duplicates, the second source file is not analyzed. This situation can occur when 2 versions of the same program have been delivered.
User Action Identify the duplicated object with the application team. Exclude the file from the next analysis.

ABAP.09

Info Explanation
Identifier ABAP.09
Message The following file will not be processed ‘<FILENAME>’: duplicated include ‘<INCLUDE_NAME>’.
Severity Warning
Explanation The analyzer found a source file containing a include called <INCLUDE_NAME> that has been already analyzed in another source file. In order to avoid duplicates, the second source file is not analyzed. This situation can occur when 2 versions of the same include have been delivered.
User Action Identify the duplicated object with the application team. Exclude the file from the next analysis.

ABAP.10

Info Explanation
Identifier ABAP.10
Message The following file will not be processed ‘<FILENAME>’: duplicated function-pool ‘<FUNCTION_POOL_NAME>’.
Severity Warning
Explanation The analyzer found a source file containing a function pool called <FUNCTION_POOL_NAME> that has been already analyzed in another source file. In order to avoid duplicates, the second source file is not analyzed. This situation can occur when 2 versions of the same function pool have been delivered.
User Action Identify the duplicated object with the application team. Exclude the file from the next analysis.

ABAP.11

Info Explanation
Identifier ABAP.11
Message The following file will not be processed ‘<FILENAME>’: duplicated type-pool ‘<TYPE_POOL_NAME>’.
Severity Warning
Explanation The analyzer found a source file containing a type pool called <TYPE_POOL_NAME> that has been already analyzed in another source file. In order to avoid duplicates, the second source file is not analyzed. This situation can occur when 2 versions of the same type pool have been delivered.
User Action Identify the duplicated object with the application team. Exclude the file from the next analysis.

ABAP.12

Info Explanation
Identifier ABAP.12
Message The following file will not be processed ‘<FILENAME>’: duplicated user-exit ‘<USER_EXIT_NAME>’.
Severity Warning
Explanation The analyzer found a source file containing a user-exit called <USER_EXIT_NAME> that has been already analyzed in another source file. In order to avoid duplicates, the second source file is not analyzed. This situation can occur when 2 versions of the same user-exit have been delivered.
User Action Identify the duplicated object with the application team. Exclude the file from the next analysis.

ABAP.13

Info Explanation
Identifier ABAP.13
Message Loading SAP tables . . .
Severity Information
Explanation The analyzer is loading the extraction files containing the information on database tables. The number of files depends on the size of the extraction.
User Action Nothing special to do.

ABAP.14

Info Explanation
Identifier ABAP.14
Message <DB_TABLE_NUMBER> tables <DB_VIEW_NUMBER> views have been loaded.
Severity Information
Explanation This message presents the number of database tables and database views that have been identified in extraction files. This information can be used to validate the number of database tables that have been created in the Local base compared to the database tables that are used by the ABAP code.
User Action Nothing special to do.

ABAP.15

Info Explanation
Info Explanation
Identifier ABAP.15
Message No file to parse.
Severity Error
Explanation The analysis settings are not correct and no ABAP source files has been selected for being analyzed. 
User Action Review the Analysis Unit configuration and the source file settings.

ABAP.16

Info Explanation
Identifier ABAP.16
Message Unresolved SAP database table or view: ‘<DB_TABLE_NAME>’ called in object ‘<CALLER_NAME>’.
Severity Warning
Explanation The analyzer found an Open SQL query refering to a database table or a database view called <DB_TABLE_NAME> that has not been identified in the extraction files.
User Action Select the object <DB_TABLE_NAME> in the list of objects in the Unresolved folder of the technical browser in CAST Enlighten. Check the SAP table extracted files with the application team and investigate why these tables or views have not been extracted. Missing components could affect reference resolution and potentially quality rules.

ABAP.17

Info Explanation
Identifier ABAP.17
Message Unresolved Class or Interface: ‘’ called in object ‘<CALLER_NAME>’.
Severity Warning
Explanation The analyzer found a reference to a class or an interface called that is not defined in any ABAP source file belonging to the analysis scope.
User Action Select the object in the list of objects in the Unresolved folder of the technical browser in CAST Enlighten. Check the source code with the application team. Missing components could affect reference resolution and potentially quality rules.

ABAP.18

Info Explanation
Identifier ABAP.18
Message Unresolved Method: ‘<METHOD_NAME>’ in class ‘<CLASS_NAME>’ called in object ‘<CALLER_NAME>’.
Severity Warning
Explanation The analyzer found a reference to a class method called <METHOD_NAME> for which no source code has been identified in the analysis scope. This could also occur when a parent class in which the method is defined has not been delivered.
User Action
Select the object <METHOD_NAME> in the list of objects in the Unresolved folder of the technical browser in CAST Enlighten. Check the source code with the application team. Missing components could affect reference resolution and potentially quality rules.

ABAP.19

Info Explanation
Identifier ABAP.19
Message Unresolved Member: ‘<MEMBER_NAME>’ in class ‘<CLASS_NAME>’ called in object ‘<CALLER_NAME>’.
Severity Warning
Explanation The analyzer found a reference to a class member called <MEMBER_NAME> for which no source code has been identified in the analysis scope. This could also occur when a parent class in which the member is defined has not been delivered.
User Action Select the object in the list of objects in the Unresolved folder of the technical browser in CAST Enlighten. Check the source code with the application team. Missing components could affect reference resolution and potentially quality rules.

ABAP.20

Info Explanation
Identifier ABAP.20
Message Unresolved Events: ‘<EVENT_NAME>’ in class ‘<CLASS_NAME>’ called in object ‘<CALLER_NAME>’.
Severity Warning
Explanation The analyzer found a reference to a class event called <EVENT_NAME> for which no source code has been identified in the analysis scope. This could also occur when a parent class in which the event is defined has not been delivered.
User Action
Select the object in the list of objects in the Unresolved folder of the technical browser in CAST Enlighten. Check the source code with the application team. Missing components could affect reference resolution and potentially quality rules.

ABAP.21

Info Explanation
Identifier ABAP.21
Message <MESSAGE>
Severity Warning
Explanation The analyzer is not able to read a LIST file that contains the information on SAP transactions and various cases can be described by this message. This occurs when the file is not correctly generated by the CAST SAP Extractor.
User Action Identify the LIST file for which the message has been produced and contact CAST Supportexternal link.

ABAP.22

Info Explanation
Identifier ABAP.22
Message Light processing file ‘<FILENAME>’.
Severity Information
Explanation The analyzer processes the source files in 2 steps. The first one aims to identify the different objects across the source files. The second one parses the code and resolves references. This message appears when the first step starts.  
User Action Nothing special to do.  

ABAP.23

Info Explanation
Identifier ABAP.23
Message Processing file ‘<FILENAME>’.
Severity Information
Explanation The analyzer processes the source files in 2 steps. The first one aims to identify the different objects across the source files. The second one parses the code and resolves references. This message appears when the second step starts.  
User Action Nothing special to do.  

ABAP.24

Info Explanation
Identifier ABAP.24
Message Unresolved Transaction: ‘<TRANSACTION_NAME>’ called in object ‘<CALLER_NAME>’.
Severity Warning
Explanation The analyzer found a reference to a transaction called <TRANSACTION_NAME> that has not been identified in any extraction file. This can occur when the package in which the transaction is defined has not been delivered or is not part of the analysis scope.
User Action Select the object in the list of objects in the Unresolved folder of the technical browser in CAST Enlighten. Check the source code with the application team. Missing components could affect reference resolution and potentially quality rules.

ABAP.25

Info Explanation
Identifier ABAP.25
Message Loading SAP database tables file ‘<FILENAME>’. . .
Severity Information
Explanation The analyzer is loading one of the extraction files containing the information on database tables.
User Action Nothing special to do.  

ABAP.26

Info Explanation
Identifier ABAP.26
Message Resolving SAP database table Foreign Keys. . .
Severity Information
Explanation The analyzer creates links between database tables by following the Foreign Keys relations. 
User Action Nothing special to do.  

ABAP.27

Info Explanation
Identifier ABAP.27
Message SAP database table Foreign Keys resolved.
Severity Information
Explanation The analyzer completed the creation of links between database tables. 
User Action Nothing special to do.