一.说明

SAP系统初始安装后,每当事物码第一次运行时,GUI的左下角会显示编译的状态(如图 1所示),费时很多尤其是对于一些业务内容很丰富的事物码如ME21N、VA01。

图 1 编译状态

       产生编译的原理是:SAP初始安装时ABAP程序只是源代码状态,也就是ASCII码。在第一次执行时,需先将源代码其编译成伪码,系统再对伪码解释运行;以后再次运行,则无需编译直接解释伪码。

产生编译除了系统初始安装后第一次运行外,新建或修改的ABAP程序、组件和支持包的升级也需要重新编译;另外如果在WEB中产生编译,经常会因时间过长产生超时(timeout)报错。如果多人同时运行并产生编译,则服务器的运行效率很低,尤其对于档次不高的服务器。

为避免以上问题,可以采用集中强制编译方式,使用事物码SGEN,选定某些或全部组件执行编译,这时间通常很长但以后再次运行则速度很快,全部组件的编译通常需要比系统安装时间还要长。在编译过程中可以暂停并且能够重启编译任务。

编译一个ABAP程序,数据库中会多一些内容;集中编译大量的程序,则数据库需要的空间很大。在编译前和编译过程中需密切注意数据库空间的变化。

二.操作

在前台执行事物码SGEN,进入图 2界面,有多种编译的选择,如全部生成、重新生成系统升级后的(System Upgrade),最后两项是针对BSP、WEB相关组件的(两者均与网页有关)。本例选择第一项,对所选组件的全部对象进行编译。选中后点击“Continue”按钮进入图 3界面。

图 2 初始界面(选择对组件的全部对象编译)

图 3 组件选择

       图 3界面选择要编译的组件(Software Component),如果全选则时间非常长所以要谨慎,本例选择两个基本组件(SAP_BASIS、SAP_APA),选择后点击“Continue”按钮继续。

图 4是选择服务器,无其它选项,再次点击“Continue”按钮继续。

图 4 选择Server

图 5 任务高度选择

       图 5是任务调度界面,可以选择立即执行或指定时间执行,本次选择在后台立即执行点击“Start Job directly”按钮,生成一个后台作业,前台操作就可以退出了。

在前台再次执行事物码SGEN,可以看到编译的进度,如图 6所示,可以看出仅选择的两个组件需编译近5万个对象,目前编译了362个,评估还需10小时55分钟完成(机器档次低并且是在虚拟机中运行)。

 

图 6 进度查看

三.中断及重启任务

如果在长时间的编译过程中需要暂时中断,可以在图 6界面下部点击右边的“Terminate Generation”按钮,系统弹出图 7对话框询问是否中断(cancel),在其点击“YES”按钮,系统弹出图 8对话框告知中断需要数分钟时间,此时后台的任务仍在继续,需要耐心等候。

图 7 中断提示对话框

图 8 中断信息(提示需数分钟时间)

       当编译任务停止后,就允许关闭SAP服务器了。如果还想继续完成上次的任务,可在前台再次输入事物码SGEN进入,如图 9所示选择重新执行上次任务,按“Continue”按钮再次运行。

图 9 选择继续任务(last run)

发表评论

Post Navigation