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 classe xml.etree.Element corrispondente all’elemento con tag FatturaElettronica (elemento radice) del documento elettronico generato da Konga.

Valore di ritorno: oggetto di classe xml.etree.Element modificato.

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 record

Valore 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 record

Valore 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 stampa

Valore 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 stampa

Valore 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