//BCHJOB JOB(JWWD) 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: 2008-12-24 11:53 */ /* To File : "JWWD" */ /* To Library : "NERONI2" */ /* To Text : "Work with Disconnection. 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 "JWWD.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:\JWWD.txt" "/qsys.lib/NERONI2.lib/stringhe.file/JWWD.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(JWWD) 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/JWWD" */ /* FACENDO ATTENZIONE ALL'ORDINE DI ESECUZIONE INDICATO NEL */ /* MEMBRO FACOLTATIVO "A.LEGGIMI", AD ESEMPIO: */ /* SBMDBJOB FILE(NERONI2/JWWD) MBR(JWWD.) 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/JWWD) CRTSRCPF FILE(NERONI2/JWWD) RCDLEN(112) + TEXT('Work with Disconnection. Src') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(A.LEGGIMI) TOFILE(NERONI2/JWWD) + TOMBR(A.LEGGIMI) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JWWD) MBR(A.LEGGIMI) + SRCTYPE(TXT) + TEXT('Work with Disconnection. ReadMe') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JWWD.) TOFILE(NERONI2/JWWD) + TOMBR(JWWD.) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JWWD) MBR(JWWD.) + SRCTYPE(CL) + TEXT('Work with Disconnection. CrtJs') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JWWD00F) TOFILE(NERONI2/JWWD) + TOMBR(JWWD00F) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JWWD) MBR(JWWD00F) + SRCTYPE(PF) + TEXT('Work with Disconnection. Dta') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JWWD1) TOFILE(NERONI2/JWWD) + TOMBR(JWWD1) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JWWD) MBR(JWWD1) + SRCTYPE(CLLE) + TEXT('Work with Disconnection. Ctl') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JWWD2) TOFILE(NERONI2/JWWD) + TOMBR(JWWD2) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JWWD) MBR(JWWD2) + SRCTYPE(RPGLE) + TEXT('Work with Disconnection. Mng') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JWWD2W) TOFILE(NERONI2/JWWD) + TOMBR(JWWD2W) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JWWD) MBR(JWWD2W) + SRCTYPE(DSPF) + TEXT('Work with Disconnection. Mng') /*---------------------------------------------------------------------*/ //DATA FILE(A.LEGGIMI) FILETYPE(*SRC) ENDCHAR('//ENDSRC') Per la prova è indispensabile un nome terminale fisso: quindi niente QPADEV.... Per provare la resistenza alla caduta, scrivi tre record nel fisico con chiavi AAA, BBB, CCC e descrizione a piacere. L'esempio di programma resistente è un video guida che chiama un video modifica. Per provare chiama JWWD1 e, mentre attende a video, chiudi la sessione di emulazione con la X in alto a destra. Riesegui il collegamento con lo stesso nome di terminale e verifica che viene riproposta l'ultima emissione. //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JWWD.) FILETYPE(*SRC) ENDCHAR('//ENDSRC') //BCHJOB JOB(JWWD.) JOBD(QBATCH) OUTQ(QPRINTS) ENDSEV(60) LOG(4 + 00 *SECLVL) MSGQ(*USRPRF) /* Claudio Neroni 24-12-2008 Creato. */ /* JWWD */ /* Work with Disconnection. */ /* Prerequisiti: nessuno */ /* Imposta la lista librerie. */ CHGLIBL LIBL(QTEMP QGPL) ADDLIBLE LIB(NERONI2) POSITION(*AFTER QTEMP) /* Cancella gli oggetti preesistenti. */ DLTF FILE(NERONI2/JWWDO1F) DLTF FILE(NERONI2/JWWD2W) DLTPGM PGM(NERONI2/JWWD1) DLTPGM PGM(NERONI2/JWWD2) /* Crea gli oggetti. */ CRTPF FILE(NERONI2/JWWD00F) SRCFILE(NERONI2/JWWD) CRTDSPF FILE(NERONI2/JWWD2W) SRCFILE(NERONI2/JWWD) CRTBNDCL PGM(NERONI2/JWWD1) SRCFILE(JWWD) DBGVIEW(*ALL) CRTBNDRPG PGM(NERONI2/JWWD2) SRCFILE(JWWD) DBGVIEW(*ALL) //ENDBCHJOB //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JWWD00F) FILETYPE(*SRC) ENDCHAR('//ENDSRC') A UNIQUE A R A1 A TEXT('Anagrafico') A A1COD 3 A COLHDG('Codice') A A1DES 12 A COLHDG('Descrizione') A K A1COD //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JWWD1) FILETYPE(*SRC) ENDCHAR('//ENDSRC') PGM CHGJOB DEVRCYACN(*DSCMSG) CALL PGM(JWWD2) ENDPGM //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JWWD2) FILETYPE(*SRC) ENDCHAR('//ENDSRC') *--------------------------------------------------------------------------------------------- Fjwwd2w cf e workstn Fjwwd00f uf e k disk *--------------------------------------------------------------------------------------------- C exsr srw0 C seton lr *--------------------------------------------------------------------------------------------- C srw0 begsr C do *hival C exfmt w0 51 C 51 iter C kc leave C w0cod chain a1 50 C 50 iter C movel(p) a1cod w1cod C movel(p) a1des w1des C exsr srw1 C kc leave C enddo C endsr *--------------------------------------------------------------------------------------------- C srw1 begsr C do *hival C exfmt w1 51 C 51 iter C kc leave C kl leave C movel(p) w1cod a1cod C movel(p) w1des a1des C update a1 50 C 50 iter C leave C enddo C endsr *--------------------------------------------------------------------------------------------- //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JWWD2W) FILETYPE(*SRC) ENDCHAR('//ENDSRC') A DSPSIZ(24 80 *DS3) A REF(*LIBL/JWWD00F) A R W0 CA03 A 1 37'Guida' A DSPATR(HI) A DSPATR(UL) A 4 11'Codice:' A W0COD R B 4 20REFFLD(A1COD) A 23 2'F3=Fine' A R W1 CA03 CA12 A 1 37'Modifica' A DSPATR(HI) A DSPATR(UL) A 4 11'Codice:' A W1COD R B 4 20REFFLD(A1COD) A 5 6'Descrizione:' A W1DES R B 5 20REFFLD(A1DES) A 23 2'F3=Fine' A 23 11'F12=Guida' //ENDSRC //ENDBCHJOB