SAP ABAP Analyzer - 1.0

Extension ID

com.castsoftware.sap

What’s new?

See SAP ABAP Analyzer - 1.0 - Release Notes .

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.

Technical 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.
  • The SAP ABAP Analyzer is compatible with AIP Core ≥ 8.3.43.
  • 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.

Function Point, Quality and Sizing support

This extension provides the following 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
✔️ ✔️

Compatibility

CAST Imaging Core release Supported
≥ 8.3.43 ✔️

Requirements

Please see: Requirements

Dependencies with other extensions

None.

Download and installation instructions

The extension is not downloaded and installed automatically.

Prepare and deliver the source code

There are two available methods for collecting source code for the SAP ABAP Analyzer:

  • Use the com.castsoftware.aip.extractor.sap to extract the source code directly from your SAP instance and into a format that can be packaged for delivery to CAST Console.
  • If you are storing your source code in abapGit and you are using the SAP ABAP Analyzer ≥ 1.0.8-funcrel, you can package the source code directly from this source code repository. The following abapGit file storage types are supported and the resulting objects are identical to those generated from a com.castsoftware.aip.extractor.sap  extraction:
    • package.devc.xml files (packages)
    • *.abap files (abap objects, programs, classes…)
    • *.tabl.xml files (sap tables)
    • *.view.xml files (sap views)
    • *.ddls.asddls files (sap CDS views)
    • *.tran.xml files (transactions)
    • *.wdya.xml files (web dynpros)
    • *.wdyn.xml files (web dynpros)

Information about discovery

Discovery is a process that is actioned during the delivery process. CAST will attempt to automatically identify “projects” within your application using a set of predefined rules. Discoverers are currently embedded in CAST Imaging Core: SAP ABAP Discoverer . You should read the relevant documentation for each discoverer (provided in the link above) to understand how the source code will be handled.

Source code delivery using CAST Imaging Console

CAST Imaging Console expects either a ZIP/archive file or source code located in a folder configured in CAST Console. You should include in the ZIP/source code folder all extracted SAP/ABAP source code:

CAST highly recommends placing the files in a folder dedicated to SAP/ABAP. If you are using a ZIP/archive file, zip the folders in the “temp” folder - but do not zip the “temp” folder itself, nor create any intermediary folders:

D:\temp
    |-----SAP/ABAP
    |-----OtherTechno1
    |-----OtherTechno2

.SQLTABLESIZE files

XXL table rules (see XXL and XXS tables rules enablement) 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:

  • The com.castsoftware.aip.extractor.sap will automatically generate the .SQLTABLESIZE file when you extract the SAP/ABAP source code.
  • You will need to manually create this file if you are packaging code directly from an abapGit repository.

You should ensure that you deliver the .SQLTABLESIZE file with your extracted SAP table code.

What analysis results can you expect?

Objects

Main

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

(*RFC): When using the com.castsoftware.aip.extractor.sap  (v. ≥ 8.2.0), the remote attribute is managed at ABAP function level. Please see Can the extractor extract remote function modules?  for more details.

SAP objects

Icon Image ID Description Concept
icon abapProcessingScreen ABAP Processing Screen UI
icon abapSelectionScreen ABAP Selection Screen UI
icon SAPTransaction SAP Transaction
icon SAPTransactionFile SAP Transaction File
icon SAPTable SAP Table Table
icon SAPView SAP View UI
icon SAPCDSView SAP CDS View
  • Analyzed in the SAP Analyzer embedded in AIP Core 8.3.38 - 8.3.43 and all SAP Analyzer extension releases.
  • In SAP Analyzer extension ≥ 1.0.6-funcrel, only CDS Views starting with /, Y or Z are analyzed. All other CDS Views are ignored.
View

SAP Tables and SAP Views are only saved in the Analysis schema when they are called from the analysis source code.

BAPI objects

Icon Image 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 Image ID Description Concept
icon CAST_SAP_R3WDYN_Action R3 WebDynpro Action
icon CAST_SAP_R3WDYN_Application R3 WebDynpro Application
icon CAST_SAP_R3WDYN_Attribute R3 WebDynpro Attribute
icon CAST_SAP_R3WDYN_Component R3 WebDynpro Component
icon CAST_SAP_R3WDYN_ComponentController R3 WebDynpro Component Controller
icon CAST_SAP_R3WDYN_InboundPlugin SAP R3WDYN inbound plugin
icon CAST_SAP_R3WDYN_InterfaceController R3 WebDynpro Interface Controller
icon CAST_SAP_R3WDYN_OutboundPlugin SAP R3WDYN outbound plugin
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_Method R3 WebDynpro Method Function
icon CAST_SAP_R3WDYN_SupplyFunction R3 WebDynpro Supply Function Function
icon CAST_SAP_R3WDYN_InterfaceView R3 WebDynpro Interface View 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

Structural Rules

Release Link
1.0.13-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.13-funcrel
1.0.12-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.12-funcrel
1.0.11-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.11-funcrel
1.0.10-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.10-funcrel
1.0.9-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.9-funcrel
1.0.8-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.8-funcrel
1.0.7-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.7-funcrel
1.0.6-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.6-funcrel
1.0.5-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.5-funcrel
1.0.4-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.4-funcrel
1.0.3-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.3-funcrel
1.0.2-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.2-funcrel
1.0.1-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.1-funcrel
1.0.0-funcrel https://technologies.castsoftware.com/rules?sec=srs_sap&ref=||1.0.0-funcrel

A global list is also available here: https://technologies.castsoftware.com/rules?sec=t_-15&ref=|| .