Vai al contenuto

SWN140: codici merce fornitore modificati non esportati su ARPMERCA

Campo Valore
ID ClickUp 869e9k8jc
Data segnalazione 2026-07-27
Data risoluzione 2026-07-27
Programmi coinvolti SWN140
Impatto Alto
Cliente Blutekna

Sintomo

Dopo l'aggiornamento di alcuni codici merce fornitore sul gestionale, la modifica non risultava propagata sull'APP. Nel caso segnalato da Blutekna, la merce "005704" (CMA) con codice fornitore "19/11/03571" (CM) era stata aggiornata il 23 luglio, ma la tabella APP ARPMERCA continuava a riportare il valore precedente.

Il log di SWN140 dichiarava di aver esportato dei record, ma senza indicare quali. Anche forzando una riesportazione a partire dal 22 luglio, il programma dichiarava di esportare, ma il dato su ARPMERCA restava invariato.

Causa

SWN140 esporta i codici merce fornitore (COGMERFO) sulla tabella APP ARPMERCA con tipo-codice = "F". Il codice fornitore mfr-cod-for viene scritto nel campo a-mca-codice, che fa parte della chiave del record su ARPMERCA.

Nel paragrafo di esportazione del singolo record (b-esporta-record) il programma ricercava il record esistente tramite la chiave parziale (azienda + merce + tipo-codice + anagrafica) e, se trovato, si limitava ad aggiornarne la descrizione e i flag. Quando la modifica riguardava proprio il codice fornitore (mfr-cod-for), l'aggiornamento avrebbe dovuto cambiare un campo in chiave del record gia' presente: il vecchio record con il codice precedente rimaneva, e il nuovo codice non veniva mai propagato. Il log, inoltre, non riportava i codici toccati, rendendo la diagnosi difficile.

Correzione

Nel paragrafo b-esporta-record (marcatore TASK-5716 nel sorgente) e' stato aggiunto il controllo sul cambio del codice fornitore: se il codice letto dalla sorgente (mfr-cod-for) e' diverso da quello del record ARPMERCA esistente (a-mca-codice), il programma:

  1. esegue la cancellazione logica del vecchio record, impostando a-mca-fl-canc = "C" e aggiornando l'id-sincro;
  2. inserisce un nuovo record con il nuovo codice fornitore (a-mca-codice = mfr-cod-for), descrizione aggiornata e flag di cancellazione azzerato.

Questa doppia operazione e' necessaria perche' a-mca-codice e' in chiave e non puo' essere modificato "in place".

A corredo, il log di processo (gesdebug-write) e' stato arricchito con i codici effettivamente modificati o inseriti (merce - fornitore - codice), cosi' che l'esito dell'esportazione sia tracciabile.

Modifica rilasciata e verificata su Blutekna il 2026-07-27.