| Entrambe le parti precedenti la revisioneRevisione precedente | |
| documentazione_3di_riservata:docway4:creazione_dmodel [2019/03/11 15:36] – [Importazione d-model] mlcarlino | documentazione_3di_riservata:docway4:creazione_dmodel [Data sconosciuta] (versione attuale) – eliminata - modifica esterna (Data sconosciuta) 127.0.0.1 |
|---|
| ======Creazione nuovo d-model====== | |
| |
| ===== D-model: definizione ===== | |
| Il **d-model** (document model) è lo strumento utilizzato dal **MailStorageAgent (MSA)** che contiene le regole e le modalità con cui i messaggi di posta vengono recepiti nell'archivio documentale. | |
| |
| ===== D-model standard ===== | |
| Normalmente nell'installazione di base di Docway vengono forniti 2 d-model standard, uno configurato per la creazione di un documento di tipo non protocollato e uno configurato per la creazione di un documento di tipo bozza in arrivo. I d-model standard sono i seguenti: | |
| |
| **D-model per la creazione di doc di topo varie** | |
| <code xml> | |
| <documentModel db="xdocwaydoc" name="varie" nrecord="."> | |
| <notify cc="true" httpHost="http://localhost:8080" rpa="true" uri="/DocWay4/docway/loadtitles.pf"/> | |
| <item value="varie" xpath="doc/@tipo"/> | |
| <item value="getXPathValue(/casellaPostaElettronica/@cod_amm)" xpath="doc/@cod_amm_aoo"/> | |
| <item value="getXPathValue(/casellaPostaElettronica/@cod_aoo)" xpath="doc/@cod_amm_aoo"/> | |
| <item value="." xpath="doc/@nrecord"/> | |
| <item value="getYear()" xpath="doc/@anno"/> | |
| <item value="getDate()" xpath="doc/@data_prot"/> | |
| <item value="no" xpath="doc/@annullato"/> | |
| <item value="99" xpath="doc/@scarto"/> | |
| <item value="getFromName()" xpath="doc/autore"/> | |
| <item value="preserve" xpath="doc/autore/@xml:space"/> | |
| <item value="getSubject()" xpath="doc/oggetto"/> | |
| <item value="preserve" xpath="doc/oggetto/@xml:space"/> | |
| <item value="00/00 - non classificato" xpath="doc/classif"/> | |
| <item value="00/00" xpath="doc/classif/@cod"/> | |
| <item value="E-mail" xpath="doc/tipologia/@cod"/> | |
| <item value="addStoriaCreazione()" xpath=""/> | |
| <item value="addRPA()" xpath=""/> | |
| <item value="addCC()" xpath=""/> | |
| <attach_item value="addAndUploadEmailBodyAttach(/doc/files,TEXT,testo email,.txt)" xpath=""/> | |
| <attach_item value="addAndUploadEmailBodyAttach(/doc/files,HTML,testo email html,.html)" xpath=""/> | |
| <attach_item value="addAndUploadEmailAttachFiles(/doc/files)" xpath=""/> | |
| <attach_item value="addAndUploadEmailAttachImages(/doc/immagini)" xpath=""/> | |
| <attach_item value="computeAndAddFootprint(/doc/impronta)" xpath=""/> | |
| <attach_item value="assignChkin()" xpath=""/> | |
| </documentModel> | |
| </code> | |
| |
| **D-model per la creazione di bozza in arrivo** | |
| <code xml> | |
| <documentModel db="xdocwaydoc" name="bozze_arrivo" nrecord="."> | |
| <notify cc="true" httpHost="http://localhost:8080" rpa="true" uri="/DocWay4/docway/loadtitles.pf"/> | |
| <item value="arrivo" xpath="doc/@tipo"/> | |
| <item value="si" xpath="doc/@bozza"/> | |
| <item value="getXPathValue(/casellaPostaElettronica/@cod_amm)" xpath="doc/@cod_amm_aoo"/> | |
| <item value="getXPathValue(/casellaPostaElettronica/@cod_aoo)" xpath="doc/@cod_amm_aoo"/> | |
| <item value="." xpath="doc/@nrecord"/> | |
| <item value="" xpath="doc/@anno"/> | |
| <item value="" xpath="doc/@data_prot"/> | |
| <item value="" xpath="doc/@num_prot"/> | |
| <item value="no" xpath="doc/@annullato"/> | |
| <item value="getSubject()" xpath="doc/oggetto"/> | |
| <item value="preserve" xpath="doc/oggetto/@xml:space"/> | |
| <item value="E-mail" xpath="doc/tipologia/@cod"/> | |
| <item value="addSenderFromACLLookup(/doc/rif_esterni/rif)" xpath=""/> | |
| <item value="addAllegatoForEmailAttachs()" xpath=""/> | |
| <item value="addStoriaCreazione()" xpath=""/> | |
| <item value="addRPA()" xpath=""/> | |
| <item value="addCC()" xpath=""/> | |
| <attach_item value="addAndUploadEmailBodyAttach(/doc/files,TEXT,testo email,.txt)" xpath=""/> | |
| <attach_item value="addAndUploadEmailBodyAttach(/doc/files,HTML,testo email html,.html)" xpath=""/> | |
| <attach_item value="addAndUploadEmailAttachFiles(/doc/files)" xpath=""/> | |
| <attach_item value="addAndUploadEmailAttachImages(/doc/immagini)" xpath=""/> | |
| <attach_item value="computeAndAddFootprint(/doc/impronta)" xpath=""/> | |
| <attach_item value="assignChkin()" xpath=""/> | |
| </documentModel> | |
| </code> | |
| |
| Come si può vedere il d-model è composto da un elemento **<documentModel>** che racchiude un elemento **<notify>**, più elementi <item> e più elementi **<attach_item>**: | |
| |
| * **<notify>** contiene i seguenti attributi | |
| * **httpHost** : nome dns del server Docway | |
| * **uri** : componente del link per l'accesso diretto al documento (quasi sempre il suo valore è /DocWay4/docway/loadtitles.pf) | |
| * **rpa** : se true viene inviata la notifica all'RPA del documento creato | |
| * **cc** : se true viene inviata la notifica alle eventuali CC del documento creato | |
| |
| |
| * **<item>** contiene i seguenti attributi | |
| * xpath : xpath completo del campo del documento che deve essere creato | |
| * value : valore da assegnare all'xpath; può essere un valore fisso oppure può essere assegnato tramite specifice funzioni java implementate nel MSA | |
| |
| |
| * **<attach_item>** contiene i seguenti attributi | |
| * **xpath** : xpath completo del campo dedicato all'allegato | |
| * **value** : valore da assegnare all'xpath; contiente specifiche funzioni java per l'upload di allegati al documento creato. | |
| |
| <WRAP centeralign round important 100%> | |
| **Non ho mai avuto la necessità di modificare gli elementi <attach_item> pertanto è consigliabile non intervenire per modificarli!** | |
| </WRAP> | |
| |
| ===== D-model personalizzati ===== | |
| La personalizzazione dei d-model consiste nell'aggiunte di ulteriori regole ai modelli di base. | |
| |
| ==== Aggiunta di classificazione fissa ==== | |
| <code xml> | |
| <item value="06/06 - Rateazioni sotto soglia" xpath="doc/classif"/> | |
| <item value="preserve" xpath="doc/classif/@xml:space"/> | |
| <item value="06/06" xpath="doc/classif/@cod"/> | |
| </code> | |
| |
| ==== Aggiunta voce di indice fissa con classificazione ==== | |
| <code xml> | |
| <item value="RATEAZIONI STC - ALESSANDRIA-ASTI" xpath="doc/voce_indice"/> | |
| <item value="preserve" xpath="doc/voce_indice/@xml:space"/> | |
| <item value="06/06 - Rateazioni sotto soglia" xpath="doc/classif"/> | |
| <item value="preserve" xpath="doc/classif/@xml:space"/> | |
| <item value="06/06" xpath="doc/classif/@cod"/> | |
| </code> | |
| |
| ==== Forzare la protocollazione automatica ==== | |
| Tramite alcune regole è possibile fare in modo che il messaggio di posta recuperato da MSA venga automaticamente protocollato senza passare nello stato di bozza; ovviamente il d-model di partenza per questo tipo di configurazione non può che essere quello per la creazione di una bozza in arrivo. Le regole da aggiungere sono le seguenti: | |
| <code xml> | |
| <item value="getYear()" xpath="doc/@anno"/> | |
| <item value="getDate()" xpath="doc/@data_prot"/> | |
| <item value="$ANNO$" xpath="doc/@num_prot"/> | |
| <item value="-" xpath="doc/@num_prot"/> | |
| <item value="getXPathValue(/casellaPostaElettronica/@cod_amm)" xpath="doc/@num_prot"/> | |
| <item value="getXPathValue(/casellaPostaElettronica/@cod_aoo)" xpath="doc/@num_prot"/> | |
| <item value="-" xpath="doc/@num_prot"/> | |
| <item value="." xpath="doc/@num_prot"/> | |
| </code> | |
| |
| ==== Aggiunta header e corpo della mail nel campo Note ==== | |
| <code> | |
| <item value="From: " xpath="doc/note"/> | |
| <item value="getFromName()" xpath="doc/note"/> | |
| <item value="newLine()" xpath="doc/note"/> | |
| <item value="To: " xpath="doc/note"/> | |
| <item value="getTo()" xpath="doc/note"/> | |
| <item value="newLine()" xpath="doc/note"/> | |
| <item value="Cc: " xpath="doc/note"/> | |
| <item value="getCc()" xpath="doc/note"/> | |
| <item value="newLine()" xpath="doc/note"/> | |
| <item value="Sent: " xpath="doc/note"/> | |
| <item value="getHeader(Date)" xpath="doc/note"/> | |
| <item value="newLine()" xpath="doc/note"/> | |
| <item value="Subject: " xpath="doc/note"/> | |
| <item value="getSubject()" xpath="doc/note"/> | |
| <item value="newLine()" xpath="doc/note"/> | |
| <item value="newLine()" xpath="doc/note"/> | |
| <item value="getMailBody(TEXT)" xpath="doc/note"/> | |
| <item value="preserve" xpath="doc/note/@xml:space"/> | |
| </code> | |
| |
| ==== Aggiunta repertorio ==== | |
| Per la creazione di doc di tipo Varie: | |
| <code xml> | |
| <item value="NomeRepertorio" xpath="doc/repertorio"/> | |
| <item value="CodiceRepertorio" xpath="doc/repertorio/@cod"/> | |
| <item value="CodiceRepertorio^cod_amm_aoo-$ANNO$." xpath="doc/repertorio/@numero"/> | |
| |
| <!-- Esempio --> | |
| <item value="Curricula" xpath="doc/repertorio"/> | |
| <item value="CV" xpath="doc/repertorio/@cod"/> | |
| <item value="CV^AVEPACL-$ANNO$." xpath="doc/repertorio/@numero"/> | |
| </code> | |
| |
| Per la creazione di doc di tipo Bozza Arrivo | |
| <code xml> | |
| <item value="NomeRepertorio" xpath="doc/repertorio"/> | |
| <item value="CodiceRepertorio" xpath="doc/repertorio/@cod"/> | |
| <item value="" xpath="doc/repertorio/@numero"/> | |
| |
| <!-- Esempio --> | |
| <item value="Documenti sanitari" xpath="doc/repertorio"/> | |
| <item value="DSAN" xpath="doc/repertorio/@cod"/> | |
| <item value="" xpath="doc/repertorio/@numero"/> | |
| </code> | |
| |
| ===== Importazione d-model ===== | |
| Per utilizzare i d-model personalizzati nella configurazione della casella di posta elettronica in ACL devono essere importati tramite la procedura WatchDoc di eXtraWay (per maggiori informazioni leggere [[documentazione_3di:extraway_os:manuali:watchdoc|Introduzione a Watch Doc]]). | |
| |
| Il d-model (o i d-model) personalizzato va importato all'interno del seguente tag: | |
| <code xml> | |
| <?xml version="1.0" encoding="iso-8859-1"?> | |
| <list_of_struttur xmlns:xw="http://www.3di.it/ns/xw-200303121136"> | |
| <!-- d-model personalizzato --> | |
| </list_of_struttur> | |
| </code> | |
| |
| Ovviamente l'import va fatto nell'archivio **acl**. | |
| |