The STORE service saves a member's statistical, dependency, and
historical information in an accounting record in the project database. SCLM
usually obtains statistical and dependency information by parsing the
member, and it is a required input to the STORE service. SCLM retains
the historical information in the project database and automatically
generates it for the member.
Before you call the STORE service, you must lock the member
using the LOCK service, and the member must exist in the development
library you specify. After the STORE service ends, the member
remains locked and the access key also remains unchanged. A typical
development scenario follows:
- Use the LOCK service to lock the member.
The member may or may not yet exist.
- Update or create the member.
- Parse the member using the PARSE service.
- Save the member's statistical, dependency, and historical
information using the STORE service.
The STORE service removes duplicate dependency information for
each member. For example, if a member is referenced as an include
ten times, the STORE service records the reference only once in the
accounting information.
When the STORE service receives dependency information, it replaces
the existing dependency information rather than appending to it.
Change code information can relate problem report (PR) numbers,
change request (CR) numbers, and other information to individual
source members. The STORE service can validate change codes you
input to the STORE service before it enters them into the accounting
records and saves the member.
Like dependency information, all existing user data entries are
replaced with the new user data the STORE service receives. User data
entries are stored directly into the accounting information for the
member. Duplicate entries passed to the STORE service are preserved
in the accounting information.
Command invocation format
You cannot use command procedures to call this service.
Call invocation format
>>-lastrc--:=--FLMLNK('STOREbbb',sclm_id--,group,type,member---->
>--,access_key--,language--,-+-userid-+--,-+-C-+--,-+-Y-+------->
'-'--'---' '-U-' '-N-'
>--,$stats_info,$list_info--,$msg_array--,-+------------+-);---><
'-subproject-'
Parameters
- sclm_id
- An SCLM ID associated with a given project and project
definition. The INIT service generates the SCLM ID.
The maximum parameter length is 8 characters.
- group
- The group in which the store is to occur.
The specified group must be a development library.
The maximum parameter length is 8 characters.
- type
- The type containing the member whose information is to be
stored. The maximum parameter length is 8 characters.
- member
- The member whose information is to be stored.
The maximum parameter length is 8 characters.
- access_key
- The access key assigned to the member with the LOCK service.
If you supply an incorrect access key, the service fails.
The maximum parameter length is 16 characters.
- language
- The language of the member. If you used the PARSE service to
parse the member, this language should be the same as the one
specified as input to the PARSE service. The maximum parameter
length is 8 characters. However, if the language is different, you
can generate your own $stats_info and write an accounting record.
You can also use the statistics retrieved from the PARSE service, and
it will create a new accounting record with the updated information.
- userid
- The user ID of the person requesting the STORE service.
It defaults to the current system user ID.
The maximum parameter length is 8 characters.
- C|U
- C indicates conditional; SCLM does not draw down a compilation
unit into a different member. U indicates unconditional; SCLM can
draw down a compilation unit into a different member. The maximum
parameter length is 24 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.
Ask your project manager if your project is using a change code verification
routine. If it is not, specify N.
- $stats_info
- A pointer to a record containing the member's statistical
information. You must have a valid buffer address.
Note: If you used the PARSE service to generate the record,
you must copy the buffer to the calling program's local storage before
calling the STORE service. Failure to copy the buffer to local storage
causes unpredictable results.
See Pointer parameter descriptions for more details on the $stats_info
parameter and copying the record contents.
- $list_info
- A pointer to an array of records that contains the member's
include, change code and user entry information. If the member has
none of this information, you can pass a fullword zero buffer address.
All include and user entry information data listed in $list_info
replaces existing accounting record data for the member. If you want
to maintain existing information (such as user entry history) for the
member, it must appear in the $list_info parameter.
SCLM ignores the Date and Time Stamp fields on all change code
entries in the $list_info array. The STORE service assigns the current
system date and time 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 information in the member's accounting record. If
the change code is already listed in the member's accounting record, SCLM
updates the date and time stamps for the existing change code entry.
The order of the include entries in $list_info determine the order
in which the build function processes the member's dependencies.
Note that SCLM does not permit duplicate record entries in the
$list_info array. If it encounters duplicate records, it flags an
error.
Note: If you used the PARSE service to generate the array,
you must copy the buffer to the calling program's local storage before
you call the STORE service. Failure to copy the buffer to local
storage causes unpredictable results. See
Pointer parameter descriptions
for more information about the $list_info parameter and copying the
array contents.
- $msg_array
- An output parameter pointing to the message array. See
Pointer parameter descriptions for more information about $msg_array.
- 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.
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 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 contains the
error message associated with this condition.
Example of call invocation
This example shows general syntax. Call invocations are
language-specific. See Sample programs using SCLM services for specific examples.
lastrc := FLMLNK('STORE ', (* service *)
sclm_id, (* SCLM ID *)
'USER1 ', (* group *)
'SOURCE ', (* type *)
'FLM01MD2', (* member *)
'XXX#04 ', (* access key *)
'PASCAL ', (* language *)
' ', (* user ID *)
'C ', (* compilation unit *)
'Y ', (* change codes *)
$stats_info, (* statistical information pointer *)
$list_info, (* listing information pointer *)
$msg_array); (* message array pointer *)
This service call stores the statistical and dependency information
(obtained from $stats_info and $list_info) in the accounting record
for member FLM01MD2 in the project database. The sclm_id parameter
contains a valid SCLM ID returned from the INIT service.
The member FLM01MD2 must exist in the SOURCE type in the USER1
group and must have previously been locked with an access key of
XXX#04. The member is identified as a PASCAL member.
SCLM does not draw down compilation units into a different
member and it verifies all change codes found in $list_info.
SCLM returns all messages in the $msg_array array.