Domande frequenti / Anveo EDI Connect / Come aggiungere una condizione IF alla vostra mappatura
Questa è una traduzione automatica. Il messaggio originale è disponibile in Inglese.

Come aggiungere una condizione IF alla vostra mappatura

Se avete qualche competenza in un qualsiasi linguaggio di programmazione, sicuramente conoscete la frase IF-THEN-ELSE: se un campo tabella o una variabile ha un valore specifico X, allora fatelo, se non fate qualcos’altro. E’ possibile riprodurre questo comportamento in una mappatura, ci sono diversi modi per farlo e in questo articolo vogliamo spiegarli.

Per il primo caso, supponiamo che si voglia esportare una fattura di vendita pubblicata. Hai un’intestazione della fattura di vendita e diverse righe di fattura. Le righe della fattura contengono alcune voci e alcuni commenti di cui sopra e tra le righe. Senza entrare in profondità nella vostra struttura di mappatura, sono sicuro che avete una linea di loop per l’intestazione della vostra fattura di vendita e alcune linee di mappatura dei dati sotto la linea, seguita da una linea di loop per le vostre linee di vendita e le loro linee di mappatura:

Intestazione fattura vendite
– Documento
EDI – Mappatura dati intestazione fattura linea 1
– Mappatura dati intestazione fattura linea 2
– Mappatura dati intestazione fattura linea ….
– Linea fattura vendite
— Linea fattura — Mappatura dati linea fattura linea 1
— e così via ….
I trattini indicano il livello di rientro dalla mappatura.

La domanda è: come si separano le righe delle voci dalle righe con i commenti? È pericoloso supporre che l’ordine delle righe dell’articolo e dei commenti sia sempre lo stesso, per cui è necessaria una soluzione indipendente dall’ordine.

La soluzione è quella di aggiungere due nuove linee ad anello rientranti sotto la linea della fattura di vendita. Nello scenario illustrato sopra tutte le righe di commento hanno il tipo “vuoto”, tutte le altre righe hanno un certo tipo, che rende le righe distinguibili. La prima nuova linea di loop è un loop sopra la tabella della fattura di vendita, con lo stesso collegamento e filtri del primo loop, ma con l’aggiunta di un nuovo filtro: Tipo=CONST(”’ ‘). Puoi leggere questo come “Se il tipo di fattura di vendita è vuoto” – la tua prima parte dell’estratto conto IF!
Ora per la parte “THEN”: tutte le linee di mappatura che sono rientrate sotto questa nuova riga formano la parte “THEN” ed è possibile inserire i commenti alla tabella “EDI Additional Information” per esempio, con tutti i collegamenti e i filtri necessari per gli elementi dei dati.

E che dire di tutte le altre linee con i vostri articoli (e conti e risorse G/L)? Beh, indipendentemente dalle regole generali di esportazione che si applicano alla mappatura, queste linee hanno un tipo diverso dal vuoto. Questo significa che è possibile aggiungere una seconda nuova riga alla propria mappatura, sotto la linea IF, con lo stesso collegamento ai dati e filtri del primo ciclo, ma ora si aggiunge il filtro sul tipo come questo: Tipo=FILtro(0). Si può leggere come “se il tipo di linea di fattura di vendita è qualcosa di ELSE che vuoto” – la vostra parte ELSE della dichiarazione. In questo caso probabilmente si desidera creare alcune linee di documenti EDI che contengono le informazioni delle voci (e risorse e conti G/L), in modo da far rientrare la linea di mappatura EDI Document Line al di sotto di questa altra linea e aggiungere le linee di mappatura dei dati in modo appropriato.

Se si desidera dare un’occhiata più da vicino a questo esempio, è possibile utilizzare il modello per esportare le fatture di vendita pubblicate dall’assistente: creare una nuova mappatura NAV vuota con codice e codice e codice di progetto, quindi eseguire l’assistente dal nastro “Action” tramite “Run Create and Update Wizard” e selezionare la prima opzione:


Invece di inserire la seconda Linea Fatturazione Vendite è possibile anche una linea di tipo condizionale. Facciamo un passo indietro fino alla linea “Sales Invoice Line”: essa passa attraverso ogni linea di fatturazione, cioè ogni riga della fattura viene passata alla mappatura una dopo l’altra. Se si tratta di una riga di commento, le informazioni saranno scritte nella tabella EDI Additional Information – il che significa che c’è un record nel filtro.

Con la linea di tipo condizionale, potete approfittare del fatto che se avete una linea non commentata, il filtro di cui sopra non trova un record. La linea condizionale può verificare questo caso, con la funzione “ISEMPTY”. Il nome è letteralmente, se non c’è nessun record nel filtro della riga Commento Fattura di vendita, tutte le linee di mappatura rientrate sotto la linea condizionale saranno eseguite. Qui saranno scritte le linee di documenti EDI. Le proprietà complete della linea di mappatura hanno un aspetto simile a questo:

Se il modello è stato importato in una nuova mappatura, è possibile cambiare la linea di mappatura denominata “ELSE” in questa linea condizionale.

Un altro modo per creare un condizionale è quello di utilizzare una traduzione di valore. Ad esempio, è necessario esportare i codici delle unità di misura dei propri articoli in un messaggio di tipo EDIFACT. È molto probabile che i codici del vostro sistema NAV non corrispondano a quelli che ci si aspetta in EDIFACT, quindi è necessario tradurli: se il codice è “PALLET”, scrivere “PAL” nella tabella del buffer. Se si tratta di “PIECE”, scrivere “PCE”. Se “ORA”, scrivere “HUR”. E così via.

È possibile utilizzare il filtro sopra descritto e aggiungere una riga di vendita (spedizione probabilmente in questo caso) al di sotto di quella originale per ogni unità di misura e scrivere il codice corrispondente alla riga documento EDI, ma è molto più facile utilizzare una traduzione di valore. Ad ogni unità di misura “sorgente” viene assegnato un codice unità di misura “destinazione”, il codice di destinazione è scritto nel campo di destinazione nella linea di mappatura. Per l’impostazione di una traduzione di valore, fare riferimento all’articolo della knowledge base [insert link=”” here]=””]