SAP Program RS_POOL_SPLIT - Splitting programs and function groups

Description
Program RS_POOL_SPLIT splits

  • All includes in module pools, subroutine pools, and function groups, or

  • A single include.

  • In the first case, only programs with the names SAPM*, SAPF*, and SAPL*are accepted.
    The program RS_POOL_SPLIT searches through the pools for includes thatcontain subroutines or modules. You can also specify a lower limit forthe length in lines of includes, so that short includes are not split.The program does not process the "Unn" includes in function groups.
    If RS_POOL_SPLIT finds several subroutines and modules in an include(of sufficient length) it creates a new include for each module, andwrites the INCLUDE statement for it into the old include, along with acomment the name of the form or include (see example below). Withfunction groups, the name of the include (the last two characters) isincreased sequentially.
    If you split subroutine pools or module pools, the system tries toappend the name of the subroutine or module to the name of the oldinclude. If this is not possible (because the name is then not unique),the system increases the last two characters sequentially.
    The procedure for splitting a single include is similar. However,includes occuring within the include are not processed.
    The program can run both in dialog and in the background. It alwaysproduces a log at the end of the job.
    You should always run the program in test mode first (Testmode = X).This enables you to see how many new includes the program would create.You do not have to specify a request in change mode.

    Precondition
    The objects must not be locked, must not have an editor lock, and mustnot contain any inactive includes. Ensure that you specify a suitablerequest, otherwise the objects will not be processed. The request musthave two tasks (one repair, one correction), to enable the program toboth create new objects and repair existing ones.

    Output
    Test mode:
    Splitting programs and function groups
    SAPLSMSG Contains only 0/1 unit
    LSMSGE10 Contains only 0/1 unit
    LSMSGF10 13 includes can be generated
    LSMSGF11 Has only 29 lines
    LSMSGO10 Contains only 0/1 unit
    LSMSGTOP Contains only 0/1 unit
    Program SAPLSMSG examined
    Forms and modules = 14
    Includes before = 5
    Includes to be created = 13
    Runtime = 18,587,019 microseconds
    In the aboce example, include LSMSGF10 would be split into 13 includes.The other includes contain either no units or one unit, or are tooshort, and would therefore not be split.
    Work mode:
    Splitting programs and function groups
    SAPLSMSG Contains only 0/1 unit
    LSMSGE10 Contains only 0/1 unit
    LSMSGF02 O.K.
    LSMSGF03 O.K.
    LSMSGF04 O.K.
    LSMSGF05 O.K.
    LSMSGF06 O.K.
    LSMSGF07 O.K.
    LSMSGF08 O.K.
    LSMSGF09 O.K.
    LSMSGF0A O.K.
    LSMSGF0B O.K.
    LSMSGF0C O.K.
    LSMSGF0D O.K.
    LSMSGF0E O.K.
    LSMSGF10 Split O.K.
    ....Old: Lines = 398 Units = 13
    ....New: Lines = 21 Sub-includes = 13
    LSMSGF11 Has only 29 lines
    LSMSGO10 Contains only 0/1 unit
    LSMSGTOP Contains only 0/1 unit
    Program SAPLSMSG split
    Forms and modules = 14
    Includes before = 5
    New includes created = 13
    Runtime = 33,336,763 microseconds
    In the above example, the program creates 13 new includes (LSMSGF02 toLSMSGF0E). The program was successful (OK). The INCLUDE statements arethen written into the old include LSMSGF10, and the syntax of thisprogram is checked. No errors occurred (split OK). The other includeseither contain no units or only one unit, or were too short to be splitfurther.

    Example
    Before:
    *-----------------------------------------
    ***INCLUDE LSUMOF01 .
    *-----------------------------------------
    FORM TYPE_CHECK.
    ...
    ENDFORM.
    FORM IS_TRANSPARENT.
    ...
    ENDFORM.
    FORM ASK_FOR_CHANGE.
    ...
    ENDFORM.
    After:
    *-----------------------------------------
    ***INCLUDE LSUMOF01 .
    *-----------------------------------------
    INCLUDE LSUMOF0B . " TYPE_CHECK
    INCLUDE LSUMOF0A . " IS_TRANSPARENT
    INCLUDE LSUMOF09 . " ASK_FOR_CHANGE
    INCLUDE LSUMOF08 . " EXECUTE_CHANGE