Steplib Support

This document covers the following topics:

Predict offers you three possible methods of evaluating XRef data listed below. Select the method you require in the LIST XREF menu before you call a function. This option is valid for the duration of your session or until you select another option in the LIST XREF menu.

  • The Library Structure Documented in Predict
    Enter a valid library structure for parameter Structure. See Using a Structure Documented in Predict The structure to be used is taken from the link list Library structure > System.

  • The Runtime Structure
    Enter *R for parameter Structure.

  • Without any Structure
    The LIST XREF functions evaluate XRef data as before. Only objects in the current library are displayed. See Working without any Structure.

Notes:

  1. If XRef data of programs contain library information about used data areas or copy codes, this information is evaluated regardless of the value specified for parameter Structure.
  2. For invoked objects only the steplib information can be used to identify objects that reside on other libraries.
  3. For passive requests the Active retrieval function Members referenced by members can be used to find all objects referencing an object in a central steplib regardless of any steplibs structures.

LIST XREF Main Menu

The LIST XREF Main Menu is invoked by entering LIST XREF after the Natural NEXT prompt. The command can be abbreviated to L X (separated by a blank). Alternatively, the XRef menu can be invoked in the Natural Development Facilities menu.

 15:56:04            *****  P R E D I C T *****                      2009-09-02
 Library: SYSDIC              -   Xref Menu   -          DBnr:   180 Fnr:    64
                                                                               
                                                                               
 Code  Object                             Code  Object                         
                                                                               
   I   Invoked programs                     S   Retained sets                  
   D   Data areas and variables             R   Processing rules               
   V   Views and fields                     F   External resources             
   C   Copycode                             X   Report programs with xref data 
   E   Error numbers                        A   Verify application             
   P   Printers                             N   Create new sets via selection  
   W   Work files                           O   Operate on sets                
                                                                               
                                                                               
       Code .........:   (  ? Help  . Terminate )                              
       Structure ...*:                                                         
       System .......:                                                         
                                                                               
                                                                               
Command ===>                                                                   
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
      Invp  GDAV  Quit  Sets  Rule  Copy  Xref  View  OSet  SPfk  Main  Exit   

Code

Enter one of the function codes offered in the menu. Before a function is called, a structure can be entered.

Structure  

The structure to be used to evaluate the XRef data. Enter the ID of a library structure, or

blank No library structure. Only objects in the current library will be evaluated
*R The runtime structure will be used.
* The following selection window appears:
   E D I C T  *****              2007-05-31
     XRef Menu   -          DBnr:   180 Fnr:    54
   
           +--------------------------------------+
           !     *** without structure ***        !
   ------  !     *** run time structure ***       !
           !     LS-NEWDICLX                      !
           !     LS-PDLX                          !
           !     PD-COB                           !
           !                                      !
  

In this window you can specify that

  • no library structure is to be used for evaluating XRef data

  • the runtime structure is to be used. 

  • a library structure defined in Predict is to be used. A list of all library structures in Predict where the system which documents the current library is contained in the link list Library Structure > System is displayed.

See Library Structure in the Predefined Object Types in Predict documentation.

Notes:

  1. The first two options are always available. In order to select a library structure, at least two objects must be present:
    - a system object that documents the current library
    - a library structure with a link list that contains this system object.
  2. If you set the option Save set to Y, the objects from different libraries will be saved in different sets.
  3. If XRef data of programs contain library information about data areas or copy codes used, this information is evaluated regardless of the value specified for parameter Structure.

See examples given in Effects of Steplib Support.

System  

This field shows the ID of the system object in Predict that documents the library. This value is taken from the implementation pointer of the system object. The system with the most detailed implementation pointer is used, see table.

  LIBRARY FNR DBNR
1 x x x
2 x x  
3 x    

Example: An implementation pointer consisting of Library/Fnr/DBnr is used before a pointer consisting of Library/Fnr only.

Using a Structure Documented in Predict

The link list Library structure-System of the library structure specified must contain the system displayed in field System.

The link list Library structure-System is evaluated. Each system in the list is checked as follows:

  • If no information is present in the implementation pointer of the system, the system is ignored

  • If the implementation pointer is incomplete, the system searches for possible XRef data. This XRef data is used to supply the missing Fnr and DBnr information in the implementation pointer.

  • If no XRef data is found, the values of the current FUSER file are used to supply the missing DBnr and Fnr information in the implementation pointer.

  • If the current library is a Natural library, the structure is appended with:

    --> *STEPLIB <--.

    SYSTEM FUSER (only if different to *STEPLIB)

    SYSTEM FNAT

Note:
A maximum of 20 steplibs is supported.

See the section Library Structure in the Predefined Object Types in Predict documentation.

Using the Runtime Structure

The following screen appears if you enter *R for parameter Structure.

  11:20:01            *****  P R E D I C T *****                      2007-05-31
  Library: V461             - Library Structure -         DBnr:   180 Fnr:    64
  Struct.: *** run time structure ***                                           
                                                                                
  Structure ...........: *** run time structure ***                             
                                                                                
                                                                                
     Nr System Id                        Library  DBnr  Fnr                     
     -- -------------------------------- -------- ----- -----                   
 -->  1                                  V461       180    64                   
      2                                  V452LX     180    64                   
      3                                  V452       180    64                   
      4 V451LX                           V451LX     180    64                   
      5 V451                             V451       180    64                   
      6                                  V342EN     180    64                   
      7                                  SYSTEM     180   104                   
      8                                  SYSLIBS    180   104                   
      9 --> *STEPLIB <--                 SYSTEM     180    64                   
     10 -->  SYSTEM  FUSER  <--          SYSTEM     180    54                  
                                                                                
 Store setting as Library Structure ...: N (Y/N)                                
 Use Library Structure in reverse order ..: N (Y/N)

Working Without any Structure

If you do not specify any library structure or runtime structure, only objects in the current library will be evaluated.

     13:25:27            *****  P R E D I C T  *****              2007-05-31
     Library: SYSDIC              -   XRef Menu   -          DBnr:   180 Fnr:    64
   
   
     Structure ...........:
   
   
                System Id                         Library   DBnr   Fnr
                --------------------------------  --------  -----  -----
                                                  SYSDIC    180    64
   
   
   
  

Displaying the Current Environment

If there is any Structure used (not *** without structure ***), this structure is shown on any LIST XREF menu in the header as shown below.

If the structure is reverted, the header contains a remark indicating this.

10:59:37            *****  P R E D I C T  *****                      2007-05-31
Library: SYSDICLX          - Invoked Programs -         DBnr:   180 Fnr:   104
Struct.: *** run time structure ***           reverse order                    

Using the command INFO you can display at any time during your LIST XREF session all libraries that will be evaluated by LIST XREF functions. The current library is marked with an arrow. In addition, you can save a runtime stucture and can then toggle between reverse and notreverse order.

See example below.

     13:28:05            *****  P R E D I C T  *****              2007-05-31
     Library: SYSDIC              -   XRef Menu   -          DBnr:   180 Fnr:    64
   
   
     Structure ...........: SYSDIC
   
   
                System Id                         Library   DBnr   Fnr
                --------------------------------  --------  -----  -----
          -->                                     SYSDIC    180    64
                V4210BE                           V4210BE   180    64
                --> *STEPLIB <--                  SYSTEM    180    64
   
   
  
     Store setting as Library Structure ......: N  (Y/N)
     Use Library Structure in reverse order ..: Y  (Y/N)

Steplib Support in Batch Mode

In batch mode, the library can be set via various methods:

  • If Natural Security is active, the logon user ID is used to identify the LIST XREF User Profile.

  • If no LIST XREF User Profile for the logon user ID exists or Natural Security is not active, the LIST XREF Default Profile gets active.

These Profiles may contain a default library structure, which is set if it is valid for the current logon library. This is reported via a appropriate message.

In addition, the command STRUCTURE is used to specify which library structure is to be used. Also the command PROFILE <user> activates a library structure specified in the LIST XREF User Profile, if it is valid for the actual logon library.

Defining a Default Structure

A default library structure can either be defined in the LIST XREF User Profile for individual users or in the LIST XREF Default Profile for users without own profile and batch mode users in non-security environments. See Maintaining a LIST XREF Profile in the section LIST XREF for Natural in the Predict Reference documentation and LIST XREF Default Profile in the section Predict Defaults in the Predict Administration documentation.