neroni.it 

Open Source As400

Aggiornato: 13 agosto 2016
Altre pagine:  Home   Open Source Excel   Open Source Salute   Dialet cumasch   Qui dormì Garibaldi  

Contenuti

Tutto il materiale che può essere riutilizzato da me e da altri in versione sorgente su As400.

Intenzioni

Sto pubblicando, una alla volta, tutte le utility As400 che ho scritto dal 1979 (sic!) ad oggi.

Colgo l'occasione per rimetterle al mio provvisorio meglio.

Gia' che ci sono scrivo anche cose nuove o aggiusto alla mia maniera cose altrui (poche).

Penso che, dopo trent'anni di minuta, sia l'ora della bella copia e, volendo arrivare al cecidit manus, non credo che saro' io a pulire solaio e cantina.

L'impresa e' lungi dall'essere compiuta.

Ricordo ai digiuni che per vedere un documento linkato occorre cliccare di sinistra sul link (sottolineato e cangiante al passaggio del mouse).

Per scaricare basta cliccare di destra sul link e scegliere salva. I link gia' aperti cambiano colore.

Ogni link riporta la data della propria nascita.

Tra i commenti al link sono indicati data e novita' di ogni nuova versione.

Ogni documento contiene al suo interno data e ora dell'ultima versione.

Il materiale As400 in formato txt contiene open source visionabile immediatamente, scaricabile sul PC, ricaricabile sul proprio As400 e compilabile seguendo le istruzioni incorporate.
Qualcuna delle utility stesse serve ad eseguire carico e scarico delle utility in modo piu' veloce che seguendo dette istruzioni.


Situazione

Da luglio 2013, dopo quattro anni come analista di procedure web ma in realta' come giovane d'ufficio sul portale Virgilio (durante i quali ho al massimo fatto stranezze su Excel con il Visual Basic For Application), sono tornato a fare il quattrocentista. Sopportate ancora le mie trappole!

Anche in Unione Fiduciaria faccio il giovane d'ufficio, eunuco nell'harem, ma il primo di ottobre 2015 raggiungo la vecchiaia della pensione e ne attendo l'esito economico.
Essendo professionista, non sono costretto a licenziarmi e quindi continuero' per un po'.
Vediamo intanto se e' vero che l'italia parassitaria dei ladri restituisce ai contribuenti qualcosa del maltolto.
Poi, pensionato vero, penso che mi abbonero' all'ultimo release sulle macchine di Holger Scherer e che continuero' a produrre materiale open source da pubblicare.

Poi, due giorni prima della pensione, mi hanno offerto di partecipare all'avvio di una nuova gestione sorgenti che prevedeva una analisi complessa degli oggetti e dei sorgenti in uso con individuazione dei problemi e generazione di strumenti per risolverli. Un milione di membri sorgente: tre giorni di elaborazione solo per il primo elenco. Ho riutilizzato, migliorato e ristrutturato un buon numero di miei tool preesistenti e ho congegnato un ambaradan che mi permette di segnalare le anomalie, sgravandomi dalle responsabilita' applicative ma riducendole al minimo indispensabile.

Ne segue che continuero' a tempo pieno almeno fino a fine 2016 facendo il sistemista sull'applicativo che mi piace piu' della programmazione applicativa all'altrui maniera.

Mi sono anche abbonato per un anno a poco meno di 350 euro a cinque giga di programmatore sul 7.2 di Holger Scherer, ma giusto per avere un'area di appoggio comoda per tutto il materiale e per avere un release piu' recente del tardivo 7.1 dell'ufficio. Ma se avessi solo quello mi sentirei castrato dall'impossibilita' di maneggiare quel poco di sistema che serve ad un applicativo ben fatto. Non sono manco riuscito a gestirmi un mio QAQQINI per i mille rifiuti nei quali ho sbattuto. Peccato che una macchina virtuale da QSECOFR costi dieci volte tanto.


Argomenti

Manuali in ITALIANO  Scritti da me e da miei scagnozzi per aiutare chi inizia

NuovoCorsoNuovo Corso As400
VecchioCorsoCorso RPG ILE As400 (Vecchio)
RdiForDummyCorso Rational Developer for i per principianti RDI ma esperti di SEU-PDM

Save-Restore  Salvataggio e ripristino su AS400 via PC

FTUFile Transfer Utility - Salva libreria da As400 a PC - Ripristina libreria da PC ad As400

Ifs & PC  Tool scritti in dos per scambiare dati (soprattutto sorgente) tra PC e AS400 e viceversa

TOSOURCEQuick copy from PC text to As400 source member
FROMSOURCEQuick copy from As400 source member to PC text
TOPFQuick copy from PC text to As400 physical file
FROMPFQuick copy from As400 physical file to PC text
TOIFSCopia un file da PC a un indirizzario IFS dell'As400
FROMIFSCopia un file da un indirizzario IFS dell'As400 a PC
EXCCMDExecute As400 Command from PC via FTP
ALLMBRQuick copy from all As400 source file members into rebuilding stream
ALLPFQuick copy from all phisical members of As400 library into PC zip file

Connection  Miniguida per il trasporto di SAVF tra AS400

TrasportoSavfTrasporto di SAVF tra As400 usando Ftp

Message-prerequisite  Tool chiamato quando un mio comando incontra un errore imprevisto

JRSNMSGResend messages

Copy-prerequisite  Tool di creazione di database temporanei o di servizio

JCPYCLRCopy Clear

Api-prerequisite  Interfacce di chiamata alle Api

JAIAPI Interface

Conversion-prerequisite  Conversioni di formato dei campi utili nei programmi Control Language

JCVConversion
JCHAPAKFrom Character To Packed
JDECCHAFrom Decimal To Character
JDECCHA53From Decimal To Character ANTE %ADDR

Table-prerequisite  Tabelle (tipo oggetto *TBL, non c'entra l'SQL!) per la conversione di caratteri nelle stringhe

JTBLTables

Pdm  Carica un'opzione precostituita nell'apposito file PDM di un utente

JPDMOPTPdm Option

Retrieve  Recuperi mancanti nel sistema operativo

JRTVFDRetrieve File Description Recupera descrizione file
JRTVENVRetrieve Environment Var Recupera una variabile di ambiente

Job  Lavori

JACTJob is active? Il lavoro e' attivo? (generico)
JRJARetrieve job activity Il lavoro e' attivo? (mirato)
JWUJWork User Jobs Outfile File di emissione per l'elenco dei lavori utente
JWAJWork Active Job Outfile File di emissione per l'elenco dei lavori attivi
JRLSJOBReleases Jobs Rilascia tutti i lavori in coda dell'utente richiesto

Job Log  Log del lavoro

JLOGArchives Log Archivia Log
JOLDLOGArchives OldLog Archivia un vecchio log stampato

Group Job  Lavori di gruppo

JGRPGrouping Esemplifica l'uso dei lavori di gruppo preimpostati

Time  Data e ora

JTIMETime Visualizza data corrente, giorno della settimana e ora. A richiesta, giorno della settimana di una data qualunque

Date  Calcoli sulle date

JDATDate calc Calcoli sulle date

Cross Reference  Riferimenti incrociati

JFDRFile Description & Relations Tracciato di un file fisico e chiavi dei logici soprastanti
JREDKEYReduces Keys Analizza le chiavi ridondanti sui file fisici
JREFDBFReference Database Crea il database da usare per esplosione ed implosione alla maniera di una distinta base
JREFEXPReference Explode Esplode le chiamate di un programma alla maniera di una distinta base
JREFIMPReference Implode Implode le chiamate di un programma alla maniera di una distinta base
JMODList embedded modules Lista i moduli chiamati nei programmi
JMRGMerge Object Infoyyy Riporta le informazioni sui moduli nell'elenco oggetti
JCMPLIBCompare libraries Compara librerie
JCTLLFControl logical file pointing Controlla il puntamento dei file logici
JSRCLSTSource member list Lista i membri sorgente
JMBRLSTData member list Lista i membri dati
JFSSFind Stream Support Elabora la stampa di Find Stream Pdm di un file sorgente rpg ile con specifiche F posizionali per ricavare "Where used" senza usare gli oggetti

Spool  Gestione di spoolfile

ConversioneSpoolConversione di spoolfile As400 in file Pdf Appunti attivando il pacchetto Infoprint Server
JWSFWork Spool Files Outfile File di emissione per l'elenco dei file di spool
JSPLCVTConvert Spool File Converte uno spool file in PDF
JSPOLWork Spool Gestione personalizzata dell'elenco degli spoolfile
JCLRSPLClear Spool Pulisce i vecchi spoolfile
JSPLOWNChange Spool Owner Modifica il proprietario degli spoolfile
JSPLACTSpool Action Esegue azioni di massa sugli spoolfile
JLASTRetrieve Last Spool Number Recupera il numero di spool file effettivo corrispondente a SPLNBR(*LAST)

Msg  Gestione messaggi

JHLDMSGHeld messages Neutralizza i messaggi pendenti nella coda del programma padre
JMNGMSGManage Messages Gestisce i messaggi di interrogazione ricevuti da una coda scelta
JBRKACTBreak Active Jobs Manda messaggi di interruzione ai soli lavori interattivi attivi
JRQSProto Request Scrive in joblog un messaggio di richiesta inattivo ma duplicabile
JRTVMSGQRetrieve Messages Queue Trascrive una coda messaggi in un file di data base

Zip  Compressione a bordo As400

JZIPZip Zippa un indirizzario IFS in un file ".zip"

Csv & Txt  Carico e scarico di file csv e txt

JFROMCSVLoad CSV to Database Carica un file in formato CSV in un file di database
JTOCSVUnload Database to CSV Scarica un file in formato CSV da un file di database
JFROMTXTLoad TXT to Database Carica un file in formato TXT in un file di database
JTOTXTUnload Database to TXT Scarica un file in formato TXT da un file di database
JLINKDisplay Link Genera su file di emissione l'elenco IFS dei file presenti in un indirizzario
JLODTXTLoad Text Carica da IFS ad un solo file di database un gruppo di file di testo giacenti in un unico indirizzario
JZONFFile Zoner Trasforma un file con campi impaccati e binari in un file vuoto con campi zonati
JZONLLibrary Zoner Trascrive i dati dei file di una libreria in un indirizzario IFS cambiando impaccati e binari in zonati
JZONGGroup Zoner Trascrive un gruppo di librerie in IFS e Zippa IFS generato

Cursor  Gestione cursore video

CRSLLocazione del cursore Legge e scrive il cursore video

Number  Gestione numeri

JXLTNBRTranslate number to letters Traduce numero in lettere in Italiano, Francese, Inglese, Tedesco, Spagnolo, Olandese
JRANDOMRandom generator Genera numeri casuali

Source  Gestione sorgenti

JCLRRPGClear RPG source Pulisce i sorgenti RPG ed RPGLE non free da numerazioni e sigle varie
JNSTRPGAnnida le istruzioni RPG e ne allinea i commenti Scrive sulle istruzioni RPG e RPGLE non free le etichette di annidamento come nella lista di compilazione
JXYZCompare Physical File Member Permette di scegliere dalle liste PDM i membri da comparare con le opzioni X/Y/Z
JSRCBKPSource backup Copia un membro sorgente nel membro di un file di servizio da conservare con un nome progressivo e incorporando informazioni sul membro originale
JNEWDelta new Data una libreria sorgente vecchia e la stessa in versione piu' recente, genera una libreria delta new contenente tutti e soli i sorgenti nuovi
JOLDDelta old Data una libreria sorgente vecchia e la stessa in versione piu' recente, genera una libreria delta old contenente tutti e soli i sorgenti modificati ma in versione ante modifica
JCLRPRTFClear Printer File Source Pulisce il sorgente di un Printer File dai commenti lasciati dall'RLU (Report Layout Utility)
JCMPSFCompare Source Files Dati due file sorgenti omonimi in librerie diverse, modifica il tipo seu dei membri del primo file aggiungendo "£" (o altro carattere) ai membri con contenuto uguale ai corrispondenti del secondo file
JWEBWeb stream Crea la stringa per pubblicare un'utility sul web
JHEXSRCHexadecimal on source Mette esadecimali su statement source
JCLRHEXClear hex on source Pulisce source da caratteri esadecimali minori di x'40'
JSPECSpecifications Genera specifiche DS per CLP ed altre amenita'
JPRTSRCPrint Source Stampa un membro sorgente senza contorni
JDSPSRCDisplay Source Visualizza un membro sorgente su subfile e lo gestisce
JSRCDRVSource Driver Costruisce un elenco di membri sorgente da più file senza doppioni conservando solo l'ultimo degli omonimi
JCHGLast changed files Elenca i file modificati di una libreria in ordine cronologico inverso

Journal  Gestione giornale

JDWLJRNDownload file from journal Scarica file da giornale

Job Stream  Gestione delle stringhe di lavoro a blocchi

JPAUSEPause Interroga una coda messaggi e attende una risposta
JGOTOStream goto Salta l'esecuzione dei comandi successivi della stringa fino a trovare il comando JLABEL
JLABELStream label Punto di ripresa dell'esecuzione comandi dopo JGOTO
JEXECJSExecute Job Stream Esegue come comandi del lavoro corrente tutti i comandi contenuti in un sorgente in linguaggio di controllo

Database  Gestione di file di database

JWULKWait Unlock Record Attende lo sblocco di un record
JRGZLIBReorganize library Riorganizza i membri dei file fisici di una libreria dotati di record cancellati
JOPNOpen data files Apre nella libreria esaminata i membri di file dati a manutenzione immed e delay
JFREFFree file Libera file
JDUPLFDuplicate logical files Duplica i file logici di un fisico
JDUPDBDuplicate data base Duplica un file fisico e i suoi logici

Sql  Gestione structured query language

JRTVDDLRetrieve Data Definition Language Recupera da un database preesistente le istruzioni DDL necessarie per ricrearlo

Query  Gestione query

JSIGNQuery Sign Trasforma il flag dare/avere nel moltiplicatore +1/-1
PuntoDecimalePunto decimale nel Query Modifica al messaggio che contiene il valore di sistema

Data Area  Gestione aree dati

JDTAARAChange data area Modifica un'area dati
JARAPRTData area print Stampa il contenuto di un gruppo di aree dati

Library List  Gestione lista librerie

JLIBLLibrary list from jobd Recupera la lista librerie da una descrizione lavoro e la usa come lista librerie corrente
JNETLIBLLibrary list from jod description addressed by file Recupera la lista librerie da una descrizione lavoro annotata su un file anagrafico
JLLSAVLibrary List Save Salva la lista librerie corrente su area dati
JCHKLIBLECheck Library List Entry Controlla la presenza di una libreria in lista librerie

Data Structure  Strutture dati

JPSDSSProgram status data structure Struttura dati esterna da dichiarare nei programmi RPG ed RPG ILE per leggere le informazioni sul programma
JFIDSSFile information data structure Struttura dati esterna da dichiarare nei programmi RPG ed RPG ILE per leggere le informazioni su un file

Program  Programmi sui programmi

JCALLERRetrieve caller Restituisce il nome del programma chiamante del programma che lo usa
JRECURSMonitor and report recursion Cerca programma in lista di chiamata
JCMDCommand Chiama l'esecutore comandi QCMD con l'autorita' del proprietario
JWWDWork with Disconnection Contiene un esempio semplice di applicazione resistente alle cadute del terminale
JCHKREFCheck Reference Controlla per i programmi della libreria esaminata la presenza in lista librerie degli oggetti referenziati
JABSENTSignal absence Segnala al video o alla joblog la propria mancanza
JBISCMDBis Command Esegue i due comandi ricevuti in input
JCHKHTMCheck Htm Controlla esistenza PGM e HTML omonimo
JCHKNAMCheck Name Controlla la validita' formale del nome ricevuto

Object  Gestione oggetti

JDUPDuplicate Duplica un oggetto tramite SAVOBJ (Save Object) e RSTOBJ (Restore Object)

Debug  Gestione debug

JDBGDebug Set Width of Debug Display

Multilingual  Gestione multilingua

JLINGUAPromemoria per display file multilingua File video e file messaggi per esemplificare la trasformazione multilingua delle costanti a video

Function  Gestione di una collezione di funzioni

JFNCFunction Gestione di una collezione di comandi pronti all'esecuzione

Codice fiscale  Controlla il codice fiscale

JCODFISControlla Codice Fiscale Controlla il codice fiscale italiano

Disegni per stampanti a impatto  

JDISEGNIDisegni

Elementari  Esempi di programmi

JSMPSample Esempio rpg, cobol e cl di visualizzazione file
JSBSExample Subsystem Esempio di creazione sottosistema
JFTSample Ftp Trigger Esempio elementare di ftp tra due As400 su file triggerato

Control Language Programming  Programmazione in linguaggio di controllo

JCLSRControl Language Subroutine Source Sorgenti di subroutine in linguaggio di controllo

Cleaning  Pulizie

JCLNPFCleanings Physical Files Pulisce file fisici

Ospito qui poche altre cose per le quali non e' maturo l'uso di altre pagine.

Messenger

Attivita' per messenger

MySQL e PHP

Corso database con esempi di MySQL