01 - Programmazione

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

Last Updated on 2 Novembre 2025 by Roberto De Pedrini

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
About author

Founder di Faq400 Srl, IBM Champion, ideatore del sito Faq400.com e del Blog blog.faq400.com. Sviluppatore RPG da quando avevo i pantaloni corti, forte sostenitore della piattaforma IBM i (ex AS400), ho sempre cercato di convididere le mie conoscenze con gli altri tramite forum, eventi e corsi. Oggi, tramite Faq400 Srl, cerchiamo di aiutare le aziende a sfruttare al meglio questa fantastica piattaforma IBM i.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *