Ricerche Personalizzate della Finanziaria su Web Service

Da wiki.maggioli.it.
Versione del 6 ott 2011 alle 12:17 di imported>MFontana (Nuova pagina: [http://sicrawebhelp.saga.it/index.php/Contabilit%C3%A0_Finanziaria#Gestione ''Indietro''] Le ricerche personalizzate della Finanziaria possono essere effettuate anche da un programma...)
Jump to navigation Jump to search

Indietro

Le ricerche personalizzate della Finanziaria possono essere effettuate anche da un programma esterno a Sicr@web utilizzando un web service. La ricerca avviene effettuando una chiamata inviando un file .xml a Sicr@web che rispondera' con un altro file .xml.

La chiamata va fatta all'indirizzo http://[server]:[porta]/client/services/CmnWSSGateway (per esempio http://192.168.10.10:8080/client/services/CmnWSSGateway) e il nome del web service da invocare e' 'fin.custom.research'.


Xml di richiesta

File xml di richiesta della ricerca personalizzata:

Ricweb1.jpg


Query e tipo

Il tag 'query' (obbligatorio) e' quello principale, contiene tutte le informazioni necessarie per l'esecuzione della ricerca. E' possibile, nell'attributo 'description', impostare una descrizione per la ricerca corrente. Il tag 'tipo' (obbligatorio) contiene il tipo di ricerca che si vuole effettuare (attualmente quelle disponibili sono: DOCUMENTI, BILANCIO, IMPEGNI e MANDATI).


Tipo-risultato

Il tag 'tipo-risultato' (obbligatorio) contiene gli elementi per impostare il tipo di file che si desidera venga ritornato da Sicr@web e la formattazione dei dati in esso contenuti.

Ricweb2.jpg

Il tag 'nome' (obbligatorio) serve per indicare il tipo di file da creare. I possibili valoris sono:

  • CSV = file in formato csv
  • CSVZIPB64 = file in formato csv zippato e criptato in base 64

Il tag 'tipo' (obbligatorio) serve per indicare il tipo di risposta che Sicr@web deve dare al chiamante. I possibili valori sono:

  • IMMEDIATE_RESPONSE = il risultato della chiamata viene resituito con la stessa chiamata in corso
  • DELAYED_RESPONSE = il risultato della chiamata contiene una chiave alfanumerica da usare per fare altre chiamate per avere il risultato effettivo della chiamata in corso

Il tag 'durata-archiviazione' (facoltativo) serve per indicare per quanto tempo, espresso in minuti, il sistema deve archiviare il risultato della richiesta. Al termine di questo periodo il risultato verra' eliminato. Se non viene specificato il risultato verra' archiviato per un'ora.

Il tag 'separatore-righe' (facoltativo) serve per indicare il separatore di righe che deve esere usato nell'esporatazione.

Il tag 'separatore-colonne' (facoltativo) serve per indicare il separatore di colonne che deve esere usato nell'esporatazione.

Il tag 'testata' (facoltativo) serve per indacare se deve essere esportata anche l'intestazione delle colonne, se questo tag non viene inserito Sicr@web esporta senza intestazione.

Il tag 'formattazione-virgola-mobile' (facoltativo) serve per indicare il formato dei numeri con decimali. I possibili valori sono:

  • CURRENCY = 9.999.999,90
  • FIXED_2 = 9999999,90
  • INTERN = 9999999,9
  • NONE = 9999999.9

Il tag 'formattazione-data' (facoltativo) serve per indicare il formato delle date. I possibili valori sono:

  • GG_MM_AAAA = gg/mm/aaa
  • GG_MM_AAAA_HH_MM_SS = gg/mm/aaa hh:MM:ss
  • NONE = Nessuna formattazione

Il tag 'formattazione-spunte' (facoltativo) serve per indicare il formato delle spunte. I possibili valori sono:

  • 1_0 = 1/0
  • NONE = Nessuna formattazione
  • ON_OFF = Acceso/Spento
  • TRUE_FALSE = Vero/Falso
  • X_EMPTY = X/[vuoto]
  • YES_NO = Si/No


Globali

Il tag 'globali' (obbligatorio) serve per indicare i criteri principali su cui verra' effettuata la riceca (per esempio entrate o uscite oppure la data valuta).

Ricweb3.jpg

Il tag 'eu' (obbligatorio) serve per indicare se la ricerca deve essere eseguita sulle entrate o sulle uscite. I possibili valori sono:

  • E=Entrata
  • U=Uscita

Il tag 'anno' (facoltativo) serve per indicare l'anno dell'esercizio su cui si vuole effettuare la ricerca,

Il tag 'data-valuta' (facoltativo) serve per indicare la data valuta.

Il tag 'flag-mandati-reversali' (facoltativo) serve per indicare se la ricerca va fatta su mandati (valore 1) o reversali (valore 0).

Il tag 'flag-buoni-ricevute' (facoltativo) serve per indicare se la ricerca va fatta su buoni (valore 1) o ricevute (valore 0).

Il tag 'flag-liquidazioni-non-pagate' (facoltativo) serve per indicare se la ricerca sui mandati deve includere le liquidazioni non pagate (valore 1) o no (valore 0)


Campi

Il tag 'campi' (obbligatorio) serve per indicare le colonne che dovranno essere esportare. Deve contenere almeno un tag 'campo'.

Ricweb4.jpg

Il tag 'nome' (obbligatorio) contiene il nome codificato della colonna da esportare.

Il tag 'posizione-ordinamento' (facoltativo) serve per indicare la posicione della colonna nell'importanza degli ordinamenti (esempio: data documento (1), cognome (2), nome (3)).

Il tag 'crescente' (facoltativo) serve per indicare se l'ordinamento sulla colonna e' crescente (valore 1) o decrescente (valore 0).


Criteri

Il tag 'criteri' (facoltativo) contiene i criteri che si vogliono utilizzare per selezionare i dati da esportare (criteri di ricerca). Deve contenere almeno un tag 'criterio'.

Ricweb5.jpg

Il tag 'nome' (obbligatorio) contiene il nome codificato della colonna su cui si vuole aggiungere il criterio.

Il tag 'operatore' (obbligatorio) contiene l'operatore di confronto con cui si vuole usare il criterio di selezione. I possibili valori sono:

  • =
  • <>
  • >
  • >=
  • <
  • <=
  • in
  • not in
  • is null
  • is not null
  • between
  • like

Il tag 'parametro' (facoltativo) contiene il valore di un parametro del criterio. Non c'e' un numero massimo di parametri da poter impostare, quindi i tag 'parametro' non hanno un numero massimo.


Criteri-hql

Il tag 'criteri-hql' (facoltativo) contiene ulteriori criteri criteri di ricerca. Deve contenere almeno un tag 'criterio-hql'.

Ricweb6A.jpg

Il tag 'nome' (facoltativo) serve per indicare il nome del criterio.

Il tag 'descrizione' (facoltativo) serve per indicare la descrizione del criterio.

Il tag 'hql' (obbligatorio) contiene la parte di query che corrisponde al criterio.

Il tag 'parametro' (facoltativo) contiene il valore di un parametro del criterio. Non c'e' un numero massimo di parametri da poter impostare, quindi i tag 'parametro' non hanno un numero massimo.


Si consiglia l'utilizzo dei criteri-hql a soli utenti esperti.


Un esempio

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>

 <query>
   <tipo>MANDATI</tipo>
   <tipo-risultato>
     <nome>CSV</nome>
     <tipo>IMMEDIATE_RESPONSE</tipo>
     <testata>1</testata>
   </tipo-risultato>
   <globali>
     <eu>U</eu>
     <anno>2009</anno>
     <data-valuta>2009-12-31</data-valuta>
     <flag-mandati-reversali>0</flag-mandati-reversali>
     <flag-buoni-ricevute>1</flag-buoni-ricevute>
     <flag-liquidazioni-non-pagate>1</flag-liquidazioni-non-pagate>
   </globali>
   <campi>
     <campo>
       <nome>chkMandAnno</nome>
     </campo>
     <campo>
       <nome>chkMandCod</nome>
       <posizione-ordinamento>2</posizione-ordinamento>
       <crescente>0</crescente>
     </campo>
     <campo>
       <nome>chkMandData</nome>
       <posizione-ordinamento>1</posizione-ordinamento>
       <crescente>0</crescente>
     </campo>
       <campo>
       <nome>chkMandDes</nome>
     </campo>
   </campi>
   <criteri>
     <criterio>
       <nome>chkMandDes</nome>
       <operatore>like</operatore>
       <parametro>RIMBORSO%%</parametro>
     </criterio>
   </criteri>
   <criteri-hql>
     <criterio-hql>
       <hql>
         <queryDescriptor des="Data dal 01/10/2009 al 31/12/2009" name="data_?_action106" not-portable="false" where="{bei}.mandatoNome.mandato.data>=? and {bei}.mandatoNome.mandato.data<=?">
         <entity alias="bei" class="it.saga.pubblici.finanziaria.bilancio.FinDACBilancioEventiImporti" entity-class="it.saga.library.expressions.query.ExpEntity"/>
         <param type="java.util.Date" value="01/10/2009"/>
         <param type="java.util.Date" value="31/12/2009"/>
       </queryDescriptor>
       </hql>
     </criterio-hql>
   </criteri-hql>
 </query>


Xml di risposta

Il file di risposta e' composto da un tag principale 'query' e da altri 3 sotto tag 'stato', 'descrizione' e 'righe'.

Il tag 'stato' (obbligatorio) contiente lo stato della risposta. I possibili valori sono:

  • -1=Operazione non consentita (se l'utente non possiede l'autorizzazzione necessaria per effettuare la ricerca)
  • 0=Errore (se c'e' stato un errore)
  • 1=Ok (se il risultato e' corretto e completo)
  • 2=Risultato parziale (se il risultato e' corretto ma nel file corrente c'è solo una parte del risultato stesso)

Il tag 'descrizaione' (facoltativo) in caso di errore contiene la descrizione dell'errore stesso.

Il tag 'righe' (facoltativo) contiene il file con il risultato nel formato indicato nella richiesta oppure la chiave per le successive chiamate in caso di richiesta di tipo 'DELAYED_RESPONSE'.


Esempio 1 (risultato ok)

<?xml version="1.0" encoding="ISO-8859-1"?>

 <query>
   <stato>1</stato>
   <righe>Anno,Numero,Data,Descrizione
     2009,172,2009-10-28,RIMBORSO SPESE PER ACQUISTO DVD BIBLIOTECA
     2009,170,2009-10-26,RIMBORSO SPESE TRENO PER TRASFERTA A MILANO GEOM. POSIO ANTONIO
     2009,169,2009-10-24,RIMBORSO SPESE PARCHEGGIO PER TRASFERTA A COMO
     2009,167,2009-10-17,RIMBORSO SPESE PER NOTIFICA ATTI
     2009,166,2009-10-16,RIMBORSO SPESE NOTIFICA ATTI 
     2009,164,2009-10-13,RIMBORSO SPESE TRASFERTA A TORINO PARTECIPAZIONE XXVI ASSEMBLEA ANNUALE ANCI SINDACO
     2009,163,2009-10-12,RIMBORSO PSESE PER ACQUISTO CASSETTE REGISTRAZIONE CONSIGLIO
     2009,162,2009-10-10,RIMBORSO SPESE TRASFERTA A COMO ASSISTENTE SOCIALE
     2009,159,2009-10-05,RIMBORSO SPESE PER PRENOTAZIONE REVISIONE SCUOLABUS IVECO
     2009,158,2009-10-03,RIMBORSO SPESE ACQUISTO PILA PER SETTORE POLIZIA LOCALE
     2009,157,2009-10-03,RIMBORSO SPESE PER TRASFERTA A COMO DIPENDENTE POLIZIA LOCALE
   </righe>
 </query>


Esempio 2 (risultato con errore)

<?xml version="1.0" encoding="ISO-8859-1"?>

 <query>
   <stato>0</stato>
   <descrizione>Errore:Il campo 'chkMandCo' non e' riconosciuto per la ricerca 'MANDATI'!</descrizione>
 </query>