//BCHJOB JOB(JGRP) 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-11-01 23:50 */ /* To File : "JGRP" */ /* To Library : "NERONI2" */ /* To Text : "Grouping. 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 "JGRP.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:\JGRP.txt" "/qsys.lib/NERONI2.lib/stringhe.file/JGRP.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(JGRP) 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/JGRP" */ /* FACENDO ATTENZIONE ALL'ORDINE DI ESECUZIONE INDICATO NEL */ /* MEMBRO FACOLTATIVO "A.LEGGIMI", AD ESEMPIO: */ /* SBMDBJOB FILE(NERONI2/JGRP) MBR(JGRP.) 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/JGRP) CRTSRCPF FILE(NERONI2/JGRP) RCDLEN(112) + TEXT('Grouping. Src') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JGRP.) TOFILE(NERONI2/JGRP) + TOMBR(JGRP.) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JGRP) MBR(JGRP.) + SRCTYPE(CL) + TEXT('Grouping. CrtJs') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JGRPATN) TOFILE(NERONI2/JGRP) + TOMBR(JGRPATN) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JGRP) MBR(JGRPATN) + SRCTYPE(CLP) + TEXT('Grouping. Attention') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JGRPINL) TOFILE(NERONI2/JGRP) + TOMBR(JGRPINL) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JGRP) MBR(JGRPINL) + SRCTYPE(CLP) + TEXT('Grouping. Initial') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JGRPOFF) TOFILE(NERONI2/JGRP) + TOMBR(JGRPOFF) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JGRP) MBR(JGRPOFF) + SRCTYPE(CLP) + TEXT('Grouping. Off') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JGRPOPN) TOFILE(NERONI2/JGRP) + TOMBR(JGRPOPN) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JGRP) MBR(JGRPOPN) + SRCTYPE(CLP) + TEXT('Grouping. Open') /*---------------------------------------------------------------------*/ //DATA FILE(JGRP.) FILETYPE(*SRC) ENDCHAR('//ENDSRC') //BCHJOB JOB(JGRP.) JOBD(QBATCH) ENDSEV(60) LOG(4 00 *SECLVL) + MSGQ(*USRPRF) /* Claudio Neroni 25-11-1993 Creato. */ /* JGRP */ /* Grouping. */ /* Esemplifica l'uso dei lavori di gruppo preimpostati. */ /* Prerequisiti: nessuno. */ /* Imposta la lista librerie. */ CHGLIBL LIBL(QTEMP QGPL) ADDLIBLE LIB(NERONI2) POSITION(*AFTER QTEMP) /* Cancella gli oggetti preesistenti. */ DLTMNU MENU(NERONI2/JGRPOFF) DLTPGM PGM(NERONI2/JGRPATN) DLTPGM PGM(NERONI2/JGRPINL) DLTPGM PGM(NERONI2/JGRPOPN) DLTPGM PGM(NERONI2/JGRPOFF) /* Crea gli oggetti. */ CRTCLPGM PGM(NERONI2/JGRPATN) SRCFILE(NERONI2/JGRP) CRTCLPGM PGM(NERONI2/JGRPINL) SRCFILE(NERONI2/JGRP) CRTCLPGM PGM(NERONI2/JGRPOPN) SRCFILE(NERONI2/JGRP) CRTCLPGM PGM(NERONI2/JGRPOFF) SRCFILE(NERONI2/JGRP) CRTMNU MENU(NERONI2/JGRPOFF) TYPE(*PGM) PGM(NERONI2/JGRPOFF) + TEXT('Grouping. Off') //ENDBCHJOB //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JGRPATN) FILETYPE(*SRC) ENDCHAR('//ENDSRC') PGM DCL VAR(&INLPGM) TYPE(*CHAR) LEN(10) DCL VAR(&INLMNU) TYPE(*CHAR) LEN(10) DCL VAR(&ATNPGM) TYPE(*CHAR) LEN(10) MONMSG MSGID(CPF0000 MCH0000) RTVUSRPRF INLPGM(&INLPGM) INLMNU(&INLMNU) ATNPGM(&ATNPGM) IF COND((&INLPGM *NE JGRPINL) *OR (&INLMNU *NE + JGRPOFF) *OR (&ATNPGM *NE JGRPATN)) THEN(DO) QSYS/CHGPRF INLPGM(JGRPINL) INLMNU(JGRPOFF) + ATNPGM(JGRPATN) SIGNOFF ENDDO RTVGRPA MONMSG MSGID(CPF1311) EXEC(DO) CHGGRPA GRPJOB(UNO) TEXT('Primo lavoro.') ENDDO CHKRCDLCK MONMSG MSGID(CPF0000) EXEC(DO) SNDPGMMSG MSG('Record bloccati nella sessione + abbandonata.') TOPGMQ(*EXT) ENDDO TFRGRPJOB GRPJOB(*SELECT) INLGRPPGM(JGRPINL) + TEXT('Lavoro di gruppo.') ENDPGM //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JGRPINL) FILETYPE(*SRC) ENDCHAR('//ENDSRC') PGM MONMSG MSGID(CPF0000 MCH0000) RMVLIBLE LIB(GAMES400) RMVLIBLE LIB(QTEMP) ADDLIBLE LIB(QTEMP) CHGCURLIB CURLIB(*CRTDFT) RMVLIBLE LIB(NERONI2) ADDLIBLE LIB(NERONI2) POSITION(*AFTER QTEMP) RMVLIBLE LIB(NERONI1) ADDLIBLE LIB(NERONI1) POSITION(*AFTER QTEMP) CHGJOB LOG(4 00 *SECLVL) LOGCLPGM(*NO) DATFMT(*DMY) SNDPGMMSG MSG('+ CALL PGM(JGRPOPN)+ ') TOPGMQ(*EXT) MSGTYPE(*RQS) TFRCTL PGM(QCMD) ENDPGM //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JGRPOFF) FILETYPE(*SRC) ENDCHAR('//ENDSRC') PGM PARM(&MENUNAME &MENULIB &ACTION) DCL VAR(&MENUNAME) TYPE(*CHAR) LEN(10) DCL VAR(&MENULIB) TYPE(*CHAR) LEN(10) DCL VAR(&ACTION) TYPE(*CHAR) LEN(2) RTVGRPA MONMSG MSGID(CPF0000) EXEC(SIGNOFF) ENDGRPJOB ENDPGM //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JGRPOPN) FILETYPE(*SRC) ENDCHAR('//ENDSRC') PGM DCL VAR(&GRPJOB) TYPE(*CHAR) LEN(10) RTVGRPA GRPJOB(&GRPJOB) IF COND(&GRPJOB *EQ *NONE) THEN(DO) CHGGRPA GRPJOB(UNO) TEXT('Primo lavoro di gruppo.') RTVGRPA GRPJOB(&GRPJOB) ENDDO IF COND(&GRPJOB *EQ UNO) THEN(DO) TFRGRPJOB GRPJOB(DUE) INLGRPPGM(QCMD) TEXT('Secondo + lavoro di gruppo.') GOTO CMDLBL(FINE) ENDDO IF COND(&GRPJOB *EQ DUE) THEN(DO) TFRGRPJOB GRPJOB(TRE) INLGRPPGM(QCMD) TEXT('Terzo + lavoro di gruppo.') SNDPGMMSG MSG('+ WRKMBRPDM FILE(*LIBL/QRPGSRC)+ ') TOPGMQ(*EXT) MSGTYPE(*RQS) GOTO CMDLBL(FINE) ENDDO IF COND(&GRPJOB *EQ TRE) THEN(DO) TFRGRPJOB GRPJOB(UNO) SNDPGMMSG MSG('+ WRKMBRPDM FILE(*LIBL/QRPGLE)+ ') TOPGMQ(*EXT) MSGTYPE(*RQS) GOTO CMDLBL(FINE) ENDDO FINE: ENDPGM //ENDSRC //ENDBCHJOB ') TOPGMQ(*EXT) MSGTYPE(*RQS) GOTO CMDLBL(FINE) ENDDO IF COND(&GRPJOB *EQ TRE) THEN(DO) TFRGRPJOB GRPJOB(UNO) SNDPGMMSG MSG('+ WRKMBRPDM FILE(*LIBL/QRPGLE)+ ') TOPGMQ(*EXT) MSGTYPE(*RQS) GOTO CMDLBL(FINE) ENDDO FINE: ENDPGM //ENDSRC //ENDBCHJOB