在对话过程中,您经常会看到以下信息:
编译——使用编译器从用源语言编写的源程序生成目标程序的编译过程。
如果在SAP系统中看到这个信息,说明ABAP程序正在编译生成ABAP Load。
那么什么是ABAP负荷?ABAP程序什么时候编译?
让我们通过这篇文章回答这些问题,深入了解ABAP Load和ABAP程序编译。
什么是ABAP负载(程序负载)?
对于编程语言C++,源代码存储在一个文本文件和一个可执行文件(如。exe)在编译后生成。用户可以通过启动可执行文件来使用该程序:
在ABAP语言中,ABAP源代码(ABAP报告)存储在数据库(table REPOSRC)中,编译后会生成ABAP Load(存储在数据库表repospload中),这是ABAP程序的“可执行文件”。
ABAP负载何时产生或再生?
举以下例子来说明:
a)创建一个ABAP计划。当该程序第一次被激活时,将产生ABAP负载。
b)调用abap程序时,可能会生成或重新生成ABAPload:
如果程序的ABAP加载不存在,将自动生成ABAP加载(强制)。
例如,对于新安装的系统,大多数程序没有ABAP加载。这些没有ABAP加载的程序将在第一次执行时被编译。这就是为什么需要执行事务代码SGEN来生成新系统中加载的所有程序。
如果程序的ABAP加载无效,它将被重新生成。
程序的加载通常依赖于许多其他存储库对象。如果其中一个对象发生变化(如包含或DDIC对象),则与该对象相关的所有程序的ABAP加载都将失效。这些程序的加载将在下次使用时重新生成。(参考思爱普注释1230076)
ABAP加载也可能在内核升级后失效(新内核可能会改变加载的格式)。在这种情况下,所有ABAP负载都将无效,需要重新生成。
C) ABAP负载可在传输后产生或再生。
ABAP负载取决于“机器类型(平台编号)”
在异构系统中,对于一个程序,如果系统中有多个机器类型,则可能有多个ABAP负载。
您可以通过以下路径找到应用服务器的平台标识:登录应用服务器>:菜单栏>:系统>:状态:
案例a):系统中有五个应用服务器,它们都具有相同的机器类型(同构系统):
在每个程序的重新加载表中只能找到一个ABAP加载(机器类型NT)。
案例b):系统中有五个应用服务器,其中三个是NT,一个是Linux,一个是AIX(异构系统):
对于每个程序,您可以在REPOLOAD表中找到多达三个abaploads。一个在NT服务器上,一个在Linux服务器上,一个在AIX服务器上。
另外,当您使用SGEN生成大量Load时,您需要在每种机器类型上执行一次SGEN:一次在NT服务器上,一次在Linux服务器上,一次在AIX服务器上。
注意事项:
在异构系统中,当ABAP程序被修改和激活时,只有当前应用服务器上的负载将被重新生成。该程序的其他机器类型的加载将无效。这意味着,如果该程序在另一个具有不同机器类型的应用服务器上执行,它将被编译以重新生成新的加载。(详见思爱普附注438038)
从系统中删除机器类型后,您需要手动删除该机器类型的ABAP负荷。(详见KBA 2324429)
SGEN(思爱普负载发生器)
谈到ABAP负载,我们不得不提到交易代码SGEN。在SAP系统中,可以通过执行SGEN来批量生成ABAP负载。
SGEN的初始屏幕提供了多种选项:
例如:
a)安装新的功能组件GRCPINW (SAP GRC NW插件)。选择“生成所选组件的所有对象”,然后选择GRCPINW。
b)将SAP_BASIS和SAP_APPL升级到更高版本的支持包。
新程序可以通过支持包引入系统,所以像a)一样,需要选择“生成所选组件的所有对象”,然后选择SAP_BASIS和SAP_APPL
包含或DDIC对象可能会被支持包更改:所有相关程序的加载都将无效,因此您需要选择“重新生成现有加载”,然后选择“仅重新生成无效加载(模式无效)”
c)将内核升级到更高版本或更新内核补丁级别。
内核补丁可能会改变ABAP加载格式的版本,在这种情况下,所有ABAP加载都是无效的,需要重新生成。
您需要选择“重建现有荷载”,然后选择“重建所有现有荷载(全部模式)”。
d)安装了新的应用服务器,并且机器类型与现有的不同
如1c)所述,ABAP负载取决于机器类型,因此ABAP负载对于这个新安装的应用服务器不存在,因此新应用服务器中的每个操作都会导致“编译”。
如果您想避免这种情况,您需要在这个新的应用服务器上执行一次SGEN:选择“生成所选组件的所有对象”,然后选择所有组件。
*有关SGEN每个选项的更多详细信息,请单击SGEN界面左上角的“关于思爱普加载生成器的信息”按钮查看帮助文档。
此外,关于SGEN还有一个常见的误解,就是SGEN被处死后,你永远看不到汇编。其实并不是这样。如果你发现SGEN执行后程序还在编译,请参考KBA 2396180。
今天的ABAP负荷到此为止。如果你想了解更多关于ABAP的跑步环境,请点击我们的维基阅读原文。
下载更多支持宝典干货内容
思爱普实时产品支持模型
专家聊天服务来了!
近日,思爱普正式推出专家聊天服务(将链接复制到一个网页浏览器上访问:https://support . SAP . com/kb-events/Chat . html)——通过实时聊天功能,思爱普客户与技术支持专家紧密联系。详情请参考[]
1.《abap ABAP干货 | 您的程序正在被编译》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《abap ABAP干货 | 您的程序正在被编译》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1179009.html