... and here is the JCL / Clist version of *writing* to the broadcast
dataset:
'// ... <job card> ... '
'/*JOBPARM SYSAFF=(<LPAR>) '
'//* '
'//*********************************************************************'
'//* NOTE: NO LINE NUMBERS IN COLS 73-80 ALLOWED, ELSE CLIST FAILS! *'
'//* ¯¯¯¯¯ *'
'//*********************************************************************'
'//* NOTE: 'U' => TSO USERID(S); SPECIFY LIST OF USERIDS UNDER DESTIDS *'
'//* ¯¯¯¯¯ 'C' -> CONSOLE; SPECIFY MASTER ETC. UNDER CONSIDS *'
'//* *'
'//* 04/01/95 CMP *'
'//*********************************************************************'
'//* '
'//* '
'//CLIST EXEC PGM=IKJEFT01, '
'// REGION=512K, '
'//* PARM='%TSOSEND DESTIDS SYSIN USERID' '
'// PARM='%TSOSEND CONSIDS SYSIN CONSOLE' '
'//* '
'//SYSPROC DD DISP=SHR,DSN=<Clist DSN> '
'//SYSTSIN DD DUMMY '
'//SYSTSPRT DD SYSOUT=* '
'//CONSIDS DD * '
'... <master console ID> ... '
'//* '
'//DESTIDS DD * '
'... <userid(s)> ... '
'//SYSIN DD * '
'... <multi-line message> ... '
'... <... ditto etc etc.> ... '
' '
'/* '
'//* '
'// '
MEMBER NAME TSOSEND
PROC 2 DESTLIST MESSAGE DEBUG USERID CONSOLE
/*-------------------------------------------------------------------*/
/* N.B. DEFAULT IS 'NOW' */
/* 'LOGON' -> 'NOW' IF LOGGED ON, ELSE AT LOGON TIME. */
/* 'SAVE' -> ONLY AT NEXT LOGON TIME (OR LISTBC) */
/* */
/* PARMS: DESTLIST DDNAME OF USERS/CONSOLES TO WHOM MESSAGE IS TO */
/* BE SENT - DEFAULT=NONE */
/* MESSAGE: DDNAME OF MESSAGE TEXT TO BE SENT - DEFAULT=NONE */
/* DEBUG: SETS TRACE ON - DEFAULT=OFF */
/* */
/* 13/12/94 CMP - ALLOW SENDING TO USERID(S) OR TO MVS CONSOLE(S) */
/* 17/04/89 CMP */
/*-------------------------------------------------------------------*/
CONTROL: +
CONTROL END(ENDO)
IF &DEBUG = DEBUG | &DEBUG = D THEN +
CONTROL LIST SYMLIST CONLIST MSG ASIS
ELSE +
CONTROL NOLIST NOSYMLIST NOCONLIST NOMSG ASIS
ERROR: +
ERROR DO
SET CC = &LASTCC
IF &CC = 400 THEN RETURN
ELSE DO
WRITE ERROR WITH CONDITION CODE = &CC OCCURRED : INTERRUPT AT LABEL +
'ERROR'
WRITE CLIST RUN ABANDONED
GOTO EXIT
ENDO
ENDO
IF &USERID ¬= THEN SET TO = USER
ELSE IF &CONSOLE ¬= THEN SET TO = CN
ELSE +
WHERE: +
DO
WRITE YOU MUST SPECIFY PARAMETER 'USERID' OR 'CONSOLE'
WRITE
GOTO EXIT
ENDO WHERE
SET SENDTO =
SET K = &&K
SET USREC = &&&DESTLIST
SET MSGREC = &&&MESSAGE
SET MAXCC = 0
OPENFILE &DESTLIST INPUT
GETFILE &DESTLIST
DO I = 0 TO 99 WHILE &MAXCC = 0
SET USER = &USREC
SET J = &SYSINDEX(&STR( ),&USER,1)
SET J = &J - 1
SET USER = &SUBSTR(1:&J,&USER)
SET SENDTO = &STR(&SENDTO&USER,)
GETFILE &DESTLIST
ENDO
CLOSFILE &DESTLIST
IF &I > 0 THEN +
DO
SET LSENDTO = &LENGTH(&STR(&SENDTO)) - 1
SET SENDTO = &SUBSTR(1:&LSENDTO,&STR(&SENDTO))
SET MSG = &&MSG
SET MAXCC = 0
OPENFILE &MESSAGE INPUT
GETFILE &MESSAGE
DO J = 1 TO 99 WHILE &MAXCC = 0
SET MSG&J = &SUBSTR(1:71,&MSGREC)
SET K0 = 1
DO I = 1 TO 99 WHILE &K&EVAL(&I-1) > 0
SET K&I = &SYSINDEX(&STR('),&STR(&MSG&J),&K&EVAL(&I-1))
IF &K&I > 0 THEN SET K&I = &K&I + 1
ENDO
DO L = &I-2 TO 1 BY -1 WHILE &K&L > 0
SET MSG&J = &SUBSTR(1:&K&L-1,&STR(&MSG&J))&STR(')+
&SUBSTR(&K&L:&LENGTH(&STR(&MSG&J)),&STR(&MSG&J))
ENDO
GETFILE &MESSAGE
ENDO
SET J = &J - 1
DO I = 1 TO &J
SEND '&MSG&I' +
&TO(&STR(&SENDTO)) LOGON
ENDO
ENDO
EXIT: +
EXIT CODE(0)
Cheers, CP
On 30/06/2017 08:47, Bruce Hewson wrote:
> Hi Jason,
>
> SEND ' ',SAVE
>
> these look better in fixed font.
>
> //*
> //*
> //SETBROD EXEC PGM=IKJEFT01,PARM='%SETBROD'
> //*
> //*
> //BRODCAST DD *
> ***********************************************************
> ** N O T I C E **
> ** =========== **
> ** E N D O F M O N T H **
> ** ======================= **
> ** R E S T R I C T I O N S **
> ** ======================= **
> ** **
> ** Month-End processing period resource restrictions **
> ** from 18:00 31Jul2014 to 18:00 01Aug2014 SST:- **
> ** **
> ** Cards development systems:- **
> ** ST06 - System will be not be affected. **
> ** ST07 - System will be shutdown. **
> ** **
> ** Are you logging on to support a PRODUCTION problem **
> ** during this period? NO? then LOGOFF ASAP!!!!!!!!!! **
> ** **
> **Please plan to stop all CICS regions before 31Jul 6pm **
> ***********************************************************
> /*
> //*
> //*
> //SYSTSIN DD DUMMY
> //SYSPRINT DD SYSOUT=*
> //SYSPROC DD DISP=SHR,DSN=rexx.dataset
> //SYSTSPRT DD SYSOUT=*
> //
>
>
> The REXX - the important part.
>
> /****************************************************************/
> /* Process control cards **/
> /****************************************************************/
>
> Say
> Say "Reading new brodcast message"
> Say
> msg. =
> "EXECIO * DISKR BRODCAST (FINIS STEM msg."
> msg_cnt = msg.0
>
> rc=isfcalls('on') /* Enable SDSF environment */
>
>
> do ix=1 to msg_cnt
> Address SDSF "ISFEXEC '/SEND ''" || msg.ix || "'',SAVE'"
> end
>
> rc=isfcalls('off')
>
> Return
>
>> -----Original Message-----
>> From: IBM Mainframe Discussion List [mailto:[email protected]] On
>> Behalf Of [email protected]
>> Sent: Wednesday, June 28, 2017 8:08 PM
>> To: [email protected]
>> Subject: how to keep messages in the sys1.broadcast for ever
>>
>>
>> hi all
>>
>> Could you tell us how to keep messages in the sys1.broadcast for ever ?
>>
>> Thanks a lot!
>>
>> Jason Cai
>>
> ----------------------------------------------------------------------
> 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