z/OS ISPF Software Configuration and Library Manager Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


SAVE—Lock, Parse, and Store a Member

z/OS ISPF Software Configuration and Library Manager Guide and Reference
SC19-3625-00

The SAVE service locks and parses a member, and stores that member's statistical, dependency, and historical information all in one service call. The SAVE service calls the LOCK, PARSE, and STORE services.

Note: The SAVE service does not parse a member correctly if the member is packed. Make sure that the pack mode is off in the member's profile.

Before you start the SAVE service, the member must exist in the development library you specify. (The LOCK, SAVE, or STORE service can be complete for the member, but this is not necessary.) Upon completion of the SAVE service, the member has been locked and its access key has been set. (You must supply the correct access key for previously locked members.) A typical development scenario follows:

  1. Update or create the member.
  2. Start the SAVE service to parse the member and store the member's statistical, dependency, and historical information.

For more information about the LOCK, PARSE, and STORE services, see their service descriptions in this chapter.

Note: Use of the SAVE service causes SCLM to delete all previously stored $list_info data from the member's dependency and historical information. Each invocation of the SAVE service creates a new set of statistical, dependency, and historical information for the member.

If you need pre-existing historical information, such as user entry data, do not invoke the SAVE service. Use the LOCK, PARSE, and STORE services instead.

Command invocation format

Read syntax diagramSkip visual syntax diagram
>>-FLMCMD--SAVE,project,-+---------+--,group,type,member-------->
                         '-prj_def-'                       

>--,-+----------+--,-+------------+--,-+--------+--------------->
     '-authcode-'    '-access_key-'    '-userid-'   

                     .-Y-.                  .-C-.    .-C-.   
>--,-+----------+--,-+---+--,-+--------+--,-+---+--,-+---+------>
     '-language-'    '-N-'    '-ddname-'    '-U-'    '-U-'   

>--,-+-------------+--,-+------------+-------------------------><
     '-change_code-'    '-subproject-'   

Call invocation format

Read syntax diagramSkip visual syntax diagram
>>-lastrc--:=--FLMLNK('SAVEbbbb',sclm_id--,group,type,member---->

>--,authcode,access_key--,-+-userid-+--,language--,-+-Y-+------->
                           '-'--'---'               '-N-'   

>--,ddname--,-+-C-+--,-+-C-+--,-+-Y-+--,$list_info-------------->
              '-U-'    '-U-'    '-N-'                

>--,max_prom_group--,$msg_array--,-+------------+-);-----------><
                                   '-subproject-'      

ISPF interface panel

Figure 1. SAVE Service panel
   Menu  SCLM  Utilities  Help
 ──────────────────────────────────────────────────────────────────────────────
                     SCLM FLMCMD SAVE Service - Entry Panel
                                                                    More:     +
 SCLM Library:
    Project . . . SCLMTEST
    Alternate . .         
    Group . . . . DEV1    
    Type  . . . . SOURCE  
    Member  . . .         

 Authorization code  . .           (If blank, the default auth code is used)
 Access key  . . . . . .                
 User id . . . . . . . .           (If blank, your user id is used)
 Change code . . . . . .         
 Language  . . . . . . . COB     

                                      Compilation
 Mode  . .    1. Conditional          Unit Mode . . .    1. Conditional
              2. Unconditional                           2. Unconditional

 Command ===>                                                                  
  F1=HELP      F2=          F3=END       F4=DATASETS  F5=FIND      F6=CHANGE
  F9=SWAP     F10=LEFT     F11=RIGHT    F12=SUBMIT                              

Parameters

project
The project name. The maximum parameter length is 8 characters. This parameter is used for FLMCMD only.
prj_def
The project definition name to be used for the lock, parse, and store. It defaults to the project parameter. The maximum parameter length is 8 characters. This parameter is used for FLMCMD only.
sclm_id
An SCLM ID associated with a given project and project definition. The SCLM ID is generated by the INIT service. The maximum parameter length is 8 characters. This parameter is used for FLMLNK only.
group
The group in which the lock, parse, and store are to occur. The specified group must be a development library. The maximum parameter length is 8 characters.
type
The type containing the member. The maximum parameter length is 8 characters.
member
The member to be locked and parsed, and whose accounting information is to be stored. The maximum parameter length is 8 characters.
authcode
The authorization code to be used for the lock. If you do not supply an authcode, SCLM uses default values as follows:
  • The authorization code from the existing member if the member being locked exists in the hierarchy
  • The default authorization code for the group if the member does not exist in the hierarchy.
The maximum parameter length is 8 characters.
access_key
The access key to be assigned to the member. The access key is required for any further manipulation of the member until you use the UNLOCK service to remove the access key. It defaults to blank. The maximum parameter length is 16 characters.
userid
User ID of the person requesting the SAVE service. It defaults to the current system user ID. The maximum parameter length is 8 characters.
language
The language of the member. The maximum parameter length is 8 characters. You must specify the language the first time you save a member; after that a language name is optional. If not specified, the language will default to the language already defined for the member. Specify a different language name if you wish to change the name of the language defined for the member. Parsers will be called based on the current value specified.
Y|N
Y indicates that SCLM is to copy parser listings to the ddname parameter only if parser errors occur. N indicates that SCLM is to copy all parser listings to the ddname. The maximum parameter length is 24 characters.

If the parser for the specified language does not produce a listing, specify Y. The language parsers supplied by SCLM do not produce a listing. If the parser for the specified language does produce a listing, you can specify either value. For more efficient performance, specify Y. Project-specific parsers can produce a listing. The default value for FLMCMD is Y. There is no default value for FLMLNK.

ddname
The ddname indicating the destination of the parser listings. If you specify a blank ddname, SCLM does not generate the parser listings. The maximum parameter length is 8 characters.

If the parser for the specified language does not produce a listing, specify a blank ddname. The language parsers supplied by SCLM do not produce a listing. If the parser for the specified language does produce a listing and you specified a ddname, allocate the ddname with the attributes required by the parser. Project-specific parsers can produce a listing.

C|U
Specify C to indicate that the member's statistical and dependency information is not to be saved in the event of a parser error; that is, the STORE service is not to be called if the PARSE service completes with a return code of 4. Specify U to indicate that the member's statistical and dependency information is to be saved even in the event of a parser error. The maximum parameter length is 24 characters. The default value for FLMCMD is C. There is no default value for FLMLNK.
C|U
Specify C to indicate that a compilation unit cannot be drawn down into a different member. Specify U to indicate that a compilation unit can be drawn down into a different member. The maximum parameter length is 24 characters. The default value for FLMCMD is C. There is no default value for FLMLNK.
change_code
A change_code to be added to the information obtained by parsing the member. If the member's accounting record lists the change_code, SCLM updates the date and time stamps for the existing change_code entry. The maximum parameter length is 8 characters. This parameter is used for FLMCMD only.
subproject
The name of the subproject to be assigned to the member. This parameter must only be specified if the SCLM project has been defined with subprojects. For more information about subprojects, see SCLM security.

The maximum parameter length is 8 characters.

Y|N
Y tells SCLM to verify change code records appearing in $list_info with the change code verification routine specified in the project definition. N tells SCLM not to verify change code records. The maximum parameter length is 24 characters.

This parameter is only valid for the FLMLNK call invocation. SCLM always verifies change_code records for the FLMCMD command format.

Specify N if your project definition does not specify a change_code verification routine. Ask your project manager if your project is using a change_code verification routine.

$list_info
An input or output parameter pointing to an array of records that contains change_code information. SCLM adds any change codes appearing in the array to the information it obtains by parsing the member. If you are not adding change_code information to the parser information, SCLM can pass a fullword zero buffer address. The array contains only change_code records.

SCLM deletes all information associated with the member (such as user entry data) previously stored through the STORE service with the $list_info parameter.

SCLM ignores the Date and Time Stamp fields on all change_code entries in the $list_info array. The SAVE service assigns the last change date and time from the member's accounting record to all change_codes it finds in the array. Note that SCLM does not update the array itself.

SCLM adds all change_code data listed in $list_info to the existing change_code data in the member's accounting record. If the member's accounting record already lists the change_code, SCLM updates the date and time stamps for the existing change_code entry.

This parameter is used for FLMLNK only. See Pointer parameter descriptions for more details on $list_info.

max_prom_group
An output parameter indicating the highest group in the hierarchy to which the member can be promoted. Based on the authorization code you used for the lock, SCLM determines the highest group that you can promote this member to. The maximum parameter length is 8 characters. This parameter is used for FLMLNK only.
$msg_array
An output parameter pointing to the message array. See Pointer parameter descriptions for more information about $msg_array. This parameter is used for FLMLNK only.

Return codes

Additional special services messages are written to the FLMMSGS ddname. See SCLM service messages for more information.

Other return codes might be produced by the FLMCMD or the FLMLNK processor. See SCLM service return codes for more information.

Possible return codes are:
0
Normal completion.
4
Warning condition. The $msg_array parameter determines the location of this message array.
8
Error condition. The $msg_array parameter determines the location of this message array.

Example of command invocation

FLMCMD SAVE,PROJ1,,USER1,SOURCE,FLM01MD1,,XXX#05,,PASCAL,,,,,CC001234

This service command locks, parses, and stores the information for the member FLM01MD1 of the type SOURCE in the USER1 group. The project name is PROJ1 and the access key is XXX#05. Change code CC001234 is to be added to the information obtained by parsing the member with the PASCAL parser. All other parameters are default values.

Example of call invocation

This example shows general syntax. Call invocations are language-specific. See Sample programs using SCLM services for specific examples.

$list_info := NIL;  (* Sets the buffer address to X'00000000' *)

lastrc := FLMLNK('SAVE    ',                  (* service            *)
                  sclm_id,                    (* SCLM ID            *)
                  'USER1   ',                 (* group              *)
                  'SOURCE  ',                 (* type               *)
                  'FLM01MD1',                 (* member             *)
                  'TESTAC  ',                 (* authorization code *)
                  'XXX#05          ',         (* access key         *)
                  '        ',                 (* user ID            *)
                  'PASCAL  ',                 (* language           *)
                  'Y                       ', (* listings           *)
                  'PARSEDD ',                 (* ddname of listings *)
                  'U                       ', (* statistical and dependency info *)
                  'C                       ', (* compilation unit   *)
                  'Y                       ', (* change codes       *)
                  $list_info,                 (* list information pointer *)
                  max_prom_group,             (* maximum promotable group *)
                  $msg_array);                (* message array pointer    *)

This service call locks, parses, and stores the information for member FLM01MD1 of the SOURCE type in the USER1 group. The sclm_id parameter contains a valid SCLM ID returned from the INIT service. The authorization code to be used for the lock verification is TESTAC and the access key is XXX#05. The PASCAL parser parses the member.

SCLM copies parser listings to the PARSEDD ddname only if errors occur. If a parser error does occur, the STORE still completes, SCLM does not draw down compilation units into a different member, and the service verifies all change codes found in $list_info. SCLM returns all messages produced in the $msg_array parameter. You must allocate the PARSEDD ddname before you call FLMLNK.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014