Azioni esterne lato client¶
Dal pannello di configurazione database in Konga è possibile definire un’azione esterna lato client, che equivale all’esecuzione di uno script scritto in linguaggio Python a seguito di un determinato evento.
Il contesto di esecuzione¶
Per tutti i tipi di eventi per cui è possibile definire un’azione esterna, lo script in questione dovrà ottenere come prima cosa un contesto di esecuzione su cui operare per ricevere i parametri (univoci per l’evento) e per impostare il o i valori di ritorno.
Per ottenere il contesto di esecuzione, è sufficiente invocare la funzione kongautil.get_context() del modulo kongautil, disponibile
sono all’interno di Konga:
import kongautil
context = kongautil.get_context()
Questa funzione ritornerà un oggetto di classe kongautil.ScriptContext; fare riferimento alla sua documentazione per maggiori informazioni.
Tipologie di azioni esterne¶
Di seguito elenchiamo i parametri e il possibile valore di ritorno da gestire tramite il contesto di esecuzione, a seconda del tipo di azione esterna.
Post processa documento elettronico¶
L’azione viene eseguita al momento della generazione di un documento elettronico, e permette di modificare l’XML prima di salvarlo nel record della tabella EB_DocumentiElettronici.
Parametri:
xml: oggetto di classexml.etree.Elementcorrispondente all’elemento con tagFatturaElettronica(elemento radice) del documento elettronico generato da Konga.Valore di ritorno: oggetto di classe
xml.etree.Elementmodificato.
Pre salva documento¶
L’azione è eseguita ogni volta che si salva un documento su Konga, e permette di alterare il record prima che venga passato al server per il salvataggio sul database.
Parametri:
company: codice dell’azienda su cui si sta salvando il documento
tablename: nome della tabella di appartenenza del record
record_data: dizionario con i dati del recordValore di ritorno: dizionario con i dati del record, nella stessa forma di
record_data.
Post carica documento¶
L’azione è eseguita ogni volta che si carica un documento da Konga, e permette di alterare il record dopo che è stato letto dal database sul server, prima che venga mostrato sul client.
Parametri:
company: codice dell’azienda da cui si sta caricando il documento
tablename: nome della tabella di appartenenza del record
record_data: dizionario con i dati del recordValore di ritorno: dizionario con i dati del record, nella stessa forma di
record_data.
Pre stampa documento¶
Azione che viene eseguita prima della stampa di un documento, e permette di alterare le variabili predefinite passate poi alla generazione della stampa.
Parametri:
builtins: dizionario delle variabili predefinite
command: comando di stampa,
variant: numero identificativo della variante per il comando di stampa
title: titolo del layout di stampa
uuid: identificativo univoco della stampaValore di ritorno: dizionario delle variabili predefinite
Post stampa documento¶
Azione che viene eseguita dopo la stampa di un documento.
Parametri:
builtins: dizionario delle variabili predefinite
command: comando di stampa,
variant: numero identificativo della variante per il comando di stampa
title: titolo del layout di stampa
uuid: identificativo univoco della stampaValore di ritorno: non usato
Esempi¶
Di seguito riportiamo un esempio di script per l’azione esterna di tipo «Post processa documento elettronico»:
import kongautil
context = kongautil.get_context()
xml = context.params['xml']
node = xml.find('FatturaElettronicaHeader/DatiTrasmissione/IdTrasmittente/IdCodice')
node.text = '01234567890'
context.result = xml