//BCHJOB JOB(JBRKUSR1) JOBD(QBATCH) OUTQ(QPRINT) ENDSEV(60) + LOG(4 00 *SECLVL) MSGQ(*USRPRF) /* Open source scaricabile da www.neroni.it di Claudio Neroni */ /* SE L'USO DELLA JOB DESCRIPTION "QBATCH" TI E' IMPEDITO, */ /* UTILIZZANE UNA DIVERSA. */ /* From System: "PUB1" */ /* From Library: "NERONI2" */ /* Unload Time: 2009-02-13 19:30 */ /* To File : "JBRKUSR1" */ /* To Library : "NERONI2" */ /* To Text : "Break User 1. Src" */ /********* INIZIO ISTRUZIONI *******************************************/ /* LE SUCCESSIVE ISTRUZIONI PERMETTONO DI RICARICARE I SORGENTI. */ /* 1) DA UN VIDEO COMANDI DELL'AS400 RICEVENTE */ /* CREARE UN FILE SORGENTE DI LUNGHEZZA RECORD 112: */ /* CRTSRCPF FILE(NERONI2/STRINGHE) RCDLEN(112) */ /* 2) SPOSTARE IL FILE "JBRKUSR1.txt" NELL'INDIRIZZARIO */ /* DI UN PC CONNESSO IN RETE CON L'AS400 RICEVENTE */ /* (AD ES.: "c:\"). */ /* 3) DAL VIDEO COMANDI DEL PC CHIAMARE FTP: */ /* ftp nomeas400 */ /* 4) DIGITARE UTENTE E PASSWORD. */ /* 5) ESEGUIRE IL COMANDO DI COPIA DA FILE PC A MEMBRO AS400: */ /* put "c:\JBRKUSR1.txt" "/qsys.lib/NERONI2.lib/stringhe.file/JBRKUSR1.mbr" */ /* 6) ABBANDONARE FTP: */ /* quit */ /* 7) DA UN VIDEO COMANDI DELL'AS400 RICEVENTE */ /* ESEGUIRE LA STRINGA COPIATA NEL MEMBRO SORGENTE: */ /* SBMDBJOB FILE(NERONI2/STRINGHE) MBR(JBRKUSR1) JOBQ(QBATCH) */ /* LE SUCCESSIVE ISTRUZIONI PERMETTONO DI CREARE L'UTILITY. */ /* 8) DA UN VIDEO COMANDI DELL'AS400 RICEVENTE */ /* ESEGUIRE LA STRINGA O LE STRINGHE SORGENTE DI TIPO SEU "CL" */ /* (IL CUI NOME TERMINA SEMPRE CON ".") */ /* PRESENTI NEL FILE RICARICATO "NERONI2/JBRKUSR1" */ /* FACENDO ATTENZIONE ALL'ORDINE DI ESECUZIONE INDICATO NEL */ /* MEMBRO FACOLTATIVO "A.LEGGIMI", AD ESEMPIO: */ /* SBMDBJOB FILE(NERONI2/JBRKUSR1) MBR(JBRKUSR1.) JOBQ(QBATCH) */ /********* FINE ISTRUZIONI *********************************************/ /* Crea la libreria. */ MKDIR DIR('/qsys.lib/NERONI2.lib') CHGLIB LIB(NERONI2) TEXT('Utility di Claudio Neroni') /* Imposta la lista librerie. */ CHGLIBL LIBL(QTEMP NERONI2 QGPL) /* Crea il file sorgente. */ DLTF FILE(NERONI2/JBRKUSR1) CRTSRCPF FILE(NERONI2/JBRKUSR1) RCDLEN(112) + TEXT('Break User 1. Src') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JBRKUSR1) TOFILE(NERONI2/JBRKUSR1) + TOMBR(JBRKUSR1) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JBRKUSR1) MBR(JBRKUSR1) + SRCTYPE(CMD) + TEXT('Break User 1. Cmd') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JBRKUSR1.) TOFILE(NERONI2/JBRKUSR1) + TOMBR(JBRKUSR1.) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JBRKUSR1) MBR(JBRKUSR1.) + SRCTYPE(CL) + TEXT('Break User 1. CrtJs') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JBRKUSR1C) TOFILE(NERONI2/JBRKUSR1) + TOMBR(JBRKUSR1C) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JBRKUSR1) MBR(JBRKUSR1C) + SRCTYPE(CLLE) + TEXT('Break User 1. Cpp') /*---------------------------------------------------------------------*/ //DATA FILE(JBRKUSR1) FILETYPE(*SRC) ENDCHAR('//ENDSRC') CMD PROMPT('Break User 1') PARM KWD(MSG) TYPE(*CHAR) LEN(80) MIN(1) + PROMPT('Message text') PARM KWD(USER) TYPE(*NAME) LEN(10) + SPCVAL((*ALLACT)) MIN(1) PROMPT('User name') //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JBRKUSR1.) FILETYPE(*SRC) ENDCHAR('//ENDSRC') //BCHJOB JOB(JBRKUSR1.) JOBD(QBATCH) OUTQ(QPRINTS) ENDSEV(60) + LOG(4 00 *SECLVL) MSGQ(*USRPRF) /* Terry Winchester ??-??-???? Creato. */ /* JBRKUSR1 */ /* Break User 1. */ /* Prerequisiti: nessuno */ /* Imposta la lista librerie. */ CHGLIBL LIBL(QTEMP QGPL) ADDLIBLE LIB(NERONI2) POSITION(*AFTER QTEMP) /* Cancella gli oggetti preesistenti. */ DLTCMD CMD(NERONI2/JBRKUSR1) DLTPGM PGM(NERONI2/JBRKUSR1C) /* Crea il comando. */ CRTCMD CMD(NERONI2/JBRKUSR1) PGM(NERONI2/JBRKUSR1C) + SRCFILE(JBRKUSR1) PRDLIB(NERONI2) /* Crea il command processing program. */ CRTBNDCL PGM(NERONI2/JBRKUSR1C) SRCFILE(JBRKUSR1) DBGVIEW(*ALL) //ENDBCHJOB //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JBRKUSR1C) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /*-------------------------------------------------------------------*/ /* Another example of using QEZSNDMG to SNDBRKMSG */ /* to an user or only active work stations. */ /* From: Terry Winchester */ /* www.as400pro.com/tipView/category/API/key/336/ */ /*-------------------------------------------------------------------*/ /* Program: BRKMSG */ /* Description: Receive two parameters from any program and send */ /* a message to any User using the QEZSNDMG API from */ /* the Operational Assistant menu. */ /* */ /* &MSGTEXT - 80 character message */ /* &USERID - 10 character UserId to receive msg */ /* */ /* Notes: -The message text passed to this program */ /* should be limited to 80 chars. */ /* -If the user has multiple sessions open, */ /* each session will receive a message. */ /* -Use *ALLACT as USERID to notify everyone */ /*-------------------------------------------------------------------*/ PGM PARM(&MSGTEXT &USERID) DCL VAR(&MSGTYPE) TYPE(*CHAR) LEN(10) + VALUE('*INFO') DCL VAR(&DELMODE) TYPE(*CHAR) LEN(10) + VALUE('*BREAK') DCL VAR(&MSGTEXT) TYPE(*CHAR) LEN(80) DCL VAR(&MSGLENG) TYPE(*CHAR) LEN(04) + VALUE(X'00000050') DCL VAR(&USERID) TYPE(*CHAR) LEN(10) DCL VAR(&USRCNT) TYPE(*CHAR) LEN(04) + VALUE(X'00000001') DCL VAR(&MSGSENT) TYPE(*CHAR) LEN(04) + VALUE(X'00000000') DCL VAR(&FUNCREQ) TYPE(*CHAR) LEN(04) + VALUE(X'00000000') DCL VAR(&ERROR) TYPE(*CHAR) LEN(256) + VALUE(X'00000100') DCL VAR(&SHOWMSG) TYPE(*CHAR) LEN(01) VALUE('N') DCL VAR(&REPLYMQ) TYPE(*CHAR) LEN(20) DCL VAR(&NAMETYPE) TYPE(*CHAR) LEN(04) + VALUE('*USR') CALL PGM(QEZSNDMG) PARM(&MSGTYPE &DELMODE + &MSGTEXT &MSGLENG &USERID &USRCNT + &MSGSENT &FUNCREQ &ERROR &SHOWMSG + &REPLYMQ &NAMETYPE) ENDJOB: ENDPGM //ENDSRC //ENDBCHJOB