In un ambiente professionale in cui la gestione e la produzione di documenti sono fondamentali, disporre di strumenti potenti e flessibili è essenziale. Immaginate di poter progettare modelli di documenti dinamici direttamente dal vostro client Desktop, integrando formule e dati dal vostro database e generando poi questi documenti con un solo clic attraverso un’interfaccia web intuitiva. Questo è esattamente ciò che 4D Write Pro e 4D Qodly Pro vi permettono di fare!
Nel blog di questa settimana esploreremo come queste due soluzioni si completino perfettamente per automatizzare e ottimizzare i processi documentali. Scoprirete come creare modelli personalizzati in 4D Write Pro e come, grazie a 4D Qodly Pro, gli utenti web possano inserire i dati necessari, attivare la generazione dei documenti e persino scegliere di memorizzarli nel database o restituirli tramite un attributo calcolato.
Per dimostrare questo processo, utilizzeremo l’applicazione Performance Review, disponibile per il download. Preparatevi a trasformare il vostro modo di creare e gestire i documenti, semplificando i flussi di lavoro e aumentando l’efficienza.
Applicazione Performance Review
Creazione di modelli nel client desktop
4D Write Pro è un potente strumento di elaborazione del testo il cui principale punto di forza è la capacità di creare modelli di documenti collegati al database. Questa funzionalità consente di generare automaticamente vari tipi di documenti: lettere, contratti, fatture, cataloghi, note spese e molto altro.
Nell’applicazione Performance Review vengono utilizzati diversi modelli di documento a seconda del reparto coinvolto. Ad esempio:
Modello di PO
Modello QA
Questi modelli incorporano formule dinamiche direttamente collegate al database, facilitando la creazione di documenti personalizzati per ogni reparto.
Un modulo nell’applicazione Desktop consente di creare questi modelli in modo semplificato.Per aggiungere facilmente le formule, un elenco a discesa suggerisce tutte le formule pertinenti al modello.
Queste formule sono definite in un file JSON chiamato “WPexpression.json”.
Ecco un estratto:
{ "expression": [{ "nome": "Cognome", "formula": "Questo.data.review.Employee.Lastname". }, { "nome": "Firstname", "formula": "Questo.dati.recensione.Impiegato.Nome". }, { "nome": "NomeCollaboratore", "formula": "Questo.data.review.Impiegato.Nome+nome". \"+Questo.dato.recensione.Dipendente.Cognome" } ] }
Per saperne di più su 4D Write Pro e ORDA, leggete questo blog: ORDA e 4D Write Pro: La coppia vincente!
Per semplificare la creazione delle tabelle, la procedura guidata per le tabelle integrata nel componente di interfaccia di 4D Write Pro è l’ideale.
Affinché funzioni perfettamente con la nostra struttura di database, abbiamo aggiunto dei file di configurazione contenenti le formule necessarie per i documenti di Performance Review. Ad esempio:
{ "tableDataSource": "This.data.review.Skills.orderBy(\"Group asc\")", "columns": [{ "check": true, "header": "SkillName", "source": "This.item.Name" }, { "check": false, "header": "CheckCodeI", "source": "Choose(This.item.ID_Score=1; \"X\"; \"\")". }, { "check": false, "header": "CheckCodeP", "source": "Choose(This.item.ID_Score=2; \"X\"; \"\")". },{ "check": false, "header": "CheckCodeR", "source": "Choose(This.item.ID_Score=3; \"X\"; \"\")". },{ "check": false, "header": "CheckCodeE", "source": "Choose(This.item.ID_Score=4; \"X\"; \"\")". },{ "check": true, "header": "ScoreName", "source": "Questo.elemento.Punteggio.Nome" },{ "check": true, "header": "ScoreCode", "source": "This.item.Score.Code" } ], "rotture": [{ "label": "SkillGroup", "source": "This.item.Group" } ], "breakFormulas": [{ "label": "GroupName", "source": "This.item.Group" } ], "extraFormule": [{ "label": "ScoreSkillName", "source": "This.data.review.ScoreSkill.Name" },{ "label": "ScoreSkillCode", "source": "This.data.review.ScoreSkill.Code" },{ "label": "CheckSkillScoreCodeI", "source": "Choose(This.data.review.ID_ScoreSkill=1; \"X\"; \"\")". }, { "label": "CheckSkillScoreCodeP", "source": "Choose(This.data.review.ID_ScoreSkill=2; \"X\"; \"\")". }, { "label": "CheckSkillScoreCodeR", "source": "Choose(This.data.review.ID_ScoreSkill=3; \"X\"; \"\")". }, { "label": "CheckSkillScoreCodeE", "source": "Choose(This.data.review.ID_ScoreSkill=4; \"X\"; \"\")". } ] }
Con queste formule, la creazione di una tabella di abilità e punteggi diventa molto semplice.Dopo aver personalizzato la tabella, ecco il risultato:
Per saperne di più sulla configurazione e sulle funzionalità offerte dalla Creazione guidata tabella, vedere:
- Blog: Una procedura guidata per creare tabelle con i dati
- Formazione: 4D Write Pro e 4D View Pro incontrano 4D – il prossimo livello di template intelligente
Compilazione dei dati nel client Web
Una volta creato il modello, gli utenti inseriscono i dati richiesti attraverso un’interfaccia web intuitiva. Grazie a 4D Qodly Pro, questa fase si integra perfettamente con il vostro database, garantendo che le informazioni inserite corrispondano ai campi definiti nei vostri modelli.
Per maggiori dettagli sull’impostazione di queste interfacce, consultate i nostri precedenti blog su:
- Creare un elenco interattivo di dati con 4D Qodly Pro
- Creare una gestione dinamica dei dati nell’applicazione Qodly: Creare, aggiungere, modificare e cancellare
Generazione del documento finale
Il documento finale viene generato direttamente dall’interfaccia web. Quando un utente fa clic sul pulsante dedicato, l’evento “On Click” attiva la funzione “selectedReview.generatePDF()”.
Di seguito è riportato il codice che gestisce la generazione del documento PDF:
Function generateDocument()->$doc: Object
var $context : Object
var $template : cs.TemplateEntity
// Create context
$context :=This.createContext()
// Load template
$template :=This.Employee.Departement.Template.Template
// Create 4D Write Pro document
$doc:=WP New($template)
WP SET DATA CONTEXT ($doc; $context)
WP COMPUTE FORMULAS ($doc)
return $doc
exposed Function generatePDF ()
var $WPdoc : Object
var $blob : 4D.Blob
// Generate WP document
$WPdoc:=This.generateDocument()
// Convert to PDF
WP EXPORT VARIABLE ($WPdoc; $blob; wk pdf)
// Save in database
This .DocumentPDF:=$blob
This .save()
Permessi
Nell’applicazione web, gli utenti non possono accedere alla tabella Template. Tuttavia, la funzione “Review.generatePDF” deve accedere a questi dati per generare il documento PDF. A tal fine, abbiamo impostato una “promozione” sulla funzione.
- Creazione del privilegio “generatePDF”: Nella pagina dei ruoli e dei privilegi, definiamo un nuovo privilegio denominato generatePDF.
- Concessione dei diritti di lettura: Si concede il permesso di lettura alle classi di dati Reparto e Modello. Questi diritti sono essenziali per individuare il modello Write Pro necessario per generare il documento.
- Promuovere la funzione “Review.generatePDF”: Assegniamo l’opzione Promuovi alla funzione Review.generatePDF. Con questa promozione, quando la funzione viene chiamata sul server, acquisisce automaticamente il privilegio generatePDF e può accedere ai dati tipicamente riservati.
Questo meccanismo garantisce che solo i processi autorizzati possano estendere temporaneamente i loro diritti per eseguire compiti specifici, mantenendo un’elevata sicurezza e controllo sull’accesso ai dati.
Voilà!
Il prossimo passo
Combinando 4D Write Pro e 4D Qodly Pro, è possibile automatizzare la generazione di documenti dinamici unendo modelli predefiniti e dati in tempo reale. Questo approccio offre numerosi vantaggi:
- Automazione dei documenti: Riduzione delle attività manuali grazie ai modelli dinamici.
- Ottimizzazione del flusso di lavoro: Separazione netta tra la creazione dei modelli (client desktop) e l’inserimento dei dati (client Web).
- Risparmio di tempo e qualità superiore: Una soluzione pratica che migliora la produttività e la qualità dei documenti generati.
Vi invitiamo a provare questo approccio nei vostri progetti e a scoprire i vantaggi dell’integrazione di 4D Write Pro con 4D Qodly Pro. Non esitate a commentare per condividere i vostri commenti o a consultare le nostre altre risorse per ampliare ulteriormente le vostre conoscenze.