IBM Z and LinuxONE Languages

Languages

Languages

Broad range of supported development languages and tools allows to transform software delivery practices.

 View Only
  • 1.  COBOL 6.1 and ISPF - ISPS107

    Posted Thu May 21, 2020 02:26 AM
    Edited by Dan Zhang Thu May 28, 2020 05:45 AM

    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.

    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?


    -----------------------------------------------------
    Question asked by TobyRo on May 30, 2018
    -----------------------------------------------------



  • 2.  RE: COBOL 6.1 and ISPF - ISPS107

    Posted Thu May 21, 2020 02:28 AM
    Edited by Dan Zhang Thu May 28, 2020 05:57 AM
    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.

    -----------------------------------------------------
    Replied by Marvin Knight on May 30, 2018
    -----------------------------------------------------




  • 3.  RE: COBOL 6.1 and ISPF - ISPS107

    Posted Thu May 21, 2020 02:31 AM
    Edited by Dan Zhang Thu May 28, 2020 05:55 AM

    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.

    -----------------------------------------
    Replied by TobyRo on
    -----------------------------------------






  • 4.  RE: COBOL 6.1 and ISPF - ISPS107

    Posted Thu May 21, 2020 02:32 AM
    Edited by Dan Zhang Thu May 28, 2020 06:00 AM
    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
    -----------------------------------------