刚安装好SAP ECC6.0 IDES时,激动的不得了。迫不及待的LOGON,想验证下几天来的辛苦的劳动成果。可是发现每次运行新的Tcode时总是提示Compiling XXX in separate task。于是马上上网google -- ‘Compiling XXX in separate task’。原来新安装或升级的系统还没有没有执行SGEN。
至于SGEN是做什么的?因为SAP启动后,系统会将没有用过的程序和对象都做compile,这是正常的ABAP系统的行为,而SGEN可以强行generate ABAP程序,详细看下面的帮助,当然我们可以先做一次SGEN,到所有的程序都传输过来了,再做一次。
Information About the SAP Load Generator (SGEN)
Overview
You can use transaction SGEN to generate the ABAP loads of a number of programs, function groups, classes, and so on, as well as Business Server Page applications (BSP applications).
Before the generation is started, consecutive screens give you options regarding:
- Task of the generation
- Selection of generation set (= number of objects to be generated)
- Use of servers for parallel generation
The generation is started on the Job Monitor screen. In addition, this screen gives you information about generation jobs that may have already run or are current such as, for example, predictions regarding the duration of the generation.
Note: If you want to regenerate loads, make sure that there is enough space available in the database. The space required can be several hundred MB. Generation over all components requires around 2 GB of free space.
Procedure
1. Select Task of the Generation.
On the initial screen of transaction SGEN you can select the task that suits the purpose of the generation:
- Generate all Objects of Selected Software Components
- Choose this strategy if you want to generate the loads of all objects of certain software components. This may be the case, for example, if your system has been reinstalled. Here, the loads that are required for operation are not yet available and must be regenerated.
- After selecting this task, the Selection by software components of generation set screen appears. Here you are able to restrict the amount of objects to be generated by selecting software components. Use the pushbutton to select the software components you require.
- Regenerate After an SAP System Upgrade
- After an upgrade, you have to regenerate the load of the ABAP objects in the system. Here, the following are required:
-
- The runtime of the generation process in transaction SGEN must be as short as possible.
-
- The storage space required by the ABAP loads in the database must not be too large.
-
- The generation effort on the part of the user must be as small as possible.
- The following generation set takes the above requirements into account. It consists of all objects with loads, which were available in your system before the upgrade (that is, objects that you already used before the upgrade), and all objects that were redelivered in the release interval between start release and target release of your upgrade. The names of the objects that were generated before the upgrade were stored in the REPLIST file in the current directory of your system during the upgrade (profile parameter DIR_HOME).
- After selecting this task, the Selection by software components of generation set screen appears. In the standard setting, all software components are processed. Here you are able to restrict the amount of objects to be generated by selecting software components. Use the pushbutton to select the software components you require.
- Regenerate the Objects of the Last Run
- This task is suitable, for example, in the following cases:
-
- The generation of objects of the generation set that was used in the previous run was terminated and you want to regenerate the remaining objects.
-
- You want to regenerate all objects of the generation set that was used in the previous run.
- After selecting this task, the following two options are available to you:
-
- Resume
The generation set that was used in the previous run of transaction SGEN is used. Only those objects that were not generated in the previous run or whose generation was terminated due to a system error, are generated.
- Resume
-
- Regeneration:
All objects of the generation set used in the previous run of transaction SGEN are generated.
- Regeneration:
- Regenerate Existing Loads
- This task allows you to regenerate all ABAP loads and invalidated loads that exist in your system, and to generate loads for objects of a Support Package queue. The following options are available to you:
-
- Generate all Objects with Existing Load
-
- Only Generate Objects with Invalidated Load
- The load of an object becomes invalidated if changes have been made to the object or to the objects used by this object, since the moment the load was generated. Examples of such objects are includes and tables. This may occur by importing a Support Package ( SPAM) or a kernel patch.
- If you want to generate loads for objects of a Support Package queue, start the task after importing the queue. The task determines the generation set using the invalidated loads in the system. In contrast with the Generate objects of a transport request task, this task also takes into account ABAP loads that were invalidated by modified Dictionary objects.
- After choosing this task, a screen appears which allows you to search for the name of the transport request using the selection button, or to specify it directly.
- Generation of BSP Applications
- This task enables you to generate BSP applications of selected software components.
- Each Business Server Page is realized technically through an ABAP object class. When BSP applications are generated, these classes and their ABAP loads are generated. BSP applications are not included in the generation sets of the Generate All Objects of Selected Software Components, Regenerate After an SAP System Upgrade and Regenerate All Existing Loads tasks, since they are optional. You can use this task to deal with these.
- After selecting this task, the Selection by software components of generation set screen appears. Here you can restrict the number of BSP applications to be generated by selecting software components. Use the pushbuttons to select the software components you require.
- If you quit the generation of BSP applications before it has finished, or if the system terminates generation, the Regenerate the Objects of the Last Run task allows you to resume the generation.
2. Select Server for Parallel Generation.
The generation is based on a parallelized method, where the generation set is divided into small subsets that are processed by parallel processes. Depending on resources, available servers are included in the parallel processing, whereby multiple parallel processes run on one server.
From the Selection of Server for Parallel Generation screen, you can select the servers that are to be used in the parallel processing. Note that loads depend on the machine type (MT) of a host. This means that it only makes sense to parallel process the generation set of servers of the same machine type.
The default selection orientates itself by the server to which it is logged on. It corresponds to your logon server and all servers on your system that have the same machine type. If you want to use the default selection, choose Continue.
If you want to exclude individual servers from the generation, or if you want to generate the load for a particular machine type that is different to that of the logon server, then use the pushbutton to select the corresponding servers and choose Continue.
Note: The parallel servers are depicted via the logon groups in transaction RZ12. For transaction SGEN, logon group 'parallel_generators' is created. Do not use this group for your own purposes, as transaction SGEN uses and continually redefines this group.
From the selection of the servers, the system starts to automatically define the generation set, and to store it on the database (DB table GENSETC). This may take several minutes.
Job Monitor Pushbutton
This function allows you to call the job process control directly without having to redefine the generation set. By choosing Job Monitor -> Job Overview -> Spool or Job Log , you can display logs from previous generation jobs.