執行程式為什麼老是顯示Compiling...

lkptantan發表於2007-12-25

經理問,為什麼開發的同事反映執行報表時老是顯示Comiling...

開發同事仔細檢查,發現許多程式執行時都顯示Comiling...

問題找到我Basis這邊,原因是這是一個剛升級的系統,還沒有transport all the requests,所以沒有執行SGEN而已

至於SGEN是做什麼的?因為SAP啟動後,系統會將沒有用過的程式和物件都做compile,這是正常的ABAP系統的行為,而SGEN可以強行generate ABAP程式,詳細看下面的幫助,當然我們可以先做一次SGEN,到所有的程式都傳輸過來了,再做一次

[@more@]

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.
    • Regeneration:
      All objects of the generation set used in the previous run of transaction SGEN are generated.
  • 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 ( ) 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 andRegenerate 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 ). 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.

(see also ).

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/167898/viewspace-995749/,如需轉載,請註明出處,否則將追究法律責任。

相關文章