Complete solution: 000055 01 SPF-CUST PIC X(8) VALUE 'CUST '.
000056 01 ISPLINK PIC X(8) VALUE 'ISPLINK '.
000057 01 VDEFINE PIC X(8) VALUE 'VDEFINE '.
000058 01 VDELETE PIC X(8) VALUE 'VDELETE '.
000059 01 VPUT PIC X(8) VALUE 'VPUT '.
000060 01 VGET PIC X(8) VALUE 'VGET '.
000061 01 VCOPY PIC X(8) VALUE 'VCOPY '.
000062 01 COPY1 PIC X(8) VALUE 'COPY '.
000063 01 ASIS PIC X(8) VALUE 'ASIS '.
000064 01 DISPLAY PIC X(8) VALUE 'DISPLAY '.
000065 01 SETMSG PIC X(8) VALUE 'SETMSG '.
000066 01 PROFILE PIC X(8) VALUE 'PROFILE '.
000067 01 SHARED PIC X(8) VALUE 'SHARED '.
000068 01 CHAR PIC X(8) VALUE 'CHAR '.
000069 01 NUM PIC X(8) VALUE 'NUM '.
000070 01 BLANK1 PIC X(8) VALUE ' '.
000071 01 TABNAME PIC X(128) VALUE ' '.
000073 01 SPF-TABN PIC X(008) VALUE 'TABNAME '.
000075 01 L1 PIC 9(6) VALUE 1 COMP.
000076 01 L3 PIC 9(6) VALUE 3 COMP.
000077 01 L4 PIC 9(6) VALUE 4 COMP.
000078 01 L8 PIC 9(6) VALUE 8 COMP.
000079 01 L12 PIC 9(6) VALUE 12 COMP.
000080 01 L28 PIC 9(6) VALUE 28 COMP.
000081 01 L57 PIC 9(6) VALUE 57 COMP.
000082 01 L75 PIC 9(6) VALUE 75 COMP.
000083 01 L128 PIC 9(6) VALUE 128 COMP.
. . 000337 DISPLAY ' FIRST VDEFINE '.
000338
000339 CALL ISPLINK USING VDEFINE SPF-TABN TABNAME CHAR L128.
000340
000341 IF RETURN-CODE NOT = 0
000342 DISPLAY 'VDEF ERROR tabname RET CODE IS: ' RETURN-CODE
000343 GO TO 9999-END-OF-PROGRAM
000344 END-IF.
000345 DISPLAY ' after VDEFINE '.
000346
000347 *
000348
000349 DISPLAY ' FIRST VGET '.
000350
000352 Call ISPLINK Using VGET SPF-TABN ASIS .
000353
000354 IF RETURN-CODE NOT = 0
000355 DISPLAY 'VGET ERROR tabname RET CODE IS: ' RETURN-CODE
000357 GO TO 9999-END-OF-PROGRAM
000358 END-IF.
000359
000360
000361 DISPLAY ' after VGET '.
000362
000363 Display 'COBOL Table:' TABNAME.
000364 Display 'ISPF Table:' SPF-TABN.
000367
000368 MOVE TABNAME to ws-table-name.
000369
000370 Display 'COBOL Table2:' ws-table-name.
-----------------------------------------
Replied by TobyRo on
May 31, 2018-----------------------------------------
Original Message:
Sent: Thu May 21, 2020 02:30 AM
From: Dan Zhang
Subject: COBOL 6.1 and ISPF - ISPS107
Thank you. That solved the VDEFINE problem. But using this: 000071 01 TABNAME PIC X(058) VALUE ' '.
000073 01 SPF-TABN PIC X(008) VALUE 'TABNAME '. 000339 CALL ISPLINK USING VDEFINE SPF-TABN TABNAME CHAR L8 . 000352 Call ISPLINK Using VGET SPF-TABN ASIS .
Results in an error when the length of the ISPF data is more than 8 characters. The variable is meant to contain DB2 table names, and these can be up to 128 characters long.
Changing to: 000071 01 TABNAME PIC X(058) VALUE ' '. allows for up to 58 chars to be returned.
(Disclaimer: This post is migrated from IBM Developer Answers that is no longer in use. Its original author is TobyRo, posted on May 31, 2018 at 04:03 PM.)
Original Message:
Sent: Thu May 21, 2020 02:28 AM
From: Dan Zhang
Subject: COBOL 6.1 and ISPF - ISPS107
You have TABNAME and TABNAME1 both as PIC(128) and a value of blanks. The first parm after VDEFINE is the variable name or a name list. Since this appears to just be one name it should have a length of 8 with the actual name of the variable being defined. So in your example I would expect
01 TABNAME1 PIC X(8) VALUE 'MYTBL '.
Where MYTBL would be the name being VDEFINED.
(Disclaimer: This post is migrated from IBM Developer Answers that is no longer in use. Its original author is Marvin Knight, posted on May 30, 2018 at 10:15 AM.)
Original Message:
Sent: Thu May 21, 2020 02:26 AM
From: Dan Zhang
Subject: COBOL 6.1 and ISPF - ISPS107
This code: 000057 01 VDEFINE PIC X(8) VALUE 'VDEFINE '. 000071 01 TABNAME PIC X(128) VALUE ' '.
000072 01 TABNAME1 PIC X(128) VALUE ' '.
000079 01 L128 PIC 9(6) VALUE 128 COMP.
000327 CALL ISPLINK USING VDEFINE TABNAME1 TABNAME CHAR L128. Compiles with RC=0, but execution results in: ISPS107 Required parm missing * Not all required parameters were found for the VDEFINE service.
Any suggestions?
(Disclaimer: This post is migrated from IBM Developer Answers that is no longer in use. Its original author is TobyRo, posted on May 30, 2018 at 09:44 AM.)