Modulo Impresa - Accesso Web Service per integrazione da sistemi esterni Dicembre 2014
Tabella delle revisioni Data Ver. Autore Pagine modifica te Motivo della modifica 19.07.2006 1.0 CANDI Massimo 12.11.2007 2.0 CANDI Massimo 30.11.2007 2.1 CANDI Massimo 12.05.2008 2.2 CANDI Massimo 19.06.2009 2.3 CANDI Massimo 23,54,55 Controlli formali su LM e DM. 26.10.2010 3.0 CANDI Massimo 54 Estrazione movimenti 26.10.2010 3.0 CANDI Massimo 55 Estrazione situazione materiali. 26.10.2010 3.0 CANDI Massimo 56 Gestione subappalti/affidatarie 20.12.2010 3.0 CANDI Massimo 45 E stato aggiunto il parametro numero cantiere al servizio integrapsc 20.12.2010 3.0 CANDI Massimo 47 E stato aggiunto il parametro numero cantiere al servizio accettapsc 20.12.2010 3.0 CANDI Massimo 52 E stato aggiunto il nuovo servizio rxcantieri per avere l elenco dei cantieri di una LCL. 20.12.2010 3.0 CANDI Massimo 74 Sulla tabella dei codici di ritorno del ws sono state aggiunte le segnalazioni previste dai servizi per la gestione dei subappalti. 20.12.2010 3.0 CANDI Massimo 70 Aggiornamento wsdl ambiente di collaudo ed esercizio. 17.06.2011 3.1 MALTA Daniela 15 Aggiornata tabella codici INF 17.06.2011 3.1 MALTA Daniela 33 Aggiornato elenco stati LCL ammessi per rxallegati 17.06.2011 3.1 MALTA Daniela 35 Corretto nome servizio txallegati ed aggiornato elenco stati LCL ammessi per lo stesso 17.06.2011 3.1 MALTA Daniela 40 Corretto formato parametro Data Fine Lavori ed adeguato schema txletterafinelavori 17.06.2011 3.1 MALTA Daniela 53 Corretta definizione servizio rxcantieri 24.06.2011 3.1 MALTA Daniela 63 Aggiornato schema contratto_subappalti.xsd 24.06.2011 3.1 MALTA Daniela 65 Inserito esempio di invocazione del metodo inviarichiestasubappalto 24.06.2011 3.1 MALTA Daniela 72 Inserito esempio di invocazione del metodo inviafattura Pagina 2 di 127
17.06.2011 3.1 MALTA Daniela 80 Aggiunte informazioni su risposte di tipo warning e relativo schema XML (warning.xsd) 28.09.2011 3.2 MALTA Daniela 58 Corretto schema rx_situazione_materiali.xsd 10.11.2011 3.3 MALTA Daniela 22 Aggiunto nuovo servizio: rxstatolcl, per richiedere lo stato di una LCL 10.11.2011 3.3 MALTA Daniela 24 Aggiunto nuovo servizio: rxstampalcl, per ricevere il pdf della stampa LCL 30.11.2011 3.3 MALTA Daniela 50 Inserita documentazione servizio rxaccettazione per comunicazioni LFL e EFT 10.11.2011 3.3 MALTA Daniela 87 Aggiornati WSDL 23.03.2012 3.4 MALTA Daniela 22 Aggiunto nel servizio rxstatolcl tra gli stati ammessi stato ANN_ENEL 23.03.2012 3.4 MALTA Daniela 81 Aggiunto errore su LM contenenti materiali/prestazioni con flag aggiuntivo a N ma non pianificati 02.05.2012 3.5 MALTA Daniela 36 Inserito riferimento a Mart89 in rxallegati 02.05.2012 3.5 MALTA Daniela 38 Inserito riferimento a Mart89 in txallegati 02.05.2012 3.5 MALTA Daniela 46 Aggiornato capitolo relativo a txeft con riferimento al nuovo formato per Enel Distribuzione 02.05.2012 3.5 MALTA Daniela 49 Inserito capitolo relativo a txmft 28.06.2012 3.6 MALTA Daniela 34 Aggiornata lista stati ammissibili per rxdocsicurezza 28.06.2012 3.6 MALTA Daniela 46 Aggiornato capitolo relativo a txeft con esempi di XML 28.06.2012 3.6 MALTA Daniela 53 Aggiornato capitolo relativo a rxaccettazione per comprendere le MFT 28.01.2013 3.7 MALTA Daniela 29 Aggiornamento per LCL AT 28.01.2013 3.7 MALTA Daniela 70 Adeguato capitolo 16 a nuova gestione subappalti Pagina 3 di 127
28.01.2013 3.7 MALTA Daniela 89 Inserito capitolo 17 relativo ai web services della cantierizzazione 28.01.2013 3.7 MALTA Daniela 94 Aggiornati messaggi di errore per DM 28.01.2013 3.7 MALTA Daniela 96 Aggiornati messaggi di errore per gestione subappalti 28.01.2013 3.7 MALTA Daniela 101 Sostituiti WSDL embedded con URL degli ambienti da cui possono essere prelevati 28.02.2013 3.8 MALTA Daniela 24 Adeguata documentazione per rxstatolcl 28.02.2013 3.8 MALTA Daniela 29 Inserita documentazione per getstatodm 28.02.2013 3.8 MALTA Daniela 31 Inserita documentazione per getstatolm 28.02.2013 3.8 MALTA Daniela 97 Inserito capitolo relativo a LCL per lavori per guasti già eseguiti 20.03.2013 3.9 MALTA Daniela 39-47-49-52-56-62- 64-66 Inseriti riferimenti ai controlli sulle LCL per guasto già eseguito 10.06.2013 4.0 MALTA Daniela Inserita documentazione pergetdocumentiimpresabyl cl 10.06.2013 4.0 MALTA Daniela Inserita documentazione rxlistaallegati 10.06.2013 4.0 MALTA Daniela Inserita documentazione rxallegato 10.06.2013 4.0 MALTA Daniela Adeguata documentazione per getinfosubappalto 10.06.2013 4.0 MALTA Daniela Inserito capitolo relativo a Entrata Merce 18.10.2013 4.1 MALTA Daniela 56-60 Eliminate specializzazioni per Selnet e Deval da txeft ed aggiornato schema eftv2.xsd 18.10.2013 4.1 MALTA Daniela 60-62 Eliminate specializzazioni per Selnet e Deval da txmft 18.10.2013 4.1 MALTA Daniela 109-110 Aggiornato schema XML per setem ed esplicitato impiego della quantità ricevuta 18.10.2013 4.1 MALTA Daniela 110-111 Aggiornato schema XML del documento restituito da getem Pagina 4 di 127
06.11.2013 4.2 MALTA Daniela 111 Inserito elemento RIF_ENEL nel documento restituito da getem 06.11.2013 4.2 MALTA Daniela 26-27 Inserito elemento OPERATORE_ENEL nel documento restituito da rxstatolcl 07.01.2014 4.3 MALTA Daniela 12-13 Aggiornato metodo login con introduzione del parametro id del sistema chiamante 16.05.2014 4.4 MALTA Daniela 103 Aggiornato schema XML e relativa descrizione del metodo setrichiestalclguasto 16.05.2014 4.4 MALTA Daniela 108 Corrette le occorrenze di getodamateriali con getodamateriali 16.05.2014 4.4 MALTA Daniela 110-114 Corrette le occorrenze di getem e setem con getem e setem 12.06.2014 4.5 MALTA Daniela 55-57 Aggiornato metodo txletterafinelavori per la gestione delle LFL conclusive 20.06.2014 4.5 MALTA Daniela 14-22 Corrette informazioni sulla gestione dell ID nelle INF 03.07.2014 4.6 MALTA Daniela 79-80 Inserita documentazione nuova operazione getcompatibilitamateriali 03.07.2014 4.6 MALTA Daniela 81-82 Inserita documentazione nuova operazione getcompatibilitaprestazioni 15.10.2014 4.7 MALTA Daniela 27-28 Aggiornato metodo rxstatolcl con restituzione dell informazione relativa al G.A. della LCL 14.11.2014 13.2 MALTA Daniela 78 Aggiornati schemi XML catalogo materiali e prestazioni con aggiunta del GM rispettivo 01.12.2014 13.1 MALTA Daniela 76 Corretto parametro di invocazione operation rxcatalogomateriali 10.12.2014 13.2 MALTA Daniela 78 Corretto schema XML catalogo_prestazioni.xsd Pagina 5 di 127
Nome BILANCIO_MATERIALI.xsd FILE_MOVIMENTI.xsd LCL.xsd DM.xsd LIBRETTO.xsd RISPOSTA.xsd LISTA.xsd LetteraConsegnaLavori.doc LibrettoMisure.doc BilancioMateriali.doc FileMovimenti.doc Documenti correlati Descrizione Schema XSD Bilancio Materiali Schema XSD file Movimenti Schema XSD Lettera Consegna Lavori Schema XSD Distinta Materiali Schema XSD Libretto Misure Schema XSD risposta del WS Schema XSD risposta del metodo getlistadocimpresa Descrizione struttura Lettera Consegna Lavori Descrizione struttura Libretto Misure Descrizione struttura Bilancio Materiali Descrizione struttura file Movimenti ServiceModuloImpresa_col.wsdl ServiceModuloImpresa_col.wsdl Rx_catalogo.xsd Catalogo_prestazioni.xsd rxcantieri.xsd warning.xsd rxstatolcl.xsd rxstampalcl.xsd eftv2.xsd mft.xsd WSDL per ambiente di COLLAUDO Modulo Impresa WSDL per ambiente di ESERCIZIO Modulo Impresa Schema XSD per ricezione catalogo Schema XSD catalogo delle prestazioni Schema di validazione della stringa XML restituita dal servizio rxcantieri. Schema XSD per risposte di tipo Warning Schema di validazione della stringa XML restituita dal servizio rxstatolcl Schema di validazione della stringa XML restituita dal servizio rxstampalcl Schema per elenco linee fuori tensione per Enel Distribuzione Schema per richiesta messa fuori servizio impianti per Enel Distribuzione Pagina 6 di 127
INDICE 1. INTRODUZIONE... 11 2. OPERAZIONI ESPOSTE DAL WEB SERVICE... 12 2.1. LOGIN... 12 2.2. SETDOCUMENTO... 14 2.3. GETDOCIMPRESA... 15 2.3.1. Ricezione INF... 17 2.4. GETLISTADOCIMPRESA... 21 2.5. UPDATEDOCIMPRESA... 22 2.6. GETDOCUMENTIIMPRESABYLCL... 23 2.7. LOGOFF... 24 3. COME INVIARE DOCUMENTI AD ENEL... 25 4. COME RICEVERE I DOCUMENTI INVIATI DA ENEL... 26 5. COME RICEVERE LE INFORMAZIONI SU LCL, DISTINTE MATERIALI E LIBRETTI MISURE... 27 5.1. RXSTATOLCL... 27 5.2. RXSTAMPALCL... 29 5.3. GETSTATODM... 32 5.4. GETSTATOLM... 34 6. CONTROLLI PREVISTI PER I LIBRETTI DI MISURA... 36 6.1. VALIDAZIONE LIBRETTO... 36 6.2. CONTROLLO NUMERO LIBRETTO... 36 6.3. CONTROLLO SULLA DATA INIZIO/FINE LAVORI... 36 6.4. CONTROLLO SULLO STATO DELLA LCL... 36 6.5. CONTROLLO ULTIMO LIBRETTO... 36 6.6. CONTROLLI SULLA IDENTITÀ DEL LIBRETTO... 36 6.7. CONTROLLI DI CONGRUENZA CON LA LCL... 37 7. CONTROLLI PREVISTI PER LA DISTINTA MATERIALI... 38 7.1. VALIDAZIONE DELLA DM... 38 8. TABELLE PER I CONTROLLI DI CONGRUENZA... 39 8.1. INSERIMENTO PRESTAZIONI NON PIANIFICATE... 39 8.1.1. LCL riferita a NEC... 40 8.1.2. LCL riferita a VEC... 40 8.2. INSERIMENTO MATERIALI NON PIANIFICATI... 41 9. GESTIONE ALLEGATI... 42 9.1. RXDOCSICUREZZA... 42 9.2. RXALLEGATI... 45 9.3. TXALLEGATI... 47 9.4. RXLISTAALLEGATI... 49 9.5. RXALLEGATO... 51 Pagina 7 di 127
10. GESTIONE DOCUMENTAZIONE PER LA GESTIONE OPERATIVA... 53 10.1. RICHIESTASOSPENSIONE... 53 10.1.1. Controlli effettuati sulle date... 55 10.2. RICHIESTAPROROGA... 55 10.3. TXLETTERAFINELAVORI... 56 10.4. TXEFT ELENCO LINEE FUORI TENSIONE... 59 10.5. TXMFT - RICHIESTA DI MESSA FUORI SERVIZIO IMPIANTI... 62 10.6. RXACCETTAZIONE... 65 11. GESTIONE PSC... 68 11.1. INTEGRAPSC... 68 11.2. ACCETTAPSC... 70 12. GESTIONE POS... 72 12.1. INVIAPOS... 72 12.2. RXCANTIERI... 74 13. ESTRAZIONE CATALOGO MATERIALI/PRESTAZIONI... 76 13.1. RXCATALOGOMATERIALI... 76 13.2. RXCATALOGOPRESTAZIONI... 77 13.3. GETCOMPATIBILITAMATERIALI... 79 13.4. GETCOMPATIBILITAPRESTAZIONI... 81 14. ESTRAZIONE MOVIMENTI MERCE... 83 14.1.1. Controlli previsti dal servizio... 83 15. ESTRAZIONE SITUAZIONE MATERIALI... 84 15.1.1. Controlli previsti dal servizio... 84 16. GESTIONE SUBAPPALTI/AFFIDATARIE... 86 16.1. GETINFOCONTRATTO... 88 16.1.1. Controlli previsti dal servizio... 90 16.2. INVIARICHIESTASUBAPPALTO... 91 16.2.1. Controlli previsti dal servizio... 92 16.3. GETINFOSUBAPPALTO... 93 16.3.1. Controlli previsti dal servizio... 94 16.4. ESTENDIRICHIESTASUBAPPALTO... 95 16.4.1. Controlli previsti dal servizio... 95 16.5. SETAFFIDATARIASUBAPPALTOTOLCL... 97 16.5.1. Controlli previsti dal servizio... 98 16.6. INVIAFATTURA... 100 16.6.1. Controlli previsti dal servizio... 101 16.7. MESSAGGI... 102 17. CANTIERIZZAZIONE... 103 17.1. GETCANTIERIZZAZIONE... 103 17.2. SETCANTIERIZZAZIONE... 104 17.3. GETSTATOCANTIERIZZAZIONE... 104 17.4. GETLISTACANTIERIZZAZIONI... 104 Pagina 8 di 127
17.5. GETMOTIVINONCANTIERIZZAZIONE... 105 17.6. SETELABORAZIONEREPORT... 105 17.7. GETSTATOELABORAZIONEREPORT... 106 17.8. GETREPORT... 106 18. LCL PER LAVORI PER GUASTI GIÀ ESEGUITI... 107 18.1. GETZONECONTRATTO... 107 18.2. SETRICHIESTALCLGUASTO... 108 18.3. SETSOLLECITORICHIESTALCLGUASTO... 109 18.4. GETRICHIESTALCLGUASTO... 110 19. ENTRATA MERCE... 111 19.1. GETLISTAODAMATERIALI... 111 19.2. GETODAMATERIALI... 113 19.3. SETEM... 115 19.4. GETEM... 116 19.5. ANNULLAEM... 118 19.6. REINVIOEM... 119 20. TABELLE DEGLI ERRORI... 120 20.1. CODICI DI ERRORE INVIO LIBRETTI DI MISURA... 120 20.2. CODICI DI ERRORE INVIO DISTINTA MATERIALI... 121 20.3. CODICI DI ERRORE CONTROLLO ACCESSI... 122 20.4. CODICI DI ERRORE RICEZIONE DOCUMENTI... 122 20.1. CODICI DI ERRORE GESTIONE SUBAPPALTI... 123 21. SCHEMA XSD MESSAGGI DI RITORNO WEB SERVICE... 126 21.1. RISPOSTA DAL WEB SERVICE... 126 21.2. RECORD LISTA RESTITUITO DAL SERVIZIO GETLISTADOCIMPRESA... 127 Pagina 9 di 127
Dati di classificazione e sintesi dell attività Moduli Modulo Impresa Processi Integrazione con sistemi esterni mediante web service Pagina 10 di 127
1. Introduzione Al fine di consentire l accesso diretto tra un sistema esterno ed il sistema Modulo Impresa è stata sviluppata una componente applicativa in grado di mettersi al servizio di un applicazione comunicando su di una medesima rete tramite il protocollo http/https. Una componente applicativa di questo tipo prende comunemente il nome di Web Service e consente quindi alle applicazioni che vi si collegano di usufruire delle funzioni che mette a disposizione. Nel caso di Modulo Impresa è stato implementato un Web service che consente di effettuare upload/download documenti in formato XML. Nei paragrafi che seguono sono descritti i servizi esposti e la modalità in cui devono essere invocati. Nella figura seguente è indicata la struttura di riferimento del Web Service. WEB Services WEB SERVER Internet Information Server Apache AXIS Logica BUSINESS Application Container Pagina 11 di 127
2. Operazioni esposte dal web service In questo capitolo sono descritti i metodi esposti dal web service. 2.1. login public java.lang.string login(int idsistema, java.lang.string userid, java.lang.string password) Parameters: idsistema, userid, password E il primo servizio che deve essere invocato al fine di essere riconosciuti dal sistema. Devono essere passati come parametri di tipo stringa la userid e la password con cui si accede dal portale Enel Acquisti in modalità interattiva e come parametro di tipo intero l identificativo del proprio sistema, fornito da Enel. Il servizio restituisce per esito positivo (Codice 000) la stringa XML: Returns: java.lang.string Struttura del messaggio XML di risposta <MESSAGGIO> <DA>WSMODULOIMPRESA</DA> <A>userid</A> <ID>0</ID> <TIPODOC>RC</TIPODOC> <RISPOSTA> <TIPO>I</TIPO> <CODICE>000</CODICE> <MSG>Utente e password corrette ed utente abilitato al servizio</msg> </RISPOSTA> </MESSAGGIO> Oppure, nel caso siano presenti avvisi di interesse (Codice 001): <MESSAGGIO> <DA>WSMODULOIMPRESA</DA> <A>01559480353</A> <ID>0</ID> <TIPODOC>RC</TIPODOC> <RISPOSTA> <TIPO>I</TIPO> <CODICE>001</CODICE> <MSG>Utente e password corrette ed utente abilitato al servizio</msg> <DETTAGLIO> <WARNING>Dal 9 al 10 Dicembre il sistema sarà indisponibile per interventi di manutenzione straordinaria</warning> </DETTAGLIO> </RISPOSTA> </MESSAGGIO> Il servizio restituisce per esito negativo, per esempio, la stringa XML: Pagina 12 di 127
Returns: java.lang.string Struttura del messaggio XML di risposta <MESSAGGIO> <DA>WSMODULOIMPRESA</DA> <A>userid</A> <ID></ID> <TIPODOC>RC</TIPODOC> <RISPOSTA> <TIPO>E</TIPO> <CODICE>033</CODICE> <MSG>Utente e password corrette ma utente non registrato al servizio</msg> </RISPOSTA> </MESSAGGIO> Per capire se l esito è negativo o positivo il nodo <TIPO> contiene: I = Informazione che conferma l esito positivo dell operazione E = Errore try { service = new Service(); axis_call = (org.apache.axis.client.call)service.createcall(); axis_call.settargetendpointaddress( new URL(indirizzo)); axis_call.setusesoapaction(false); axis_call.setsoapactionuri(""); axis_call.setmaintainsession(true); try { axis_call.removeallparameters(); axis_call.addparameter("idsistema ",org.apache.axis.encoding.xmltype.xsd_integer,javax.xml.rpc.parametermode.in); axis_call.addparameter("userid",org.apache.axis.encoding.xmltype.xsd_string,javax.xml.rpc.parametermode.in); axis_call.addparameter("password",org.apache.axis.encoding.xmltype.xsd_string,javax.xml.rpc.parametermode.in); axis_call.setoperationname("login"); axis_call.setreturntype(xmltype.xsd_string); } catch(exception e) { return false; } ret = (String)axis_call.invoke(new Object [] {userid,password}); System.out.println(ret); Pagina 13 di 127
2.2. setdocumento public java.lang.string setdocumento(java.lang.string documento) Parameters: Documento Questo Servizio permette di inviare, effettuato il login con esito positivo, il documento XML al sistema Modulo Impresa. Il servizio riconosce il documento dalla presenza del nodo MESSAGGIO/INTESTAZIONE/TIPO_DOC. Riconosciuto il tipo documento ne verifica la correttezza formale applicando la validazione con lo schema XSD di riferimento e successivamente applica gli eventuali controlli previsti dal tipo documento stesso. Il servizio restituisce una stringa XML contenente l esito dell operazione. Returns: java.lang.string Struttura del messaggio XML di risposta <MESSAGGIO> <DA>WSMODULOIMPRESA</DA> <A>userid</A> <ID>690</ID> <TIPODOC>RC</TIPODOC> <RISPOSTA> <TIPO>I</TIPO> <CODICE>000</CODICE> <MSG>LIBRETTO 6300190700.351 caricato con successo</msg> </RISPOSTA> </MESSAGGIO> Per capire se l esito è negativo o positivo il nodo <TIPO> contiene: I = Informazione che conferma l esito positivo dell operazione E = Errore Per le tipologie di documento supportate da questo metodo il nodo "<ID>" contiene un identificativo univoco (protocollo EDI) assegnato dal sistema Enel. BufferedReader in = new BufferedReader(new FileReader(NomeFile)); while ( (buffer = in.readline())!= null) { FileXML.append(buffer); } in.close(); xmldoc = FileXML.toString(); try { try { axis_call.removeallparameters(); axis_call.addparameter("documento",org.apache.axis.encoding.xmltype.xsd_string,javax.xml.rpc.parametermode.in); axis_call.setoperationname("setdocumento"); axis_call.setreturntype(xmltype.xsd_string); } catch (Exception e) { return false; } String ret = null; ret = (String) axis_call.invoke(new Object[] {xmldoc}); System.out.println(ret); Pagina 14 di 127
2.3. getdocimpresa public java.lang.string getdocimpresa(long id) Parameters: Questo Servizio permette si scaricare, effettuato il login con esito positivo, un documento in formato XML dal sistema Modulo Impresa come nel caso di una LCL. Ogni documento gestito da Modulo Impresa ha un numero di protocollo che contraddistingue in modo assoluto il documento stesso ad eccezione delle seguenti comunicazioni inviate da Enel: 1. accettazione/rifiuto di Distinte Materiali; 2. accettazione/rifiuto di Libretti Misure; 3. accettazione/rifiuto di POS; 4. accettazione/rifiuto di integrazioni al PSC. In tutti questi casi il web service emula in maniera completa il comportamento del portale ed il documento XML restituito è destinato esclusivamente alla lettura immediata: in particolare l elemento /MESSAGGIO/INTESTAZIONE/ID non è il riferimento univoco alla INF e quindi non può essere utilizzato per acquisire il documento successivamente. Il servizio si aspetta come parametro di input il numero di protocollo documento. Il servizio restituisce in caso di errore una stringa XML con la segnalazione di errore: Returns: java.lang.string Struttura XML del messaggio XML di risposta <MESSAGGIO> <DA>WSMODULOIMPRESA</DA> <A>userid</A> <ID>id</ID> <TIPODOC>RC</TIPODOC> <RISPOSTA> <TIPO>E</TIPO> <CODICE>xxx</CODICE> <MSG>descrizione errore</msg> </RISPOSTA> </MESSAGGIO> Se l esito dell operazione è positivo la stringa ritornata dal servizio contiene il documento XML. try { axis_call.removeallparameters(); axis_call.setoperationname("getdocimpresa"); axis_call.addparameter("pkcodatx",org.apache.axis.encoding.xmltype.soap_int, javax.xml.rpc.parametermode.in); axis_call.setreturntype(xmltype.xsd_string); result = (String) axis_call.invoke( new Object[] {new Long(id)}); Pagina 15 di 127
Il servizio consente di ricevere le seguenti tipologie di documento: - LCL: documento LCL rigenerato secondo lo schema pel/tratta - MV: file movimenti - BIL: file bilancio materiali - INF: comunicazione inviata da ENEL Pagina 16 di 127
2.3.1. Ricezione INF La INF scaricata come stringa XML mediante il servizio getdocimpresa può fare riferimento ad una LCL/LM o ad una comunicazione. Il nodo TIPODOC distingue i due casi e può assumere i seguenti valori: - INF: la INF fa riferimento ad una LCL o ad un LM - COM: la INF fa riferimento ad una comunicazione inviata da Impresa Esempio di INF inviata all Impresa come accettazione di una richiesta di sospensione: <?xml version="1.0" encoding="iso-8859-1"?> <MESSAGGIO> <INTESTAZIONE> <DA>05779711000</DA> <A>02117450987</A> <ID>81</ID> <DATAINVIO>06/12/2005 10.18.37</DATAINVIO> <TIPODOC>COM</TIPODOC> <INDIRIZZAMENTO>F14A241783</INDIRIZZAMENTO> </INTESTAZIONE> <INF> <CODICE>122</CODICE> <ID_DOC_RIFERIMENTO>202</ID_DOC_RIFERIMENTO> <TIPO_DOC_RIFERIMENTO>LCL</TIPO_DOC_RIFERIMENTO> <NUM_DOC_RIFERIMENTO>6300190711</NUM_DOC_RIFERIMENTO> <DATA_DOCUMENTO>06/12/2005 10.18.37</DATA_DOCUMENTO> <NOTE>Richiesta di SOSPENSIONE accettata</note> </INF> </MESSAGGIO> Esempio di INF inviata all Impresa come rifiuto integrazione PSC: <?xml version="1.0" encoding="iso-8859-1"?> <MESSAGGIO> <INTESTAZIONE> <DA>05779711000</DA> <A>02117450987</A> <ID>81</ID> <DATAINVIO>06/12/2005 10.18.37</DATAINVIO> <TIPODOC>INF</TIPODOC> <INDIRIZZAMENTO>F14A241783</INDIRIZZAMENTO> </INTESTAZIONE> <INF> <CODICE>27</CODICE> <ID_DOC_RIFERIMENTO>202</ID_DOC_RIFERIMENTO> <TIPO_DOC_RIFERIMENTO>LCL</TIPO_DOC_RIFERIMENTO> <NUM_DOC_RIFERIMENTO>6300190711</NUM_DOC_RIFERIMENTO> <DATA_DOCUMENTO>06/12/2005 10.18.37</DATA_DOCUMENTO> Pagina 17 di 127
<NOTE>Rifiuto Integrazione PSC</NOTE> </INF> </MESSAGGIO> Oltre al riconoscimento del tipo documento a cui fa riferimento la INF (nodo TIPODOC) nel blocco INF sarà indicato un codice (nodo CODICE) che consente di riconoscere l azione descritta dal INF disposta da ENEL (vedi tabella Codici INF ). Per le INF di tipo COM il nodo ID_DOC_RIFERIMENTO presente nell XML può essere utilizzato dal metodo rxaccettazione per scaricare la stampa PDF della comunicazione accettata da ENEL ed in formato XML i dati presentati sulla stampa. Sotto si riporta la tabella con i Codici INF: CODICE DESCRIZIONE 1 LCL Aggiornata 2 La LCL è stata ANNULLATA da ENEL 3 La LCL è stata riaperta per ulteriori consuntivazioni 4 Libretto di Misura rifiutato 5 Richiesta di SOSPENSIONE Accettata 6 Richiesta di SOSPENSIONE Rifiutata 7 Attivata SOSPENSIONE 8 PROROGA Lavori 9 Richiesta di PROROGA Accettata 10 Richiesta di PROROGA Rifiutata 11 Rifiuto Materiali 12 Ripresa Lavori 13 Intimazione inizio/ripresa Lavori 14 Contestazione mancata ultimazione lavori 15 Risarcimento danni 16 Lettera fine lavori Accettata 17 Lettera fine lavori Rifiutata 18 Accettazione Integrazione PSC 19 Accettazione Piano Operativo Sicurezza (POS) 20 Rifiuto Integrazione PSC 21 Rifiuto Piano Operativo Sicurezza (POS) 22 Allegato un nuovo file generico alla LCL 23 Contestazione Fine lavori Pagina 18 di 127
24 Provvedimenti carattere economico 25 La LCL è stata CHIUSA da ENEL 26 Distinta Materiali rifiutata 27 Accettazione richiesta MFT 28 Rifiuto richiesta MFT 29 Comunicazione generica 30 Rifiuto Elenco Linee Fuori Tensione 31 Accettazione Elenco Linee Fuori Tensione 32 Aggiornamento Subappalto 33 Aggiornamento stato fattura 34 Conferma LCL subappalti 3.1.1.1 INF rifiuto libretto di misura La INF è riconoscibile per la valorizzazione dei seguenti nodi: - TIPODOC=INF - TIPO_DOC_RIFERIMENTO=LM - CODICE= ad ogni INF verrà attribuito un codice univoco <?xml version="1.0" encoding="iso-8859-1"?> <MESSAGGIO> <INTESTAZIONE> <DA>A320838</DA> <A>00825660764</A> <ID>421392</ID> <DATAINVIO>12/11/2007</DATAINVIO> <TIPODOC>INF</TIPODOC> <INDIRIZZAMENTO>G24A320067</INDIRIZZAMENTO> </INTESTAZIONE> <INF> <CODICE>XXX</CODICE> <ID_DOC_RIFERIMENTO>177317</ID_DOC_RIFERIMENTO> <TIPO_DOC_RIFERIMENTO>LM</TIPO_DOC_RIFERIMENTO> <NUM_DOC_RIFERIMENTO>6300298595.001</NUM_DOC_RIFERIMENTO> <DATA_DOCUMENTO>12/11/2007 15.04.35</DATA_DOCUMENTO> <NOTE>Libretto di Misura rifiutato - Contabilità non corretta</note> </INF> </MESSAGGIO> Pagina 19 di 127
3.1.1.2 INF accettazione/rifiuto sospensione La INF è riconoscibile per la valorizzazione dei seguenti nodi: - TIPODOC = COM - TIPO_DOC_RIFERIMENTO=COM - CODICE= ad ogni INF verrà attribuito un codice univoco <?xml version="1.0" encoding="iso-8859-1"?> <MESSAGGIO> <INTESTAZIONE> <DA>05779711000</DA> <A>01565850763</A> <ID>159446</ID> <DATAINVIO>29/03/2007</DATAINVIO> <TIPODOC>COM</TIPODOC> <INDIRIZZAMENTO>G24A319732</INDIRIZZAMENTO> </INTESTAZIONE> <INF> <CODICE>XXX</CODICE> <ID_DOC_RIFERIMENTO>76608</ID_DOC_RIFERIMENTO> <TIPO_DOC_RIFERIMENTO>COM</TIPO_DOC_RIFERIMENTO> <NUM_DOC_RIFERIMENTO>6300298595</NUM_DOC_RIFERIMENTO> <DATA_DOCUMENTO>19/03/2007</DATA_DOCUMENTO> <NOTE>Richiesta di SOSPENSIONE Accettata</NOTE> </INF> </MESSAGGIO> 3.1.1.3 INF invio Risarcimento danni La INF è riconoscibile per la valorizzazione dei seguenti nodi: - TIPODOC = COM - TIPO_DOC_RIFERIMENTO=COM - CODICE= ad ogni INF verrà attribuito un codice univoco <?xml version="1.0" encoding="iso-8859-1"?> <MESSAGGIO> <INTESTAZIONE> <DA>05779711000</DA> <A>01565850763</A> <ID>159446</ID> <DATAINVIO>29/03/2007</DATAINVIO> <TIPODOC>COM</TIPODOC> <INDIRIZZAMENTO>G24A319732</INDIRIZZAMENTO> </INTESTAZIONE> <INF> <CODICE>XXX</CODICE> Pagina 20 di 127
<ID_DOC_RIFERIMENTO>76608</ID_DOC_RIFERIMENTO> <TIPO_DOC_RIFERIMENTO>COM</TIPO_DOC_RIFERIMENTO> <NUM_DOC_RIFERIMENTO>6300298595</NUM_DOC_RIFERIMENTO> <DATA_DOCUMENTO>19/03/2007</DATA_DOCUMENTO> <NOTE>Risarcimento danni</note> </INF> </MESSAGGIO> 2.4. getlistadocimpresa public java.lang.string getdoclistaimpresa() Parameters: Questo Servizio permette di avere, effettuato il login con esito positivo, l elenco dei documenti non ancora scaricati dall Impresa con la seguente stringa XML: Returns: java.lang.string Struttura XML del messaggio XML di risposta <MESSAGGIO> <RECLISTA> <ID>369</ID> <MITTENTE>05779711000</MITTENTE> <NUMDOC>6300199998</NUMDOC> <TIPODOC>LCL</TIPODOC> </RECLISTA> </MESSAGGIO> Nella stringa XML ritornata dal servizio sono riportate le seguenti informazioni per i documenti che non risultano ancora scaricati: ID = protocollo EDI del documento MITTENTE= partita iva di Enel Distribuzione NUMDOC= numero del documento TIPODOC= tipo documento (LCL per Lettera Consegna Lavori, MV per Movimenti Materiali, BIL per Bilancio Materiali, INF per le informazioni) Nel caso non ci siano documenti da scaricare ritorna la seguente stringa XML: Returns: java.lang.string Struttura XML del messaggio XML di risposta <MESSAGGIO> <DA>WSMODULOIMPRESA</DA> <A>userid</A> <ID></ID> <TIPODOC>RC</TIPODOC> <RISPOSTA> <TIPO>I</TIPO> Pagina 21 di 127
<CODICE>000</CODICE> <MSG>Nessun documento LCL o MV in stato "DA LEGGERE" trovato per la Partita Iva: xxxxxxxxxxx </MSG> </RISPOSTA> </MESSAGGIO> String result =""; try { axis_call.removeallparameters(); axis_call.setoperationname("getlistadocimpresa"); axis_call.setreturntype(xmltype.xsd_string); result = (String) axis_call.invoke(new Object[] {}); System.out.println(result); } catch(org.apache.axis.axisfault fault) { } 2.5. updatedocimpresa public java.lang.string updatedocimpresa(long id) Parameters: Questo Servizio permette, dopo aver scaricato un documento in modo corretto, di cambiare lo stato del documento in modo da non doverlo scaricare nelle successive sessioni di lavoro. Al servizio deve essere passato l identificativo del documento che è stato scaricato e di cui si intende modificare lo stato. Il servizio restituisce una stringa XML con l esito dell operazione. Returns: java.lang.string Struttura XML del messaggio XML di risposta <MESSAGGIO> <DA>WSMODULOIMPRESA</DA> <A>CAAUSER30</A> <ID>369</ID> <TIPODOC>RC</TIPODOC> <RISPOSTA> <TIPO>I</TIPO> <CODICE>000</CODICE> <MSG>Aggiornamento documento: <id> eseguito con successo</msg> </RISPOSTA> </MESSAGGIO> Per capire se l esito è negativo o positivo il nodo <TIPO> contiene: I = Informazione che conferma l esito positivo dell operazione E = Errore Per le tipologie di documento supportate da questo metodo il nodo "<ID>" contiene un identificativo univoco (protocollo EDI) assegnato dal sistema Enel. Pagina 22 di 127
Questo servizio nel caso delle LCL non soggette al processo PSC/POS genera una INFO verso l utente ENEL che ha emesso la LCL che segnala l avvenuta ricezione della LCL da parte dell Impresa. Il servizio deve essere sempre richiamato a fronte dello scarico di un documento andato a buon fine. Per LCL soggette a PSC/POS il servizio ritorna un errore in quanto la LCL può passare in stato RIC_IMP (consuntivabile) solo a fronte del completamente del processo di accettazione PSC/POS. Questo metodo dovrà essere invocato solo per le LCL che hanno uno o più cantieri con allegati sicurezza del tipo Modart7/LN/CS/CP. Per le LCL con PSC il passaggio in stato RIC_IMP avviene solo dopo che ENEL ha accettato il POS. try { axis_call.removeallparameters(); axis_call.setoperationname("updatedocimpresa"); axis_call.addparameter("pkcodatx",org.apache.axis.encoding.xmltype.soap_int,javax.xml.rpc.parametermode.in ); axis_call.setreturntype(xmltype.xsd_string); result = (String) axis_call.invoke( new Object[] {new Long(id)}); System.out.println(result); } 2.6. getdocumentiimpresabylcl public java.lang.string getdocumentiimpresabylcl(string numerolcl) Parameters: Questo Servizio permette si scaricare, effettuato il login con esito positivo, l elenco dei documenti riferiti alla LCL fornita in input, indipendentemente dal fatto che siano già stati letti. Il servizio si aspetta come parametro di input il numero della LCL relativa. Il servizio restituisce in caso di errore un documento XML con la segnalazione di errore standard: Returns: java.lang.string Struttura XML del messaggio XML di risposta <MESSAGGIO> <DA>WSMODULOIMPRESA</DA> <A>userid</A> <ID>id</ID> <TIPODOC>RC</TIPODOC> <RISPOSTA> <TIPO>E</TIPO> <CODICE>xxx</CODICE> <MSG>descrizione errore</msg> </RISPOSTA> </MESSAGGIO> Se l esito dell operazione è positivo il documento XML restituito dal servizio contiene la lista dei documenti secondo la seguente struttura: Pagina 23 di 127
<MESSAGGI> <MESSAGGIO> documento1 </MESSAGGIO> <MESSAGGIO> documento2 </MESSAGGIO> </MESSAGGI> Il documento XML contenuto all interno di ciascuna sezione MESSAGGIO (documento1 e documento2 nell esempio sopra) ha esattamente lo stesso formato previsto nelle risposte del metodo getdocimpresa. Il servizio consente di ricevere le seguenti tipologie di documento: - LCL: documento LCL rigenerato secondo lo schema pel/tratta - MV: file movimenti - BIL: file bilancio materiali - INF: comunicazione inviata da ENEL 2.7. Logoff public void Logoff() Questo Servizio permette di chiudere la sessione di lavoro. Il servizio deve essere invocato al termine delle operazioni di trasmissione documenti al fine di invalidare la sessione di lavoro. Il servizio restituisce una stringa XML con l esito dell operazione. Returns: java.lang.string Struttura XML del messaggio XML di risposta <MESSAGGIO> <DA>WSMODULOIMPRESA</DA> <A></A> <ID>0</ID> <TIPODOC>RC</TIPODOC> <RISPOSTA> <TIPO>I</TIPO> <CODICE>000</CODICE> <MSG>Logout eseguito con successo</msg> </RISPOSTA> </MESSAGGIO> try { axis_call.setoperationname("logoff"); axis_call.removeallparameters(); axis_call.setreturntype(null); ret = (String)axis_call.invoke(new Object [] {}); } catch(exception e) { } Pagina 24 di 127