Version 5.3.1
 —  Natural Business Services Administration  —

Customizing Natural Business Services

This section describes how to customize the default behavior of Natural Business Services. The following topics are covered:


Modify/Test the Naming Conventions for Natural Objects

This section describes how the Natural Business Services wizards create names for the Natural objects they generate and how to include your own naming conventions.

Since one Natural Business Services wizard may generate several different Natural objects, each type of object must be uniquely identified. For example, the Business Service wizard creates at least one subprogram that handles logic and one subprogram proxy.

The different styles and their unique identifiers are stored in an LDA called WTRNAMEL. Natural Business Services names the modules as follows:

How the unique identifier is used, where it is used, and how unique Natural object names are derived is handled in WTRNAME. To change the location of the category, style, and/or five characters, modify WTRNAME and then test the generation of the Natural module names.

Start of instruction setTo test the generation of Natural module names:

  1. Enter the "menu D A GU" direct command.

    The General Utility Subprograms menu is displayed. For example:

     CTEMENGU                ***** Natural Construct *****                  CTEMNM0 
     May 26                 General Utility Subprograms Menu                 1 of 1 
                                                                                    
                          Functions                                                 
                          -----------------------------------------------           
                          SR Storage required for a variable                        
                          BN Build Natural format                                   
                          CT Convert text to upper, lower, mixed                    
                          FP Find PF-key related information                        
                          SL Shorten a long variable name                           
                          GN Get a NATPARM parameter value                          
                          CS Determine seconds from given start time                
                          NA Test NBS naming conventions                            
                                                                                    
                                                                                    
                                                                                    
                          ?  Help                                                   
                          .  Return                                                 
                          -----------------------------------------------           
     Function ........... __                                                        
     Command ............ __________________________________________________________
     Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
           help  retrn quit                                                  lang   
  2. Enter "NA" in Function on the General Utility Subprograms menu.

    The following screen is displayed. For example:

     Up to 5 characters TEST_                                                       
                                                                                    
     (blank searches *LIBRARY, 1 searches provided library,2 searches both)         
     Provided library: ________   _ Library search requirement:                     
                                                                                    
     When a subprogram proxy client is generated,                                   
     the name is derived from the server subprogram proxy name.                     
     Since this name is larger than 5 characters, the Name field                    
     is used for input and output. To obtain the client proxy name,                 
     enter the server proxy name in the Name field.                                 
                                                                                    
     Name: ________                                                                 
                                                                                    

    By default, TEST is used for the example. Change the default characters and specify the name of the library (if not the current library).

  3. Enter the name of the server proxy in Name.

    Natural Business Services displays the default name of the client proxy. For example, if you entered "MYPROXY" in Name, the following is displayed:

      07-05-26           - Driver for subprogram WTRNAME -                 17:45:40 
            You can customize WTRNAMCL, along with WTRNAME, for site-specific       
                                   naming conventions.                              
                         Names within a category must be UNIQUE                     
           as well as names ACROSS all object maint and object browse modules       
                                                                                    
                                                                                    
     Given a server proxy name of:  MYPROXY                                         
     The client proxy name will be: MYPROXC                                         
                                                                                    
  4. Press Enter.

    The following screen is displayed:

      07-05-26           - Driver for subprogram WTRNAME -                 17:49:37 
            You can customize WTRNAMCL, along with WTRNAME, for site-specific       
                                   naming conventions.                              
                         Names within a category must be UNIQUE                     
           as well as names ACROSS all object maint and object browse modules       
                                                                                    
                                                                                    
     Object Module                    Name based on 5 char TEST                     
     -------------------------------- ------------------------                      
     CATEGORY OBJECT-BROWSE-SELECT                                                  
     OBJECT-BROWSE-SELECT             TESTNB1                                       
     SUBPROGRAM-PROXY                 TESTNB1Y                                      
     SUBPROGRAM-PROXY-CLIENT          TESTNB1C                                      
                                                                                    
     CATEGORY OBJECT-BROWSE                                                         
     OBJECT-BROWSE-ROW-PDA            TESTDA1                                       
     OBJECT-BROWSE-KEY-PDA            TESTKA1                                       
     OBJECT-BROWSE-RESTRICTED-PDA     TESTPA1                                       
     OBJECT-BROWSE-STATIC-LDA         TESTLA1                                       
     OBJECT-BROWSE-SUBP               TESTNA1                                       
     SUBPROGRAM-PROXY                 TESTNA1Y                                      
     SUBPROGRAM-PROXY-CLIENT          TESTNA1C                                      

    This screen displays the default names for the different models.

  5. Press Enter again.

    The following screen is displayed:

      07-05-26           - Driver for subprogram WTRNAME -                 18:01:28 
            You can customize WTRNAMCL, along with WTRNAME, for site-specific       
                                   naming conventions.                              
                         Names within a category must be UNIQUE                     
           as well as names ACROSS all object maint and object browse modules       
                                                                                    
                                                                                    
     CATEGORY OBJECT-MAINT                                                          
     OBJECT-MAINT-DATA-PDA            TESTDM1                                       
     OBJECT-MAINT-RESTRICTED-PDA      TESTPM1                                       
     OBJECT-LDA                       TESTLM1                                       
     OBJECT-MAINT-SUBP                TESTNM1                                       
     SUBPROGRAM-PROXY                 TESTNM1Y                                      
     SUBPROGRAM-PROXY-CLIENT          TESTNM1C                                      
                                                                                    
     CATEGORY OBJECT-GENERIC                                                        
     OBJECT-GENERIC-SUBP              TESTNG1                                       
     SUBPROGRAM-PROXY                 TESTNG1Y                                      
     SUBPROGRAM-PROXY-CLIENT          TESTNG1C                                      
  6. Press Enter again.

    The following screen is displayed:

      07-05-26           - Driver for subprogram WTRNAME -                 18:02:22 
            You can customize WTRNAMCL, along with WTRNAME, for site-specific       
                                   naming conventions.                              
                         Names within a category must be UNIQUE                     
           as well as names ACROSS all object maint and object browse modules       
                                                                                    
                                                                                    
     CATEGORY TRANSFORM-BROWSE                                                      
     TRANSFORM-BROWSE                 TEST0T                                        
     SUBPROGRAM-PROXY                 TEST0TY                                       
     SUBPROGRAM-PROXY-CLIENT          TEST0TC                                       
  7. Press Enter again.

    The following screen is displayed, showing any conflicts in the naming conventions:

      07-05-26           - Driver for subprogram WTRNAME -                 18:03:34 
            You can customize WTRNAMCL, along with WTRNAME, for site-specific       
                                   naming conventions.                              
                         Names within a category must be UNIQUE                     
           as well as names ACROSS all object maint and object browse modules       
                                                                                    
                                                                                    
         Unique Name requirements     Name      Conflict                            
         ------------------------     ----      --------                            
       1 OBJECT-BROWSE-SELECT         TESTNB1                                       
       2 SUBPROGRAM-PROXY             TESTNB1Y                                      
       3 SUBPROGRAM-PROXY-CLIENT      TESTNB1C                                      
       5 OBJECT-BROWSE-ROW-PDA        TESTDA1                                       
       6 OBJECT-BROWSE-KEY-PDA        TESTKA1                                       
       7 OBJECT-BROWSE-RESTRICTED-PDA TESTPA1                                       
       8 OBJECT-BROWSE-STATIC-LDA     TESTLA1                                       
       9 OBJECT-BROWSE-SUBP           TESTNA1                                       
      10 SUBPROGRAM-PROXY             TESTNA1Y                                      
      11 SUBPROGRAM-PROXY-CLIENT      TESTNA1C                                      
      13 OBJECT-MAINT-DATA-PDA        TESTDM1                                       
      14 OBJECT-MAINT-RESTRICTED-PDA  TESTPM1                                       
      15 OBJECT-LDA                   TESTLM1                                       
      16 OBJECT-MAINT-SUBP            TESTNM1                                       
  8. Press Enter again.

    The last screen is displayed:

      07-05-26           - Driver for subprogram WTRNAME -                 18:20:04 
            You can customize WTRNAMCL, along with WTRNAME, for site-specific       
                                   naming conventions.                              
                         Names within a category must be UNIQUE                     
           as well as names ACROSS all object maint and object browse modules       
                                                                                    
                                                                                    
      17 SUBPROGRAM-PROXY             TESTNM1Y                                      
      18 SUBPROGRAM-PROXY-CLIENT      TESTNM1C                                      

Top of page

Define Default Specification Parameters

You can define default parameter values for the model specification panels in Natural Construct. The supplied models retrieve many of the default values by issuing a CALLNAT to the CSUDEFLT subprogram. Prior to returning the defaults, CSUDEFLT checks to see whether the values have been overridden by the user-defined CSXDEFLT sample exit subprogram. If so, the overridden values are returned to the model. When the Business Service wizard generates the models to create business services, your default values will be used.

The CSXDEFLT sample exit subprogram provides user-defined default values for model parameters that can be overridden on the specification panels, as well as internal model parameters that are not displayed on the panels.

Note:
For more information, see Define Default Specifications.

Top of page

Modify Logon Security

The CSXSECX sample exit subprogram allows you to take advantage of Natural Security LOGON user exit. If the security routines in CSXSECX are defined and the object code is in the SYSLIBS library, they are processed before the standard Natural Business Services security routines are processed.

The parameters for CSXSECX are:

1 STEPLIB-DATA   (A144)
1 REDEFINE STEPLIB-DATA
  2 STEPLIB-DATA-STRUCT  (1:8)
   3 LIB-NAME (A8)
   3 LIB-DBID (N5)
   3 LIB-FNR (N5)
1 PROXY-SUBPROGRAM (A8)
1 USER-ID (A32)
1 REDEFINE USER-ID
 2 USER-ID-A8 (A8)
1 DOMAIN (A8)   /* Domain name
1 BUSINESS-SERVICE (A32) /* business service name
1 BUSINESS-SERVICE-VERSION (N6) /* business service version
1 BUSINESS-METHOD (A32) /* business service version

Note:
Although the parameters above are accessible within this exit, you cannot change the parameter values here; you can only add additional security checks.

Start of instruction setTo customize CSXSECX:

  1. Copy the subprogram from the SYSCSTX library to the SYSCST library.

  2. Add your own security settings.

  3. Stow the subprogram.

  4. Move the object code to the SYSLIBS library to make the routine active.

When the dispatcher is started, it checks to see if the object code for CSXSECX is in the SYSLIBS library. If the object code is not in the SYSLIBS library, the dispatcher assumes there is no customized security checking and will process the standard Natural Business Service security routines. If the object code is in the SYSLIBS library, the dispatcher will execute this code first and then process the standard security routines.

For information on the sample exit subprograms, see Access and Use the Sample Exit Subprograms.

Note:
You can also enhance the standard Natural Business Services security routines. For information, see Setting Business Service Security Options.

Top of page

Modify the BACKOUT or END TRANSACTION Processing

The CSXTRANS sample exit subprogram allows you to issue BACKOUT or END TRANSACTION statements. If the object code for CSXTRANS is in the SYSLIBS library, it is executed after the call to a business service has been made.

Note:
An Object Maint-generated subprogram issues an END TRANSACTION statement when CDAOBJ2. #ET-IF-SUCCESSFUL is True. Therefore, a BACKOUT TRANSACTION statement may not be issued when expected.

The parameters for CSXTRANS are:

1 STEPLIB-DATA (A144)
1 REDEFINE STEPLIB-DATA
	2 STEPLIB-DATA-STRUCT (1:8)
		3 LIB-NAME (A8)
		3 LIB-DBID (N5)
		3 LIB-FNR (N5)
1 PROXY-SUBPROGRAM (A8)
1 USER-ID (A32)
1 REDEFINE USER-ID
	2 USER-ID-A8 (A8)
1 DOMAIN (A8) /* Domain name
1 BUSINESS-SERVICE (A32) /* business service name
1 BUSINESS-SERVICE-VERSION (N6) /* business service version
1 BUSINESS-METHOD (A32) /* business service version
1 START-OF-PROXY-TIMESTAMP (B8) /* time CALLNAT to business service was issued
**SAG END-EXIT
PARAMETER USING CDPDA-M

Note:
Changing any value except the values in CDPDA-M will have no effect; the values are reset to the values they were before entering this exit.

Start of instruction setTo customize CSXTRANS:

  1. Copy the subprogram from the SYSCSTX library to the SYSCST library.

  2. Add your own BACKOUT or END TRANSACTION logic.

  3. Stow the subprogram.

  4. Move the object code to the SYSLIBS library to make the routine active.

When the dispatcher is started, it checks to see if the object code for CSXTRANS is in the SYSLIBS library. If the object code is not in the SYSLIBS library, the dispatcher assumes there is no customized END or BACKOUT TRANSACTION processing and will process the standard Natural Business Service security routines. If the object code is in the SYSLIBS library, the dispatcher will execute this code first and then process the standard security routines.

For information on the sample exit subprograms, see Access and Use the Sample Exit Subprograms.

Note:
You can also enhance the standard Natural Business Services security routines. For information, see Setting Business Service Security Options.

Top of page

Modify the Supplied Generation Models

You can customize the business services generated by the Business Service wizard by modifying the Natural Construct generation models. You can modify the code frames, subprograms, and copycode used by the supplied models, as well as the external data areas and subprograms.

Note:
For more information, see Modifying the Supplied Models.

Top of page