Meccanismo di pubblicazione
Quando viene richiesta la pubblicazione del documento HandShake esegue le seguenti operazioni:
- cerca il modello di partenza (formato .snx) e ne crea una copia per la pubblicazione,
- Rigenera il documento
- In fase di ricalcolo vengono risolti campi DOCVARIABLE
In particolare la fase di creazione della base dati prevede queste operazioni
- Cattura e compilazione di tutti i campi standard dell’offerta (quelli dell’intestazione). Questi dati sono tipizzati.
- Inserimento e compilazione di campi speciali calcolati da HandShake.
- Cattura e compilazione di tutti gli InfoTag definiti nell’offerta.
Vedere le appendici per l’elenco dei campi disponibili.
Dopo aver preparato la base dati ed eseguito il collegamento, HandShake lancia la rigenerazione del documento. In questa fase il motore di pubblicazione analizza i campi del documento di offerta e cerca un valore disponibile nella base dati che è stata preparata.
Se il valore viene trovato questo viene passato al campo e formattato come richiesto dal campo stesso.
Se il valore non viene trovato, la risoluzione passa al codice Python che avrà il compito di tentare di risolvere il campo passato con i dati che ha a disposizione.
La funzione di risoluzione variabili riceve dal motore di pubblicazione le seguenti informazioni:
- L’oggetto Quotation
- Il nome della variabile (campo da risolvere),
- Il codice di lingua attivo nel momento della pubblicazione
Oltre a questi dati il motore di pubblicazione può accedere al context di HandShake e quindi a tutto il database sottostante.
In questo caso Python può restituire a HandShake varie tipologie di dati:
- un semplice testo
- un documento word (formato docx) contenente le informazioni da visualizzare (testi, immagini, tabelle…).
- Un documento word temporaneo. Come il precedente ma una volta estratto il contenuto il file viene eliminato.
La tipologia del contenuto deve essere passata a HS tramite un parametro.
Ricevuto il documento o il testo, HS provvede ad estrarre il contenuto e a inserirlo al posto del campo.
Non è importante con quali API si crea il documento Word. L’importante è che il documento sia ben formato. Occorre considerare che per la complessità intrinseca dei documenti Word (specialmente in relazione agli stili) potrebbe non essere semplice ottenere la formattazione voluta. In questo caso il consiglio è di utilizzare sempre lo stesso template word di partenza in modo che tutti gli stili coincidano con quelli del documento finale.
Se nemmeno il codice Python risolve il campo, lo stesso rimarrà vuoto o con il valore di default.