Subject: | |
From: | |
Reply To: | |
Date: | Thu, 23 Sep 1999 11:03:04 -0700 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
"Glenn A. Mitchell" wrote:
>
> 2. Some of our QUICK Screens invoke a COBOL program that
> uses process handling to suspend underneath the QUICK screen
> (RUN program;lib=P;SUSPEND command). Without the SUSPEND
> option, we get:
>
> Access to this file is denied for the specified file access;
> a security violation occurred. (FILE OPEN ERROR -248)
> File System message 248
> UNABLE TO OPEN PUBLIC SL FILE (LOAD ERR 51)
Well, I don't know about the security violation, but here's what
DenKor uses (Quick screen snippets, followed by COBOL source
snippets). I developed these from examples in the Cognos Tech
Newsletters. I hope this helps!
CANCEL CLEAR
SET DEFAULT
;*************************************************************
SCREEN whatever
;*************************************************************
FILE filename primary
;*************************************************************
TEMPORARY COMMAND-STMT CHARACTER * 80 INITIAL " " RESET AT STARTUP
TEMPORARY CHILD INTEGER SIZE 2 INITIAL 0 RESET AT STARTUP
TEMPORARY PROGRAM-NAME CHARACTER * 34 INITIAL " " RESET AT STARTUP
TEMPORARY PROGRAM-PIN INTEGER SIZE 2 INITIAL 0 RESET AT STARTUP
;*************************************************************
TITLE "whatever" AT 1,71
;*************************************************************
PROCEDURE INTERNAL RUN-PROGRAM
BEGIN
IF PROGRAM-PIN = 0
THEN BEGIN
LET CHILD = NCONVERT ( GETSYSTEMVAL ( "CHILD" ) ) + 1
LET COMMAND-STMT = "RUN " + PROGRAM-NAME
RUN COMMAND COMMAND-STMT ON ERROR CONTINUE
DO EXTERNAL NM "getpin" (CHILD, PROGRAM-PIN)
IF NOT SETSYSTEMVAL ( "CHILD", ASCII ( CHILD ) )
THEN INFO = "SETSYSTEMVAL failed in RUN-PROGRAM." NOW
ELSE NULL
END
ELSE BEGIN
DO EXTERNAL NM "activate" (PROGRAM-PIN)
END
END
;*************************************************************
PROCEDURE DESIGNER who &
HELP "Run the whoever program"
BEGIN
LET PROGRAM-NAME = "whoever"
LET PROGRAM-PIN = &
NCONVERT ( GETSYSTEMVAL ( "whoever_PIN" ) )
DO INTERNAL RUN-PROGRAM
IF NOT SETSYSTEMVAL &
( "whoever_PIN", ASCII ( PROGRAM-PIN ) )
THEN INFORMATION = "SETSYSTEMVAL failed." NOW
ELSE NULL
END
---------------------------------------------------------------------
IDENTIFICATION DIVISION.
PROGRAM-ID. whoever.
****************************************************************
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
CONDITION-CODE IS COND-CODE.
DATA DIVISION.
$PAGE
****************************************************************
WORKING-STORAGE SECTION.
****************************************************************
COPY copybook.
$PAGE
****************************************************************
PROCEDURE DIVISION.
****************************************************************
01-whoever.
01-open-database.
PERFORM 25-open-database THRU 25-EXIT.
01-do-processing.
PERFORM 50-do-processing THRU 50-EXIT.
CALL INTRINSIC "ACTIVATE" USING ZERO.
IF COND-CODE <> ZERO
DISPLAY "The ACTIVATE intrinsic failed in whoever."
GO TO 01-STOP-RUN.
CALL INTRINSIC "SUSPEND" USING 1.
IF COND-CODE <> ZERO
DISPLAY "The SUSPEND intrinsic failed in whoever."
GO TO 01-STOP-RUN.
GO TO 01-do-processing.
01-STOP-RUN.
STOP RUN.
01-END.
+-------------------------------------------------------------------+
My mind is my own, as are my ideas and opinions.
My heart, body, and soul, however, all belong to others. Tim.
+-------------------------------------------------------------------+
Tim Ericson tericson DenKor Dental Management Corp.
Sr. Systems Analyst at denkor 503-526-4440 (my direct number)
(& Systems Manager) dot com http://www.denkor.com
Programming HP3000s since 1983! Quality dental care since 1970!
+-------------------------------------------------------------------+
UDCs and Command Files: http://www.denkor.com/hp3000/command_files
+-------------------------------------------------------------------+
|
|
|