//BCHJOB JOB(JLABEL) 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-11-24 10:50 */ /* To File : "JLABEL" */ /* To Library : "NERONI2" */ /* To Text : "Stream label. 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 "JLABEL.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:\JLABEL.txt" "/qsys.lib/NERONI2.lib/stringhe.file/JLABEL.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(JLABEL) 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/JLABEL" */ /* FACENDO ATTENZIONE ALL'ORDINE DI ESECUZIONE INDICATO NEL */ /* MEMBRO FACOLTATIVO "A.LEGGIMI", AD ESEMPIO: */ /* SBMDBJOB FILE(NERONI2/JLABEL) MBR(JLABEL.) 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/JLABEL) CRTSRCPF FILE(NERONI2/JLABEL) RCDLEN(112) + TEXT('Stream label. Src') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JLABEL) TOFILE(NERONI2/JLABEL) + TOMBR(JLABEL) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JLABEL) MBR(JLABEL) + SRCTYPE(CMD) + TEXT('Stream label. Cmd') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JLABEL.) TOFILE(NERONI2/JLABEL) + TOMBR(JLABEL.) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JLABEL) MBR(JLABEL.) + SRCTYPE(CL) + TEXT('Stream label. CrtJs') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JLABELC) TOFILE(NERONI2/JLABEL) + TOMBR(JLABELC) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JLABEL) MBR(JLABELC) + SRCTYPE(CLLE) + TEXT('Stream label. Cpp') /* Copia il sorgente dalla stringa al membro del file sorgente. */ /* Modifica testo e tipo seu del sorgente caricato. */ CPYF FROMFILE(JLABELP) TOFILE(NERONI2/JLABEL) + TOMBR(JLABELP) MBROPT(*REPLACE) SRCOPT(*SEQNBR) CHGPFM FILE(NERONI2/JLABEL) MBR(JLABELP) + SRCTYPE(PNLGRP) + TEXT('Stream label. Help') /*---------------------------------------------------------------------*/ //DATA FILE(JLABEL) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /* Stream label. Cmd */ /* Etichetta d'arrivo di un salto in stringa. */ /* Claudio Neroni 15/12/1986 Creato. */ /* */ CMD PROMPT('Stream label') PARM KWD(LABEL) TYPE(*NAME) MIN(1) PROMPT('Label') //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JLABEL.) FILETYPE(*SRC) ENDCHAR('//ENDSRC') //BCHJOB JOB(JLABEL.) JOBD(QBATCH) OUTQ(QPRINTS) ENDSEV(60) LOG(4 + 00 *SECLVL) MSGQ(*USRPRF) /* Claudio Neroni 15/12/1986 Creato. */ /* JLABEL */ /* Stream label. */ /* Prerequisiti: nessuno. */ /* Imposta la lista librerie. */ CHGLIBL LIBL(QTEMP QGPL) ADDLIBLE LIB(NERONI2) POSITION(*AFTER QTEMP) /* Cancella gli oggetti preesistenti. */ DLTCMD CMD(NERONI2/JLABEL) DLTPNLGRP PNLGRP(NERONI2/JLABELP) DLTPGM PGM(NERONI2/JLABELC) /* Crea gli oggetti. */ CRTBNDCL PGM(NERONI2/JLABELC) SRCFILE(JLABEL) DBGVIEW(*ALL) CRTPNLGRP PNLGRP(NERONI2/JLABELP) SRCFILE(JLABEL) CRTCMD CMD(NERONI2/JLABEL) PGM(JLABELC) SRCFILE(JLABEL) + HLPPNLGRP(JLABELP) HLPID(CMD) PRDLIB(NERONI2) //ENDBCHJOB //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JLABELC) FILETYPE(*SRC) ENDCHAR('//ENDSRC') /* Stream label. Cpp */ /* Etichetta d'arrivo di un salto in stringa. */ /* Claudio Neroni 15/12/1986 Creato. */ /* */ PGM PARM(&LABEL) DCL VAR(&LABEL) TYPE(*CHAR) LEN(10) ENDPGM //ENDSRC /*---------------------------------------------------------------------*/ //DATA FILE(JLABELP) FILETYPE(*SRC) ENDCHAR('//ENDSRC') :PNLGRP. .*--------------------------------------------------------------------- :HELP NAME=CMD. :H3.Comando JLABEL :H2.Etichetta in stringa. :P.Il comando, usato in una stringa comandi per lavori a blocchi, costituisce il punto d'arrivo di un comando JGOTO contenente la medesima etichetta. :P.La normale esecuzione dei comandi della stringa viene sospesa dall'esecuzione di un JGOTO e viene ripristinata dal ritrovamento lungo la stringa di una istruzione JLABEL contenente la stessa etichetta menzionata nel JGOTO. :P.Il comando JLABEL deve avere l'esatta forma fornita dal passaggio attraverso il prompter chiamato da un seu con controllo di sintassi CL (Control Language Stream). :P.Se il comando JLABEL non viene riconosciuto o non è presente, nessun comando della stringa viene più eseguito. :P.Gli esempi seguenti evidenziano coppie JGOTO-JLABEL. La forma del JGOTO è libera. La forma del JLABEL è rigorosa: maiuscolo, spazi, parola chiave, parentesi. :XMP. *...+....1....+....2....+....3 JGOTO LABEL(OLTRE) JLABEL LABEL(OLTRE) *...+....1....+....2....+....3 Jgoto vaivia JLABEL LABEL(VAIVIA) *...+....1....+....2....+....3 JGoto (Tram_23) JLABEL LABEL(TRAM_23) :EXMP. :EHELP. .*--------------------------------------------------------------------- :HELP name='CMD/label'. :H3.Label (LABEL) :P.Etichetta che identifica il comando come destinazione di un JGOTO. :P.Valori permessi: :PARML. :PT.etichetta :PD.Il valore è un nome, è obbligatorio e deve corrispondere ad una etichetta già menzionata in un comando JGOTO. :EPARML. :EHELP. .*--------------------------------------------------------------------- :EPNLGRP. //ENDSRC //ENDBCHJOB