Copy con REPLACE
A partire dalla versione 2017 ptf 1, vengono aggiunte alla COPYPATH di
compilazione le cartelle: questo permette di includere un intero programma come copy,
modificandone il comportamento attraverso il costrutto REPLACE.
In tal modo, quando si sviluppa una personalizzazione, è possibile evitare di
intervenire sul programma originale. Si supponga ad esempio di dover modificare il "calcolo riga" nella gestione
documenti: occorre intervenire nel paragrafo calcRow di
bo_05mmt. Nella cartella sou della personalizzazione è possibile
creare un sorgente bo_05mmt.cbl così congegnato:
REPLACE == perform calcRow ==
by == perform this-calcRow ==
. Il verbo REPLACE imposta tutte le
replace dichiarate per le copy successive. Il verbo REPLACE OFF
fa cessare la replace. Nell'esempio abbiamo sostituito la procedura calcRow con
la procedura this-calcRow, la quale:
copy
"bo_05mmt.cbl".
REPLACE
OFF.
this-calcRow.
perform
calcRow | super ()
compute
mmr-prezzo-netto = mmr-prezzo-netto
*
3,14< EM >
.......