Lettura automatica metadati

Da wiki.maggioli.it.
Versione del 13 apr 2017 alle 10:42 di imported>Root
Jump to navigation Jump to search

Questa azione permette di leggere i metadati associati ad un generico oggetto (che supporti i metadati). E' possibile specificare la tipologia dell'oggetto ed il suo identificativo. L'esecuzione della action avviene esclusivamente lato server.

Premessa sui mapping

Per descrivere il funzionamento della action supponiamo di avere scelto una tipologia di dati sulla quale siano stati definiti tre mapping chiamati padre (scalare), madre (scalare), figli (array). Ognuno di questi mapping utilizza la classe chiamata persona (quindi padre, madre e figli sono tutti persona). Supponiamo inoltre che la classe persona definisca gli attributi cognome, nome, data_nascita.

Parametri

Segue la lista dei parametri della action con la loro funzione.

owner_class_name (input)

E' la tipologia di oggetti da gestire (classe java del DAC). Il default vale it.saga.library.gestioneDocumentale.flows.DocDACElementi, che si presume essere il caso di più frequente utilizzo ma è sufficiente modificare il nome per utilizzare altre tipologie di oggetti. La tipologia di oggetti specificata deve obbligatoriamente supportare la gestione dei metadati, pena un errore a runtime.

owner_pkid (input)

E' la chiave di accesso dell'oggetto specifico di cui si vuole gestire i metadati.

output_count (input)

Indica il numero di attributi che si intende accedere con questa action.

Parametri variabili

In funzione del parametro output_count vengono generate delle triplette di parametri come segue (X indica il numero progressivo)

attr_X_name (input)

Descrive il nome completo dell'attributo che si intende accedere. Se ad esempio vogliamo accedere il cognome del padre dovremo scrivere padre.cognome. In realtà questa è una notazione compatta accettata dalla action fintanto che la classe di metadati non utilizza l'erediterietà multipla. In caso di ereditarietà multipla potrebbe accadere che la classe erediti da due superclassi entrambe con l'attributo cognome. In questo caso si potrebbero verificare dei malfunzionamenti. Infatti la action utilizza implicitamente il nome della classe presente nel mapping (persona in questo caso. Se tale classe contiene l'attributo specificato questo viene trovato, se invece l'attributo appartiene ad una superclasse questo non viene trovato e la action non ha effetti su tale attributo. Per risolvere questo tipo di problemi è quindi necessario scrivere il nome completo di classe padre.<superclasse>.cognome.

attr_X_type (input)

Indica il tipo dati dell'attributo. Potenzialmente può essere differente dal tipo dati dell'attributo dei metadati, è solo una indicazione al workflow di come si voglia effettuare la conversione. Si suggerisce di impostare un tipo dati congruo con quello del metadato.

attr_X_mode (input)

Indica la modalità di reperimento dei dati. Sono possibili le seguenti modalità:

  • ONLY REAL DATA: I dati vengono tornati solamente se esistono come dati associati all'owner.
  • ALLOW DUMMY DATA: In mancanza di dati realy associati all'owner vengono tornati i dati presenti nella definizione della classe (solitamente dei null ma potrebbero esserci dei valori di default).

attr_X_value (output)

La action torna il valore dell'attributo specificato. Qualora l'attributo si riferisca ad un mapping di tipo array ed esistano più metadati nell'array (ad esempio due figli, uno di nome Luca ed uno di nome Marco verrà tornato un arry nella forma [ "Luca", "Marco" ]. Se attr_X_type specifica un tipo scalare, l'array verrà convertito in scalare (quando possibile).