//BCHJOB JOB(JSBS) 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: "IUBICSVI" */ /* From Library: "UTI" */ /* Unload Time: 2009-03-05 16:19 */ /* To File : "JSBS" */ /* To Library : "NERONI2" */ /* To Text : "Subsystem. 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 "JSBS.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:\JSBS.txt" "/qsys.lib/NERONI2.lib/stringhe.file/JSBS.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(JSBS) 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/JSBS" */ /* FACENDO ATTENZIONE ALL'ORDINE DI ESECUZIONE INDICATO NEL */ /* MEMBRO FACOLTATIVO "A.LEGGIMI", AD ESEMPIO: */ /* SBMDBJOB FILE(NERONI2/JSBS) MBR(JSBS.) 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/JSBS) CRTSRCPF FILE(NERONI2/JSBS) RCDLEN(112) + TEXT('Example Subsystem. Src') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JSBSCRT) TOFILE(NERONI2/JSBS) + TOMBR(JSBSCRT) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JSBS) MBR(JSBSCRT) + SRCTYPE(CLLE) + TEXT('Example Subsystem. Create & Test') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JSBSDLT) TOFILE(NERONI2/JSBS) + TOMBR(JSBSDLT) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JSBS) MBR(JSBSDLT) + SRCTYPE(CLLE) + TEXT('Example Subsystem. Delete') /*---------------------------------------------------------------------*/ //DATA FILE(JSBSCRT) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /* Esemplifica sottosistema batch. */ /* Claudio Neroni 05-03-2009 Creato. */ /* Compila ed esegui con l'autorità necessaria. */ PGM PARM(&LIB) /* Riceve la libreria dell'esperimento. */ DCL VAR(&LIB) TYPE(*CHAR) LEN(10) /* Intercetta tutti gli errori. */ MONMSG MSGID(CPF0000 MCH0000) /* Termina e cancella il sottosistema esempio e gli oggetti collegati. */ CALL PGM(JSBSDLT) PARM(&LIB) /* Crea il sottosistema esempio. */ CRTSBSD SBSD(&LIB/JSBS) POOLS((1 256 10)) MAXJOBS(2) /* Crea le code di immissione del sottosistema. */ CRTJOBQ JOBQ(&LIB/JSBS1) CRTJOBQ JOBQ(&LIB/JSBS2) /* Collega le code di immissione al sottosistema. */ ADDJOBQE SBSD(&LIB/JSBS) JOBQ(&LIB/JSBS1) MAXACT(1) + SEQNBR(10) ADDJOBQE SBSD(&LIB/JSBS) JOBQ(&LIB/JSBS2) MAXACT(1) + SEQNBR(20) /* Crea la classe da usare sulla specifica di instradamento. */ CRTCLS CLS(&LIB/JSBS) TIMESLICE(7000) /* Aggiunge al sottosistema una sola specifica di instradamente. */ ADDRTGE SBSD(&LIB/JSBS) SEQNBR(10) CMPVAL(*ANY) + PGM(QCMD) CLS(&LIB/JSBS) /* Avvia il sottosistema. */ STRSBS SBSD(&LIB/JSBS) /* Sottomette tre lavori per esperimento. */ SBMJOB CMD(DLYJOB DLY(61)) JOB(DLY11) + JOBQ(&LIB/JSBS1) MSGQ(*USRPRF) DLYJOB DLY(20) SBMJOB CMD(DLYJOB DLY(62)) JOB(DLY12) + JOBQ(&LIB/JSBS1) MSGQ(*USRPRF) DLYJOB DLY(20) SBMJOB CMD(DLYJOB DLY(63)) JOB(DLY21) + JOBQ(&LIB/JSBS2) MSGQ(*USRPRF) /* Visualizza il ballo dei job nel sottosistema. */ WRKSBSJOB SBS(JSBS) ENDPGM //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JSBSDLT) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /* Termina e cancella il sottosistema esempio e gli oggetti collegati. */ /* Claudio Neroni 05-03-2009 Creato. */ /* Compila ed esegui con l'autorità necessaria. */ PGM PARM(&LIB) /* Riceve la libreria dell'esperimento. */ DCL VAR(&LIB) TYPE(*CHAR) LEN(10) /* Intercetta tutti gli errori. */ MONMSG MSGID(CPF0000 MCH0000) /* Termina il sottosistema esempio. */ ENDSBS SBS(JSBS) /* Attende per dare tempo al termine del sottosistema. */ DLYJOB DLY(10) /* Cancella il sottosistema esempio. */ DLTSBSD SBSD(&LIB/JSBS) /* Cancella le code di immissione del sottosistema. */ DLTJOBQ JOBQ(&LIB/JSBS1) DLTJOBQ JOBQ(&LIB/JSBS2) /* Cancella la classe da usare sulla specifica di instradamento. */ DLTCLS CLS(&LIB/JSBS) ENDPGM //ENDSRC //ENDBCHJOB