Vai al contenuto

ASNS25 - Gestione prestazioni/materiali previsti

Posizione nel menu Programma non a menu Linkage section

Tipo Dato Formato Contenuto
INPUT ASNS25-CALLER x(20) Programma chiamante
ASNS25-OPE x(20) Vedi argomenti successivi
ASNS25-CHIAMATA 9(12) ID chiamata da elaborare
ASNS25-ID-MODELLO 9(12) Modello prestazioni/materiali da usare
Se passato in input non verrà cercato nella subroutine
ASNS25-SOLO-NEW x(01) Se vale "S", il ricalcolo effettuerà solo l'aggiunta di nuove merci tra le prestazioni e i materiali, trascurando le altre variazioni
OUTPUT ASNS25-ESITO x(01) Esito dell'operazione
ASNS25-MSG x(160) Messaggio di esito
FILLER x(500)

Logica generale Questo programma permette la creazione o l'aggiornamento della struttura "Prestazioni/materiali previsti" su una chiamata. Viene innescato in tutti i programmi di creazione nuova chiamata allo scopo di finalizzare la determinazione dei materiali/prestazioni previste. All'interno del programma eseguire la gestione del log di procedura in modo da tracciare le scelte principali del programma. Configurazioni possibili

Gruppo Parametro Note
ass-chiam prestazione-consegna Permettono di aggiungere una prestazione prevista automatica, in caso di chiamata "di consegna"
ass-chiam tipo-attivita-consegna
assist chiamate-programmate-provenienza
ass-chiam mat-prest-da-distinta-matr
ass-chiam asns25-salva-prestazioni-interventi-contratti Se "S", salva le prestazioni collegate agli interventi delle chiamate programmate da contratto. Introdotta per clienti (es. EFFE IMPIANTI) che vogliono solo le prestazioni previste da "Tipo Attivita'"

Elaborazione L'elaborazione cambia a seconda dell'operazione richiesta.

Operazione: RICALCOLA

Descrizione Riceve in input una chiamata, ed effettua la ricerca e aggiornamento dei materiali prestazioni/previsti per la chiamata stessa. In sintesi, la logica di ricerca è la seguente: 1. Ricerca prestazioni/materiali collegati direttamente ad un tipo attività 2. Ricerca prestazioni/materiali collegati al tipo matricola (sulla prima matricola della chiamata) 3. Ricerca dell'esistenza di un modello prestazioni/materiali collegato alla chiamata usando (vedi ASN03E - Modelli prestazioni/materiali di default) 1. La ricerca viene eseguita attraverso una chiamata a ASNS22 - Ricerca modello prestazioni/materiali 4. Ricerca di una distinta base collegata alla matricola: 1. Se la configurazione mat-prest-da-distinta-matr è attiva, ricerca prestazioni/materiali presenti nella distinta base matricola Ad ogni livello di ricerca, le eventuali prestazioni/materiali trovati vengono sommati a quelle trovate sui livelli precedenti. Quando non eseguire il ricalcolo Prima di iniziare il ricalcolo, verifico se su ASNMTRPD esiste almeno un record: se non è cosi' significa che tutta la logica di gestione delle m/p previste è manuale, o attraverso altri mezzi come * Preventivi * Kit * ... quindi in questo caso non viene eseguito il ricalcolo. Chiamata standard

Tipo Dato Contenuto
INPUT ASNS25-CALLER Programma chiamante
ASNS25-OPE "RICALCOLA"
ASNS25-ID-CHIAMATA Id chiamata da elaborare
ASNS25-ID-MODELLO Modello da utilizzare
Se non presente verrà cercato direttamente qui
ASNS25-SOLO-NEW Se vale "S", il ricalcolo effettuerà solo l'aggiunta di nuove merci tra le prestazioni e i materiali, trascurando le altre variazioni

Elaborazione B.1 Operazioni preliminari B.1.1 Verifico se eseguire il ricalcolo * Se non esiste nessun record su ASNMTRPD, non eseguirò nessun ricalcolo * Se è una chiamata programmata (ACHT-PROVENIENZA = chiamate-programmate-provenienza ) da contratto, e la configurazione mat-prest-da-distinta-matr non è attiva, non eseguirò nessun ricalcolo

Nota (02/04/2026 - TASK-3351): Dopo il ricalcolo, se la configurazione mat-prest-da-distinta-matr e' attiva, il salvataggio delle prestazioni collegate agli interventi del contratto viene eseguito solo se la configurazione asns25-salva-prestazioni-interventi-contratti vale "S". Questo permette ai clienti che usano solo le prestazioni da "Tipo Attivita'" di non avere prestazioni aggiuntive dagli interventi contratto. B.1.2 Ricerca modello Se il modello ASNS25-ID-MODELLO non viene passato, sarà cercato usando ASNS22 - Ricerca modello prestazioni/materiali

Dato Contenuto
ASNS22-CALLER K-PROGRAM-ID
ASNS22-OPE "CERCA-MODELLO"
ASNS22-CHIAMATA ID Chiamata

B.2 Memorizzazione dati attuali Il dettaglio prestazioni/materiali presente attualmente sulla chiamata viene memorizzato in una tabella di appoggio. La tabella deve contenere anche il campo "Matricola". Questo servirà per poter confrontare il contenuto attuale con i dati ricalcolati, prima di aggiornare. Il confronto avverrà a parità di "Merce" e "Matricola" B.3 Ricerca P/M B.3.1 - Da tipo attività Sul tipo attività della chiamata viene effettuata la ricerca della presenza di p/m di default, con una ricerca su ASNMTRPD, impostando:

Dato Contenuto
AMPD-TIPO "A"
AMPD-CODICE ACHT-TIP-ATT

Ogni record letto viene aggiunto alla tabella, a parità di codice merce trovato. In funzione del contenuto di AMPD-PROPOSTA-SU si valorizza la matricola sulla tabella:

AMPD-PROPOSTA-SU Cosa fare
"P" Valorizzare con la prima matricola della chiamata
"T" Il confronto va fatto con tutte le matricole della chiamata
"G" Il confonto va fatto con matricola "vuota"

La quantità verrà sommata alla quantità già presente. B.3.2 - Da tipo matricola Se sulla chiamata è collegata almeno una matricola (presenza di ASNCHDET), viene prelevato il tipo matricola dalla prima. Quindi si cercano p/m trovati su di essa.

Dato Contenuto
AMPD-TIPO "M"
AMPD-CODICE AMTR-TIP

Ogni record letto viene aggiunto alla tabella, a parità di codice merce trovato e matricola sulla tabella. La quantità verrà sommata alla quantità già presente.

AMPD-PROPOSTA-SU Cosa fare
"P" Valorizzare con la prima matricola della chiamata
"T" Il confronto va fatto con tutte le matricole della chiamata
"G" Il confonto va fatto con matricola "vuota"

B.3.3 - Da modello Se il modello è presente (passato in input o cercato all'inizio) si prelevano p/m presenti in esso:

Dato Contenuto
AMPD-TIPO "G"
AMPD-CODICE ASNS25-ID-MODELLO

B.3.4 - Altre gestioni particolari B.3.4.1 - Attività di consegna Se la chiamata è "di consegna", quindi il tipo attività è quello configurato in tipo-attivita-consegna, e la prestazione è configurata ( prestazione-consegna ) allora aggiungo alla tabella la prestazione configurata. In questo caso si ignora il contenuto di AMPD-PROPOSTA-SU, e si confronta con matricola vuota B.3.5 - Distinta base matricola Questa sezione viene eseguita se la configurazione mat-prest-da-distinta-matr è attiva Ricerca delle matricole collegate alla chiamata, su ASNCHDET:

Dato Contenuto
ACHD-ID Id chiamata

Per ciascuna matricola collegata, cercare l'esistenza della distinta base su ASNMTRDB:

Dato Contenuto
AMDB-ID-MTR ACHD-ID-MATRICOLA

Aggiungere il dettaglio alla tabella per il confronto.

AMPD-PROPOSTA-SU Cosa fare
"P" Confrontare con la matricola in elaborazione
"T"
"G" Il confonto va fatto con matricola "vuota"

B.4 Confronto tabella Ora la tabella può contenere "n" righe, dove le quantità e le matricole: * Precedente * Calcolata differiscono. In questo caso devo segnalare opportunamente all'utente la situazione e attendere una attività da parte dell'utente. Ad esempio:

Caso Merce/matricola originale Merce/matricola calcolata Qta originale Qta calcolata Note
A (INV) Presente Presente 1 1 La merce era già prevista, e la quantità è rimasta invariata
Presente Presente 0 0 La merce era già prevista, e la quantità è rimasta invariata (c'è solo la merce ma non la quantità)
B (AUM) Presente Presente 1 2 La merce era già prevista, e la quantità è aumentata
Presente Presente 0 2 La merce era già prevista, e la quantità è aumentata
C (DIM) Presente Presente 2 1 La merce era già prevista, e la quantità è diminuita
Presente Presente 2 0 La merce era già prevista, e la quantità è diminuita
D (ELI) Presente 1 0 La merce era prevista ma è stata tolta completamente
E (NEW) Presente 0 2 La merce non era prevista in precedenza, ma è stata calcolata in questo momento

B.4.1 Decisione In base al confronto effettuato, se il flag ASNS25-SILENT vale "N", devo chiedere all'utente una decisione, mostrando quali casi sono presenti nella chiamata attuale, mostrando un messaggio opportuno che gli faccia capire quali casi sono presenti. Se l'utente quindi annulla, non eseguo la parte seguente di aggiornamento Casi particolari: * Se non è presente nessun caso (tabella vuota) non segnalo nulla e skippo l'aggiornamento * Se sono presenti solo casi "A" (merci invariate), non segnalo nulla e non eseguirò nessun aggiornamento * Se sono presenti solo casi "E", significa che in precedenza non c'era nessuna P/M prevista, ed è stata aggiunta dall'elaborazione corrente, quindi potrei anche evitare la segnalazione e proseguire. * Se ASNS25-SOLO-NEW = "S" * Verranno considerati solo i casi "E" in fase di aggiornamento, e non verrà emesso nessun messaggio 09/11/2023: dato che ora è possibile dettagliare le voci per matricola, non è necessario emettere nessun messaggio informativo. B.5 Aggiornamento La fase di aggiornamento rimuove tutti i record relativi alla chiamata da ASNCHPRP, quindi li reinserisce dalla tabella, quando è presente la merce "ricalcolata"


Estratto da documentazione interna ClickUp