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 get_context() del modulo kongautil, disponibile sono all’interno di Konga:

import kongautil

context = kongautil.get_context()

Questa funzione ritornerà un oggetto di classe ScriptContext, che è così definita:

class kongautil.ScriptContext

Classe per l’accesso al contesto di esecuzione delle azioni esterne lato client di Konga.

La classe prevede l’uso di proprietà per accedere alle informazioni in lettura e scrittura:

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.

Al momento è definito un unico 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.

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