HP OpenVMS Systemsask the wizard |
The Question is: Indexed VMSmail distribution list in COBOL $ MAIL/SUBJ="whatever" file-name @foo.dis where foo.dis is an indexed, variable-length, carriage-return-carriage-control file - this works just fine in DCL. Putting this same command in COBOL and calling LIB$SPAWN to execute it generates the message "%DCL-W-SKPDAT, image data (records not beginning with "$") ignored" When I change the distribution list to a non-indexed file, the COBOL version works fine. How can I make this indexed distribution list file work from within COBOL? Thanks for any help. The Answer is :
The best approach here is to use the documented and supported callable
MAIL application programming interface (API). Not lib$spawn. Examples
are available for calling the MAIL API from various languages.
That said, the OpenVMS Wizard suspects that the indexed file, the use
of COBOL, and the LIB$SPAWN are all unrelated -- this error can be
readily recreated using DCL, and involves the expected processing around
the DCL "@" command. When at the front of a command, "@" is assumed to
invoke a command procedure. When used in the middle of a command, it
can be used to read command parameters in from a file. (Both of these
uses are documented.)
Here is an example of triggering the error:
$ create tmp.dis
A::y
B::y
$ mail/subject=test nla0: @tmp.dis
New mail on node A:: from X::wizard
%DCL-W-SKPDAT, image data (records not beginning with "$") ignored
The following DCL command procedure works as you apparently expected,
without triggering the SKPDAT error:
$ mail/subject=test nla0: "@tmp.dis"
New mail on node A:: from X::wizard
New mail on node B:: from X::wizard
$
Within your COBOL program, you will (obviously) want to quote the name
of the distribution list. (Or, preferably, migrate to the use of the
callable MAIL API.)
|