Titulus Organi Web Service (servizio deprecato)

Il servizio TitulusOrgani è stato deprecato. Si consiglia l'uso del nuovo servizio TitulusOrgani4 .

Scopo

In questo documento si descrive il servizio TitulusOrgani, il cui scopo è quello di offrire un accesso di più alto livello - rispetto a quello offerto dal servizio Titulus - ai dati di Titulus Organi.

Il servizio TitulusOrgani viene distribuito nel pacchetto dei web service di Titulus .

Questo servizio è stato concepito per semplificare la consultazione dei dati di Titulus Organi. Tenere presente, quindi, che gli xml restituiti dai suoi metodi possono non corrispondere a quello che effettivamente è salvato in archivio.

Riferimenti

Java DOC dei Web Service.

A questa documentazione si accede dalla pagina di presentazione dei servizi .

URL del Servizio

L'URL del servizio TitulusOrgani ha la seguente struttura (<host> e <port> sono quelli della macchina che ospita i web service):

http://<host>:<port>/titulus_ws/services/TitulusOrgani

Il WSDL del servizio può essere recuperato al seguente URL (esso viene riportato anche nella pagina di presentazione dei servizi ):

http://<host>:<port>/titulus_ws/services/TitulusOrgani?wsdl

Autenticazione

Metodi esposti

Inizializzazione e connessione al servizio
  • init(): Effettua la connessione a Titulus Organi. La modalità è la stessa del servizio Titulus. Per maggiori informazioni riferirsi a “ Attivare una connessione con Titulus Organi ”.

    Ricordare che, anche in questo caso, lo scope della chiamata deve essere impostato a “ session” e che le chiamate agli altri metodi esposti dal servizio falliscono se prima non è stata effettuata una init.

Consultazione delle sedute (a partire dalla release 3.12.3.2)
  • cercaSedute(): consente di ricercare le sedute di uno o più organi.
  • caricaSeduta(): carica una seduta trovata con il metodo cercaSedute(), arricchendo il suo codice xml con informazioni sulle comunicazioni e proposte in essa contenute e sull'eventuale verbale ad essa associato.
  • caricaSedutaConParam(): stesso comportamento di caricaSeduta() con la possibilità di specificare dei parametri per il caricamento della seduta indicata. Più precisamente è possibile chiedere di indicare oltre ai file originali delle comunicazioni/proposte anche le loro versioni con omissis .
  • currentTitlePage()/firstTitlePage()/lastTitlePage()/nextTitlePage()/prevTitlePage()/titlePage(): consentono di scorrere le pagine dei result set prodotti dal metodo cercaSedute(). Questi metodi sono simili a quelli esposti dal servizio Titulus; per maggiori informazioni si veda “ Recupero documenti ”.
  • getAttachment()/getAttachmentByteArray()/getAttachmentBase64(): consentono il download dei file allegati alle comunicazioni/proposte contenute nelle sedute caricate con caricaSeduta()/caricaSedutaConParam(). Questi metodi sono identici a quelli esposti dal servizio Titulus; per maggiori informazioni si veda “ Download file associati ed immagini ”.
Esportazione
  • exportSeduta()/exportSedutaById(): effettuano l'export di una seduta.
  • exportSedutaConParam(): stesso comportamento di exportSeduta() con la possibilità di specificare più parametri per il caricamento della seduta indicata. Più precisamente è possibile chiedere di esportare solo i file allegati alla delibera e non quelli allegati alla fase istruttoria.

Attivare una connessione con Titulus Organi

Invocando il metodo init() si stabilisce una connessione con Titulus Organi e si attiva una nuova sessione di lavoro utilizzata per tutte le richieste provenienti dallo stesso client (a carico del client rimane la notifica al server dell’intenzione di avvalersi delle sessioni, impostando lo scope di chiamata a “session”).

Di seguito si riporta un esempio in linguaggio Java, realizzato con la libreria Axis. Lo stub client usato (nel codice “titulusOrgani”), è stato generato a partire dal wsdl del servizio, mediante il tool WSDL2Java.

Nell'esempio viene effettuata la connessione a Titulus Organi con l'utente “test-ws” (che deve essere registrato in ACL con login “test-ws”).

TitulusOrganiServiceLocator tosl = new TitulusOrganiServiceLocator();
 
// impostazione dello scope di chiamata a "session"
tosl.setMaintainSession(true);
 
TitulusOrgani_PortType titulusOrgani = tosl.getTitulusOrgani();
 
// impostazione della login per l'accesso autenticato al servizio
((TitulusOrganiSoapBindingStub)titulusOrgani).setUsername("prova");
((TitulusOrganiSoapBindingStub)titulusOrgani).setPassword("XXX");
 
...
 
titulusOrgani.init(null, null, "test-ws", null, "xdocwaydoc", -1, -1);
 
...

In caso di fallimento viene sollevata una “Exception” con una descrizione testuale della causa dell’errore (da intercettare lato client).

Attualmente l'unico archivio supportato da Titulus Organi è quello centrale, cioè “xdocwaydoc”

Consultazione delle sedute

I metodi cercaSedute() e caricaSeduta()/caricaSedutaConParam() semplificano la consultazione delle sedute degli organi dell'ateneo.

Per poter usare questi metodi è necessario utilizzare un utente che possiede il diritto “Pubblicazione agli organi” presente nella sezione “Integrazione con portale” dell'organo di cui si vogliono consultare le sedute.

Se, per esempio, si vuole accedere alle sedute ed alle relative proposte del consiglio di amministrazione dell'ateneo, l'utente dichiarato con la chiamata init() deve essere configurato come illustrato nella figura seguente:

Il diritto “Pubblicazione agli organi” ha la precedenza su tutti gli altri diritti dell'organo, quindi l'utente che ha quel diritto per un organo può consultare sempre le sue sedute e le relative proposte/comunicazioni, anche se non possiede altre autorizzazioni (questo è vero solo ed esclusivamente accedendo tramite i web service di Titulus).

Ovviamente il diritto “Pubblicazione agli organi” può essere impostato per più organi.

Una volta configurato l'utente nell'anagrafica di Titulus ed effettuato l'accesso con il metodo init(), si possono cercare le sedute di un organo usando il metodo cercaSedute().

Di seguito si riportano alcuni esempi di chiamate in linguaggio Java (valgono le stesse considerazioni fatte per l'esempio riportato in Attivare una connessione con Titulus Organi ):

...
// ricerca delle sedute alla firma, chiuse e aperte del consiglio di amministrazione
titulusOrgani.cercaSedute(true, true, true, null, null, "CLE-CdA", false, -1);
 
...
// ricerca delle sedute aperte del consiglio di amministrazione
titulusOrgani.cercaSedute(false, false, true, null, null, "CLE-CdA", false, -1);
 
...
// ricerca della seduta alla firma del 25/10/2012 del senato accademico
titulusOrgani.cercaSedute(true, false, false, null, "25/10/2012", "CLE-SA", false, -1);
 
...
// ricerca della seduta aperta che può essere pubblicata il 10/11/2012 del senato accademico
titulusOrgani.cercaSedute(false, false, true, "10/11/2012", null, "CLE-SA", false, -1);
 
...
// ricerca di tutte le sedute alla firma di tutti gli organi su cui si ha il diritto di pubblicazione
titulusOrgani.cercaSedute(true, false, false, null, null, null, false, -1);

Note sui parametri del metodo cercaSedute()

  • Le date possono essere espresse nelle forme
    • “gg?mm?aaaa” (con '?' = qualsiasi carattere separatore)
    • “ggmmaaaa”
    • “aaaa?mm?gg” (con '?' = qualsiasi carattere separatore)
    • “aaaammgg”
  • Il codice dell'organo è un parametro di configurazione di Titulus stabilito in fase di avviamento del modulo Titulus Organi; contattare il supporto dell'applicazione per ottenere i codici degli organi che interessano.

Il metodo cercaSedute() restituisce una risposta xml che rappresenta la prima pagina del result set delle sedute trovate (per maggiori informazioni si faccia riferimento alla tipica struttura di un elenco di documenti presentata in Struttura delle tipiche risposte xml ). Con i metodi currentTitlePage()/firstTitlePage()/lastTitlePage()/nextTitlePage()/prevTitlePage()/titlePage() è possibile scorrere le pagine del result set.

Le sedute sono ordinate in modo decrescente secondo la data di pubblicazione della seduta; tramite un parametro di cercaSedute() è possibile invertire questo ordinamento.

E', inoltre, possibile indicare anche il numero di titoli per pagina, portando così il default di 10 titoli al numero desiderato.

Se si vuole caricare una delle sedute trovate, occorre invocare i metodi caricaSeduta()/caricaSedutaConParam() passandogli il suo id (attributo /Response/Item/@idIUnit recuperato dai risultati della ricerca).

Questi metodi restituiscono la seduta arricchendo il suo codice xml con informazioni sulle comunicazioni e proposte in essa contenute e sull'eventuale verbale ad essa associato.

Esempi di xml di sedute

Di seguito si riportano alcuni esempi di xml restituiti.

Esempio di una seduta “aperta”:

<?xml version="1.0" encoding="utf-8"?>
<Response pageCount="8" pageIndex="8" seleId="3se500514d73203501" seleSize="8" canPrev="true" canFirst="true" canSee="true">
  <Document idIUnit="113">
    <seduta straordinaria="no" nrecord="00000113" stato="aperta" data_convocazione="15/12/2010" cod_amm_aoo="UNIKCLE">
      <organo cod="CLE-CdA" xml:space="preserve">Consiglio di Amministrazione</organo>
      <pubblicazione_odg>
        <dal data="01/11/2012" ora="10:00:00"/>
        <al data="09/11/2012" ora="12:00:00"/>
      </pubblicazione_odg>
      <note xml:space="preserve"/>
      <odg>
        <categoria cod="01" xml:space="preserve" tipo="comunicazione">1) COMUNICAZIONI</categoria>
        <categoria cod="02" xml:space="preserve" tipo="proposta">2) INTERPELLANZE E MOZIONI</categoria>
        <categoria cod="03" xml:space="preserve" tipo="proposta">3) STATUTO E REGOLAMENTI</categoria>
        <categoria cod="04" xml:space="preserve" tipo="proposta">4) STRUTTURE ED ORGANI DI ATENEO</categoria>
        <categoria cod="05" xml:space="preserve" tipo="proposta">5) BILANCIO E CONTABILITA'</categoria>
        <categoria cod="06" xml:space="preserve" tipo="proposta">6) PERSONALE</categoria>
        <categoria cod="07" xml:space="preserve" tipo="proposta">7) LAVORI<proposta nrecord_prop="00000144" tipo="delibera" punto_odg="07/01">
            <oggetto xml:space="preserve">prop xxx</oggetto>
            <uor_proponente xml:space="preserve">Ufficio Proposte</uor_proponente>
            <file name="tTpJ/HOJUGSEy6gYjAzHuw==_368.rtf" title="Proposta con oneri finanziari 1.rtf"/>
          </proposta>
        </categoria>
        <categoria cod="08" xml:space="preserve" tipo="proposta">8) DIDATTICA</categoria>
        <categoria cod="09" xml:space="preserve" tipo="proposta">9) RICERCA</categoria>
        <categoria cod="10" xml:space="preserve" tipo="proposta">10) RAPPORTI CON ALTRI ENTI</categoria>
        <categoria cod="11" xml:space="preserve" tipo="proposta">11) RAPPORTI INTERNAZIONALI</categoria>
        <categoria cod="12" xml:space="preserve" tipo="proposta">12) FORNITURE</categoria>
        <categoria cod="13" xml:space="preserve" tipo="proposta">13) ATTI NEGOZIALI CONNESSI ALLO SVOLGIMENTO DI COMPITI ISTITUZIONALI</categoria>
        <categoria cod="14" xml:space="preserve" tipo="proposta">14) ATTI NEGOZIALI DI GESTIONE</categoria>
        <categoria cod="15" xml:space="preserve" tipo="proposta">15) STUDENTI - DOTTORANDI - SPECIALIZZANDI</categoria>
        <categoria cod="16" xml:space="preserve" tipo="proposta">16) PATROCINI - CONCESSIONE DEL LOGO - CONFERIMENTO LAUREE HONORIS CAUSA</categoria>
        <categoria cod="17" xml:space="preserve" tipo="proposta">17) ELEZIONI</categoria>
      </odg>
    </seduta>
  </Document>
</Response>

Esempio della stessa seduta quando è “alla firma” (vengono riportati anche i componenti dell'organo):

<?xml version="1.0" encoding="utf-8"?>
<Response pageCount="13" pageIndex="13" seleId="3se500514e43e0fc01" seleSize="13" canPrev="true" canFirst="true" canSee="true">
  <Document idIUnit="113">
    <seduta straordinaria="no" nrecord="00000113" stato="alla firma" data_convocazione="15/12/2010" cod_amm_aoo="UNIKCLE">
      <organo cod="CLE-CdA" xml:space="preserve">Consiglio di Amministrazione</organo>
      <pubblicazione_odg>
        <dal data="01/11/2012" ora="10:00:00"/>
        <al data="09/11/2012" ora="12:00:00"/>
      </pubblicazione_odg>
      <odg>
        <categoria cod="01" xml:space="preserve" tipo="comunicazione">1) COMUNICAZIONI</categoria>
        <categoria cod="02" xml:space="preserve" tipo="proposta">2) INTERPELLANZE E MOZIONI</categoria>
        <categoria cod="03" xml:space="preserve" tipo="proposta">3) STATUTO E REGOLAMENTI</categoria>
        <categoria cod="04" xml:space="preserve" tipo="proposta">4) STRUTTURE ED ORGANI DI ATENEO</categoria>
        <categoria cod="05" xml:space="preserve" tipo="proposta">5) BILANCIO E CONTABILITA'</categoria>
        <categoria cod="06" xml:space="preserve" tipo="proposta">6) PERSONALE</categoria>
        <categoria cod="07" xml:space="preserve" tipo="proposta">7) LAVORI<proposta nrecord_prop="00000144" tipo="delibera" numero_delibera="1/2012" risultato_seduta="Approvata" punto_odg="07/01">
            <oggetto xml:space="preserve">prop xxx</oggetto>
            <uor_proponente xml:space="preserve">Ufficio Proposte</uor_proponente>
            <file name="WpZBrYEsg+g/5zyZGhIEiA==_368.rtf" title="Proposta con oneri finanziari 1.rtf" tipologia="delibera"/>
            <file name="R4eeivGQl/6ECkp0c3TwvA==_371.rtf" title="proposta modificata"  tipologia="istruttoria"/>
            <file name="zKr4ncNmG84RjTzKDIr6uw==_374.rtf" title="proposta modificata"  tipologia="istruttoria"/>
          </proposta>
        </categoria>
        <categoria cod="08" xml:space="preserve" tipo="proposta">8) DIDATTICA</categoria>
        <categoria cod="09" xml:space="preserve" tipo="proposta">9) RICERCA</categoria>
        <categoria cod="10" xml:space="preserve" tipo="proposta">10) RAPPORTI CON ALTRI ENTI</categoria>
        <categoria cod="11" xml:space="preserve" tipo="proposta">11) RAPPORTI INTERNAZIONALI</categoria>
        <categoria cod="12" xml:space="preserve" tipo="proposta">12) FORNITURE</categoria>
        <categoria cod="13" xml:space="preserve" tipo="proposta">13) ATTI NEGOZIALI CONNESSI ALLO SVOLGIMENTO DI COMPITI ISTITUZIONALI</categoria>
        <categoria cod="14" xml:space="preserve" tipo="proposta">14) ATTI NEGOZIALI DI GESTIONE</categoria>
        <categoria cod="15" xml:space="preserve" tipo="proposta">15) STUDENTI - DOTTORANDI - SPECIALIZZANDI</categoria>
        <categoria cod="16" xml:space="preserve" tipo="proposta">16) PATROCINI - CONCESSIONE DEL LOGO - CONFERIMENTO LAUREE HONORIS CAUSA</categoria>
        <categoria cod="17" xml:space="preserve" tipo="proposta">17) ELEZIONI</categoria>
      </odg>
      <componenti>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Mario Rossi</nominativo>
          <incarico xml:space="preserve">Presidente</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Cesare Verdi</nominativo>
          <incarico xml:space="preserve">Vicepresidente</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Stefano Stefani</nominativo>
          <incarico xml:space="preserve">Rappresentante Rettore dell'Università degli Studi di Padova</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Leonardo Marroni</nominativo>
          <incarico xml:space="preserve">Rappresentante Rettore dell'Università di Firenze</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Giuseppe Bianchi</nominativo>
          <incarico xml:space="preserve">Rappresentante Rettore dell'Università degli Studi di Napoli, Federico II</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Armando Turchesi</nominativo>
          <incarico xml:space="preserve">Rappresentante del Rettore dell'Università di Venezia</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Dott. Marco Viola</nominativo>
          <incarico xml:space="preserve">Direttore</incarico>
        </componente>
      </componenti>
    </seduta>
  </Document>
</Response>

Esempio di una seduta “chiusa” (viene riportato anche il verbale):

<?xml version="1.0" encoding="utf-8"?>
<Response pageCount="5" pageIndex="2" seleId="3se500514eb2837a01" seleSize="5" canNext="true" canLast="true" canPrev="true" canFirst="true" canSee="true">
  <Document idIUnit="73">
    <seduta straordinaria="no" nrecord="00000073" stato="chiusa" data_convocazione="13/03/2010" cod_amm_aoo="UNIKCLE">
      <organo cod="CLE-CdA" xml:space="preserve">Consiglio di Amministrazione</organo>
      <odg>
        <categoria cod="01" xml:space="preserve" tipo="comunicazione">1) COMUNICAZIONI</categoria>
        <categoria cod="02" xml:space="preserve" tipo="proposta">2) INTERPELLANZE E MOZIONI</categoria>
        <categoria cod="03" xml:space="preserve" tipo="proposta">3) STATUTO E REGOLAMENTI</categoria>
        <categoria cod="04" xml:space="preserve" tipo="proposta">4) STRUTTURE ED ORGANI DI ATENEO</categoria>
        <categoria cod="05" xml:space="preserve" tipo="proposta">5) BILANCIO E CONTABILITA'</categoria>
        <categoria cod="06" xml:space="preserve" tipo="proposta">6) PERSONALE</categoria>
        <categoria cod="07" xml:space="preserve" tipo="proposta">7) LAVORI</categoria>
        <categoria cod="08" xml:space="preserve" tipo="proposta">8) DIDATTICA<proposta nrecord_prop="00000072" tipo="delibera" numero_delibera="2/2010" risultato_seduta="Approvata" delibera_prodotta="si" punto_odg="08/01">
            <oggetto xml:space="preserve">Test per le funzionalità di Titulus Organi</oggetto>
            <uor_proponente xml:space="preserve">Segretariato Generale di Ateneo</uor_proponente>
            <file name="LzS5KEiXaXHlUhXVDU2Rxw==_54.rtf" title="testo_delibera.rtf"/>
            <file name="grdYvetHNAswH65ugMWV7g==_60.rtf" title="KION_Rubrica.rtf" tipologia="istruttoria"/>
            <file name="Q+PKLXetMc6HW0ogazM2Cw==_88.tif" title="Pagina 1"/>
            <file name="u1IJPJFY8RcapIt+HL60wg==_89.tif" title="Pagina 2"/>
            <file name="nqEhwiXZeEg1LLyW+H+s8w==_90.tif" title="Pagina 3"/>
            <file name="U0cyJ6qERSJwJ5UC2h5+8Q==_91.tif" title="Pagina 4"/>
            <file name="jJHs9fQgNLgJEc+vBQhlRQ==_92.tif" title="Pagina 5"/>
            <file name="IderxZGrnsjVYXNi0W/gCw==_93.tif" title="Pagina 6"/>
            <file name="tbgk9OQNdrRrCAnv+NLq0Q==_94.tif" title="Pagina 7"/>
            <file name="cKd4JYZNofIonOz6lpPkNQ==_95.tif" title="Pagina 8"/>
            <file name="85xcTP0YkT0YqOU/fKf9PA==_96.tif" title="Pagina 9"/>
            <file name="8SVU4A15L309vZU2YXzR3g==_97.tif" title="Pagina 10"/>
            <file name="amH1d8EKslWfleig/eW99Q==_98.tif" title="Pagina 11"/>
            <file name="YbZG/9kZHLuok9Bc5hrBYA==_99.tif" title="Pagina 12"/>
          </proposta>
          <proposta nrecord_prop="00000075" tipo="delibera" numero_delibera="4/2010" risultato_seduta="Approvata" delibera_prodotta="si" punto_odg="08/02">
            <oggetto xml:space="preserve">Istituzione corso di laurea in scienze della matematica applicata</oggetto>
            <uor_proponente xml:space="preserve">Segretariato Generale di Ateneo</uor_proponente>
            <file name="jBEJSFf1xF7dGn5muAwYCQ==_55.rtf" title="testo_delibera.rtf"/>
            <file name="2HaBDoTz17xBe9+vE5tSvA==_62.rtf" title="KION_Rubrica.rtf" tipologia="istruttoria"/>
            <file name="vfvFwBu8beex5+SU+4NhnQ==_142.pdf" title="Pagina 1_3.pdf"/>
            <file name="H+slv/5jHAfHQB53i3GcYQ==_143.pdf" title="Pagina 1_2.pdf"/>
            <file name="LW5K4XxjWt7/KmiQWllS1A==_144.pdf" title="Pagina 1_1.pdf"/>
          </proposta>
          <proposta nrecord_prop="00000078" tipo="delibera" numero_delibera="3/2010" risultato_seduta="Non accolta" delibera_prodotta="si" punto_odg="08/03">
            <oggetto xml:space="preserve">Prova per il funzionamento del WF di Organi</oggetto>
            <uor_proponente xml:space="preserve">Segretariato Generale di Ateneo</uor_proponente>
            <file name="nVqlcwgblPq9xUmVOkl9Qg==_58.rtf" title="testo_delibera.rtf" tipologia="delibera"/>
            <file name="D59ZW1yBQ6DzlTKKHmvyCg==_59.rtf" title="KION_Rubrica.rtf" tipologia="istruttoria"/>
            <file name="vwoQ2ySxl2sevttdtR9s0g==_61.rtf" title="proposta modificata"/>
          </proposta>
        </categoria>
        <categoria cod="09" xml:space="preserve" tipo="proposta">9) RICERCA</categoria>
        <categoria cod="10" xml:space="preserve" tipo="proposta">10) RAPPORTI CON ALTRI ENTI</categoria>
        <categoria cod="11" xml:space="preserve" tipo="proposta">11) RAPPORTI INTERNAZIONALI</categoria>
        <categoria cod="12" xml:space="preserve" tipo="proposta">12) FORNITURE</categoria>
        <categoria cod="13" xml:space="preserve" tipo="proposta">13) ATTI NEGOZIALI CONNESSI ALLO SVOLGIMENTO DI COMPITI ISTITUZIONALI</categoria>
        <categoria cod="14" xml:space="preserve" tipo="proposta">14) ATTI NEGOZIALI DI GESTIONE</categoria>
        <categoria cod="15" xml:space="preserve" tipo="proposta">15) STUDENTI - DOTTORANDI - SPECIALIZZANDI</categoria>
        <categoria cod="16" xml:space="preserve" tipo="proposta">16) PATROCINI - CONCESSIONE DEL LOGO - CONFERIMENTO LAUREE HONORIS CAUSA</categoria>
        <categoria cod="17" xml:space="preserve" tipo="proposta">17) ELEZIONI</categoria>
      </odg>
      <componenti>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Mario Rossi</nominativo>
          <incarico xml:space="preserve">Presidente</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Cesare Verdi</nominativo>
          <incarico xml:space="preserve">Vicepresidente</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Stefano Stefani</nominativo>
          <incarico xml:space="preserve">Rappresentante Rettore dell'Università degli Studi di Padova</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Leonardo Marroni</nominativo>
          <incarico xml:space="preserve">Rappresentante Rettore dell'Università di Firenze</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Giuseppe Bianchi</nominativo>
          <incarico xml:space="preserve">Rappresentante Rettore dell'Università degli Studi di Napoli, Federico II</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Prof. Armando Turchesi</nominativo>
          <incarico xml:space="preserve">Rappresentante del Rettore dell'Università di Venezia</incarico>
        </componente>
        <componente presenza="Presente">
          <nominativo xml:space="preserve">Dott. Marco Viola</nominativo>
          <incarico xml:space="preserve">Direttore</incarico>
        </componente>
      </componenti>
      <verbale nrecord_verbale="00000079" numero_protocollo="7/2010" numero_repertorio="2/2010" anno="2010">
        <file name="sWFSwBLiuPaIwYhhroGmpA==_87.pdf" title="verbale_2.pdf"  tipologia="delibera"/>
        <file name="X7BJqTUKsJB0Qg0tNCsxKg==_83.tif" title="20090415100629497_0002.tif"/>
        <file name="EHhcOhPOkhkTkCvUNU+xjQ==_84.tif" title="20090415100629497_0001.tif"/>
        <file name="RZAku4KOh0nmaOSs41phfw==_85.tif" title="Comunicazione Titulus.tif"/>
        <oggetto_verbale xml:space="preserve">Verbale della seduta del 13/03/2010</oggetto_verbale>
      </verbale>
    </seduta>
  </Document>
</Response>

Le date presenti nel xml possono avere i formati GG/MM/AAAA o AAAAMMGG.

Alcune note

All'interno di ogni categoria vengono riportate le comunicazioni/proposte ad essa associate. Ecco un esempio di una categoria contenente una sola proposta:

<categoria cod="07" xml:space="preserve" tipo="proposta">7) LAVORI<proposta nrecord_prop="00000144" tipo="delibera" punto_odg="07/01">
    <oggetto xml:space="preserve">prop xxx</oggetto>
    <uor_proponente xml:space="preserve">Ufficio Proposte</uor_proponente>
    <file name="tTpJ/HOJUGSEy6gYjAzHuw==_368.rtf" title="Proposta con oneri finanziari 1.rtf"/>
  </proposta>
</categoria>

Quando una proposta diventa una delibera, ad essa viene associato un numero di delibera salvato nell'attributo proposta/@numero_delibera.

All'interno di ogni comunicazione/proposta vengono riportati i suoi file e ognuno di essi possiede un id univoco: file/@name.

Con questo id è possibile effettuare il download del file mediante i metodi getAttachment()/getAttachmentByteArray()/getAttachmentBase64() (per maggiori informazioni si veda “ Download file associati ed immagini ”).

Notare che i file vengono inclusi nello stesso ordine con cui si presentano nel documento della comunicazione/proposta; inoltre, il primo file rappresenta il testo della comunicazione/proposta.

Titulus consente di marcare opportunamente i file che contengono dei dati sensibili, cioè dei dati che non devono essere assolutamente pubblicati, per esempio, sul portale dell'ateneo. Per ogni file che contiene dei dati sensibili è possibile aggiungere una versione con omissis, cioè un file che contiene i dati del file originale meno quelli sensibili. Un servizio di pubblicazione che espone le informazioni sul web deve pubblicare solo le versioni con omissis dei file con dati sensibili e, in mancanza di queste, non deve pubblicare i file.

Il metodo caricaSeduta() restituisce la seduta senza le eventuali versioni con omissis dei file delle sue comunicazioni/proposte; i file con dati sensibili, però, possiedono comunque il flag che consente di distinguerli dagli altri file. Se si vogliono anche le versioni con omissis, occorre caricare la seduta tramite il metodo caricaSedutaConParam(), indicando nei parametri aggiuntivi di includere nella seduta anche le versioni con omissis dei file. In questo caso l'esempio precedente diventa:

<categoria cod="07" xml:space="preserve" tipo="proposta">7) LAVORI<proposta nrecord_prop="00000144" tipo="delibera" punto_odg="07/01">
    <oggetto xml:space="preserve">prop xxx</oggetto>
    <uor_proponente xml:space="preserve">Ufficio Proposte</uor_proponente>
    <file name="tTpJ/HOJUGSEy6gYjAzHuw==_368.rtf" title="Proposta con oneri finanziari 1.rtf" sensitive_data="true">
	<file name="tTpJ/HHsGKRhOHUsjOWa3i8cHaw==_369.rtf" title="Proposta con oneri finanziari con omissis.rtf"/>
    </file>
  </proposta>
</categoria>

Nel codice riportato figurano il file del testo della proposta (“Proposta con oneri finanziari 1.rtf”) che contiene dei dati sensibili (come indicato dalla presenza dell'attributo sensitive_data=“true”) e, al suo interno, la versione con omissis.

Notare che un file con dati sensibili è sempre marcato con l'attributo sensitive_data=“true” e non è detto che possieda al suo interno la versione con omissis. In questo caso, un software di pubblicazione, mancando la versione del file pubblicabile, non deve esporre il file originale sul web.

L'ordine di trattazione delle proposte, ordine che può essere variato dagli utenti spostando le proposte da una categoria all'altra, è lo stesso ordine con cui si presentano le proposte nel codice xml della seduta; l'ordine di discussione delle proposte, invece, viene dato dal numero di delibera delle proposte discusse. In altri termini, è sufficiente estrarre le proposte dal codice xml dell'odg della seduta ordinandole in modo crescente sull'attributo proposta/@numero_delibera.

Per quanto riguarda le proposte che non sono state deliberate - quindi che non possiedono un numero di delibera - e le comunicazioni, attualmente su Titulus non è possibile stabilire l'ordine con cui sono state affrontate.

Esportazione di una seduta

L'esportazione di una seduta consente la sua consultazione offline e consiste nella creazione di un file zip con la seguente struttura:

<DIR> imgs
<DIR> punti_odg
<DIR> styles
<DIR> verbale
seduta del [ORGANO] del [DATA SEDUTA].html
  • File html: rappresenta la seduta esportata (il file html prodotto riproduce la pagina di visualizzazione di una seduta in Titulus Organi).

    L'oggetto di ogni comunicazione/proposta è cliccabile e consente di visualizzare il testo della comunicazione/proposta; sotto l'oggetto viene mostrato l'elenco degli eventuali allegati della comunicazione/proposta. Lo stesso discorso vale per l'eventuale verbale della seduta.

  • Cartella imgs: contiene le immagini usate dal file html.
  • Cartella punti_odg: contiene gli allegati delle comunicazioni/proposte. Questi file sono raggruppati in cartelle il cui nome rappresenta la categoria della comunicazione/proposta di appartenenza.
  • Cartella styles: contiene i css usati dal file html.
  • Cartella verbale: contiene gli allegati del verbale della seduta (se la seduta non ha verbale, questa cartella non viene creata).

Tutti gli allegati vengono convertiti, se possibile, in pdf mediante il modulo di conversione file di Titulus.

Le scansioni di documenti con più pagine (sequenze di immagini “pagina 1”, “pagina 2”… “pagina n”) vengono convertite in un unico pdf, il cui nome è “allegato X” (dove X rappresenta il numero dell'allegato, cioè corrisponde al numero degli allegati che lo precedono più uno).

Se non è possibile convertire un allegato in pdf, viene esportato il file originale.

Per l'export il servizio TitulusOrgani mette a disposizione due metodi: exportSeduta() e exportSedutaById().

Con exportSeduta() la seduta viene univocamente individuata mediante i seguenti parametri:

  • cod_ammaoo: è il codice AMMAOO della seduta;
  • data: è la data di convocazione della seduta;
  • codOrgano: è il codice dell'organo a cui appartiene la seduta;
  • straordinaria: flag che indica se la seduta è straordinaria o meno.

Di seguito si riportano gli xpath che consentono di individuare queste informazioni nel documento xml di una seduta (cercato e caricato come un normale documento Titulus - si veda la sezione “ Consultare la banca dati ” del servizio Titulus):

  • cod_ammaoo: //seduta/@cod_amm_aoo
  • data: //seduta/@data_convocazione
  • codOrgano: //seduta/organo/@cod
  • straordinaria: //seduta/@straordinaria (valori "si"/"no")

Volendo recuperare questi dati direttamente dalle pagine di visualizzazione di Titulus Organi, la data di convocazione e l'indicazione se la seduta è straordinaria o meno vengono mostrate nella pagina della seduta; i codici AMMAOO e codOrgano, invece, vengono messi in evidenza nella pagina di visualizzazione dell'organo a cui appartiene la seduta:

Il campo “Codice” nella figura sopra ha la seguente struttura: AMMAOO / codOrgano

Il secondo metodo per l'export è exportSedutaById(). Esso richiede il solo id della seduta.

Questo id corrisponde all'attributo xml //seduta/@nrecord, e viene mostrato in fondo alla pagina di visualizzazione di una seduta, nella sezione “Informazioni di servizio”:

Entrambi i metodi exportSeduta() e exportSedutaById() restituiscono lo zip dell'export secondo le specifiche SwA/DIME, cioè con la stessa modalità adottata dal metodo Titulus.getAttachment(). Per maggiori informazioni si faccia riferimento alla sezione “ getAttachment() ” del manuale del servizio Titulus.

Accesso al servizio in modalità RESTful

 
 
  • No labels