01 - Programmazione

VsCode Extension: Bob Cozzi’s RPG IV to RPG Free Conversion

L’estensione “RPG IV to Free Format Conversion” sviluppata da Bob Cozzi (Cozzi Research) è pensata per semplificare la conversione di codice in formato fisso (fixed-format) RPG IV verso il nuovo stile free-format RPG. Secondo la pagina del marketplace:

  • Consente di selezionare singole righe o blocchi di codice in formato fisso e, con un clic o il comando appropriato, convertirle in free-format. marketplace.visualstudio.com
  • Supporta specifiche di tipo Header (H), File (F), Definition (D) e in parte Calculation (C) e embedded SQL nel formato fisso. marketplace.visualstudio.com
  • Offre funzioni “bonus” per editing fisso-format, come Smart Tab e Smart Enter, che aiutano la leggibilità e navigazione nel codice legacy. marketplace.visualstudio.com

🔍 Perché la trovo utile nella modernizzazione RPG

Dal tuo feedback e dalla prova effettuata, ecco i punti che emergono:

  • Velocità: La possibilità di evidenziare una porzione di codice (o l’intero programma) e richiamare la funzione “Convert RPG IV to Free Format” elimina molte operazioni manuali nella transizione verso free format.
  • Praticità: In progetti di modernizzazione dove si deve intervenire su molti programmi RPG legacy, avere uno strumento che automatizza la conversione di parti selezionate – anziché riscrivere tutto – può ridurre drasticamente il tempo di intervento.
  • Compatibilità: Dal momento che supporta diverse specifiche (H, F, D, embedded SQL) e blocchi multipli, è adatta a scenari reali dove il codice misto è la norma.
  • Editing migliorato: Le features extra come Smart Tab/Smart Enter aiutano anche lo sviluppo “legacy” prima della conversione, migliorando la manutenzione del codice fisso-format.

⚠️ Limiti e aspetti da valutare

È importante però tener conto di alcune attenzioni prima di considerarla uno strumento completo di refactoring o modernizzazione a tappeto:

  • Non è un strumento di refactoring completo: come indicato dal produttore, non è pensato per riscrivere logica o convertire codice RPG II ciclo, né gestisce input/output spec o level-break indicatori in modo automatico. marketplace.visualstudio.com
  • Non sempre le specifiche C (C-spec) sono completamente supportate: la documentazione segnala che la conversione di alcune C-spec è “in progress” e potrebbero richiedere interventi manuali dopo la conversione. marketplace.visualstudio.com
  • In ambienti complessi: la conversione automatica è un buon inizio, ma ancora serve revisione manuale, test, e integrazione del nuovo codice free-format nella toolchain (compilazione, debugging, performance)
  • Nessuna trasformazione automatica di ciclo RPG legacy (RPG II) o strutture datate: se il programma è molto obsoleto, potrebbe essere più efficiente un intervento mirato anziché affidarsi solo all’estensione.

🎯 Consigli pratici per utilizzarla

Basandoci sulla tua prova e sull’esperienza:

  • Prima di tutto fai un backup del sorgente legacy e lavora su ambiente di test.
  • Identifica blocchi di codice “obbiettivi” della conversione: ad esempio specifiche fisso-format che vuoi modernizzare, o moduli che verranno aggiornati.
  • Usa la selezione multipla per blocchi che contengono IF/ELSE, WHENxx, CASxx: l’estensione supporta questi casi ma richiede che l’intera zona sia selezionata per ottenere un corretto risultato. marketplace.visualstudio.com
  • Dopo conversione, esegui test di compilazione e verifica della logica free-format risultante.
  • Usa le impostazioni avanzate dell’estensione (es. configurare rpgiv2free.removeFREEDirective, oppure definire variabili temporanee custom) per personalizzare la conversione al tuo standard. marketplace.visualstudio.com
  • Valuta un piano di progressive conversioni: non convertire tutto in una volta, ma passo passo, e integra il nuovo codice free-format nei tuoi flussi di sviluppo.

🧭 In conclusione

La estensione di Bob Cozzi un ottimo strumento di supporto per chi affronta la modernizzazione del codice RPG su IBM i: permette di accelerare la conversione da fixed-format a free-format in maniera semplice, riducendo la fatica iniziale.
Detto questo, non sostituisce (ancora) un processo completo di refactoring o riprogettazione: va usata come acceleratore, non come “soluzione unica”.
Per chi lavora su ambienti legacy, progetti di modernizzazione e vuole ridurre tempi e costi senza abbandonare la qualità del codice, è da considerare sicuramente tra gli strumenti da avere.

Esempio di conversione RPG Fixed – Free

Related Posts
DB2 for i SQL – Stringhe – POSSTR-LOCATE-LOCATE_IN_STRING (IT)

Introduzione Spesso, nelle nostre applicazioni, abbiamo la necessità di lavorare con le stringhe di testo e l'SQL del DB2 può Read more

DB2 for i & SQL – FAQ & Howto (Part. 1) (IT)

Database DB2 e SQL ... forse lo strumento più potente e completo che abbiamo sulla piattaforma IBM i: ecco una Read more

Annuncio IBM i 7.4

Arriva direttamente con l'uovo di Pasqua questo annuncio IBM per le novità della versione IBM i 7.4, versione iNext secondo Read more

Generated Always Columns – Approfondimenti (IT)

Introduzione "Generated Always Column": sono colonne, campi, di una tabella il cui contenuto è controllato direttamente dal sistema ... e Read more

--- Roberto De Pedrini Faq400.com

Recent Posts

IBM i & SQL Tips #010 – Localizzare programmi nella Call Stack con STACK_INFO

Ciao a tutti, oggi voglio segnalarvi un altro interessante contributo di Massimo Duca, parte della sua ormai nota serie IBM…

10 mesi ago

Display file DDS Edit per VsCode, nuova preview.

Incuriosito da alcuni messaggi di Cristian Larsen su Linkedin (New Release - Display File DDS Edit v.0.10.1) ho voluto scaricare…

11 mesi ago

Project Bob: il nuovo strumento AI di IBM per sviluppo COBOL su IBM Z e RPG su IBM i

Ciao a tutti,oggi voglio segnalarvi un annuncio che potrebbe segnare una svolta per lo sviluppo applicativo su ambienti IBM: Project…

11 mesi ago

IBM i & SQL Tips #6: chiamare API REST e analizzare le risposte JSON con SQL

Voglio segnalarvi un nuovo articolo molto interessante di Massimo Duca nella serie IBM i & SQL Tips. In questo sesto…

12 mesi ago

Come funziona il passaggio di parametri a un programma IBM i (RPG / Cobol)

Ciao a tutti, voglio segnalarvi un post molto utile di Marco Riva sul suo sito Markonetools, in cui spiega in…

12 mesi ago

Guida alla configurazione SFTP su IBM i (con Public Key o Password)

Approfitto di una recente discussione su IBM TechXchange per segnalarvi un’ottima guida di Anna Niederschulte: dedicata alla configurazione di SFTP…

12 mesi ago