La regola di univocità è la regola che consente di identificare se un documento che si vuole aggiungere o modificare violi i contenuti di un altro documento esistente. Serve ad evitare che possano essere introdotti in un db dei documenti duplicati o che in particolari condizioni si possa provvedere alla sovrascrittura/aggiornamento di documenti esistenti. Essa si esprime introducendo nel file di configurazione d'archivio un elemento unique_rule opportunamente configurato.
La regole di univocità di un'unità informativa può essere espressa in due modi.
Ovviamente la logica prevede che per ogni documento si determini la presenza di una regola di univocità specifica per far ricorso alla regola generica solo qualora quella specifica non sia stata dichiarata.
Avremo quindi configurazioni di questo tipo.
<xway_cfg> ... <primary_node ud_name="..." ud_container="..."> <unique_rule search_rule="..."/> </primary_node> ... <unique_rule search_rule="..."/> ... </xway_cfg>
La regola di univocità viene espressa entro l'attributo search_rule
e la sua sintassi è estremamente semplice.
Sarà sufficiente concepire una stringa di ricerca che sia in grado di soddisfare la condizione prescelta, con libertà di fare uso di operatori AND, OR e ADJ ed ogni altro operatore (o modificatore) che sia previsto dalla sintassi di ricerca.
Una volta concepita la potenziale frase di ricerca essa va privata della componente...
=<valore>
... lasciando che solo i nomi dei canali di ricerca ne facciano parte.
Avremo quindi configurazioni di questo tipo...
<unique_rule search_rule="[XML,/doc/@nrecord] or [XML,/doc/@num_prot] or [XML,/doc/registrazione/@numero]"/>
...dove alcune condizioni sono in OR tra di loro, oppure regole molto semplici e dirette...
<unique_rule search_rule="[XML,/NewsML/NewsItem/Identification/NewsIdentifier/PublicIdentifier]"/>
...ed ogni altra combinazione che possa risultare necessaria, con parentesi, modificatori ed operatori.
Non sarà infrequente, infatti, dover far ricorso in alcuni casi al modificatore SrcStp
per evitare l'intervento di una stoplist su un canale, ad esempio, che contiene codici di pochi caratteri. (Vds. Modificatori dei singoli Canali di ricerca)
Back to Le voci di "primary_node"