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 :func:`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 :class:`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. 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