The purpose of this page is to clarify the understanding of the Program Load (ABAP Load).
- What is Program Load (ABAP Load)
- When will the ABAP Load be generated or re-generated?
- ABAP load is "Machine Type (Platform ID)" dependent
- SGEN (SAP Load Generator)
1. What is Program Load (ABAP Load)?
For programming languages such as C++, the source codes are stored in text files, after compiling, an executable file will be generated. Users start the executable file to use it:
In ABAP, ABAP source codes (ABAP Report / ABAP Program) are stored in database (Table REPOSRC). After compiling, ABAP Load will be generated and stored in database as well (Table REPOLOAD). The ABAP Load is the "executable file" of ABAP Report.
In fact, users doesn't use the ABAP Load directly. ABAP Load will be firstly loaded into Program Buffer: the ABAP Load in the Program Buffer is used for actual program execution.
2. When will the ABAP Load be generated or re-generated?
a) After you create a new ABAP Report and activate it the first time, the ABAP Load will be generated.
b) ABAP Load could also be generated or re-generated when the ABAP Program is being called:
- If the ABAP Load of this report doesn't exist, it will be generated automatically (mandatory) .
For example, at a new installed system, there is no ABAP Load for most of the programs. All programs will be compiled at the first execution. That's why SGEN needs to be executed to generate all program loads in a new system.
- If ABAP Loads are invalidated, it will be-regenerated.
An ABAP program generally depends on many other repository objects. If an object like this changes (for example, an include or a DDIC type), the load of all dependent programs must be invalidated. The load of these programs is then regenerated with the next use, and valid loads are generated again. For details, see SAP Note 1230076.
ABAP Load could also be invalidated after kernel change (in case the new kernel changes the load format). In such cases, in such cases all ABAP loads are invalid and must be regenerated.
c) ABAP Load can be generated or re-generated after transport.
*When compiling happens during dialog process, following "compiling info" will be displayed:
3. ABAP load is "Machine Type (Platform ID)" dependent.
Which means, in a Heterogeneous System, ABAP Loads exist for each machine type.
You can find out the Platform ID of SAP Instance by: Logon to the instance>Menu>System>Status:
Example a) :
You have 5 Application servers, all of them have same Machine Type (Platform ID):
Then in table REPOLOAD, you can only find one ABAP Load (Machine Type NT) for each ABAP Program.
Example b) :
You have 5 application servers, 3 of them are NT, the other two are Linux and AIX:
Then in table REPOLOAD, you may find at almost 3 ABAP Loads for each program: one for NT, one for Linux, one for AIX.
Additionally, when you use SGEN to do the mass generation, you need to execute SGEN for each machine type once: once on NT server, once on Linux server, once on AIX server.
- After an ABAP program is changed and activated, only the load is generated for the machine type of the current server. The load for other machine types remains invalidated in a Heterogeneous System.Which means, if you execute this ABAP program on another server with different machine type, the program will be compiled. This is explained in SAP Note 438038.
- If you removed one machine type from SAP System, you need to delete the ABAP Loads for that machine type manually. For details, see KBA 2324429.
General machine types (Platform ID):
|OS400(6.40 & higher)||324|
|OS400(6.20 & lower)||different numbers like 576,609 or 624|
|Linux x86_64||(Note 816097) 390,399 (old PID)|
|Linux for zSeries||389|
|Linux for IBM POWER||391|
4. SGEN (SAP Load Generator)
Talking about ABAP load, we shouldn't forget mentioning SGEN.
With transaction SGEN, you can generate ABAP loads in your SAP system. This includes the load generation for specific software components/packages, the generation for changed components after a system upgrade, and the regeneration of previously generated loads. You can also resume or repeat previous SGEN runs, include specific transport requests, and generate Business Server Page applications (BSP applications) and Web Dynpros.
The initial SGEN screen gives you various options:
a) You have installed a new software component GRCPINW (SAP GRC NW Plug-in).
You need to choose "Generate all objects of selected components" then select GRCPINW.
b) You have updated SAP_BASIS and SAP_APPL to higher SP level.
New programs might be imported by SP, so same as point a), you need to choose "Generate all objects of selected components" then select SAP_BASIS and SAP_APPL.
Includes or DDIC objects might also be changed by SP: the loads of all dependent programs are invalidated, so you need to choose "Regenerate already existing loads" then select "Regenerate only objects with invalidated loads" as well.
c) You have updated to a higher kernel patch level or upgraded to higher kernel release version.
Kernel patches could change the version of the ABAP load format, in such cases all ABAP loads are invalid and must be regenerated.
You need to choose "Regenerate already existing loads" then select "Regenerate all existing loads".
d) You installed a new SAP ABAP Instance and the Machine Type is different with the existing ones.
As explained in the point 1 c), ABAP Load depends on Machine Type, so there will no ABAP Load for the new installed instance hence every operation taken on the new instance will cause "compiling".
If you want to avoid this you need to execute SGEN for this new server once: choose "Generate all objects of selected components" then select all components.
*You could find more details for each option by clicking the "Information about SAP Load Generator".
It is a common misunderstanding that SGEN completely prevents any further generation. If you notice that programs are still being compiled after SGEN, please check KBA 2396180.
Related SAP Notes/KBAs
SAP Note 1230076 - Generation of ABAP loads: Tips for the analysis.
SAP Note 438038 - Automatic regeneration of invalidated loads.
KBA 2324429 - Manually cleaning the ABAP Load table (Repoload).
KBA 2396180 - Programs are still being complied after SGEN execution.