6. Implementazione dei WS GISFO-XME e XME-GISFO
due nuovi WS: WS1 da GISFO a XME per chiedere le giornate, WS2 da XME a GISFO per inviare le giornate
Come anticipato, sarà necessario implementare una serie di Web Service per gestire tutte le comunicazioni da GisFo a XME e viceversa. In particolare, XME dovrà esporre un Web Service volto all' invio dei dati relativi alle giornate lavori e alle tratte da inserire in modo automatico :
- WS1 da XME a GisFo per invio dati
Viceversa, GisFo dovrà esporre un Web Service volto alla ricezione delle giornate lavori inviate da XME, ossia:
- WS2 da GisFo a XME per Ricezione ed Esito GDL
Successivamente si descrivono nel dettaglio le mimiche, la struttura e le modalità di gestione degli errori di ciascun Web Service. Alla fine del capitolo sono riepilogati i possibili errori con relativo codice.
WS1 per Invio dati Giornale Lavori
Per ogni transazione, si avrà una comunicazione sul WS 1 a seguito della richiesta dell'operatore, evento che definisce la data di inizio Transazione.
Il WS esposto sarà di tipo RESTful, metodo HTTP POST, raggiungibile tramite il seguente URL:
La struttura dell’oggetto json inserito nel body dell'invio del WS 1 dovrà essere analoga alla seguente:
{
"id_transaction":1234,
"tratta_g4w": [
{
"nome_tratta": "ABI2ARIELLI00000",
"giornate":[
{
"data_gl": "2023-02-06",
"stato_cantiere":"Attivo",
"motivo_stato_cantiere": null,
"meteo": "Sereno",
"presenza_archeologo": true,
"ore_lavorate_arch": 1.5,
"cno":[
{
"nome_cno": "CNO1",
"lavorazioni":[
{
"lavorazione": "Minitrincea",
"note_lavorazione": "Via Poggibonsi",
}
]
}
],
"lavoratori":[
{
"nome":"Federico",
"cognome":"Rossi",
"cod_fisc":"FRTRSS90M111L",
"impresa":"12339760964",
"dettagli_lavoratore":[
{
"qualifica_lavoratore": "Operaio Comune",
"tipologia_lavoratore": "Distacco",
"ore_lavorate": 8
}
]
}
]
}
]
}
]
}
| Tipologia Campo | Lunghezza max | Obbligatorio | |
| ID_Transaction | Testo | SI | |
| Tratta-progetto | Testo | 600 | SI |
| CNO | Testo | SI | |
| Lavorazioni | Testo | SI | |
| Note Lavorazioni | Testo | NO | |
| Data GL | Date | SI | |
| Stato Cantiere | Testo | SI | |
| Motivo (Stato Cantiere: Non Attivo) | Testo | NO | |
| Meteo | Testo | SI | |
| Presenza Archeologo | Bool | NO | |
| Ore lavorate Archeologo | Intero | SI se presenza archologo 'SI' | |
| Nome Lavoratore | Testo | 100 | SI |
| Cognome Lavoratore | Testo | 100 | SI |
| Codice fiscale Lavoratore | Testo | 100 | SI |
| Impresa esecutrice Lavoratore | Testo | SI | |
| Qualifica Lavoratore | Testo | SI | |
| Tipologia Lavoratore | Testo | SI | |
| Ore lavorate Lavoratore | Intero | SI |
Per la parte riguardante la presenza archeologo, il controllo sarà tale che in caso il campo sia null GisFo compilerà il campo con NO.
Il WS esposto restituirà un HTTP CODE “200”. Dopo aver effettuato dei controlli sui dati ricevuti, GISFO ne dettaglierà l’esito all’interno del body JSON della risposta, che sarà strutturata come riportato di seguito.
{
“id_transaction”: “1234”,
"nome_tratta": "ABI2ARIELLI00000",
“result”: “KO”,
“error_code”: “ERR_TRATTA_NOTFOUND”ERR_TRANSACTION_NOTFOUND”, “error”: ” identificativo progetto non presente sul sistema”
}
| Tipologia Campo | Lunghezza max | Obbligatorio | |
| Testo | SI | ||
| Testo | 600 | SI | |
| Testo | SI | ||
| Testo | SI | ||
Di seguito è riportato l’elenco dei controlli previsti e dei relativi errori restituiti:
WS2
{
"id_transaction":1234,
"tratta_g4w": [
{
"nome_tratta": "ABI2ARIELLI00000" ,
"esito_tratta": "KO",
"giornate":[
{
"data_gl": "2023-02-06",
"esito": "OK",
"motivazione": ""
}
{
"data_gl": "2023-02-07",
"esito": "OK",
"motivazione": "Inserimento mezzi"
}
{
"data_gl": "2023-02-08",
"esito": "KO",
"motivazione": "Superamento ore Lavoratore,Ore Archeologo non compatibili,ecc"
}
{
"data_gl": "2023-02-09",
"esito": "Non Inserito",
"motivazione": "Giornata presente e approvata DL"
}
]
}
]
}
5.6 Elenco codici errore previsti
A valle della descrizione dei singoli Web Service, si riepiloga nella seguente tabella l’elenco dei possibili errori previsti in risposta alle comunicazioni ricevute da Geo4Wip.
error_code |
error |
|
ERR_WORKORDER_NOTFOUND |
identificativo progetto non presente sul sistema |
|
ERR_INVALID_FIELD |
formato non valido/campo obbligatorio mancante per il campo nomecampo |
|
ERR_INVALID_VALUE |
valore non ammesso per il campo nomecampo |
|
ERR_UNEXPECTED_EVENT |
notifica non coerente con il flusso |
|
ERR_REQUESTID_NOTFOUND |
identificativo richiesta idrichiesta non presente a sistema |
|
ERR_UNEXPECTED_DATE |
nomecampodata non coerente con i dati a sistema |
|
ERR_GENERIC |
errore generico |
Verranno eventualmente aggiunti gli errori previsti da Geo4Wip in risposta alle Richieste provenienti da GISFO.