::REL D(21/11/2010)::TIT Revisione architettura programmi
Nelle release precedenti di Sme.UP i Gruppi di Attivazione erano utilizzati in modo non
strutturato.

Questo comportava vari problemi, il più grave dei quali era il malfunzionamento del cambio
ambiente. In alcuni casi, dopo aver effettuato un cambio di sistema informativo, alcuni file
restavano "aperti" sul precedente ambiente.
Un altro problema "minore" era il funzionamento disomogeneo dello stesso programma in base
al "tipo" di gruppo di attivazione in cui veniva eseguito. Lo stesso programma poteva avere
due funzionamenti diversi in base al fatto che venisse eseguito nel gruppo di attivazione di
default o uno specifico.

Per ovviare a tutti questi problemi è stata fatta una profonda revisione della struttura dei
richiami dei programmi Sme.UP.

La differenza fondamentale rispetto al passato è che ora tutti i programmi Sme.Up vengono
eseguiti in un gruppo di attivazione NON DEFAULT.
Nessun programma di Sme.UP viene eseguito nel gruppo di attivazione di default (come è
giusto che sia in una struttura ILE).
Questo risultato è stato ottenuto associando un gruppo diverso dal default a tutti i
"primi" programmi nello stack dei richiami.
Per questo motivo, lo stack dei richiami di un qualunque job Sme.UP avrà in testa un
programma specifico (B£QQ50, B£QQ02, B£QQ01 ecc.).
Tali programmi, oltre a garantire l'esecuzione in un gruppo di attivazione non default
si occupreanno della corretta impostazione dei separatori decimali e delle tabelle B£1 e B£2.


Per mantenere tutta questa struttura coerente, il programmatore dovrà tenere conto di alcuni
accorgimenti.
Questi accorgimenti sono elencati di seguito e saranno approfonditi in PTF specifiche.


SBMJOB tramite B£QQ01 o B£QQ02
Per le motivazioni esposte precedentemente non sarà più possibile effettuare il SBMJOB di un
programma qualunque. Bisognerà sempre fare il SBMJOB del B£QQ02 oppure usare direttamente il
comando B£QQ01
Vedi SBMJOB tramite B£QQ01 o B£QQ02 (MBPTF-B£01027D)\\

No cambio ambiente run-time
Non è possibile effettuare un cambio ambiente tramite programmi o comandi. Per cambiare ambiente
è necessario tornare alla lista ambienti iniziale.
Vedi Cambio ambiente solo da lista (MBPTF-B£01027E)\\

No RCLACTGRP(*ELIGIBLE)
Questo comando non può essere utilizzato in quanto andrebbe a chiudere anche gruppi di
attivazione pensati per non essere mai chiusi.

No RCLRSC
Il comando RCLRSC diventa inutile, tale comando infatti ha effetto solo se eseguito nel
gruppo di attivazione di default.

Attenzione a *INLR e *INRT
La chiusura in *INLR di un programma non causa più la chiusura effettiva dei programmi da
lui richiamati.
Vedi *INLR, *INRT, e comandi di reclaim (MBPTF-B£01027C)\\

Scope degli override
Lo scope di default degli override (OVRDBF, OVRPRTF e DLTOVR) è il gruppo di attivazione.
Per riportarsi ad una struttura di override a livello di chiamata, è necessario impostare
i parametri corretti.
Vedi Normalizzazione Override (MBPTF-B£01027B)\\


Nuovi gruppi di attivazione PARTICOLARI
In questa versione sono stati introdotti 2 gruppi di attivazione che meritano un'attenzione
particolare.
__SM_ENDLESS__
Questo gruppo di attivazione si chiude solo al cambio ambiente.
__SMEUP__
Questo gruppo di attivazione non si chiude MAI, nemmeno al cambio ambiente. Va usato con molta
cautela solo da (pochi e ben identificati) programmi standard. Tali prorammi devono necessariamente
appartenere alla categoria dei B£QQ in quanto devono sempre chiudere con certezza tutti i file che
aprono.


Nota sui programmi richiamati da menù e da riga di comando
I programmi richiamati da menù vengono sempre eseguiti in un gruppo di attivazione nuovo, quindi
alla loro uscita consentono la riacquisizione delle risorse (chiudono i file aperti).
Per ottenre lo stesso effetto da riga di comando, è necessario utilizzare il comando C e non
il comando CALL.
Quindi quando di vuole eseguire un programma da riga di comando è estremamente consigliato
l'utilizzo del comando C (a cui è stata aggiunta la possibilità di ricevere i parametri).
I comandi T e UP hanno lo stesso comportamento (eseguono l'azione in un nuovo gruppo di
attivazione.


Contestualmente a questo intervento è stata modificata la £INZSR e anche il meccanismo di lettura
dele tabelle B£1 e B£2.
Anche in merito a questi cambiamenti sarà necessario prestare alcune attenzioni.
Vedi Modifica e "obbligatorietà" £INZSR (MBPTF-B£01027F)\\
Vedi Nuova gestione B£1 e B£2 e nuova Exit (MBPTF-B£01027G)\\


NOTA sul B£UT50
Il programma B£UT50 è stato sostituito dal B£QQ50. L'oggetto PGM B£UT50 rimane (come replica del
B£QQ50) per non dover necessariamente modificare tutti i profili utente.
Si consiglia comunque, ove possibile, di modificare i profili utente indicando il programma
B£QQ50 invece del B£UT50.