Version 5.3.1
 —  Natural Construct Administration and Modeling  —

External Objects

This section describes the supplied programs, subprograms, and helproutines that help simplify and standardize the model creation process. These utilities can be invoked by the supplied models or by user-written models.

Note:
The source code for external objects is not supplied.

This section covers the following topics:


Introduction

All model subprograms use external parameter data areas (PDAs) stored in the SYSCST library. The source for the PDAs is provided and contains details about each parameter. For example, some of the listings for the CPAEL PDA are:

 Parameter CPAEL     Library SAG                                DBID  18 FNR   4
 Command                                                                     > +
 I T L Name                             F Leng Index/Init/EM/Name/Comment       
 Top - -------------------------------- - ---- ---------------------------------
     1 CPAEL                                                                    
     2 INPUTS                                                                   
     3 FILE-NAME                        A   32 /* File Name.                    
     3 FIELD-NAME                       A   32 /* Field name to be found in the 
     3 #SIMPLE-OUTPUTS-ONLY             L      /* True if interested in         
   *                                           /* #FIELD-FOUND only             
   *                                           /* given file                    
     2 INPUT-OUTPUTS                                                            
     3 FILE-CODE                        P    8 /* If this code is known,        
   *                                           /* NSC checks are avoided.       
     3 DDM-PREFIX                       A   16 /* Field prefix on DDM,          
   *                                           /* this will be set if correct   
   *                                           /* FILE-CODE is not provided.    
     2 SIMPLE-OUTPUTS                                                           
     3 #FIELD-FOUND                     L      /* True if field found on file   
     3 FIELD-IS-REDEFINED               L      /* The field is redefined.       
 ----------------------------------------------------------------- S 70   L 1   

CPAEL contains a level 1 structure called CPAEL. Depending on the type of parameter, the remaining parameters are grouped into the following structures: INPUTS, INPUT-OUTPUTS, and OUTPUTS. This layout is the same for all PDAs used by the supplied subprograms.

Note:
Be careful when modifying fields in the INPUT-OUTPUTS structure; these fields may retain information across multiple calls.

You can define the PDAs as local data areas (LDAs) within the model subprograms that invoke the utilities. CPAEL is the PDA corresponding to the CPUEL subprogram utility, which returns information about a field in Predict.

The following example shows a model subprogram that requires field information from Predict:

DEFINE DATA PARAMETER
 PARAMETER
 .
 .
 .
LOCAL USING CPAEL
LOCAL USING CSASTD
 .
 .
 .
END-DEFINE
 .
 .
 .
ASSIGN CPAEL.FILE-NAME = #PDAX-FILE-NAME
ASSIGN CPAEL.FIELD-NAME = #PDAX-FIELD-NAME
CALLNAT 'CPUEL' CPAEL CSASTD
*
*Check outputs of CPUEL
 .
 .
 .
END

This section provides a brief description of the supplied program, subprogram, and helproutine utilities. For examples of how to invoke the utilities, refer to the source code for the supplied model subprograms in the SYSCST library (prefixed by CU).

Note:
Driver programs for many of the supplied model programs and subprograms are included on the Natural Construct tape (prefixed by CTE). These driver programs are also available through the Drivers menu option on the Administration main menu. If a driver program is available, its location is listed in the Drivers Menu Option section for the program or subprogram. For information about invoking the driver programs, see Drivers Menu Function.

This section covers the following topics:

Object Categories

The supplied objects are divided into three categories, based on the type of information they access. Each category is identified by its prefix as follows:

Prefix Object Categories
CN* Identifies objects that return or generate data based on information in the Natural system files.
CP* Identifies objects that return or generate data based on information in Predict.
CS* Identifies objects that are miscellaneous validation, calculation, or translation routines. Most of these routines do not access system file information, but some access Natural Construct system files.

Whenever possible, use the supplied programs, subprograms, and helproutines instead of accessing the system file information directly. This helps protect your programs from unwanted changes to the internal structure. Natural Construct maintains the upward compatibility of the supplied programs, subprograms, and helproutines.

Error Processing

Many of the supplied subprograms return information through the CSASTD parameter data area (PDA). The value in the RETURN-CODE field should be checked after each call. If it is not blank, it should be passed back to the generation nucleus so the user is aware of the problem.

The following example shows a model subprogram that invokes the CPUEL utility:

DEFINE DATA
 PARAMETER USING CUMYPDA
 PARAMETER USING CU--PDA
 PARAMETER USING CSASTD
 LOCAL USING CPAEL
 .
 .
 .
END-DEFINE
 .
 .
 .
CALLNAT 'CPUEL' CPAEL CSASTD
IF CSASTD.RETURN-CODE NE ' ' THEN
   ESCAPE ROUTINE IMMEDIATE
END-IF

Passing of Structure Names

To invoke the supplied subprograms, pass only the level 1 structures in the PDA. This way, if new parameters are added to the utilities in future versions of Natural Construct, you need only recatalog your model subprograms to incorporate the changes.

Restricted Data Areas

Some subprograms have restricted data areas to retain information across multiple calls. The restricted data areas are identified by an R in the third position of the data area name (CPRELNX, for example).

You do not need to be concerned with the contents of these data areas. Define them as local data areas within the invoking subprograms and pass them to the subprogram that is invoked.

Tip:
As with all PDAs, the name of the structure passed to the subprogram always matches the name of the data area itself.

Callback Functions

Many of the Natural Construct utility subprograms iterate through system data and, for each record found, call a user-supplied routine. For example, CPURLRD is used to retrieve all relationships related to a particular file. Rather than returning these relationships to the caller of CPURLRD, the caller must supply the name of a subprogram CPURLRD should call for each relationship found.

These routines accept an A1 array to allow the caller of the utility to communicate information to and from the subprogram called by the utility. This data area is represented by CSAPASS. It is accepted by the utility as a 1:v array so that the actual size of the data area can be determined by the requirements of the caller.

Subprogram Chaining

When a subprogram performs read logical processing and returns a series of records, it is sometimes difficult or inefficient for the subprogram to “remember” where it left off in a previous call. Also, this type of processing can be awkward to code in the invoking object because it must define looping logic and issue iterative CALLNATs until a certain end condition is reached.

To avoid these problems, some subprograms do not return the information to the calling object. Instead, the calling object passes the name of a subprogram that is invoked for each record encountered. To generate an INPUT statement containing all fields in a file, for example, you can use the CPUELNX and CPUELRD subprograms. This section describes these subprograms.

Without Subprogram Chaining (CPUELNX)

The CPUELNX subprogram can be called iteratively to continually return the next field in the file until an end-of-file condition is reached. The model subprogram that generates the INPUT statement must define the looping logic and make iterative CALLNATs to include each field in the INPUT statement.

With Subprogram Chaining (CPUELRD)

The CPUELRD subprogram can be invoked once by the model subprogram (CUXXGIN1, for example). This subprogram receives the name of a file and a subprogram to CALLNAT (CUXXGIN2, for example). It traverses the file and CALLNATs the subprogram for each field. That subprogram adds the current field to the INPUT statement generated. For example:

graphics/subprogram-chaining-example.png

To allow CPUELRD to remember information across iterative calls, a 1K area is passed to CUXXGIN2. This area can be redefined into individual fields, such as current status information, that are required by CUXXGIN2 across multiple calls. It can also pass additional information between CUXXGIN1 and CUXXGIN2.

Note:
For an example of how subprogram chaining is used, refer to the CUFMGIN1 and CUFMGIN2 programs in the SYSCST library.

Top of page

Natural-Related Subprograms (CNU*)

The subprograms described in this section retrieve information from the Natural system files to assist in the generation process. For subprograms that return information about Natural objects (programs, data areas, etc.), the specified data area object must exist in the current library or one of its steplibs.

Tip:
Driver programs for many of the supplied model programs and subprograms are included on the Natural Construct tape (prefixed by CTE). These driver programs are also available through the Drivers menu option on the Administration main menu. If a driver program is available, its location is listed in the Drivers Menu Option section for the program or subprogram. For information about invoking the driver programs, see Drivers Menu Function.

This section describes the following subprograms:

CNUEL Subprogram

CNUEL Description
What it does Retrieves information about a field in a local data area (LDA) or parameter data area (PDA). This subprogram receives the name of a field and data area (CNAEL.INPUTS) and returns information about the field (CNAEL.OUTPUTS), such as the structure to which the field belongs, the field format and type, the level number, and the starting and ending index for arrays.
PDAs used
  • CNAEL

  • CSASTD

Files accessed
  • SYSTEM-FUSER

  • SYSTEM-FNAT

Drivers Menu Option

graphics/locate-cnuel-driver.png

 CTEELN            ***** Natural Related Subprograms *****         CTEELN1  
 May 07                - Driver for subprogram CNUEL -             08:09 PM 
                                                                            
*Data Area Name : ________                                                  
 Field Name.....: ________________________________                          
 Structure Name : ________________________________                          
                                                                            
 View Of Name...:                                                           
                                                                            
 Field Found....:     Field Format:        Lvl Number....:                  
 Constant Field :     Field Length:                                         
 Field Redefined:     Rank........:                                         
 Lvl Type Trail :                                          
 From Index  Thru Index  1:V   Field Occurrences                            
 ----------  ----------  ---   -----------------                            
                                                                            
                                                                            
                                                                            
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
      help  retrn quit                                                  mai 

CNUELNX Subprogram

CNUELNX Description
What it does Returns information about the next field in a data area. This subprogram receives the name of an external data area and returns information about the next field in that data area. On the first call to this subprogram, the specified field is returned. On subsequent calls, the next fields are returned.

CNRELNX (PDA containing reserved variables) keeps track of the current position of the data area and must not be modified by the calling program.

Note:
For information about INPUT/OUTPUT parameters, refer to the CNAELNX data area in the SYSCST library.

PDAs used
  • CNAELNX

  • CNRELNX

  • CSASTD

Files accessed
  • SYSTEM-FNAT

CNUELNX On Unix Platforms

On Unix platforms, it is necessary to explicitly close any open cursors. CNUELNX does this automatically whenever a data area is read in its entirety. However, if you want the calling program to only read a portion of the data area, you must insert additional code to close the open cursor. For example:

 /* close the object
 IF CNRELNX.NATA1500-END-OF-FILE
   IGNORE
 ELSE
   CNAELNX.#CLOSE-OBJECT := TRUE
   CALLNAT 'CNUELNX' CNAELNX CNRELNX CSASTD
 END-IF

Drivers Menu Option

graphics/locate-cnuelnx-driver.png

 CTENLNX           ***** Natural Related subprograms *****         CTENLNX1
 Nov 30,06            - Driver for subprogram CNUELNX -            09:20 PM
                                                                           
*Data Area Name...: ST5A____      Field Count: 17    Constant Field :      
 First Time.......: _             End Of File:       Dynamic Field..:      
 Structure Name...: MY-GROUP                         Field Redefined:      
 Field Name.......: ALPHA2-R                         Field Format...: A    
 Field Length.....: 5.0             Units: 5         Decimals.......:      
 View Of Name.....:                                                        
 Level Number.....: 11     Basic Occurrences: _      Rank...........: 1    
 Level Type Trail.: S S S S S S S S R F                                    
 Occurrences Found: X                                                      
 Starting At: 2_                                                           
                                                                           
                                      From Index Thru index 1:V Field Occur
 Object location                      ---------- ---------- --- -----------
   Library: C52_____                                              1       
   DBID...: 13000                                                          
   FNR....: 1301_                                                          
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1
      help  retrn quit                                                  mai

Tip:
As this subprogram can have up to 99 field levels, enter a level number in the Starting At field to display the specified level plus the next nine levels.

CNUERMSG Subprogram

CNUERMSG Description
What it does Receives a Natural error message number and returns the error message text. This subprogram receives a Natural error message number (CSASTD.MSG-NR) and returns the corresponding error message text (CSASTD.MSG). For example, the message text for Natural message number 0888 is Storage Overflow During Compilation or Execution.
PDAs used
  • CSASTD

Files accessed
  • SYSTEM-FNAT

Note:
This subprogram returns system error messages, rather than application error messages. For information about application error messages, see CNUMSG Subprogram.

Drivers Menu Option

graphics/locate-cnuermsg-driver.png

   CTEERMSG             N a t u r a l  C o n s t r u c t             CTERMSG1 
   Aug 14                Driver for subprogram CNUERMSG                1 of 1 
                                                                              
                                                                              
    Msg Nr...: ____   Error Fld:                                              
    Ret Code :                                                                
                                                                              
    Msg:                                                                      
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CNUEXIST Subprogram

CNUEXIST Description
What it does Checks for the existence of a Natural module. This subprogram receives the name of a Natural module and determines whether its source, compiled object, or both exist. If the source and/or compiled object exist, the subprogram returns the module type (P for program) and library name(s) in which the source and/or compiled object(s) were found.

If the module is not found in the current library, you can request a search of all steplibs. In this case, the name of the first library in which the module was found is returned.

PDAs used
  • CNAEXIST

  • CSASTD

Files accessed
  • SYSTEM-FUSER

  • SYSTEM-FNAT

Drivers Menu Option

graphics/locate-cnuexist-driver.png

 CTEEXIST          ***** Natural Related Subprograms *****          CTEXIST 
 Feb 09              - Driver for subprogram CNUEXIST -             05:31 P 
                                                                            
*Object/Source Name......: ________              Source     Object          
 Object/Source or Both...: _                    --------   --------         
 Search type...                        Exists.:                             
   Library + Steplib Search: _         Type...:                             
   or                                  Library:                             
   Specific library search             DBID...:                             
     Library Name........: ________    FNR....:                             
     DBID................: _____       User...:                             
     FNR.................: _____       Date...:                             
     (Blank implies current library)   Time...:                             

CNUGDABL Subprogram

CNUGDABL Description
What it does Builds a full path name for a global data area (GDA) block. This subprogram receives a GDA name and the name of a GDA block. It returns the full path name from the master block to the specified block. For example, if BLOCK11 is a sub-block of BLOCK1, which is a sub-block of MASTER-BLOCK, the following full path name is returned:
MASTER-BLOCK.BLOCK1.BLOCK11
PDAs used
  • CNAGDABL

  • CSASTD

Files accessed
  • SYSTEM-FUSER

  • SYSTEM-FNAT

Drivers Menu Option

graphics/locate-cnugdabl-driver.png

   CTEGDABL             N a t u r a l  C o n s t r u c t             CTEGDAB1 
   Aug 14                Driver for subprogram CNUGDABL                1 of 1 
                                                                              
   *GDA Name......: ________                                                  
    Block Name....: ________________________________                          
                                                                              
    Full Path Name:                                                           
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CNUGDAEL Subprogram

CNUGDAEL Description
What it does Verifies that a field is contained in a global data area (GDA). This subprogram receives the name of a GDA and the name of a field. If the field exists in the GDA, this subprogram returns a confirmation flag.
PDAs used
  • CNAGDAEL

Files accessed
  • SYSTEM-FNAT

  • SYSTEM-FUSER

Drivers Menu Option

graphics/locate-cnugdael-driver.png

   CTEGDAEL             N a t u r a l  C o n s t r u c t             CTEGDAE1 
   Aug 14                Driver for subprogram CNUGDAEL                1 of 1 
                                                                              
   *GDA Name...: ________                                                     
    Field Name : ________________________________                             
    Field Found:                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CNUGENDA Subprogram

CNUGENDA Description
What it does Adds a field to a data area. This subprogram receives the definition of a field (field type, level number, field name, field format and length, and the number of occurrences, for example) to be added to a data area and generates the field definition at the end of the current edit buffer.

For information about INPUT/OUTPUT parameters, refer to the CNAGENDA data area in the SYSCST library.

Note:
Before this subprogram is invoked, the calling program must set the Natural editor to a data area type of A, L, or G.

PDAs used
  • CNAGENDA

  • CNRGENDA

  • CSASTD

Files accessed
  • None

To use this utility internally, issue a CALLNAT to the following subprogram immediately after calling CNUGENDA:

CALLNAT 'CNUGENDU'

There are no parameters for this subprogram.

Drivers Menu Option

graphics/locate-cnugenda-driver.png

   CTEGENDA             N a t u r a l  C o n s t r u c t             CTEGEND1 
   Aug 14                Driver for subprogram CNUGENDA                1 of 1 
                                                                              
  Field Name: ________________________________                                
                                                                              
  Field Type: _ Format: _     Occurrences: ____                               
  Level.....: _ Length: _____ Comment....: ________________________________   
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CNUMPPRF Subprogram

CNUMPPRF Description
What it does Reads a map profile from a Natural system file. This subprogram receives the name of the map profile in the CSAMPSET.#PROFILE field. It reads the profile from the Natural system file (FNAT) and returns the map settings.

For information about the OUTPUT parameters, refer to the CSAMPSET data area in the SYSCST library.

PDAs used
  • CSAMPSET

  • CSASTD

Files accessed
  • SYSTEM-FNAT

Note:
This routine is not available on all platforms.

Drivers Menu Option

graphics/locate-cnumpprf-driver.png

   CTEMPPRF             N a t u r a l  C o n s t r u c t             CTEMPRF1 
   Aug 14                Driver for subprogram CNUMPPRF                1 of 1 
                                                                              
  Map Profile....: ________     Layout......:               Map Type.....:    
  Map Version....:              Map Name....:               Std  Keys....:    
                                                                              
          +--------------------------------------------+                      
      1__ | Delimiter Class   AD   CD   Delimiter Char |                      
  DC:     | ---------------   --   --   -------------- |    Col Shift....:    
  PS:     |                                            |    Case Deflt...:    
  LS:     |                                            |    Cursor Skip..:    
  ZP:     |                                            |    PM...........:    
          +--------------------------------------------+                      
                                                                              
  Write Statement:              CV..........:               Justification:    
  Input Statement:              Error Code..:               Enforce Attr :    
  Auto Rule Rank :              Hlp Fld Dflt:                                 
  Fill Character :              Help........:                                 
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                    bkwrd frwrd                   mai 

CNUMSG Subprogram

CNUMSG Description
What it does Returns application message text from the SYSERR message file. This subprogram receives the following input:
  • message number

  • message library (CSTMSG by default)

  • message text

  • substitution data members

  • message libraries for data members (CSTLDA by default)

  • retrieval method

  • default languages (used if message number is not located using *Language)

It processes message text based on one of the following retrieval methods:

  • R

    Performs text retrieval based on message numbers. A message number can be entered in either the Message Number or Message Text (Input) field. If a message number is entered in the Message Number field, the corresponding text is retrieved from the message library (CSTMSG by default) and displayed at runtime. If the Message Number field is blank, the subprogram scans the Message Text (Input) field for a message number. If one is located, it is replaced with its corresponding text from the message library.

    For example, assume message number *2309 corresponds to the message text “:1::2::3:does not exist”. If this message number is located in either the Message Number or Message Text (Input) fields, the subsystem will retrieve the message text “:1::2::3:does not exist”.

  • S

    Performs text substitutions in the Message Text (Input) field. A substitution will occur if placeholders are found in the message text. Placeholders are replaced at runtime with a value entered in one of the Message Substitution Data fields (1, 2, and 3). Placeholders are entered in the following format: ":N:", where N identifies one of the three Message Substitution Data fields.

    For example, if you enter the following message text: “:1::2::3:does not exist”, and the Message Substitution Data field 1 is "File", and the Message Substitution Data field 2 is "NCST-CUSTOMER", the message text “File NCST-CUSTOMER does not exist” is returned.

  • B

    Performs text retrieval using methods R and S. This method also supports inline retrieval and substitution; that is, typing the message number and substitution values directly in the Message Text (Input) field.

    For example, if you enter the following entry in the Message Text (Input) field: "*2309,*2075.1,NCST-CUSTOMER", the subprogram assigns 2309 as the message number and retrieves the message “:1::2::3:does not exist”. The first substitution value is retrieved from message 2075.1, which is “File”. The second substitution value is the text “NCST-CUSTOMER”. At runtime, “File NCST-CUSTOMER does not exist” is displayed.

If you are using message numbers, you can specify up to eight default languages. If the message text for the message number is not found using the currently selected language (*Language), the subprogram will search for the message in each of the specified default languages.

The search begins with the *Language code specified in the first Default Language field through to the last Default Language field in which a code is specified. If the message is still not located, the subprogram will search the message text for the default system *Language code of 1 (English).

Note:
You can center text entered in the Message Text (Input) field using the ",+/NN" notation, where NN is the number of characters to be centered. For more information about message numbers and placeholders, see Use SYSERR References.

PDAs used
  • CNAMSG

  • CSASTD

Files accessed
  • SYSTEM-FUSER

Drivers Menu Option

graphics/locate-cnumsg-driver.png

   CTEMSG            ***** Natural Related subprograms *****         CTEMSG1  
   Oct 16               - Driver for subprogram CNUMSG -             08:53 AM 
                                                                              
   Message Number.: 0008  *Message Library: CSTMSG__                          
   Message Text (Input)                                                       
     ______________________________________________________________________   
                                                                              
   Retrieval Method: R ('R' for Retrieve, 'S' for Substitute, 'B' for Both)   
                                                                              
   Message Substitution                                                       
     Data(1): ________________________________  *Message Library: CSTLDA__    
     Data(2): ________________________________  *Message Library: CSTLDA__    
     Data(3): ________________________________  *Message Library: CSTLDA__    
                                                                              
   Default Languages                                                          
     *LANGUAGE: 1  1) 1_ 2) 1_ 3) 1_ 4) 1_ 5) 1_ 6) 1_ 7) 1_ 8) 1_            
                                                                              
   Response Code: 0     ( 9 - unsuccessful )                                  
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CNUPEXST Subprogram

CNUPEXST Description
What it does Checks for the existence of a map profile. This subprogram receives the name of a map profile and verifies that it exists in the Natural FNAT system file.
PDAs used
  • CNAPEXST

Files accessed
  • SYSTEM-FNAT

Note:
This subprogram is not available on all platforms.

Drivers Menu Option

graphics/locate-cnupexst-driver.png

   CTEPEXST             N a t u r a l  C o n s t r u c t             CTEPXST1 
   Aug 14                Driver for subprogram CNUPEXST                1 of 1 
                                                                              
    Map Profile Name..: ________                                              
    Map Profile Exists:                                                       
                                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CNUSEL Subprogram

CNUSEL Description
What it does Selects fields from data areas (local or parameter). This subprogram receives the name of a local (LDA) or parameter data area (PDA) and browses fields in the data area. To select a field, mark it. If more than one field is marked, only the first field is selected. You can enter "X" to terminate the display or "T" to position the list to the top.
PDAs used
  • CNASEL

  • CSASTD

Files accessed
  • None

Drivers Menu Option

   CTESEL           ***** Construct Related Subprograms *****        CTESEL1  
   Oct 09,96            - Driver for subprogram CNUSEL -             01:52 PM 
                                                                              
   *Data Area Name..: ________  Fld Name:                                     
                                                                              
                                                          Field Occurrences   
    Structure Number:           Field Format:             -----------------   
    Type Of Field...:           Field Length:                                 
    Level Number....:           Units.......:                                 
    Total Fields Cnt: 0         Decimals....:                                 
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CNUSRCNX Subprogram

CNUSRCNX Description
What it does Receives the name of the Natural object and returns the next source line. The first call to the subprogram returns the first source line. Subsequent calls return the next lines.
PDAs used
  • CNASRCNX

  • CNRSRCNX

  • CSASTD

Note:
The CNRSRCNX data area (containing reserved variables) keeps track of the current position of the object source and must not be modified by the calling program.

Files accessed
  • SYSTEM-FUSER

  • SYSTEM-FNAT

Drivers Menu Option

graphics/locate-cnusrcnx-driver.png

   CTESRCNX             N a t u r a l  C o n s t r u c t             CTESRCN1 
   Aug 14                Driver for subprogram CNUSRCNX                1 of 1 
                                                                              
   *Object Name: CTELRDSM                  Version:                           
    First Time : X                         Include Comments: _                
                                                                              
    Src Line...:       Userid:             Date...:     -  -        Type:     
    End Of Src :       Level :             Time...:   .  .  .       SM..:     
                                                                              
    Src Code...:                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CNUSRCRD Subprogram

CNUSRCRD Description
What it does Reads source text and performs specified processing. This subprogram receives the name of a Natural object (in the CNASRCRD.#OBJECT-NAME field) and the name of the subprogram invoked to process each source line (in the CNASRCRD.#CALLNAT field). It passes the fields it receives to the subprogram it invokes.

CU--PDA, which contains the model parameters, is also passed to CNUSRCRD, as well as CSAPASS (redefined as required). It “remembers” information between calls to the subprogram that processes each source line.

PDAs used
  • CNASRCRD

  • CU--PDA (model PDA)

  • CSAPASS (redefined as required)

  • CSASTD

Files accessed
  • SYSTEM-FUSER

  • SYSTEM-FNAT

Drivers Menu Option

graphics/locate-cnusrcrd-driver.png

   CTESRCRD             N a t u r a l  C o n s t r u c t             CTESRCR1 
   Aug 14                Driver for subprogram CNUSRCRD                1 of 1 
                                                                              
   *Object Name: ________          Finished:                                  
   CALLNAT.....: CTESRCSM          Include Comments: _                        
                                                                              
    Object Information                                                        
    ------------------                                                        
    Type.......:      Version:       Userid:            Time:   .  .  .       
    SM.........:      Level..:                          Date:     -  -        
                                                                              
    Src Line...:                                                              
    Source Code:                                                              
               :                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

Note:
If you change the name of the subprogram in the CALLNAT field, the specified subprogram must have the same parameters as those in the PDAs used by CNUSRCRD.

Top of page

Natural-Related Helproutines (CNH*)

You can attach the helproutines in this section to fields that require the input of Natural information (such as object names, message numbers, etc.). They are active helproutines that populate the field to which they are attached.

CNHMDL Helproutine

CNHMDL Description
What it does Browses all the Natural Construct models for selection. Valid restriction parameters are:
  • S (display statement models only)

  • M (display program models only)

  • B (display all models)

Attached to Input of a Natural Construct model name.
Parameters used
  • #PDA-RESTRICTION(A1)

  • #PDA-KEY(A32) (model name)

Files accessed
  • NCST-MODEL

CNHMSG Helproutine

CNHMSG Description
What it does Browses for and displays the application error message text. You can add new messages to the application by pressing the Add PF-key (the new message number is always adjusted to the next available number).
Attached to Input of a message number field.
Parameters used
  • #PDA-MESSAGE(A65)

  • #PDA-MESSAGE-LIBRARY(A8)

  • #PDA-KEY(N4)

Files accessed
  • SYSTEM-FUSER

CNHOBJ Helproutine

CNHOBJ Description
What it does Browses all objects of a specified type in the current library. This helproutine receives an object type and browses all the objects with that type that exist in the current library. Valid object types are:
  • P (program)

  • N (subprogram)

  • S (subroutine)

  • M (map)

  • H (helproutine)

  • C (copycode)

  • A (parameter)

  • G (global)

  • L (local)

  • T (text)

  • * (all)

  • 2 (subprogram/helproutine)

  • 3 (subprogram/helproutine/subroutine)

  • 4 (program/subprogram/helproutine/subroutine)

  • 5 (command processor)

  • D (data area)

Attached to Input of a Natural object name field.
Parameters used
  • #PDA-TYPE(A1)

  • #PDA-KEY(A8) /* Start/Return key

Files accessed
  • SYSTEM-FUSER

Top of page

Natural Construct Generation Utility Subprograms (CSU*)

The subprograms in this section perform specialized functions to assist in the generation process.

Note:
Driver programs for many of the supplied programs/subprograms are available through the Drivers menu option on the Administration main menu. If a driver program is available, its location is listed in the Drivers Menu Option section in the program/subprogram description. For more information about the supplied driver programs, see Drivers Menu Function.

These subprograms are:

CSU-VAR Subprogram

CSU-VAR Description
What it does Validates a specified variable name. This subprogram receives a string and checks for a valid Natural naming convention. Use it whenever a name used as a Natural variable is entered. If the name is invalid, the subprogram returns a message containing the reason.

Note:
The variable name can be fully qualified (contain a prefix).

Parameters used
  • #PDA-STRING(A65) /*INPUT

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csu-var-driver.png

   CTE-VAR          ***** Construct Related Subprograms *****        CTE-VAR1 
   Oct 09                - Driver for subprogram CSU-VAR -           02:58 PM 
                                                                              
  String: _________________________________________________________________   
                                                                              
  Msg...:                                                                     
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUBANN Subprogram

CSUBANN Description
What it does Generates the standard banner into the source buffer. Use this subprogram to generate Natural or Visual Basic comments.
PDAs used
  • CSABANN

  • CSASTD

Files accessed
  • None

CSUBLDRP Subprogram

CSUBLDRP Description
What it does Builds a report layout. This subprogram builds a report layout for the Batch, Browse, and Browse-Select models. It can be invoked from a sample subprogram within a user exit. The invoking subprogram must issue an initial RESET statement to clear the structures in CSASELFV. For example:
RESET CSASELFV
CSASELFV.GENERAL-INFORMATION
CSASELFV.FIELD-SPECIFICATION(*)

The sample subprogram must also contain a SET KEY ALL statement.

For an example of how to invoke the CSUBLDRP utility, refer to the CUSCSRP subprogram in the SYSCST library.

PDAs used
  • CSABLDRP

  • CSASELFV

  • CSASTD

Files accessed
  • None

CSUBMIT Subprogram (Mainframe)

CSUBMIT Description
What it does Submits a job for execution. The JCL for the job must be in the source buffer.

Note:
This subprogram is used in conjunction with the CSUSUB command. For more information, see JCL Submit Utility (Mainframe), Natural Construct Generation.

PDAs used
  • CSASTD

Files accessed
  • None

CSUBYTES Subprogram

CSUBYTES Description
What it does Calculates the required bytes for a field, based on the field’s Natural format and length. This subprogram receives the length and format of a field and returns the number of bytes occupied by the field.
PDAs used
  • CSABYTES

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csubytes-driver.png

   CTEBYTES             N a t u r a l  C o n s t r u c t             CTEBYTE1 
   Aug 14                Driver for subprogram CSUBYTES                1 of 1 
                                                                              
  Field Format: _        Bytes.......:                                        
  Field Length: _____                                                         
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUCASE Subprogram

CSUCASE Description
What it does Converts a string to upper/lower/mixed case. This subprogram receives a string and a desired function. It converts and returns the string as follows:
  • If the function is "U", this subprogram converts all alpha characters in the string to upper case.

  • If the function is "L", it converts all alpha characters to lower case.

  • If the function is "M", it converts the alpha characters as follows:

    • Removes leading hash (#) or plus (+) characters

    • Replaces all dashes (-) and underscores (_) with blanks

    • Converts the first character, as well as all characters following a dash or underscore, to upper case

PDAs used
  • CSACASE

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csucase-driver.png

   CTECASE               N a t u r a l  C o n s t r u c t            CTECASE1 
   Aug 14                 Driver for subprogram CSUCASE                1 of 1 
                                                                              
  Function: _    U=Upper, L=Lower, M=Mixed Case                               
  String..: _________________________________________________________________ 
            ___________________________________                               
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUCCMD Subprogram

CSUCCMD Description
What it does Generates command block delimiters into the Natural source buffer for super models (generate multiple modules). This subprogram receives a command type, an eight-character module name, a module type, and, optionally, a model name.

Natural Construct evaluates the contents of these command blocks after it processes the pre-generation subprogram for the super model. Before continuing the generation, Natural Construct either creates the child model specification or saves, stows, and catalogs the contents of the command block.

CSUCCMD must always be called twice — first to initialize the command block and then to close it after generating the contents of the command block.

Notes:

  1. See the CSLCCMD local data area for valid command values.
  2. You cannot use nested command blocks.
PDAs used
  • CSACCMD

  • CSASTD

Files accessed
  • None

CSUCENTR Subprogram

CSUCENTR Description
What it does Centers a text string. This subprogram centers text, such as headings, within a variable. The length passed to this subprogram should be one of the following:
  • the length of the variable that stores the heading

  • the length of the AL parameter that displays the variable that stores the heading

PDAs used
  • CSACENTR

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csucentr-driver.png

   CTECENTR             N a t u r a l  C o n s t r u c t             CTECNTR1 
   Aug 14                Driver for subprogram CSUCENTR                1 of 1 
                                                                              
  Length: ___                                                                 
                                                                              
  String: _________________________________________________________________   
          ___________________________________                                 
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUCOMPR Subprogram

CSUCOMPR Description
What it does Generates an IF clause for two structures. The subprogram receives two structure names and a list of underlying components to compare. It generates the IF clause according to the criteria requested (LT, LE, GT, GE).

Note:
DB2 users should use the CSUDB2SP subprogram to compare key values (see CSUDB2SP Subprogram for a description).

PDAs used
  • CSACOMPR CSASTD

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csucompr-driver.png

   CTECOMPR             N a t u r a l  C o n s t r u c t             CTECOMP1 
   Aug 14                Driver for subprogram CSUCOMPR                1 of 1 
                                                                              
  Comparison Operator.: __    Lhs Structure: ________________________________ 
  Tab.................: ___   Rhs Structure: ________________________________ 
  No. Of Components...: ___                                                   
                               Component Fld Name                             
                      +----------------------------------+                    
                  1__ | ________________________________ |                    
                      | ________________________________ |                    
                      | ________________________________ |                    
                      | ________________________________ |                    
                      | ________________________________ |                    
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                    bkwrd frwrd                   mai 

CSUCTRL Subprogram

CSUCTRL Description
What it does Retrieves information from the Natural Construct control record and sets the PF-keys, help indicator, underscore characters, position indicators, disable indicator, scroll indicator, “of” right prompt, and dynamic attributes for Natural Construct.
PDAs used
  • CU--PDA

  • CSASTD

Files accessed
  • NCST-CONTROL

CSUCURS Subprogram

CSUCURS Description
What it does Determines the position of the field in which the cursor is placed. This subprogram is invoked when runtime translation is requested. It determines the message numbers and positions associated with fields in a translation LDA and invokes the CSUTLATE subprogram to perform runtime translation. For more information, see CSUTLATE Subprogram.
Parameters/PDAs used
  • #TRANSLATION-DATA(A1/1:V)

  • #SYSERR-APPL(A8)

  • #DATA-AREA-NAME(A8)

  • #TEXT-REQUIRED(L)

  • #LENGTH-OVERRIDE(I4)

  • CSACURS

  • CSASTD

Files accessed
  • None

CSUCURS1 Subprogram

CSUCURS1 Description
What it does Determines the position of a single field in which the cursor is placed. This subprogram is invoked whenever runtime translation of a single field is requested. It determines the message number and position associated with the field and invokes the CSUTLATE subprogram to perform runtime translation. For more information, see CSUTLATE Subprogram.
Parameters/PDAs used
  • #TRANSLATION-DATA(A1/1:V)

  • #SYSERR-APPL(A8)

  • CSASTD

Files accessed
  • None

CSUDB2SP Subprogram

CSUDB2SP Description
What it does Generates a FIND statement for a superdescriptor. This statement retrieves DB2 records based on a complex key definition. If a complex key is composed of 5 fields (Field1, Field2, Field3, Field4, and Field5), for example, the generated FIND/WHERE clause is:
Field1 GE #INPUT.Field1
SORTED BY Field1
          Field2
          Field3
          Field4
          Field5
WHERE Field2 GE #INPUT.Field2
AND Field3 GE #INPUT.Field3
AND Field4 GE #INPUT.Field4
AND Field5 GE #INPUT.Field5
OR Field1 GE #INPUT.Field1
AND Field2 GE #INPUT.Field2
AND Field3 GE #INPUT.Field3
AND Field4 GT #INPUT.Field4
OR Field1 GE #INPUT.Field1
AND Field2 GE #INPUT.Field2
AND Field3 GT #INPUT.Field3
OR Field1 GE #INPUT.Field1
AND Field2 GT #INPUT.Field2
OR Field1 GT #INPUT.Field1

Note:
#INPUT is the qualifier for the RHS fields of the in equations.

PDAs used
  • CSADB2SP

  • CU--PDA

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csudb2sp-driver.png

   CTEDB2SP             N a t u r a l  C o n s t r u c t             CTEDB2S1 
   Aug 14                Driver for subprogram CSUDB2SP                1 of 1 
                                                                              
  *File Name.........: ________________________________   Find Next Record: _ 
  *Field Name........: ________________________________                       
   Function..........: ________________________________                       
                                                                              
   LHS Structure.....: ________________________________                       
   LHS Index.........: _______________                                        
   RHS Structure.....: ________________________________                       
   RHS Index.........: ________________________________                       
                                                                              
   Prefix Length.....: ___                                                    
   Low Key Structure : ________________________________                       
   High Key Structure: ________________________________                       
                                                                              
   Tab...............:                                                        
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUDELFF Subprogram

CSUDELFF Description
What it does Deletes the lines containing */ in the edit buffer. This subprogram searches for and deletes the lines containing */ in the edit buffer. These lines are written by WRITE/PRINT statements when the DEFINE PRINTER OUTPUT 'SOURCE' statement is used.
PDAs used
  • None

Files accessed
  • None

Drivers Menu Option

graphics/locate-csudelff-driver.png

   CTEDELFF             N a t u r a l  C o n s t r u c t             CTEMAP1  
   Aug 14                Driver for subprogram CSUDELFF               1 of 1  
                                                                              
                     +------------------------------------+                   
                     |                                    |                   
                     |       PRESS ENTER TO EXECUTE.      |                   
                     |                                    |                   
                     +------------------------------------+                   
                                                                              
                          Read in New Source: _                               
                         *New Source Name...: ________                        
                          New Source Library: DEVPR___                        
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUDEFLT Subprogram

CSUDEFLT Description
What it does Provides default specification values for Natural Construct models. This subprogram provides an interface between generated applications and the user-maintained CSXDEFLT sample exit subprogram. To override the default settings, modify CSXDEFLT. The CCDEFLTA, CCDEFLTL, and CCDEFLTN copycode members return defaults for alphanumeric, logical, and numeric values, respectively.
PDAs used
  • CSADEFLT

  • CSASTD

Files accessed
  • None

CSUDYNAT Subprogram

CSUDYNAT Description
What it does Builds parameters containing dynamic attributes. This subprogram receives a set of dynamic attribute characters in the CSADYNA.#ATTRIBUTE-CHARS(A11/1:13) field and builds the definition for the DY= parameter. The positioning within this array indicates the type of dynamic attribute assigned. The positions and attributes are:
  • 1 (normal intensity)

  • 2 (intensified)

  • 3 (blinking)

  • 4 (cursive/italic)

  • 5 (underlined)

  • 6 (reversed video)

  • 7 (blue)

  • 8 (green)

  • 9 (neutral/white)

  • 10 (pink)

  • 11 (red)

  • 12 (turquoise)

  • 13 (yellow)

For example, if you enter:

#ATTRIBUTE-CHARS(1) = '}'
#ATTRIBUTE-CHARS(2) = '{'

This subprogram returns:

#DY-PARAMETER = DY={I

If the caller’s attributes are printable special characters, they are represented literally. Otherwise, they are represented using the HH syntax.

Notes:

  1. The dynamic attribute character specified in position 1, which corresponds to normal intensity, is always coded at the end of the DY= parameter.
  2. Programs containing those represented in hex may not be portable.
PDAs used
  • CSADYNAT

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csudynat-driver.png

   CTEDYNAT             N a t u r a l  C o n s t r u c t             CTEDYNT1 
   Aug 14                Driver for subprogram CSUDYNAT                1 of 1 
                                                                              
                              Attribute Characters                            
                              --------------------                            
                                                                              
      (1) Normal Intensity..: _                 (8) Green.............: _     
      (2) Intensified.......: _                 (9) Neutral (white)...: _     
      (3) Blinking..........: _                (10) Pink..............: _     
      (4) Cursive/Italic....: _                (11) Red...............: _     
      (5) Underlined........: _                (12) Turquoise.........: _     
      (6) Reversed Video....: _                (13) Yellow............: _     
      (7) Blue..............: _                                               
                                                                              
      Dynamic Attribute Parameter:                                            
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUEMLEN Subprogram

CSUEMLEN Description
What it does Determines the number of characters (bytes) required to display an edit mask. This subprogram receives the name of an edit mask and the format of the field to which the edit mask is applied. It returns the number of characters (bytes) required to display the edit mask.
PDAs used
  • CSAEMLEN

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csuemlen-driver.png

   CTEEMLEN             N a t u r a l  C o n s t r u c t             CTEMLEN1 
   Aug 14                Driver for subprogram CSUEMLEN                1 of 1 
                                                                              
  Edit Mask.....: ______________________________________________________      
  Field Format..: __                                                          
                                                                              
  Display Length:                                                             
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUENDX Subprogram

CSUENDX Description
What it does Generates the end of a user exit prompt. This subprogram is used by sample subprograms that generate multiple user exits. Call this subprogram after each user exit is generated.

Note:
You do not need to call this subprogram after the last user exit.

PDAs used
  • None

Files accessed
  • None

Drivers Menu Option

graphics/locate-csuendx-driver.png

   CTEENDX             N a t u r a l  C o n s t r u c t             CTEMAP1   
   Aug 14                 Driver for subprogram CSUENDX               1 of 1  
                                                                              
                     +------------------------------------+                   
                     |                                    |                   
                     |       PRESS ENTER TO EXECUTE.      |                   
                     |                                    |                   
                     +------------------------------------+                   
                                                                              
                          Read in New Source: _                               
                         *New Source Name...: ________                        
                          New Source Library: DEVPR___                        
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUFDEF Subprogram

CSUFDEF Description
What it does Validates a field definition. This subprogram receives the Natural format and length of a field and a list of invalid field formats to disallow. To disallow control variables as input variables, for example, list the invalid formats in the CSAFDEF.#INVALID FORMATS field. If the field definition is valid, nothing is returned in CSUFDEF.

If the field definition is invalid, CSASTD.MSG and CSASTD.ERROR-FIELD contain an error message and the invalid component of the field (FIELD-FORMAT, DECIMALS, or UNIT).

PDAs used
  • CSAFDEF

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csufdef-driver.png

   CTEFDEF               N a t u r a l  C o n s t r u c t            CTEFDEF1 
   Aug 14                 Driver for subprogram CSUFDEF                1 of 1 
                                                                              
  Field Format...: _           Invalid Formats: __________                    
  Field Length...: _____                                                      
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUFRVAR Subprogram

CSUFRVAR Description
What it does Returns the parameters and conditions from the model code frames. This subprogram receives a model name and traverses its code frames. It returns the code frame parameters and conditions.
PDAs used
  • CSAFRVAR

  • CSASTD

Files accessed
  • NCST-FRAME-LINES

  • NCST-MODEL

Drivers Menu Option

graphics/locate-csufrvar-driver.png

   CTEFRVAR             N a t u r a l  C o n s t r u c t             CTEFRVR1 
   Aug 14                Driver for subprogram CSUFRVAR                1 of 1 
                                                                              
   *Model Name: ________________________________                              
                                                                              
   No. Of Conditions : 0                                                      
   No. Of Frame Parms: 0                                                      
   +---------------------------------------+--------------------------------+ 
   |  1__        Conditions                |      1__  Frame Parameters     | 
   |  --------------------------------     |     -------------------------- | 
   |                                       |                                | 
   |                                       |                                | 
   |                                       |                                | 
   |                                       |                                | 
   |                                       |                                | 
   +---------------------------------------+--------------------------------+ 
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                    bkwrd frwrd                   mai 

CSUGEN Subprogram

CSUGEN Description
What it does Issues a CALLNAT to the Natural Construct Generate function for a specified module. This subprogram receives the names of a model PDA and a model information PDA (CSAMODEL, which must contain the name of the model) and uses the inputs to generate the module code into the Natural source buffer. When the CALLNAT is made to the module, the code is appended to the contents of the source buffer. The source buffer name or type does not change.

Notes:

  1. The specified model PDA must contain the model parameters required for generation.
  2. This subprogram requires a NATPARM SSIZE of 55 or greater.
PDAs used
  • CSAGEN

  • CSAMODEL

  • CU--PDA

  • CSASTD

Files accessed
  • NCST-ADA

CSUHEADS Subprogram

CSUHEADS Description
What it does Separates a line of headings into separate headings. This subprogram receives a line of headings and returns three separate headings (each with the length of longest heading).
PDAs used
  • CSAHEADS

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csuheads-driver.png

   CTEHEADS             N a t u r a l  C o n s t r u c t             CTEHEAD1 
   Aug 14                Driver for subprogram CSUHEADS                1 of 1 
                                                                              
  Headings: ______________________________   Field Headings Stacked           
                                             ----------------------           
  Field Heading Width: 0                                                      
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUINCL Subprogram

CSUINCL Description
What it does Inserts the source for all copycode (currently in the edit buffer) into the edit buffer.
PDAs used
  • None

Files accessed
  • None

Drivers Menu Option

graphics/locate-csuincl-driver.png

   CTEINCL             N a t u r a l  C o n s t r u c t             CTEMAP1   
   Aug 14                 Driver for program CSUINCL                 1 of 1   
                                                                              
                     +------------------------------------+                   
                     |                                    |                   
                     |       PRESS ENTER TO EXECUTE.      |                   
                     |                                    |                   
                     +------------------------------------+                   
                                                                              
                          Read in New Source: _                               
                         *New Source Name...: ________                        
                          New Source Library: DEVPR___                        
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUIS Subprogram

CSUIS Description
What it does Verifies whether the contents of an alphanumeric field can be converted to a specified format and length. If the format and length are invalid Natural formats, CSASTD.MSG contains an error message when this subprogram is invoked. If the format and length are valid, CSASTD.MSG is blank.

In some cases, a user must specify a value using a certain (variable) format and length. For example, the minimum/maximum key values should be valid values corresponding to the format and length of the key. You cannot use the Natural IS function because the format is not known until runtime.

PDAs used
  • CSAIS

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csuis-driver.png

   CTEIS                 N a t u r a l  C o n s t r u c t            CTEIS1   
   Aug 14                  Driver for subprogram CSUIS               1 of 1   
                                                                              
    Field Value.: __________________________________________________          
    Field Format: _                                                           
    Field Length: ___                                                         
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSULABEL Subprogram

CSULABEL Description
What it does Verifies a Natural looping label. This subprogram receives a string of characters and validates it against the Natural label naming convention. ; if the label is not valid, CSASTD.MSG contains an error message.
  • If the label is valid, CSASTD.MSG is blank

  • If the label is not valid, CSASTD.MSG contains an error message

Parameters/PDAs used
  • #PDA-LABEL(A32)

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csulabel-driver.png

  CTELABEL             N a t u r a l  C o n s t r u c t             CTELABL1 
  Aug 14                Driver for subprogram CSULABEL                1 of 1 
                                                                             
   Label: ________________________________                                   
                                                                             
   Msg..: __________________________________________________________________ 
                                                                             
                                                                             
                                                                             
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
       help  retrn quit                                                  mai 

CSULENGT Subprogram

CSULENGT Description
What it does Builds an input prompt and calculates the length of the heading. This subprogram receives a field name, format, and length. It builds the input prompt from the field headings (if no heading was given, the field name is converted to mixed case) and calculates the length from the format, length, and edit mask. It also returns the heading length and sign option (based on the field format and edit mask).
PDAs used
  • CSALENGT

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csulengt-driver.png

   CTELENGT             N a t u r a l  C o n s t r u c t             CTELNGT1 
   Aug 14                Driver for subprogram CSULENGT                1 of 1 
                                                                              
  Field Name....: ________________________________   Field Length....: ______ 
  Field Headings: ______________________________     Field Format....: _      
                : ______________________________     Sign............: _      
                : ______________________________                              
                                                                              
  Edit Mask.....: ______________________________________________________      
                                                                              
  Input Prompt..:                                    Heading Length..:        
  Sg Option.....:                                    Fld Displ Length:        
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSULPS Subprogram

CSULPS Description
What it does Changes the display language (*Language value) and sets the translation required flag to True. This subprogram displays a list of all available languages supported by Natural. When a new language is selected, it switches the user’s session to that language and sets the translation required flag to True.
Parameter/PDAs used
  • #PDA-TRANSLATION-REQUIRED (L)

  • CSASTD

Files accessed
  • SYSDIC-FI

CSUMAX Subprogram

CSUMAX Description
What it does Generates the assignment of a maximum value for a field. This subprogram receives the name, format, and length of a variable and generates the assignment of the maximum value for the field into the edit buffer. It is used when reading a file for all values with a specified prefix, where the suffix extends from the lowest to the highest value.
PDAs used
  • CSAMAX

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csumax-driver.png

   CTEMAX               N a t u r a l  C o n s t r u c t             CTEMAX1  
   Aug 14                 Driver for subprogram CSUMAX                1 of 1  
                                                                              
  Field : _________________________________________________________________   
  Format: _                                                                   
  Length: _____                                                               
  Tab...: __                                                                  
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUMIMAX Subprogram

CSUMAX Description
What it does Generates the assignment of a minimum value for a field. This subprogram receives the name of a variable and its format and length. It generates the assignment of the minimum/maximum values for the field into the edit buffer.
PDAs used
  • CSAMIMAX

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csumimax-driver.png

      CTEMIMAX             N a t u r a l  C o n s t r u c t             CTEMIMX1 
   Aug 14                Driver for subprogram CSUMIMAX                1 of 1 
                                                                              
  Field : _________________________________________________________________   
                                                                              
  Format: __        Minimum Value: _     Non Negative Min/Max: _    Tab: __   
  Length: _____     Descending...: _     DB2 Date/Time Stamp : _              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUMODEL Subprogram

CSUMORE Description
What it does Returns information about a Natural Construct model. This subprogram receives the name of a model and returns the model description, generator mode and type, and the names of the model PDA, subprograms, and code frames.
PDAs used
  • CSAMODEL

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csumodel-driver.PNG

   CTEMODEL             N a t u r a l  C o n s t r u c t             CTEMODL1 
   Aug 14                Driver for subprogram CSUMODEL                1 of 1 
                                                                              
   *Model Name.......: ________________________________                       
    Model Description:                                                        
                                                                              
    No. Modify Subps:      Modify Subps  Code Frames  Clear Subp...:          
    No. Code Frames :      ------------  -----------  Read Subp....:          
    Generator Mode..:                                 Save Subp....:          
    Generator Type..:                                 Pre-Gen Subp.:          
    Display Window..:                                 Post-Gen Subp:          
    Start Comment...:                                 Doc Subp.....:          
    End Comment.....:                                 Pda Name.....:          
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUMORE Subprogram

CSUMORE Description
What it does Builds the initial assignment for the LEFT-MORE/RIGHT-MORE array. This subprogram receives a function (L for the LEFT-MORE array, R for the RIGHT-MORE) and the number of panels used by a program. These arrays contain the prompts displayed at the top left or right corner of the panels. The prompts indicate the number of panels located to the left or right of the current panel.

For example, to generate the initial value for the LEFT-MORE-PROMPT array for a program with two panels, enter:

CSAMORE.#LEFT-RIGHT = 'L'
CSAMORE.#MAX-WINDOW = 2

The subprogram writes the following to the source buffer:

INIT < '	','<1 more' >

To generate the initial value for the RIGHT-MORE-PROMPT array for a program with two panels, enter:

CSAMORE.#LEFT-RIGHT = 'R'

The subprogram writes the following to the source buffer:

INIT < '1 more >','' >

Note:
If the value of *Language is not 1 during generation, the word “more” is not included in the initial values.

Tip:
Use a scalar field rather than an occurrence of this array. Before the map is displayed, assign the array occurrence to the scalar field. Using arrays on maps makes them difficult to maintain and less suitable to use as standard layouts.

PDAs used
  • CSAMORE

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csumore-driver.png

   CTEMORE              N a t u r a l  C o n s t r u c t             CTEMORE1 
   Aug 14                 Driver for subprogram CSUMORE                1 of 1 
                                                                              
  Left/Right:  _ (L or R)                                                     
  Max Windows: __                                                             
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

Note:
For more information on changing the size of the left or right prompt, see Use CSXDEFLT Overrides.

CSUMPBOX Subprogram

CSUMPBOX Description
What it does Handles the map edit buffer. This subprogram receives a function and parameters (in CSAMPBOX). It initializes the map edit buffer or generates variable, array, and text control blocks into the edit buffer.
PDAs used
  • CSAMPBOX

  • CSASTD

Files accessed
  • None

CSUMPCPR Subprogram

CSUMPCPR Description
What it does Replaces the map settings in the edit buffer with values from the CSAMPSET parameter data area.
PDAs used
  • CSAMPSET

  • CSASTD

Files accessed
  • None

CSUMPDUP Subprogram

CSUMPDUP Description
What it does Checks for the duplication of fields on a map. This subprogram determines whether there are any fields duplicated in the CSAMPFLD.FIELD-INFO(*) structure. If there are duplicate fields, CSASTD.MSG contains an error message when this subprogram is invoked.
PDAs used
  • CSAMPFLD

  • CSASTD

Files accessed
  • None

CSUMPLAY Subprogram

CSUMPLAY Description
What it does Loads the map layout into the edit buffer and returns the map settings. This subprogram receives the name, layout, and type of map and loads the specified map into the edit buffer. It returns the map settings.
PDAs used
  • CSAMPSET

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csumplay-driver.png

   CTEMPLAY             N a t u r a l  C o n s t r u c t             CTEMPLY1 
   Aug 14                Driver for subprogram CSUMPLAY                1 of 1 
                                                                              
  *Layout..: ________      Error Code :            Dc:     Zp............:    
                           Map Version:            Ps:     Pm............:    
                           Profile....:            Ls:     Cursor Skip...:    
                                                                              
   Delimiter Class..:                                      Std Keys......:    
   Ad...............:                                      Justification :    
   Delimiter Char...:                                      Col Shift.....:    
   Cd...............:                                      Case Deflt....:    
                                                                              
   Write Statement..:      CV.........:                    Auto Rule Rank:    
   Input Statement..:      Filler Char:                    Enforce Attr..:    
                                                                              
   Help.............:                                                         
   Help-As-Fld-Deflt:                                                         
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUMPMMS Subprogram

CSUMPMMS Description
What it does Merges the settings for two maps. This subprogram merges the map settings from CSAMPSET and CSAMPOUT. The settings in CSAMPSET override the settings in CSAMPOUT and the result is stored in CSAMPOUT.
PDAs used
  • CSAMPSET

  • CSAMPOUT

Files accessed
  • None

CSUMPOVL Subprogram

CSUMPOVL Description
What it does Checks the boundary on a map and determines if there are overlapping fields. This subprogram checks whether the fields specified in CSAMPFLD exceed the line size or page size of the available map panel.

The available map panel is a block of consecutive lines on the panel. This block is determined by the specified page and line size, excluding the map layout and any PF-keys. The fields on the map cannot overlay the layout or PF-keys.

PDAs used
  • CSAMPFLD

  • CSASTD

Files accessed
  • None

CSUMPREG Subprogram

CSUMPREG Description
What it does Determines the available map area in a map layout. This subprogram determines the first and last line on a map that is available for editing in a specified map layout.
PDAs used
  • CSAMPREG

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csumpreg-driver.png

   CTEMPREG             N a t u r a l  C o n s t r u c t             CTEMPRG1 
   Aug 14                Driver for subprogram CSUMPREG                1 of 1 
                                                                              
                                                                              
   *Layout: ________   First Available Line:         Layout Page Size:        
                       Last  Available Line:         Layout Line Size:        
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUMPTAB Subprogram

CSUMPTAB Description
What it does Calculates the absolute field coordinates on a map and creates the field prompts. This subprogram receives field information from CSAMPFLD and returns the absolute field positions and prompts in CSAMPX-Y. Dots are added to each field prompt in a region to extend its length to that of the longest prompt in that region (... for ISA format and . . . for SAA format).

Note:
For more information about the data returned, refer to the CSAMPX-Y data area in the SYSCST library.

PDAs used
  • CSAMPFLD

  • CSAMPX-Y

  • CSASTD

Files accessed
  • None

CSUMPTST Subprogram

CSUMPTST Description
What it does Tests the specifications for the map currently in the edit buffer.
PDAs used
  • CSAMPTST

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csumptst-driver.png

   CTEMPTST             N a t u r a l  C o n s t r u c t             CTEMTST1 
   Aug 14                Driver for subprogram CSUMPTST                1 of 1 
                                                                              
     Read in New Map: _             Page Size: 23_                            
    *Map Name.......: ________      Line Size: 80_                            
     Map Library....: DEVPR___                                                
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUNATFM Subprogram

CSUNATFM Description
What it does Builds a valid Natural format definition from the formats and lengths specified. This subprogram receives the format and length values and combines these to build a valid Natural format string. For example, if you enter:
CSANATFM.FIELD-LENGTH = 9.0
CSANATFM.FIELD-FORMAT = 'P'

CSUNATFM produces the following output:

CSANATFM.#Natural-FORMAT = P9
PDAs used
  • CSANATFM

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csunatfm-driver.png

   CTENATFM             N a t u r a l  C o n s t r u c t             CTENTFM1 
   Aug 14                Driver for subprogram CSUNATFM                1 of 1 
                                                                              
    Field Format: _         Natural Format:                                   
    Field Length: _____                                                       
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUNEWX Subprogram

CSUNEWX Description
What it does Generates a new user exit prompt. This subprogram receives the name of a user exit and generates a starting point (DEFINE EXIT exit-name, for example) for the user exit. It initiates a new user exit for sample subprograms that are capable of generating more than one exit.
PDAs used
  • CSANEWX

Files accessed
  • None

Drivers Menu Option

graphics/locate-csunewx-driver.png

        CTENEWX          N a t u r a l  C o n s t r u c t       CTENEWX1 
        Aug 14            Driver for subprogram CSUNEWX           1 of 1 
                                                                         
                User Exit Name: ________________________________         
                                                                         
       Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--
             help  retrn quit                                            

CSUOG Subprogram

CSUOG Description
What it does Comments out all code within a specified user exit. This subprogram receives the name of a user exit and inserts comment indicators at the beginning of each line of code within the specified exit.

Specify the name of the user exit in the #USER-EXIT (A65) variable. For example, to comment out all code within the MOVE-TO user exit, specify the following:

0040   01 #USER-EXIT (A65)
.
.
.
3800     #USER-EXIT := 'MOVE-TO'
3810     CALLNAT 'CSUOG' #USER-EXIT
PDAs used
  • CSAOG

Files accessed
  • None

CSUPARMS Subprogram

CSUPARMS Description
What it does Returns the value of a NATPARM parameter. This subprogram receives a NATPARM parameter and returns its corresponding value. Valid NATPARM parameters are:
  • CF

  • DC

  • IA

  • ID

  • KD

  • ML

  • TB

  • UL

Note:
For information about INPUT/OUTPUT parameters, refer to the CSAPARMS data area in the SYSCST library.

PDAs used
  • CDUPARMA

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csuparms-driver.png

   CTEPARMS             N a t u r a l  C o n s t r u c t             CTEPARM1 
   Aug 14                Driver for subprogram CSUPARMS                1 of 1 
                                                                              
    Parameter....: __  (ID,CF,UL,TB,IA,DC,KD,ML)                              
    Alpha Value..:                                                            
    Numeric Value:                                                            
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUPARTY Subprogram

CSUPARTY Description
What it does Determines Natural data types and returns the byte length. This subprogram receives the format and length for a data type and indicates whether it is a valid Natural data type. If it is, this subprogram returns the byte length.
PDAs used
  • CSAPARTY

  • CSASTD

Files accessed
  • None

CSUPPER Program

CSUPPER Description
What it does Converts the contents of the source buffer into upper case. This program reads through the source buffer and converts specified lower case characters into upper case.
PDAs used
  • None

Files accessed
  • None

Drivers Menu Option

graphics/locate-csupper-driver.png

   CTEPPER               N a t u r a l  C o n s t r u c t            CTEMAP1  
   Aug 14                   Driver for program CSUPPER                1 of 1  
                                                                              
                     +------------------------------------+                   
                     |                                    |                   
                     |       PRESS ENTER TO EXECUTE.      |                   
                     |                                    |                   
                     +------------------------------------+                   
                                                                              
                          Read in New Source: _                               
                         *New Source Name...: ________                        
                          New Source Library: DEVPR___                        
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUREADS Subprogram

CSUREADS Description
What it does Reads the specification parameters for a module. This subprogram receives the name of a source module. If the module was generated using Natural Construct, the subprogram reads the source code and returns the model parameter data area (PDA) containing the parameters used to generate the module.

You can use the passed model PDA to call the model subprograms for the model used to generate the module.

This subprogram also returns a data area describing the model and listing the names of the model subprograms.

Note:
This subprogram requires a NATPARM SSIZE of 55 or greater.

Parameters/PDAs used
  • #READ-THIS-MODULE(A8)

  • CSAMODEL

  • CU--PDA

  • CSASTD

Files accessed
  • NCST-ADA

  • SYSTEM-FUSER

Tip:
If you know the name of the model used to generate the specified module, you can pass its model PDA to CSUREADS rather than CU--PDA. After the call to CSUREADS, the model PDA is populated with the parameters used to generate that module.

CSUREF Subprogram

CSUREF Description
What it does Generates referential integrity checks against foreign files. This subprogram is typically called three times: once to generate the data structures (DATA) required by the generated code, once to generate the update edits (UPDATE), and once to generate the delete edits (DELETE). Set the value of CSAREF.FUNCTION-CODE to either DATA, UPDATE, or DELETE.

After the first call, this subprogram returns the number of update and delete edits found. This avoids unnecessary subsequent calls.

PDAs used
  • CSAREF

  • CU--PDA

  • CSASTD

Files accessed
  • SYSDIC-RL

  • SYSDIC-FI

CSUSCAN Subprogram

CSUSCAN Description
What it does Scans for the existence of a string in the edit buffer. This subprogram receives a string and scans for (not absolute) the existence of the string in the edit buffer.
PDAs used
  • CSASCAN

Files accessed
  • None

Drivers Menu Option

graphics/locate-csuscan-driver.png

   CTESCAN               N a t u r a l  C o n s t r u c t            CTESCAN1 
   Aug 14                 Driver for subprogram CSUSCAN                1 of 1 
                                                                              
    String..: _______________________________________________________________ 
    Absolute: _ (Mark if scan string need not be delimited by special chars)  
    Found...: _                                                               
                                                                              
    Read in New Source: _                                                     
   *New Source Name...: ________                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUSELFV Subprogram

CSUSELFV Description
What it does Selects fields/variables from views, LDAs, or PDAs. This subprogram selects up to 40 fields/variables from up to 6 different views, LDAs, or PDAs and appends the selected fields/variables to CSASELFV. Existing fields/variables in CSASELFV cannot be re-selected.

When selecting from data areas, you cannot select the following:

  • constants

  • more than one structure

If you specify the select all option, then the first structure in the data area is selected.

The invoking subprogram should issue an initial RESET statement to clear the structures in CSASELFV, such as:

RESET CSASELFV
CSASELFV.GENERAL-INFORMATION
CSASELFV.FIELD-SPECIFICATION(*)
PDAs used
  • CSASELFV

  • CSASTD

Files accessed
  • None

CSUSETKY Subprogram

CSUSETKY Description
What it does Returns PF-key definitions from the control record to support variable PF-keys in Natural Construct. The PF-key names are returned in the CSASETKY.#PF-NAME(*) array. The index for each array element corresponds to the PF-key number. The following example indicates that PF1 is named “help”:
#PF-NAME(1) = 'help'
PDAs used
  • CSASETKY

  • CSASTD

Files accessed
  • NCST-CONTROL

Drivers Menu Option

graphics/locate-csusetky-driver.png

   CTESETKY             N a t u r a l  C o n s t r u c t             CTESETK1 
   Sep 07                Driver for subprogram CSUSETKY                1 of 1 
                                                                              
            Pf Name           Pf Number                    Pf Key             
            -------           ---------                    ------             
             main           Main......: 12          Pf Main......: PF12       
             retrn          Return....: 2           Pf Return....: PF2        
             quit           Quit......: 3           Pf Quit......: PF3        
             test           Test......: 4           Pf Test......: PF4        
             bkwrd          Backward..: 7           Pf Backward..: PF7        
             frwrd          Forward...: 8           Pf Forward...: PF8        
             left           Left......: 10          Pf Left......: PF10       
             right          Right.....: 11          Pf Right.....: PF11       
             help           Help......: 1           Pf Help......: PF1        
                            Available1: 5           Pf Available1: PF5        
                            Available2: 6           Pf Available2: PF6        
                            Available3: 9           Pf Available3: PF9        
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUSETW Subprogram

CSUSETW Description
What it does Returns the SET CONTROL parameters to define a window. This subprogram receives the parameters for a window (such as frame, line size, column size, base line, and base column). It returns the SET CONTROL parameters to define the window. For example, if the parameters are:
CSASETW.FRAME=TRUE
CSASETW.LINE-SIZE=70
CSASETW.COLUMN-SIZE=5

This subprogram returns:

CSASETW.SET-CONTROL.PARM='WBFL70C5'
PDAs used
  • CSASETW

  • CSASTD

Files accessed
  • None

Drivers Menu Option

graphics/locate-csusetw-driver.png

   CTESETW              N a t u r a l  C o n s t r u c t             CTESETW1 
   Aug 14                 Driver for subprogram CSUSETW                1 of 1 
                                                                              
    Frame......: _ Line Size..: ___  Base Line..: ___  Required Width : ___   
                   Column Size: ___  Base Column: ___  Required Height: ___   
                                                                              
    Set Control Parm:                                                         
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUSORT Program

CSUSORT Description
What it does Sorts a 2-dimensional array based on specified column positions. This subprogram receives a 2-dimensional array and sorts the array based on the desired column positions. A Natural SORTSIZE is not required because the sort uses an internal bubble sort algorithm.

Note:
For an example of how to call this subprogram, refer to the CSASORT data area.

Parameters/PDAs used
  • CSASORT

  • #SORT-DATA(A1/1:V,1:V)

  • CSASTD

Files accessed
  • None

CSUSPLIT Program

CSUSPLIT Description
What it does Splits lines in the source buffer that are longer than 72 characters. Only lines with code extending beyond column 72 are split; lines with comments extending beyond column 72, but not code, are ignored. If a text string (enclosed within quotes) extends beyond column 72, the entire string is moved to the next line.
PDAs used
  • None

Files accessed
  • None

Drivers Menu Option

graphics/locate-csusplit-driver.png

   CTESPLIT              N a t u r a l  C o n s t r u c t           CTEMAP1   
   Aug 14                  Driver for program CSUSPLIT               1 of 1   
                                                                              
                     +------------------------------------+                   
                     |                                    |                   
                     |       PRESS ENTER TO EXECUTE.      |                   
                     |                                    |                   
                     +------------------------------------+                   
                                                                              
                          Read in New Source: _                               
                         *New Source Name...: ________                        
                          New Source Library: DEVPR___                        
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUSUB Program (Mainframe)

CSUSUB Description
What it does Submits a job for execution. The JCL for the job must be in the source buffer. This subprogram is used in conjunction with the CSUSUB command. For information, see JCL Submit Utility (Mainframe), Natural Construct Generation.
PDAs used
  • None

Files accessed
  • None

CSUSUBP Subprogram

CSUSUBP Description
What it does Returns information about a Natural Construct model subprogram, such as the PF-key settings and the window sizes. This subprogram receives the name of a model subprogram and returns information about that subprogram. The information corresponds to the data accessed through the Maintain Subprograms function.

Note:
For more information, see Maintain Subprograms Function.

PDAs used
  • CSASUBP

  • CSASTD

Files accessed
  • NCST-SUBPROGRAM

Drivers Menu Option

graphics/locate-csusubp-driver.png

   CTESUBP              N a t u r a l  C o n s t r u c t             CTESUBP1 
   Aug 15                 Driver for subprogram CSUSUBP                1 of 1 
                                                                              
   Subprogram Name: ________                                                  
   Description....:                                                           
                                                                              
   Backward Forward Flag:    Window Length :      Key Name  No. Other Keys: _ 
   Left Right Flag......:    Window Columns:      --------                    
   Test Key Flag........:                                                     
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSUTEST Program

CSUTEST Description
What it does Tests the subprograms for Natural Construct-generated models. This program tests the individual subprograms for Natural Construct-generated models. For information, see Test the Model Subprograms.
PDAs used
  • None

Files accessed
  • NCST-SUBPROGRAM

  • NCST-CONTROL

Drivers Menu Option

graphics/locate-csutest-driver.png

 CSUTEST                N a t u r a l  C o n s t r u c t               CSUTESM1 
 Aug 14                    Single Module Test Program                  04:54 PM 
                                                                                
 Code Function             *Model: ________________________________             
 ---- -------------------   Number all subprograms to be executed               
  R   Release Variables     |                     |                             
  *   Execute All Subp.     V                     |                             
 1-9  Execute One Subp.     _  Clear : ________   V                             
  E   Edit source           _  Mod  1: ________   _ Mod  6: ________            
  C   Clear Edit Buffer     _  Mod  2: ________   _ Mod  7: ________            
  ?   Help                  _  Mod  3: ________   _ Mod  8: ________            
  .   Terminate             _  Mod  4: ________   _ Mod  9: ________            
 ---- -------------------   _  Mod  5: ________   _ Mod 10: ________            
  _                         _  Pregen: ________   _ Save  : ________            
                 Source     _  Documt: ________   _ Postgn: ________            
                 Lines                                                          
           Total:  133                           Frame Parameter or Exit Name   
                            _  Other : ________ ________________________________
                            _  Other : ________ ________________________________
                            _  Other : ________ ________________________________
                            _  Other : ________ ________________________________
   Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
         help  retrn quit                                                  mai 

CSUTLATE Subprogram

CSUTLATE Description
What it does Translates message text at runtime. This subprogram receives a message number and position value and retrieves the appropriate text. If the message text contains multiple items delimited by a slash (/), the position value identifies which text is translated.

This subprogram is invoked from the CSUCURS and CSUCURS1 subprograms.

PDAs used
  • CSATLATE

  • CSASTD

Files accessed
  • SYSTEM-FUSER

CSUTRANS Subprogram

CSUTRANS Description
What it does Translates screen prompts before they are displayed. This subprogram receives a defined data structure (typically a translation LDA) containing SYSERR message numbers and translates them into the appropriate text.

CSUTRANS reads the supplied data structure, searching for one of two message number patterns: *NNNN or *NNNN.A, where *NNNN identifies the message number and .A identifies a position within the message number. If a message number of the type *NNNN is located, the entire SYSERR message is retrieved. If a message number of type *NNNN.A is located, the portion of the message corresponding to the .A notation is retrieved. A message number can have up to 15 positions: the values 1 to 9 represent the first nine positions, and the values A to F represent the 10th to 15th positions.

To locate the text corresponding to a message number, specify the library in which the SYSERR message numbers and text reside. By default, CSUTRANS checks the SYSERR message CSTLDA library. In most cases, you will create your own SYSERR message library. When you do, enter the library name in the #MESSAGE-LIBRARY field.

In addition to retrieving the appropriate language message text, CSUTRANS searches for any formatting characters and formats the text as appropriate.

CSUTRANS requires a specific data structure. The following example shows the translation LDA for the Standard Parameters panel for the Batch model:

* * **SAG TRANSLATION LDA
* * * used by CTETRANS.	
1 CTE-MAL	
  2 TEXT                        /* Corresponds to syserr message
    3 #GEN-PROGRAM                A   20 INIT<'*2000.1,.'>
    3 #SYSTEM                     A   20 INIT<'*2000.2,+'>
    3 #GDA                        A   20 INIT<'*2000.3,>'>
    3 #TITLE                      A   20 INIT<'*2001.1,+/16'>
    3 #DESCS                      A   20 INIT<'*2001.2,.'>
    3 #GDA-BLOCK                  A   20 INIT<'*2001.3,>'>
    3 #MAP-HEADER1                A   20 INIT<'*2049.1,./18'>
    3 #MAP-HEADER2                A   20 INIT<'*2049.2,>/18'>
    3 #USE-MSG-NR                 A   20 INIT<'*2050.1,.'>
    3 #PASSWORD-CHECK             A   20 INIT<'*2050.2,./20'>
  2 TEXT
    3 TRANSLATION-TEXT
      4 TEXT-ARRAY                A    1 (1:200)
  2 ADDITIONAL-PARMS
    3 #MESSAGE-LIBRARY            A    8 INIT<'CSTLDA'>
    3 #LDA-NAME                   A    8 INIT<'CTE-MAL'>
    3 #TEXT-REQUIRED              L      INIT<TRUE>
    3 #LENGTH-OVERRIDE            I    4  /* Length to translate	
	

Other details about the structural elements include:

  • The first comment line (**SAG TRANSLATION LDA) indicates that this is a translation LDA. During a static install, Natural Construct scans for this comment line and replaces the SYSERR numbers with the appropriate text.

  • The CTE-MAL level 1 structure name is typically the LDA name; use this qualifier whenever the variables are accessed.

  • The level 3 variables (#GEN-PROGRAM, #SYSTEM, #GDA, etc.) are screen prompts that are initialized with a valid SYSERR number. All SYSERR numbers use the *NNNN.A notation and are listed in sequential order.

    Note:
    This sequence does not apply to positions after the period within the *NNNN.A notation. For example, you can list *2000.2 before *2001.1.

  • The TEXT-ARRAY value must match the total number of bytes in all prompt variables to be translated.

  • The #MESSAGE-LIBRARY value indicates the SYSERR library in which the text is stored.

  • The #TEXT-REQUIRED logical indicates whether translation is required, If it is, this field ensures that translation is performed only once.

Notes:

  1. For more information about SYSERR message numbers, see Use SYSERR References.
  2. For more information about formatting the message text, see Format SYSERR Message Text.
PDAs used
  • CSATRANS

  • CSASTD

Files accessed
  • SYSTEM-FUSER

Drivers Menu Option

graphics/locate-csutrans-driver.png

  CTETRANS         ***** Natural Related subprograms *****                    
  Oct 21              - Driver for subprogram CSUTRANS -               1 of 1 
                                                                              
  Translation LDA .... CTE-MAL                                                
                                                                              
  Input Parameters ... #GEN-PROGRAM *2000.1,.___________                      
                       #SYSTEM *2000.2,+___________                           
                       #GDA *2000.3,>___________                              
                       #TITLE *2001.1,+/16________                            
                       #DESCS *2001.2,.___________                            
                       #GDA-BLOCK *2001.3,>___________                        
                       #MAP-HEADER1 *2049.1,./18________                      
                       #MAP-HEADER2 *2049.2,>/18________                      
                       #USE-MSG-NR *2050.1,.___________                       
                       #PASSWORD-CHECK *2050.2,./20________                   
                       #MESSAGE-LIBRARY CSTLDA__                              
                       #LDA-NAME CTE-MAL_                                     
                       #TEXT-REQUIRED X                                       
                       #LENGTH-OVERRIDE __________0                           
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help        quit        reset       bkwrd frwrd       right left      

Note:
This driver program is provided as a sample only. Because the screen prompts translated by CSUTRANS vary depending on the application under development, the driver program must be tailored to the application.

CSUXCHK Subprogram

CSUXCHK Description
What it does Scans for the existence of a user exit in the edit buffer. This subprogram receives the name of a user exit and scans the edit buffer for that name.
PDAs used
  • CSAXCHK

Files accessed
  • None

Drivers Menu Option

graphics/locate-csuxchk-driver.png

   CTEXCHK              N a t u r a l  C o n s t r u c t             CTEXCHK1 
   Aug 14                 Driver for subprogram CSUXCHK                1 of 1 
                                                                              
     User Exit Name....: ________________________________                     
     Found.............:                                                      
                                                                              
     Read in New Source: _                                                    
    *New Source Name...: ________                                             
     New Source Library: DEVPR___                                             
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CSU2LONG Subprogram

CSU2LONG Description
What it does Converts a long variable name to an abbreviation. This subprogram receives a long character string (32 characters) and a desired length, and returns the truncated string (abbreviation). The sixth position of the string is the first position truncated. If no length is given, the default is 30.

If the long string is not longer than the desired length, the string is still truncated. For example, if the long string is “THIS-IS-A-LONG-VARIABLE” and the desired length is 20, the short string is “THIS-A-LONG-VARIABLE”.

Tip:
Use this subprogram when you add characters to a file or field name that is already 32 characters long.

PDAs used
  • CSA2LONG

Files accessed
  • None

Drivers Menu Option

graphics/locate-csu2long-driver.png

   CTE2LONG             N a t u r a l  C o n s t r u c t             CTE2LNG1 
   Aug 14                Driver for subprogram CSU2LONG                1 of 1 
                                                                              
    Long Name.....: ________________________________                          
    Maximum Length: ___                                                       
                                                                              
    Short Name....:                                                           
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

Top of page

Predict-Related Subprograms (CPU*)

The subprograms described in this section retrieve information from the Predict data dictionary. While some of these subprograms generate code, most supply information to the calling subprogram and the calling subprogram generates the code.

Notes:

  1. If you use Software AG’s Entire Net-work, the Predict data can reside on a platform other than the platform on which Natural Construct is running.
  2. Driver programs for many of the supplied programs/subprograms are available through the Drivers menu option on the Administration main menu. If a driver program is available, its location is listed in the Drivers Menu Option section in the program/subprogram’s description. For more information about the supplied driver programs, see Drivers Menu Function.

This section covers the following topics:

With Natural Security Installed

If Natural Security is installed, the Predict-related subprograms restrict access to file and field information. Users can only retrieve information for files linked to the current application.

While generating a program, the program may access information about the same file many times. To avoid security checks each time, the access subprograms use the FILE-CODE field. This INPUT/OUTPUT field accesses file information and acts as a cipher code to avoid multiple security checks on the same file; it is available for all supplied subprograms.

If you are developing under Natural Security, include the FILE-CODE field in the model PDA for each file used multiple times during generation. The FILE-CODE field is passed in the PDA of the access subprogram and reassigned back to the model PDA after each call.

To avoid security checks for each access, the model subprogram that invokes CPUEL contains the following statements:

ASSIGN CPAEL.FILE-CODE = #PDA-FILE-CODE
CALLNAT 'CPUEL' CPAEL CSASTD
ASSIGN #PDA-FILE-CODE = CPAEL.FILE-CODE

Note:
For an example of using these subprograms to restrict access to file and field information, refer to the CUSCGPR program in the SYSCST library.

CPU-OBJ Subprogram

CPU-OBJ Description
What it does Generates an external data area based on a Predict file view. This subprogram receives the view name and a set of logical variables that define the generation options. It generates an external data area structure to match the view. It can also generate the C# variables for each C* variable that corresponds to an MU or PE and/or includes the corresponding REDEFINE fields for redefined fields or superdescriptors.

Note:
For information about INPUT/OUTPUT parameters, refer to the CPA-OBJ data area in the SYSCST library.

PDAs used
  • CPA-OBJ

  • CSASTD

Files accessed
  • SYSDIC-EL

  • SYSDIC-FI

Drivers Menu Option

graphics/locate-cpu-obj-driver.png

   CTE-OBJ              N a t u r a l  C o n s t r u c t             CTE-OBJ1 
   May 12                 Driver for subprogram CPU-OBJ                1 of 1 
                                                                              
  *File: ________________________________                                     
                                                                              
                                                                              
  Build Redefines..: _    Structure Level: _                                  
  SuperDe Redefines: _    Joined Fld Name: ________________________________   
  Cstars...........: _    Joined Length..: ___                                
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CPU-OBJ2 Subprogram

CPU-OBJ2 Description
What it does Issues CALLNAT to the #CALLNAT subprogram and passes information about elements that make up an object. This subprogram receives:
  • a view name

  • a key name

  • a set of options

  • the name of a passed subprogram to CALLNAT

An object is derived from view and key names. The view and key names are based on intra-object relationships defined in Predict (for example, ORDER-HEADER-HAS-ORDER-LINES).

The elements of an object are the individual fields in the files that make up the object. This subprogram traverses the object tree and checks each element. For each element, it CALLNATs the #CALLNAT subprogram and passes it information about the element (for example, the format, length, and type).

You can set options to limit or extend the number of elements to check (for example, whether to include all field redefinitions or just the lowest levels).

Note:
This subprogram replaces the CPU-OBJ subprogram; for all new development, use CPU-OBJ2.

Parameters/PDAs used
  • CPA-OBJ2

  • CPA-ODAT

  • CU--PDA

  • #PASS(A1/1:V)

  • CSASTD

Files accessed
  • SYSDIC

CPU-OREL Subprogram

CPU-OREL Description
What it does Adds entity information to a table. This subprogram receives the name of an object and information about each entity belonging to the object. It adds this information to a table. Optionally, it can display tracing information.

Note:
For more information, refer to CPA-OREL.ENTITY(*).

PDAs used
  • CPA-OREL

  • CU__PDA

  • CSASTD

Files accessed
  • SYSDIC-RL

  • SYSDIC-FI

  • SYSDIC-EL

CPU-VIEW Subprogram

CPU-VIEW Description
What it does Generates field definitions based on the contents of a Predict view. This subprogram receives the name of a Predict view and a set of logical parameters defining the options to be generated. It generates the view definition as it should appear in the DEFINE DATA . . . END-DEFINE block of a Natural program, subprogram, or helproutine.

This subprogram can also generate the C# variables for each C* variable that corresponds to an MU (multiple-valued) or PE (periodic group), and/or includes the corresponding REDEFINE fields for redefined fields or superdescriptors.

You can use this subprogram to define a structure based on a view in Predict. The format and length for each field is generated.

Notes:

  1. This subprogram differs from CPU-OBJ in that it generates internal rather than external data structures.
  2. For information about INPUT/OUTPUT parameters, refer to the CPA-VIEW data area in the SYSCST library.
PDAs used
  • CPA-VIEW

  • CSASTD

Files accessed
  • SYSDIC-EL

  • SYSDIC-FI

Drivers Menu Option

graphics/locate-cpu-view-driver.png

   CTE-VIEW             N a t u r a l  C o n s t r u c t             CTE-VEW1 
   May 12                Driver for subprogram CPU-VIEW                1 of 1 
                                                                              
   *File....: ________________________________                                
    View....: ________________________________        Gen 01 Level......: _   
    Omit Fld: ________________________________                                
                                                                              
    Variable Indexes : _    Include Hyper DE...: _    Include MU Counter: _   
    Build Redefines..: _    Include Phonetic DE: _    Include PE Counter: _   
    SuperDe Redefines: _    Include Sub DE.....: _    Include MU Hyper..: _   
    Specify Formats..: _    Include Super DE...: _    Include PE Hyper..: _   
    Cstars...........: _    Redefine Cstars....: _                            
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CPUEL Subprogram

CPUEL Description
What it does Returns Predict information about a field in a file. This subprogram finds a field in a Predict file and returns information about the field.
PDAs used
  • CPAEL

  • CSASTD

Files accessed
  • SYSDIC-EL

Drivers Menu Option

graphics/locate-cpuel-driver.png

   CTEEL                 N a t u r a l  C o n s t r u c t            CTEEL11  
   Aug 14                  Driver for subprogram CPUEL                1 of 2  
                                                                              
  *File Name..: ________________________________ DDM Prefix: ________________ 
  *Field Name : ________________________________                              
   Simple Outputs: _                                                          
                                                                              
  Fld Found...:       Adabas Fld Name:       Fld Format....:     Field Uq :   
  Ver Found...:       Fld Length.....:       Predict Format:     De Type..:   
  Lvl Number..:       Sign...........:       Suppression...:     Gr Struct:   
  Occurrences.:       Fld Type.......:       A/Descend.....:     Pe Ind...:   
                      Fld Redefined  :       Rank..........:                  
                                                                              
  Edit Mask...:                                        Field Headings:        
  DDM Fld Name:                                                               
  Index Name..:                                                               
  Fld Sequence:                                                               
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                      left  right mai 

Press Enter to display the second panel. For example:

   CTEEL                N a t u r a l  C o n s t r u c t              CTEEL21 
   Aug 14                  Driver for subprogram CPUEL                 2 of 2 
                                                                              
   File Name..:                                                               
   Field Name :                                                               
                                                                              
   LEVEL                                                                      
   -----                                                                      
   DDM Field Name                    Field Type    Is Redefined               
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                      left  right mai 

CPUELDE Subprogram

CPUELDE Description
What it does Returns a description attribute from a specified file. This subprogram receives the name of a file and finds a description attribute. It returns the names of all fields that have the DESCRIPTION keyword.
PDAs used
  • CPAELDE

  • CSASTD

Files accessed
  • SYSDIC-FI

  • SYSDIC-EL

  • SYSDIC-KY

CPUELKY Subprogram

CPUELKY Description
What it does Returns keywords linked to a field in a specified file. This subprogram receives the name of a file and field; it returns keywords linked to the field.
PDAs used
  • CPAELKY

  • CSASTD

Files accessed
  • SYSDIC-FI

  • SYSDIC-EL

  • SYSDIC-KY

CPU-FREL Subprogram

CPU-FREL Description
What it does Retrieves information about a foreign relationship and CALLNATs a pass-through subprogram. This subprogram passes CPA-FREL, CU--PDA, and CSASTD to the pass-through subprogram.
PDAs used
  • CPARLRD

  • CU--PDA

  • CPA-FREL

  • CSASTD

Files accessed
  • SYSDIC-FI

  • SYSDIC-EL

CPUELNX Subprogram

CPUELNX Description
What it does Returns field-by-field information if it is called repeatedly. This subprogram receives the name of a Predict file, the CPAELNX data area (contains options for field types), and the CPRELNX data area (contains information about current processing), and logically reads through the fields in the file.

Notes:

  1. CPRELNX contains reserved variables that keep track of the current position; it must not be modified by the calling program.
  2. For information about INPUT/OUTPUT parameters, refer to the CPAELNX data area in the SYSCST library.
PDAs used
  • CPAELNX

  • CPRELNX

  • CSASTD

Files accessed
  • SYSDIC-EL

  • SYSDIC-FI

Drivers Menu Option

graphics/locate-cpuelnx-driver.png

   CTEELNX              N a t u r a l  C o n s t r u c t             CTEENX11 
   Aug 14                 Driver for subprogram CPUELNX                1 of 2 
                                                                              
  *File Name....: ________________________________ First Time : X EOF.....:   
   DDM Prefix...: ________________                                            
                                                                              
  Redef Base Fld: _  Super Subs: _  Mus.......: _  Nulls Only : _ Counters: _ 
  First Redefine: _  Phonetics : _  Pe Groups : _  Seq Only...: _ Groups..: _ 
  All Redefines : _  Hypers....: _  Pes.......: _  Uq Only....: _ Fillers : _ 
  Max Rede Rank : _  Derived...: _  Mus in Pes: _  VE Only....: _ REDE STR: _ 
                                                                              
  Fld Name......:                                  Fld Type...:               
  Fld Format....:                                  Length.....:               
  Predict Format:                                  Sign.......:               
                                                                              
  Adabas Name...:    Fld Def...:    De Type...:    Fld Count..:     Rank..:   
  Level Number..:    Fld Uq....:    Pe Ind....:    Occurrences:               
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                      left  right mai 

Press Enter to display the second panel. For example:

   CTEELNX              N a t u r a l  C o n s t r u c t             CTEENX21 
   Aug 14                 Driver for subprogram CPUELNX                2 of 2 
                                                                              
          Field Headings                                                      
  ------------------------------                                              
                                   IMS Offset....:          Access Lvl:       
                                   IMS Fld Name..:          Update Lvl:       
                                   IMS Fld Length:                            
                                                                              
  Index Name..:                                                               
  DDM Fld Name:                                                               
                                                                              
  Edit Mask...:                                                               
  Level Type Trail:    ->    ->    ->    ->    ->    ->    ->                 
  Redefine Trail..:    ->    ->    ->    ->    ->    ->    ->                 
                                                                              
  Fld is Redefined:    Redefine Cnt:                                          
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                      left  right mai 

CPUELRD Subprogram

CPUELRD Description
What it does Reads through the fields in a Predict file, issues a CALLNAT for the specified subprogram for each field, and passes information about the field to the subprogram. It receives:
  • the name of a file

  • the name of a subprogram to CALLNAT

  • the selection criteria (in CPAELRD.INPUTS)

The subprogram traverses the specified file. For each selected field, it CALLNATs the passed subprogram to process the current field.

PDAs used
  • CPAELRD

  • CU--PDA (model PDA)

  • CSAPASS (can be redefined as required and used to store additional information that must be preserved between CALLNATs)

  • CSASTD

Files accessed
  • SYSDIC-EL

Drivers Menu Option

graphics/locate-cpuelrd-driver.png

   CTEELRD              N a t u r a l  C o n s t r u c t             CTEELRD1 
   Aug 14                 Driver for subprogram CPUELRD                1 of 1 
                                                                              
  *File Name.......: ________________________________   Fld Count......:      
  *Key Name........: ________________________________   Level..........:      
  CALLNAT..........: CTELRDSM                           Max Rede Rank..: _    
                                                                              
  ReDe Base Fld: _ SPs/SBs..: _ Pes...: _ Pe Group: _ Only VE..: _ Fillers: _ 
  First ReDe...: _ Phonetics: _ Mus...: _ Mu in Pe: _ Only UQ..: _ Derived: _ 
  All ReDe.....: _ Hypers...: _ Groups: _ Counters: _ Only Null: _ Rede St: _ 
                                                                              
  Fld Name  :                                Format :    PRD Format :         
  DDM Field :                                Fld UQ :    Length.....:         
  Index.... :                                Type...:    Adabas Name:         
  Headings  :                                De Type:    Occurrences:         
                                             Pe Type:               :         
  Edit Mask :                                Rank...:               :         
  Type Trail:                                Redef..:    ReDe Count :         
  ReDe Trail:                                                                 
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                    bkwrd frwrd                   mai 

Note:
If you change the name of the subprogram in the CALLNAT field, the specified subprogram must have the same parameters as those in the PDAs used by CPUELRD.

CPUELVE Subprogram

CPUELVE Description
What it does Returns the verification rule names for a field in a file. This subprogram finds a field in Predict and returns the names of the verification rules of type N (Natural Construct).
PDAs used
  • CPAELVE

  • CSASTD

Files accessed
  • SYSDIC-EL

Drivers Menu Option

graphics/locate-cpuelve-driver.png

   CTEELVE               N a t u r a l  C o n s t r u c t            CTEELVE1 
   Aug 14                 Driver for subprogram CPUELVE                1 of 1 
                                                                              
  *File Name : ________________________________     Field Found.........:     
  *Field Name: ________________________________     Num of Verifications:     
                                                                              
                     +----------------------------------+                     
                     |  1__   VERIFICATION NAME         |                     
                     | -------------------------------  |                     
                     |                                  |                     
                     |                                  |                     
                     |                                  |                     
                     |                                  |                     
                     |                                  |                     
                     +----------------------------------+                     
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                    bkwrd frwrd                   mai 

CPUEXIST Subprogram

CPUEXIST Description
What it does Verifies the existence of a specified Predict object. This subprogram receives the name and type of an object and verifies its existence in Predict.
PDAs used
  • CPAEXIST

  • CSASTD

Files accessed
  • SYSDIC-SY

  • SYSDIC-PR

  • SYSDIC-KY

  • SYSDIC-DB

  • SYSDIC-FI

  • SYSDIC-RL

  • SYSDIC-VE

Drivers Menu Option

graphics/locate-cpuexist-driver.png

   CTEXIST              N a t u r a l  C o n s t r u c t             CTEXST1  
   Aug 14                Driver for subprogram CPUEXIST               1 of 1  
                                                                              
    Object Name: ________________________________    Object Exists:           
    Object Type: __ (SY,PR,KY,FI,DB,RL,VE)                                    
                                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CPUFI Subprogram

CPUFI Description
What it does Returns Predict information about a file. This subprogram receives the name of a file and returns Predict information about that file.
PDAs used
  • CPAFI

  • CSASTD

Files accessed
  • SYSDIC-FI

Drivers Menu Option

graphics/locate-cpufi-driver.png

   CTEFI                 N a t u r a l  C o n s t r u c t            CTEFI1   
   Aug 14                  Driver for subprogram CPUFI               1 of 1   
                                                                              
  *File Name: ________________________________         Ripp File Nr..:        
   File Type:                                          Ext File  Nr..:        
                                                                              
   Master File Name..:                                                        
   Primary Seq Field :                                                        
                                                                              
   DDM Prefix........:                                 IMS DB Number.: 00     
   DDM File Name.....:                                 IMS File Level:        
   IMS Parent File...:                                 IMS File Nr...: 00     
   IMS Root File Name:                                 IMS Seg Type..:        
   IMS DBD Name......:                                 IMS DDM Suffix:        
   IMS Seg Name......:                                 DDM Matches...:        
   IMS Root Seg Name :                                                        
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CPUHOLD Subprogram

CPUHOLD Description
What it does Determines the hold field for a file. This subprogram receives the name of a file and determines the hold field for the file. To define a hold field, attach the HOLD-FIELD keyword to the field in Predict.
PDAs used
  • CPAHOLD

  • CSASTD

Files accessed
  • SYSDIC-FI

  • SYSDIC-EL

CPUKY Subprogram

CPUKY Description
What it does Retrieves information related to a Predict keyword. You can use the keyword comments to store attribute values that can be returned by this subprogram.
PDAs used
  • CPAKY

  • CSASTD

Files accessed
  • SYSDIC-KY

  • SYSDIC-EL

CPUREDEF Subprogram

CPUREDEF Description
What it does Generates redefinitions for compound keys, superdescriptors, or redefined fields in Predict. This subprogram invokes the CPUXPAND subprogram, which retrieves the components of the field to be redefined. Redefinitions can be generated in either inline or external data area format.
PDAs used
  • CPAREDEF

  • CSASTD

Files accessed
  • SYSDIC-EL

Drivers Menu Option

graphics/locate-cpuredef-driver.png

   CTEREDEF             N a t u r a l  C o n s t r u c t             CTERDEF1 
   Aug 14                Driver for subprogram CPUREDEF                1 of 1 
                                                                              
   *File : ________________________________        Redef Level.........: _    
   *Field: ________________________________        Change Format N to A: _    
                                                                              
    Super Options                                                             
    -------------                                                             
    Include Deriv Level: _   Inside Histogram: _                              
    Include Redef Level: _   Omit Format.....: _                              
                                                                              
    Resets Required:                                                          
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CPURL Subprogram

CPURL Description
What it does Returns information about a relationship in Predict. This subprogram receives a Predict relationship name and returns information about the relationship.
PDAs used
  • CPARL

  • CSASTD

Files accessed
  • SYSDIC-RL

Drivers Menu Option

graphics/locate-cpurl-driver.png

   CTERL                 N a t u r a l  C o n s t r u c t            CTERL1   
   Aug 14                  Driver for subprogram CPURL               1 of 1   
                                                                              
   *Relationship Name: ________________________________ Relationship Found:   
                                                        Relationship Type :   
                                                                              
          Relationship File                 Relationship Field          Card  
    --------------------------------  --------------------------------  ----  
                                                                              
                                                                              
                                                                              
        Ddm Relationship Field        Minimum    Average     Maximum          
    --------------------------------  -------    --------    -------          
                                                                              
                                                                              
                                                                              
   Constraint Type Upd:               Db2 Constraint Name:                    
   Constraint Type Del:                                                       
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CPURLRD Subprogram

CPURLRD Description
What it does Retrieves the Predict relationships for a specified file, and optionally a specified type. This subprogram receives:
  • the name of a file

  • a relationship type (optional)

  • the name of a subprogram (in CPARLRD.INPUTS)

It finds relationships for the specified file, issues a CALLNAT to the specified subprogram, and passes the information about the relationship to the subprogram for processing.

PDAs used
  • CPARLRD

  • CU--SYSLIBSPDA (model PDA)

  • CSAPASS (can be redefined as required and used to store additional information that must be preserved between CALLNATs)

  • CSASTD

Files accessed
  • SYSDIC-FI

  • SYSDIC-KL

Drivers Menu Option

graphics/locate-cpurlrd-driver.png

        CTERLRD         N a t u r a l  C o n s t r u c t        CTERLRD1 
        Aug 14            Driver for subprogram CPURLRD           1 of 1 
                                                                         
          *File Name.............: ________________________________      
           Relationship Type.....: _                                     
           CALLNAT...............: CTELRDSM                              
           Relationship Count....:                                       
           Relationship Name.....:                                       
           Relationship File ....:                                       
           Relationship Field....:                                       
           DDM Relationship Field:                                       
           Cardinality...........:                                       
           Minimum...............:                                       
           Average...............:                                       
           Maximum...............:                                       
           DB2 Constraint Name...:                                       
           Constraint Type Upd...:                                       
           Constraint Type Del...:                                       
       Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10- 
             help  retrn quit                                            

CPUSUPER Subprogram

CPUSUPER Description
What it does Returns the definition for a super/subdescriptor (or DB2 compound key). This subprogram receives the name of a superdescriptor or subdescriptor (or DB2 compound key) and the name of the Predict file or table to which it belongs. It returns information about the derived fields.
PDAs used
  • CPASUPER

  • CSASTD

Files accessed
  • SYSDIC-EL

Drivers Menu Option

graphics/locate-cpusuper-driver.png

   CTESUPER          ***** Predict Related Subprograms *****         CTESUPR1 
   Oct 09              - Driver for subprogram CPUSUPER -            03:08 PM 
                                                                              
   *File Name : ________________________________     Superde Length....:      
   *Field Name: ________________________________     Superde Format....:      
                                                                              
    Contains Repeating Fields:                       C#Derivation Group:      
   +------------------------------------------------------------------------- 
   |  1__                              Start End   A/ Fld Sup PE   Dimension  
   |         Source Field Name         Char  Char  D  Typ Opt Ind  1   2   3  
   |  -------------------------------- ----- ----- -  --- --- --- --- --- --- 
   |                                                                          
   |                                                                          
   |                                                                          
   |                                                                          
   |                                                                          
   +------------------------------------------------------------------------- 
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                    bkwrd frwrd                   mai 

CPUUNIQ Subprogram

CPUUNIQ Description
What it does Determines the unique description field (primary key). This subprogram receives the name of a file and determines the unique description field (primary key) for the file.
PDAs used
  • CPAUNIQ

  • CSASTD

Files accessed
  • SYSDIC-FI

  • SYSDIC-EL

CPUVE Subprogram

CPUVE Description
What it does Prints verification rules to the source buffer. This subprogram prints either the code or the data definition for a type N (Natural Construct) verification rule to the source buffer.
PDAs used
  • CPAVE

  • CSASTD

Files accessed
  • SYSDIC-VE-ACT

Drivers Menu Option

graphics/locate-cpuve-driver.png

   CTEVE                 N a t u r a l  C o n s t r u c t            CTEVE1   
   Aug 14                  Driver for subprogram CPUVE               1 of 1   
                                                                              
   Verification Name: ________________________________ Verification Found:    
  *User View Name...: ________________________________ Rule Generated....:    
  *DDM Field Name...: ________________________________                        
                                                                              
   Generate Data....: _                                                       
   Occurrences......: _______________                                         
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                                  mai 

CPUVERUL Subprogram

CPUVERUL Description
What it does Returns information about Predict verification rules.
PDAs used
  • CPAVERUL

  • CSASTD

Files accessed
  • SYSDIC-VE

CPUXPAND Subprogram

CPUXPAND Description
What it does Expands a super/subdescriptor or redefined field. This subprogram receives:
  • the name of a super/subdescriptor (or DB2 compound key)

  • the name of the Predict file (or table) to which the key belongs

  • the expansion options

  • the name of a subprogram to CALLNAT (in CPAXPAND.INPUTS)

  • the parameters in the model PDA (CU--PDA)

  • an additional A1/1:v parameter (CSAPASS)

It expands the specified super/subdescriptor (or DB2 compound key) into its underlying components. For each component, it CALLNATs the specified subprogram.

Note:
When this subprogram expands a superdescriptor, redefinitions of the derived fields are included.

PDAs used
  • CPAXPAND

  • CU--PDA

  • CSAPASS

  • CSASTD

Files accessed
  • SYSDIC-EL

Drivers Menu Option

graphics/locate-cpuxpand-driver.png

   CTEXPAND             N a t u r a l  C o n s t r u c t             CTEXPN11 
   Aug 14                Driver for subprogram CPUXPAND                1 of 3 
                                                                              
   *File Name......: ________________________________   Phantom Bytes: _      
   *Base Field Name: ________________________________   Fillers......: _      
   CALLNAT.........: CTELRDSM     P                                           
                                                                              
                                                                              
    Base Field Information                           Field Headings           
    ----------------------                   -------------------------------- 
    Sequence:        Adabas Field Name:     :                                 
    Format..:        Field Definition :     :                                 
    Length..:        Field Type.......:     :                                 
                                                                              
    Edit Mask......:                                                          
    DDM Field Name :                                                          
                                                                              
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                      left  right mai 

Note:
If you change the name of the subprogram in the CALLNAT field, the specified subprogram must have the same parameters as those in the PDAs used by CPUXPAND.

Press Enter to display the second panel. For example:

   CTEXPAND             N a t u r a l  C o n s t r u c t             CTEXPN21 
   Aug 14                Driver for subprogram CPUXPAND                2 of 3 
                                                                              
                                                                              
  Derived Field Information                        Field Headings             
  -------------------------                ---------------------------------- 
  First Showing.:                         :                                   
  Field Count...:                         :                                   
  Whole Field...:                         :                                   
                                                                              
  Sequence......:        Adabas Field Name:      Start Character:             
  Format........:        Field Definition :      End   Character:             
  Length........:        Field Type.......:                                   
                                                                              
  Edit Mask.....:                                                             
  Field Name....:                                                             
  DDM Field Name:                                                             
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                      left  right mai 
  Scrolling performed                                                         

Press Enter to display the third panel. For example:

   CTEXPAND             N a t u r a l  C o n s t r u c t             CTEXPN31 
   Aug 14                Driver for subprogram CPUXPAND                3 of 3 
                                                                              
  Ascending/Descending                                                        
  Expanded Field Information                       Field Headings             
  --------------------------               ---------------------------------- 
  Field  Count..:                         :                                   
  Offset Start..:                         :                                   
  Offset End....:                         :                                   
                                                                              
  Sequence......:        Predict Format...:      Special characteristic:      
  Format........:        Field Definition :                                   
  Length........:                                                             
                                                                              
  Edit Mask.....:                                                             
  Field Name....:                                                             
  DDM Field Name:                                                             
                                                                              
  Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF1 
        help  retrn quit                                      left  right mai 
  Scrolling performed                                                         

Top of page

Predict-Related Helproutines (CPH*)

You can attach the following helproutines to fields that require the input of Predict information. They are active helproutines that fill the field to which they are attached.

Note:
Some of the following routines provide help information, although they are coded as subprograms and not as helproutines. This provides greater flexibility to access help information.

This section covers the following topics:

CPHEL Subprogram

CPHEL Description
What it does Browses the fields in a file for selection. This subprogram receives the name of a Predict file. (If no file name is specified, it provides file selection.) It browses all the fields in the specified file and returns the selected field.
Attached to Input of a Predict field name.
PDAs used
  • CPAHEL

  • CSASTD

Files accessed
  • SYSDIC-FI

CPHELB Subprogram

CPHELB Description
What it does Browses the fields in a file for selection. This subprogram receives the name of a file and browses all the fields in the file for selection. Optionally, this subprogram can browse only the descriptor fields.

Note:
For information about INPUT/OUTPUT parameters, refer to the CPHELBA data area in the SYSCST library.

PDAs used
  • CPAHEL

  • CSASTD

Files accessed
  • SYSDIC-EL

CPHFI Helproutine

CPHFI Description
What it does Browses Predict views/files for selection. This helproutine browses all the views and files in Predict for selection.
Attached to Input of a Predict file name.
Parameters used
  • #PDA-FILE(A32)

Files accessed
  • SYSDIC-FI

CPHFIB Subprogram

CPHFIB Description
What it does Browses Predict views and files for selection.
Parameters/PDAs used
  • #PDA-KEY(A32)

  • CSASTD

Files accessed
  • SYSDIC-FI

CPHPRED Helproutine

CPHPRED Description
What it does Browses Predict objects (by object type) for selection. This helproutine receives an object type and browses the Predict objects of that type for selection. Valid object types are:
  • S (system)

  • P (program)

  • K (keyword)

  • M (module)

  • R (report)

Attached to Input of a Predict object type.
Parameters used
  • #PDA-TYPE(A1)

  • #PDA-KEY(A32)

Files accessed
  • SYSDIC-SY

  • SYSDIC-PR

  • SYSDIC-KY

  • SYSDIC-RE

  • SYSDIC-MO

CPHRL Helproutine

CPHRL Description
What it does Browses the names of Predict relationships for selection. This helproutine receives the names of a Predict relationship and a file and returns the selected relationship. If a file name is specified, the helproutine browses only the Predict relationships for that file. If no file name is specified, it browses all existing relationships.
Attached to Input of a Predict relationship name.
Parameters used
  • #PDA-FILE(A32)

  • #PDA-RELATIONSHIP-NAME(A32)

Files accessed
  • SYSDIC-FI

  • SYSDIC-RL

CPHSET Helproutine

CPHSET Description
What it does Sets a flag to indicate that help was requested for a field. This helproutine receives the name of a parameter and sets a flag to indicate help was requested. The parameter should be checked after the INPUT statement. If a flag is set, for example, reset the flag and issue CALLNATs to do the help processing.

This technique allows the helproutine to access all data entered in a single panel transaction. When you generate a browse subprogram, for example, you can type the file name (without pressing Enter) on the Additional Parameters panel and request help for a field.

Attached to Any input field.
Parameters used
  • #PDA-SET-HELP(L)

Files accessed
  • SYSDIC-FI

  • SYSDIC-RL

Top of page

General Purpose Generation Subprograms (CU--*)

The subprograms described in this section are general purpose generation subprograms. These subprograms are identified by a CU-- prefix.

CU--EM Subprogram

CU--EM Description
What it does Returns edit masks used by the generated programs for displaying date and time fields. This subprogram can be changed to suit your standards. Changes to this routine should be made in a higher level steplib to minimize maintenance. Unless you modify your models, the date and time field edit masks should not be longer than nine characters.
PDAs used
  • CU--EMA

CU--LRP Subprogram

CU--LRP Description
What it does Returns the left and right prompt displayed on the Natural Construct panels. The left prompt displays the current month and day in *DATX (EM=LLL’’DD), which can be language sensitive. The right prompt displays the “1 of 1” or “1 of 3” panel indicators, depending on the number of panels. This prompt uses several control record fields to build the prompt position indicators, which are compressed on both sides of the “of” indicator.
Parameters/PDAs used
  • #PDA-LEFT-PROMPT(A9)

  • #PDA-LEFT-INDICATOR(A4)

  • #PDA-RIGHT-PROMPT-OF(A4)

  • #PDA-RIGHT-INDICATOR(A4)

  • #PDA-RIGHT-PROMPT(A9)

  • CSASTD

CU--MSG Subprogram

CU--MSG Description
What it does Returns the text for an application error message. It receives a message number in #PDA-FRAME-PARM. After ensuring this literal is numeric, it retrieves the short message for the SYSTEM application and the *Language variable.

The error message is written (left-justified and enclosed within single quotes) to the source buffer, thus substituting for the frame parameter. The usual search criteria and defaults (English) apply. The following example shows a code frame:

USE-MSG-NR                                   1
ASSIGN MSG-INFO.##MSG-NR = 8123                "
ELSE                                         1
ASSIGN MSG-INFO.##MSG =                        "
SUBPROGRAM:CU--MSG PARAM: 8123               N "
PDAs used
  • CU--PDA

  • CSASTD

Files accessed
  • Application error message file

CU--UL Subprogram

CU--UL Description
What it does Returns the underscore line used on Natural Construct panels. This subprogram receives an underscore character set and creates the underscore line. The character(s) specified on the control record (A4) is duplicated to fill the A80 length.
Parameters/PDAs used
  • #PDA-UNDERSCORE(A4)

  • #PDA-UNDERSCORE-LINE(A80)

  • CSASTD

Top of page