ANVEDI Integration
L’codeunit ANVEDI Integration contiene tutte le chiamate API pubbliche al modulo EDI, si potrebbe voler chiamare dal proprio codice personalizzato. Tutte le funzioni di questa codeunit devono essere utilizzate, se si vuole avviare direttamente un’azione EDI per codice.
Concetti generali
In questa sezione parleremo prima di tutto dei concetti fondamentali, che dovreste comprendere per poter leggere gli esempi di codice.
Transazioni dell’utente
Anveo EDI Connect ha un concetto chiamato “transazioni dell’utente”, che può abbracciare più transazioni di database e raccogliere più errori. La maggior parte delle azioni in Anveo EDI Connect richiedono una transazione utente aperta per essere eseguite. È possibile avviare una transazione utente chiamando:
La chiamata a END_USER_TRANSACTION permette di mostrare gli errori, di interrompere la transazione corrente del database o di ottenere un valore di ritorno, sia che ci sia stato un errore. Ne discuteremo in dettaglio più tardi.
BEGIN_USER_TRANSACTION
Avvia una nuova transazione con un nuovo utente. Si prega di notare che si integrano le chiamate nel modulo EDI solo nei punti in cui può avvenire un COMMIT. In molti casi, il modulo commetterà tutte le modifiche al database prima di eseguire la logica EDI. Considerate anche la semplice marcatura dei dati e l’utilizzo di un lavoro in background per eseguire la logica EDI.
Il testo dato viene mostrato all’utente, se viene aperta una finestra di dialogo di attesa, perché il processo richiede tempo.
Si dovrebbe sempre terminare una chiamata a BEGIN_USER_TRANSACTION con una chiamata a END_USER_TRANSACTION.
SHOWDIALOGS
Questa funzione può essere utilizzata per nascondere qualsiasi finestra di dialogo EDI.
Il parametro specifica se le finestre di dialogo vengono visualizzate o meno. Una chiamata a questa funzione deve essere all’interno di una transazione utente. Normalmente si chiama questa funzione direttamente dopo BEGIN_USER_TRANSACTION.
ISPROCESSING
Questa funzione ritorna se ci si trova all’interno di un’esecuzione mapping. È possibile controllare questo valore quando si validano i trigger, ad esempio, per ottenere un comportamento diverso durante l’elaborazione dei processi EDI. Questo valore può essere utilizzato anche per visualizzare le finestre di dialogo di immissione solo quando non si sta elaborando l’EDI.
END_USER_TRANSACTION
Questa funzione interrompe una transazione dell’utente.
Se ci sono stati errori durante la transazione, mostrare poi in una finestra di dialogo all’utente finale. Questo parametro non ha alcun effetto, se GUIALLOWED è False.
Se il modulo deve lanciare un errore, interrompendo il flusso di processo corrente. Tutto il codice dopo questa linea non viene eseguito, se c’è stato un errore durante la transazione. Impostando questo parametro su True verrà mostrato un messaggio di errore che indica che si sono verificati uno o più errori, se ce ne sono stati. In questo caso l’utente non può vedere l’elenco completo degli errori.
Un valore di ritorno, che ci sia stato o meno un errore. Ritorna True al successo, cioè non ci sono stati errori; False altrimenti.
Il valore di ritorno era denominato in modo diverso nelle versioni precedenti del modulo, ma aveva la stessa funzione. Il vecchio nome del valore di ritorno non era corretto, la funzione restituiva sempre True on success.
Lavorare con le transazioni commerciali
RUN_BUSINESSTRANSACTION_JOB
Esegue il lavoro di raccolta dati di un determinato tipo di transazione commerciale. Questo deve essere chiamato dall’interno di una transazione dell’utente.
Codice del tipo di transazione commerciale.
START_BT_WITH_REC
Avvia una nuova transazione commerciale per il codice e l’ID del record.
RUN_BT_BATCH_JOB
Esegue il lavoro di raccolta dei lotti con il nome specificato. Questo deve essere chiamato dall’interno di una transazione dell’utente.
Azioni
A volte si vuole creare un pulsante su una pagina per avviare un processo EDI, oppure si vuole integrarlo, ad esempio, nel processo di rilascio. In questo caso è possibile eseguire quasi tutte le azioni del modulo da codice. Si prega di tenere presente che i processi EDI dovrebbero essere di solito automatizzati ed eseguiti in background. Quindi, prima di aggiungere azioni in codice, considerate la possibilità di un lavoro in background come alternativa.
Eseguire un Mapping EDI
Per eseguire un EDI Mapping dovremo avviare una transazione utente. In seguito potremmo voler passare i dati al mapping. Possiamo quindi eseguire il mapping e controllare il risultato quando terminiamo la transazione dell’utente. Troverete la descrizione dettagliata dei comandi dopo l’esempio di codice.
RESET_TABLEVIEWS
Ripristina tutte le visualizzazioni di tabelle esistenti memorizzate. Deve essere chiamato dall’interno di una transazione utente.
SET_TABLEVIEW
Memorizza una vista tabellare sotto un nome specificato. Deve essere chiamato dall’interno di una transazione utente.
Un codice che rappresenta il nome del filtro. Dovrete specificare esattamente lo stesso nome nella EDI Mapping per recuperare il filtro.
Il testo del filtro in forma di tabella Anveo EDI Connect. Per ottenere la stringa correttamente formattata si dovrebbe utilizzare la funzione di costruzione Microsoft Dynamics NAV 2016 GETVIEW, se possibile, per ottenere la stringa correttamente formattata.
GET_TABLEVIEW
Recupera un filtro memorizzato. Deve essere chiamato dall’interno di una transazione utente.
RUN
Eseguire una o più mappature EDI. Deve essere chiamato dall’interno di una transazione utente.
Il codice del progetto o una stringa di filtro corrispondente al codice del progetto.
Il codice del formato mapping o una stringa di filtro corrispondente al codice del formato.
Il codice del mapping o un filtro corrispondente ai codici mapping desiderati.
Se devono essere eseguite mappature multiple nel caso in cui sia specificato un filtro. Si tratta di una funzione di sicurezza che impedisce di eseguire più di un mapping.
Se il post-processing deve essere eseguito. Di solito si vuole impostare questo su True.
Un filtro sulle post-elaborazioni. Normalmente si può voler passare in una stringa vuota.
Altre azioni
RECEIVE_ALL
Funzione deprezzata. Si dovrebbe evitare di chiamare la funzione generale e chiamare una di quelle più specifiche qui sotto.
Riceve tutti i canali di comunicazione. Questa funzione deve essere chiamata dall’interno di una transazione utente.
RECEIVE_FOLDER
Riceve i dati dalla cartella di trasmissione specificata o dalle cartelle. Questa funzione deve essere chiamata dall’interno di una transazione utente.
Il codice del filtro di trasmissione o una stringa di filtro sul campo del codice.
Se il post-processing deve essere eseguito. Di solito si vuole impostare questo su True.
Un filtro sulle post-elaborazioni. Normalmente si può voler passare in una stringa vuota.
RECEIVE_COMMUNICATIONCHANNEL
Riceve i dati dal canale di comunicazione specificato. Questa funzione deve essere chiamata dall’interno di una transazione utente.
Il codice del canale di comunicazione o una stringa di filtro sul campo codice.
Se il post-processing deve essere eseguito. Di solito si vuole impostare questo su True.
Un filtro sulle post-elaborazioni. Normalmente si può voler passare in una stringa vuota.
SEND_ALL
Funzione deprezzata. Si dovrebbe evitare di chiamare la funzione generale e chiamare una di quelle più specifiche qui sotto.
Invia tutti i canali di comunicazione. Questa funzione deve essere chiamata dall’interno di una transazione utente.
Se il post-processing deve essere eseguito. Di solito si vuole impostare questo su True.
Un filtro sulle post-elaborazioni. Normalmente si può voler passare in una stringa vuota.
SEND_FOLDER
Invia le trasmissioni aperte della cartella di trasmissione specificata. Questa funzione deve essere chiamata dall’interno di una transazione utente.
Il codice della cartella di trasmissione o una stringa di filtro sul campo del codice.
Se il post-processing deve essere eseguito. Di solito si vuole impostare questo su True.
Un filtro sulle post-elaborazioni. Normalmente si può voler passare in una stringa vuota.
SEND_COMMUNICATIONCHANNEL
Invia le trasmissioni aperte del canale di comunicazione specificato. Questa funzione deve essere chiamata dall’interno di una transazione utente.
Il codice del canale di comunicazione o una stringa di filtro sul campo codice.
Se il post-processing deve essere eseguito. Di solito si vuole impostare questo su True.
Un filtro sulle post-elaborazioni. Normalmente si può voler passare in una stringa vuota.
PROCESS
Se il post-processing deve essere eseguito. Di solito si vuole impostare questo su True.
Un filtro sulle post-elaborazioni. Normalmente si può voler passare in una stringa vuota.
Se devono essere elaborate solo le post-elaborazioni dell’attuale transazione dell’utente.
Impostazione del destinatario / mittente
SET_COMMUNICATION_CHANNEL
Imposta il canale di comunicazione per la seguente chiamata mapping all’interno della transazione dell’utente.
Il codice del canale di comunicazione.
SET_RECEIVER_PARTNER
Imposta il partner ricevente per la seguente chiamata mapping all’interno della transazione dell’utente.
Il codice del partner ricevente.
SET_RECEIVER_IDENTIFICATION
Imposta l’identificazione del ricevitore per la seguente chiamata mapping all’interno della transazione dell’utente.
L’identificazione del ricevitore. Si tratta di un testo libero, che potrebbe avere un significato particolare su specifici canali di comunicazione.
SET_SENDER_PARTNER
Imposta il partner mittente per la seguente chiamata mapping all’interno della transazione dell’utente.
Il codice partner del mittente.
SET_SENDER_IDENTIFICATION
Imposta l’identificazione del mittente per la seguente chiamata mapping all’interno della transazione dell’utente.
L’identificazione del ricevitore. Si tratta di un testo libero, che potrebbe avere un significato particolare su specifici canali di comunicazione.
Registrazione e gestione degli errori
Le seguenti funzioni possono essere richiamate solo mentre è in funzione un mapping. Queste funzioni sono destinate ad essere utilizzate per i gestori di errori personalizzati da codice.
LogError
Registra un messaggio di errore.
Il messaggio di errore. L’esecuzione continuerà dopo questa chiamata. Per interrompere il flusso di controllo, utilizzare la funzione ERROR nativa.
LogWarning
Registra un avviso.
Il testo dell’avvertimento.
LogInformation
Registra le informazioni.
Le informazioni da registrare.
LogDocumentError
Registra un errore appartenente ad un documento EDI. Esiste una funzione più universale chiamata LogRecIDErrorWithCode.
Il messaggio di errore.
Il documento EDI a cui appartiene l’errore.
LogDocumentWarning
Registra un avviso appartenente ad un documento EDI. Esiste una funzione più universale chiamata LogRecIDWarningWithCode.
L’avviso da registrare.
Il documento EDI a cui appartiene l’errore.
LogDocumentInformation
Registra un’informazione appartenente ad un documento EDI. Esiste una funzione più universale chiamata LogRecIDInformationWithCode.
Le informazioni da registrare.
Il documento EDI a cui appartiene l’errore.
LogDocumentLineError
Registra un errore appartenente ad una linea di documenti EDI. Esiste una funzione più generale chiamata LogRecIDErrorWithCode.
Il messaggio di errore da registrare.
La linea di documenti EDI a cui appartiene l’errore.
LogDocumentLineWarning
Registra un avviso appartenente ad una linea di documenti EDI. Esiste una funzione più generale chiamata LogRecIDWarningWithCode.
L’avviso che dovrebbe essere registrato.
La linea di documenti EDI a cui appartiene l’errore.
LogDocumentLineInformation
Registra un’informazione appartenente ad una linea di documenti EDI. Esiste una funzione più generale chiamata LogRecIDInformationWithCode.
Le informazioni da registrare.
La linea di documenti EDI a cui appartiene l’errore.
LogErrorWithCode
Registra un errore con un codice di errore aggiuntivo.
Se interrompere il flusso di controllo o continuare con l’esecuzione
Il messaggio di errore da registrare.
Un codice per identificare l’errore.
LogWarningWithCode
Registra un avviso con un codice di errore aggiuntivo.
L’avviso che dovrebbe essere registrato.
Un codice per identificare l’errore.
LogInformationWithCode
Registra un’informazione con un codice di errore aggiuntivo.
Le informazioni che dovrebbero essere registrate.
Un codice per identificare l’errore.
LogRecIDErrorWithCode
Registra un messaggio di errore che dovrebbe appartenere a un record specifico.
Se interrompere il flusso di controllo o continuare l’esecuzione.
Il messaggio di errore da registrare.
L’ID del record a cui appartiene l’errore.
Un codice di errore per identificare l’errore.
Se l’errore può essere accettato dall’utente finale. Questo richiederà un codice di errore non vuoto.
LogRecIDWarningWithCode
Registra un avviso che dovrebbe appartenere a un record.
L’avviso che dovrebbe essere registrato.
Il record id l’avviso dovrebbe appartenere a.
Un codice per identificare la voce del registro.
LogRecIDInformationWithCode
Registra un’informazione che dovrebbe appartenere a un record.
Le informazioni che dovrebbero essere registrate.
Il record identifica l’informazione a cui dovrebbe appartenere.
Un codice per identificare la voce del registro.