Ricerche Personalizzate della Finanziaria su Web Service

Da wiki.maggioli.it.
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'. In particolare i parametri della chiamata sono:

String[] params = new String[] {

 "semanthic_switch_v1",
 J2eeUser,
 J2eePassword,
 SicrawebUser,
 SicrawebPassword,
 "fin.custom.research",
 fileContent };



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, MANDATI e MUTUI).


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. Al momento l'unico valore possibile è:

  • 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

Il tag 'chiave' (facoltativo) e' la chiave necessaria per cercare il risultato di una ricerca avviata con una chiamata precedentemente alla corrente

Il tag 'durata-chiamata' (facoltativo) serve per indicare per quanto tempo, espresso in secondi, il sistema deve cercare il risultato della richiesta. Al termine di questo periodo la chiamata corrente termina. Se non viene specificato la ricerca durera' un minuto.

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 'response' che contiene 'query' il quale a sua volta contiene 3 sotto tag 'stato', 'descrizione' e 'righe'.

ATTENZIONE: Se il risultato della richiesta e' andato a buon fine viene archiviato sul repository di sicraweb (stato 1). Per avere il risultato effettivo e' necessario effettuare altre chiamate ed utilizzare i metodi esposti nel web service http://192.168.10.10:8080/client/services/RepWSSGateway?wsdl

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' termaniato correttamente)
  • 2=Avviato (se il risultato non e' ancora disponibile)
  • 3=Chiave non trovata (se la chiave utilizzata per la richiesta non ha associato alcun risultato preesistente)

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

Il tag 'righe' (facoltativo) contiene o la chiave per le successive chiamate in caso stato = 1 o la chiave per le successive chiamate in caso di stato = 2.


Esempio 1 (risultato ok)

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

 <query>
   <stato>1</stato>
   <righe>U0ZUS18xMzMwMDgxMjk2NzQyfDM5MDIw</righe>
 </query>

</response>


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>