How do I call a QUICK slave screen from COBOL and pass parameters?

Fernando Olmos folmos@rmit.EDU.AU
Mon, 01 Mar 1999 16:24:48 +1100


Yep..... you're right.... but then again..... I could argue that DISC SPACE AND CPU POWER '...IS TOO SHORT!'.

Thanks for the suggestion anyway.

I got it working and I must say, it is more 'clean' than having to define a file and writing to it and reading etc...... not to mention user lock issues.

The "solution" in a nut-shell is...

..
..

DEFINE THE QUICK SCREEN TO CALL........
 01  W15-RUN-SCRN.                                                FO010399
     03  FILLER                  PIC X(60)   VALUE                FO010399
       "RUN QUICK.CURRENT.COGNOS;INFO='AUTO=TAK0095P.PUB.TIMS'".  FO010399
     03  FILLER                  PIC X       VALUE %15.           FO010399
 01  W15-ERR                     PIC S9(4) COMP VALUE 0.          FO010399
 01  W15-PARM                    PIC S9(4) COMP VALUE 0.          FO010399

DEFINE A MPE VARIABLE TO STORE THE STUDENT NUMBER
 01  W16-SETVAR.                                                  FO010399
     03  FILLER                  PIC X(14)   VALUE                FO010399
         "SETVAR STUNO,'".                                        FO010399
     03  W16-STUNO               PIC X(8).                        FO010399
     03  FILLER                  PIC X(1) VALUE "'".              FO010399
     03  FILLER                  PIC X       VALUE %15.           FO010399
 01  W16-PARM                    PIC S9(4) COMP VALUE 0.          FO010399
 01  W16-ERR                     PIC S9(4) COMP VALUE 0.          FO010399

DEFINE THE JCW NAME OF THE VARIABLE TO STORE THE NUMBER OF STUDENTS DELETED
 01  W17-COMMAND.                                                 FO010399
     03  W17-STUCOUNT            PIC X(8)    VALUE                FO010399
         "DELCOUNT".                                              FO010399
     03  FILLER                  PIC X       VALUE %15.           FO010399
 01  W17-PARM                    PIC S9(4) COMP VALUE 0.          FO010399
 01  W17-ERR                     PIC S9(4) COMP VALUE 0.          FO010399

DEFINE THE VARS TO CONTAIN THE COUNT RESULT FROM CALLING THE QUICK SCREEN
 01  W18-DEL-COUNT               PIC S9(4) COMP.                  FO010399
 01  W19-DEL-COUNT-ASCII         PIC X(4).                        FO010399
..
..
 P5097-DELETE-STUDENT-DELTA.                                      FO010399
*PUT THE STUDENT NUMBER INTO AN MPE VAR.                          FO010399
     MOVE W05-STUDENT-NUMBER TO W16-STUNO.                        FO010399
     CALL INTRINSIC "COMMAND" USING W16-SETVAR                    FO010399
                                    W16-ERR                       FO010399
                                    W16-PARM.                     FO010399
                                                                  FO010399
*CALL QUICK SCREEN TO FIND DSTUDENT-DELTA RECORDS AND DELETE THEM
*THE SCREEN WILL ALSO SET A JCW WITH THE NUMBER OF DELETIONS.
     CALL INTRINSIC "COMMAND" USING W15-RUN-SCRN                  FO010399
                                    W15-ERR                       FO010399
                                    W15-PARM.                     FO010399
                                                                  FO010399
..
..
     MOVE "DSTUDENT-DELTA" TO W13-SET-NAME.                       FO010399
     IF W12-DELHIST                                               FO010399
        MOVE 0000 TO W13-SET-COUNT                                FO010399
     ELSE                                                         FO010399
*NOW GET THE JCW SET BY THE QUICK SCREEN AND PUT THIS INTO THE    FO010399
*VARIABLE FOR THE REPORT                                          FO010399
       CALL INTRINSIC "FINDJCW" USING W17-STUCOUNT                FO010399
                                      W18-DEL-COUNT               FO010399
                                      W17-PARM                    FO010399
*CONVERT VARIABLE FROM BINARY TO ASCII                            FO010399
       MOVE W18-DEL-COUNT TO W19-DEL-COUNT-ASCII                  FO010399
*..AND REPORT                                                     FO010399
       MOVE W19-DEL-COUNT-ASCII TO W13-SET-COUNT.                 FO010399
     WRITE F01-REPORT-LINE FROM W13-COMMON-LINE                   FO010399
           BEFORE ADVANCING 2 LINES.                              FO010399

THE POWERHOUSE ROUTINE.......

..
..
temporary w-studno character*8
temporary w-delcnt
define w-setjcw character*30 = "SETJCW DELCOUNT," + ascii(w-delcnt,4)
..
..


GET THE STUDENT NUMBER SET FROM THE COBOL PROGRAM
  let w-studno = getsystemval("STUNO")
  let w-delcnt = 0

  get mstudent via student-number using w-studno opt
  if not accessok
  then error "COULD NOT FIND STUDENT IN MASTER DATABASE!"

GET THE DATASET AND DELETE RECORD AND COUNT DELETIONS
  while retrieving dstudent-delta via student-number using w-studno
  begin
    delete dstudent-delta
    put delete dstudent-delta

    let w-delcnt = w-delcnt + 1
  end

SET BACK THE COUNT TO THE JCW 'DELCOUNT'
  run command w-setjcw

  return


That's it....... no files, disc space usage, user locking etc......just simple logic!

Cheers

--                                                            
  ,-._|\   Fernando J. Olmos (Analyst Programer)              
 /      \  Information Technology Services - A.S.B.           
 \_,--._/  Royal Melbourne Institute of Technology (Australia)
       v   ===================================================
           VOICE: (03)9925-3615       FAX: (03)9925-1096      
           eMAIL: folmos@rmit.edu.au  ICQ# 32264128           
==============================================================
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Subscribe: "subscribe powerh-l" in message body to majordomo@lists.swau.edu
Unsubscribe: "unsubscribe powerh-l" in message to majordomo@lists.swau.edu
powerh-l@lists.swau.edu is gatewayed one-way to bit.listserv.powerh-l
This list is closed, thus to post to the list, you must be a subscriber.