Skip to main content

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
ID_Transactionid_transaction Testo
SI
Tratta-progettonome_tratta Testo 600 SI
CNOresult Testo   SI
Lavorazionierror_code Testo   SI
Note LavorazioniTesto NO

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.