COGUA8 - Movimentazione kit su documento¶
Posizione nel menu Programma non a menu Linkage section
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | COGUA8-OPE | x(20) | Operazione da eseguire Campo per ora non usato |
| COGUA8-BOLLA | Documento "padre" interessato all'operazione | ||
| x(01) | |||
| 9(04) | |||
| x(01) | |||
| 9(06) | |||
| FILLER | x(500) |
Logica generale Questa routine serve per eseguire la movimentazione necessaria per la "produzione" di kit che vengono movimentati al volo. Il programma esegue l'elaborazione su un intero documento di magazzino passato in input, ed esamina solo i prodotti "Distinta base" di tipo "K:KIT". NB: la distinta viene sempre considerata ad un livello. Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
| causali | movimentazione-kit |
Elaborazione Questo programma non esegue operazioni specifiche, ma una sequenza di operazioni sempre identica. B - Analisi Analisi documento del magazzino del magazzino da elaborare, allo scopo di preparare una tabella di transito che permette di capire come elaborare successivamente. La tabella contiene un elenco di righe formato da:
| Dato | Formato | Note |
|---|---|---|
| TD-RIGA | 9(04) | Progressivo di riga del documento padre |
| TD-MERCE-DA-ESP | merce | Codice merce presente sulla riga |
| TD-QTA-DA-ESP | 9(06)v999 | Quantità da esplodere per il documento (quella presente attualmente sul documento) |
| TD-SEGNO-DA-ESP | x(01) | Segno del documento da esplodere |
| TD-MERCE-ESP | merce | Codice merce esploso |
| TD-QTA-ESP | 9(06)v999 | Quantità già esplosa per il documento (nel caso in cui il documento sia già stato elaborato) |
| TD-SEGNO-ESP | x(01) | Segno del documento esploso |
| TD-PN | tes-chia3 | Chiave del documento "figlio" di prima nota magazzino utilizzato per l'esplosione del kit |
| TD-DATA | data | Data movimento |
B.1 - Documento attuale Quindi in questa fase si dovrà scorrere COGMOMAG per il documento padre, e considerare solo le righe contenenti kit: la merce MAG-MERCE deve avere: * MER-PADRE = 'P' * MER-TIPO-DISTINTA = 'K' L'aggiornamento della riga tabella sarà come segue:
| Dato | Note |
|---|---|
| TD-RIGA | MAG-PROG |
| TD-MERCE-DA-ESP | MAG-MERCE3 |
| TD-QTA-DA-ESP | MAG-QTAMAGAZ |
| TD-SEGNO-DA-ESP | MAG-ENTRUSC |
| TD-MERCE-ESP | k-merce-null |
| TD-QTA-ESP | 0 |
| TD-SEGNO-ESP | " " |
| TD-PN | " " |
| TD-DATA | 0 |
Al termine di questa fase potrei ottenere una tabella come questa
| TD-RIGA | TD-MERCE-DA-ESP | TD-QTA-DA-ESP | TD-SEGNO-DA-ESP | TD-MERCE-ESP | TD-QTA-ESP | TD-SEGNO-ESP | TD-PN | TD-DATA |
|---|---|---|---|---|---|---|---|---|
| 1 | DBKT00001 | 5 | U | 0 | ||||
| 5 | DBKT00010 | 2 | U | 0 | ||||
| 6 | DBKT00021 | 1 | U | 0 | ||||
| 7 | DBKT00022 | 1 | E | 0 |
B.2 - Esplosioni presenti Ora cercare la presenza di documenti figli, scorrendo COGRACDM per tutti i record aventi:
| Dato | Contenuto |
|---|---|
| RDM-TIP | "00" |
| RDM-P-TESTATA | La testata del documento passato in input |
Ciascun record trovato corrisponde ad un documento di esplosione presente per una riga; quindi aggiornare la tabella a parità di riga: RDM-P-RIGA corrisponde a TD-RIGA. E' possibile anche trovare un record dove non esiste già una riga corrispondente sulla tabella: significa che sul documento originale è stata cancellata una riga con un kit. L'aggiornamento della riga tabella quindi sarà come segue:
| Dato | Note |
|---|---|
| TD-RIGA | RDP-P-RIGA |
| TD-MERCE-DA-ESP | invariato |
| TD-QTA-DA-ESP | invariato |
| TD-SEGNO-DA-ESP | invariato |
| TD-MERCE-ESP | RDP-MERCE |
| TD-QTA-ESP | RDP-QTA |
| TD-SEGNO-ESP | RDP-SEGNO |
| TD-PN | RDP-F-TESTATA |
| TD-DATA | RDP-DATA |
Alla fine la tabella risultante potrebbe essere come la seguente:
| TD-RIGA | TD-MERCE-DA-ESP | TD-QTA-DA-ESP | TD-SEGNO-DA-ESP | TD-MERCE-ESP | TD-QTA-ESP | TD-SEGNO-ESP | TD-PN | TD-DATA | Note | Operazione |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | DBKT00001 | 5 | U | DBKT00001 | 4 | E | 12017P000100 | 01/01/2017 | Riga di documento già esistente, su cui è stata cambiata la quantità e/o il segno | Variazione |
| 5 | DBKT00010 | 2 | U | 0 | Riga di documento nuova (non è stato trovato il raccordo) | Inserimento | ||||
| 6 | DBKT00021 | 1 | U | DBKT00021 | 1 | U | 12017P000102 | 01/01/2017 | Riga di documento esistente, e invariata | / |
| 7 | DBKT00022 | 1 | E | DBKT00025 | 1 | E | 12017P000103 | 01/01/2017 | Riga di documento già esplosa ma sulla quale è stato cambiato il codice kit | Variazione |
| 3 | 0 | DBKT00015 | 3 | E | 12017P000101 | 01/01/2017 | Riga di documento non presente sul documento, ma collegata ad un documento: riga cancellata dal documento | Cancellazione |
Nel caso in cui la data del documento originale sia diversa, è necessario procedere comunque alla Variazione di tutte le righe del documento su cui non sia già previsto l'inserimento o la cancellazione C - Elaborazione Quindi, sulla base degli esempi riportati sulla tabella qui sopra, eseguire uno dei 3 possibili procedimenti: * D - Inserimento * E - Cancellazione * F - Variazione per ciascuna riga dove è previsto. D - Inserimento Inserimento del documento di magazzino che permette il giroconto tra i componenti del kit e il codice "kit" stesso. D.1 - Inserimento testata Inserimento di un record di COGTESBO: i dati principali:
| Dato | Contenuto |
|---|---|
| TES-MAG | Lo stesso magazzino del documento originale |
| TES-ANNO | Lo stesso anno documento di quello originale |
| TES-TIPOB | "P" |
| TES-BOLLA3 | Numero progressivo documento |
| TES-CAUSALE | movimentazione-kit |
| TES-DATA | La stessa data del documento originale |
D.2 - Inserimento raccordo Il documento originale viene raccordato con il nuovo attraverso COGRACDM
| Dato | Contenuto |
|---|---|
| RDM-TIP | "00" |
| RDM-P-TESTATA | Testata del documento passato in input |
| RDM-P-RIGA | La riga in elaborazione TD-RIGA |
| RDM-PROG | 0 |
| RDM-DATI | |
| RDM-F-TESTATA | La chiave del documento appena creato |
| RDM-F-RIGA | 0 |
| RDM-MERCE | TD-MERCE-DA-ESP |
| RDM-DATA-P | La data del documento |
| RDM-QTA | TD-QTA-DA-ESP |
| RDM-SEGNO | TD-SEGNO |
D.3 - Inserimento dettaglio documento Si scorre la distinta base relativa alla merce in elaborazione (COGDBASE) Quindi, per ciascun componente trovato, e per la distinta base stessa: D.3.1 - Inserimento COGMOMAG Inserimento della riga bolla. I dati principali:
| Dato | Contenuto (componente) | Contenuto (DB) |
|---|---|---|
| MAG-TESTA | Testata documento | Testata documento |
| MAG-MERCE3 | Codice componente | TD-MERCE-DA-ESP |
| MAG-QTAMAGAZ | TD-QTA-DA-ESP * DBA-QTA | TD-QTA-DA-ESP |
| MAG-ENTRUSC | TD-QTA-SEGNO | Il segno opposto rispetto a TD-QTA-SEGNO |
| MAG-PREZZO | Prezzo ultimo acquisto in data sistema | Prezzo ultimo acquisto in data sistema |
| MAG-VALORE | MAG-QTAMAGAZ * MAG-PREZZO | MAG-QTAMAGAZ * MAG-PREZZO |
Usando COGU12 eseguire l'aggiornamento della giacenza per ogni riga. E - Cancellazione Eseguire la cancellazione del documento TD-PN, e del raccordo: 1. Cancellazione righe documento 1. Ripristino giacenza 2. Cancellazione testata 3. Cancellazione raccordo F - Variazione La variazione consiste nell'eseguire consecutivamente: * E - Cancellazione * D - Inserimento
Estratto da documentazione interna ClickUp