Wow! It's even more restrictive than I had thought. I tested this out (sorry,
I found it hard to believe!) and of course you are correct.
"copy library":
DVFJS:/u/dvfjs:>ls /u/dvfjs/copy
TEST1 TEST3.CPY test2
Compile JCL:
//COBUX JOB ,NOTIFY=&SYSUID,REGION=2000M
// SET COBLIB=IGY.V5R2M0
// JCLLIB ORDER=(&COBLIB..SIGYPROC)
//*----------------------------------------------------------*
//CLMAIN EXEC IGYWC,LNGPRFX=&COBLIB
//COBOL.SYSIN DD *
identification division.
program-id. cobux.
copy test1.
copy 'test1'.
copy test2.
copy 'test2'.
copy 'test3.cpy'.
copy 'TEST3.CPY'.
/*
//COBOL.SYSLIB DD PATH='/u/dvfjs/copy',FILEDATA=TEXT,RECFM=FB,LRECL=80
//
Selected output:
PP 5655-W32 IBM Enterprise COBOL for z/OS 5.2.0 Date
01/13/2017 Time 14:11:04 Page 3
LineID Message code Library phase message text
7 IGYLI0048-S The member "TEST2" was not found in the "COPY" library.
Skipped to the period terminating the "COPY"
statement.
8 IGYLI0048-S The member "'test2'" was not found in the "COPY" library.
Skipped to the period terminating the "COPY"
statement.
9 IGYLI0025-E Name "'test3.cpy'" was invalid. It was processed as
"TEST30CP".
9 IGYLI0048-S The member "'test3.cpy'" was not found in the "COPY"
library. Skipped to the period terminating the "COPY"
statement.
10 IGYLI0025-E Name "'TEST3.CPY'" was invalid. It was processed as
"TEST30CP".
10 IGYLI0048-S The member "'TEST3.CPY'" was not found in the "COPY"
library. Skipped to the period terminating the "COPY"
statement.
Messages Total Informational Warning Error Severe Terminating
Printed: 6 2 4
PP 5655-W32 IBM Enterprise COBOL for z/OS 5.2.0 COBUX Date
01/13/2017 Time 14:11:04 Page 4
LineID PL SL
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7-|--+----8
Map and Cross Reference
000001 identification division.
000002 program-id. cobux.
000003 copy test1.
000004C * This is copied from /u/dvfjs/copy/TEST1
000005 copy 'test1'.
000006C * This is copied from /u/dvfjs/copy/TEST1
000007 copy test2.
000008 copy 'test2'.
000009 copy 'test3.cpy'.
000010 copy 'TEST3.CPY'.
[...]
PP 5655-W32 IBM Enterprise COBOL for z/OS 5.2.0 COBUX Date
01/13/2017 Time 14:11:04 Page 7
COPY/BASIS cross-reference of text-names, library names and dataset
information
Text-name Library File name Concat ISPF
statistics
(Member) (DDNAME) (Dataset name) Level
Created Changed
TEST1 SYSLIB ...PATH=.SPECIFIED... 0
The only copy statements that succeeded are when the copy file in the Unix
directory was in uppercase and no more than 8 characters.
And you're saying this restriction is true even when the compiler is executed
via cob2?
Seems like an RFE is order.
________________________________
From: IBM Mainframe Discussion List <[email protected]> on behalf of
John McKown <[email protected]>
Sent: Friday, January 13, 2017 1:27 PM
To: [email protected]
Subject: Re: New free / open source z/OS tools from Dovetailed Technologies
On Fri, Jan 13, 2017 at 2:18 PM, Charles Mills <[email protected]> wrote:
> My recollection is that STOW at least and probably BLDL and FIND are
> utterly character agnostic. You can create member names with non-printable
> characters in them, for example. As I recall you cannot reference them in
> JCL (of course) but ISPF displays them correctly and you can rename or
> delete them from 3.1. Been a long time -- I may be off on some of the
> details. Experiments would have been done around 1997.
>
Ah, yes. A PDS can have a members named "A" and "a" in the same library.
But, given that the COBOL compiler does not allow specifying a lower case
name (or it automatically upper cases it), then you cannot have a UNIX file
named "a" (lower case) be processed by the COBOL compiler via a "COPY a"
statement. So the restriction that the COBOL copy code which resides in a
UNIX file requires that the UNIX file be all in upper case and consist only
of "valid" (according to COBOL) characters. That's what I was trying to
say, but didn't say very well.
>
> Charles
>
> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:[email protected]] On
> Behalf Of Paul Gilmartin
> Sent: Friday, January 13, 2017 12:09 PM
> To: [email protected]
> Subject: Re: New free / open source z/OS tools from Dovetailed Technologies
>
> On Fri, 13 Jan 2017 13:43:37 -0600, John McKown wrote:
> >
> >There is a UNIX command: cob2 which will do a COBOL compile and link.
> >Basically this is just a "driver" which, as Gil indicated, parses the
> >UNIX command line parameters, does dynamic allocations for DDs needed
> >and then does (I think) a normal MVS LINK command to invoke the
> >standard COBOL compiler. Note that any UNIX directories in the command
> >are allocated to the proper DD and the "normal" BSAM / BPAM UNIX
> >interface code in the access method takes care of the I/O. That is,
> >there is no UNIX I/O code in the COBOL compiler itself. At least, I
> >don't think that there is. This is why the COBOL COPY verb cannot
> >process a file name like "SOMEFILE.cpy" and why the file in the UNIX
> directory must in in UPPER CASE, not in "normal"
> >lower case. On my system (z/OS 1.12), the cob2 command's full path
> >is: /usr/lpp/cobol/bin/cob2
> >
> I believe BPAM/BLDL/FIND is case-indifferent and that any UPPER CASE
> restriction lies in the compiler.
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>
--
There's no obfuscated Perl contest because it's pointless.
-Jeff Polk
Maranatha! <><
John McKown
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN