Comments
Transcript
Web Service per importare un adempimento SUAP in
Web Service per importare un adempimento SUAP in Versione: 1.2 Data: 16/04/12 Autore: InfoCamere – Direzione Applicazioni 1. Introduzione al documento........................................................................................................3 1.1 Novità introdotte rispetto alla precedente emissione..............................................................................3 1.2 Scopo e campo di applicazione del documento......................................................................................3 1.3 Termini e definizioni................................................................................................................................ 3 2. Integrazione ComunicaStarweb con applicativi esterni..........................................................4 2.1 WS di esportazione adempimento SUAP da esterno.............................................................................4 2.1.1 Requisiti funzionali........................................................................................................................... 4 2.1.2 Soluzione tecnica............................................................................................................................. 4 2.1.2.1 Parametri in input ........................................................................................................................................4 2.1.2.2 La login a EACO..........................................................................................................................................5 2.1.2.3 Profilazione utenti.........................................................................................................................................5 2.1.2.4 Il file ZIP......................................................................................................................................................6 2.1.2.4.1.1 Il file xml descrittore dell’adempimento........................................................................................6 2.1.2.4.1.2 La directory Adempimento SUAP...............................................................................................13 2.1.2.5 Funzionamento del web service..................................................................................................................13 2.1.2.5.1.1 L’ output del WS .........................................................................................................................14 2.2 Client per interrogazione WS esporta adempimento SUAP..................................................................15 WebService per importare un adempimento SUAP in ComunicaStarweb 2/16 1. Introduzione al documento 1.1 Novità introdotte rispetto alla precedente emissione Versione/Release n° : V1.0 Descrizione modifiche: Creazione documento Motivazioni : Prima emissione Versione/Release n° : V1.1 Descrizione modifiche: Aggiornamento XSD descrittore adempimento Motivazioni : Correzione di bug riscontrati in fase di collaudo Versione/Release n° : V1.2 Descrizione modifiche: Aggiornamento XSD descrittore adempimento, modifica limite massimo allegati, modifica contenuto file errori.properties Motivazioni : Manutenzione evolutiva 1.2 Data Versione/Release : Data Versione/Release : Data Versione/Release : 08/11/11 05/01/12 16/04/12 Scopo e campo di applicazione del documento Il documento ha l’obiettivo di guidare all’utilizzo di un web service che permetta l’integrazione tra sistemi esterni e il sistema ComunicaStarweb di InfoCamere. 1.3 Termini e definizioni Termine EACO P7M PDF SCIA SUAP SUAP Telemaco U3T WS XML Descrizione Infrastruttura di sicurezza per servizi web di Infocamere L’ulteriore estensione .p7m contraddistingue i documenti contenenti una. firma digitale (in conformità alle regole CNIPA). Portable Document Format: formato per file grafici elaborato dalla Adobe Systems Segnalazione Certificata Inizio Attività Sportello Unico Attività Produttive Sportello Unico Attività Produttive E’ l’applicazione InfoCamere disponibile in Internet con cui è possibile inviare alle Camere di Commercio le pratiche Registro Imprese. Formato documento di lavoro generato da Fedra con i dati di pratica da spedire contenente i moduli compilati (documento non consultabile), avente come estensione del nome U3T. Web Service Extensible Markup Language WebService per importare un adempimento SUAP in ComunicaStarweb 3/16 2. Integrazione ComunicaStarweb con applicativi esterni L’obiettivo del modulo di integrazione è quello di realizzare un meccanismo che consenta a qualsiasi applicativo che generi adempimenti SUAP (ad esempio il modulo SCIA di ComunicaStarweb) di comunicare automaticamente l’adempimento che ha generato (files pdf firmati, xml e altri descrittori) alla componente ComunicaStarweb che predispone la pratica SUAP per Comunica. In particolare, un applicativo esterno potrà comunicare a ComunicaStarweb, tramite Web Service, un insieme di files che costituiscono un adempimento SUAP. Il WS costruirà una struttura dati, identica a quella già ora utilizzata dalla procedura di spedizione pratiche SCIA in ComunicaStarweb, che ComunicaStarweb sarà in grado di leggere per approntare la pratica SUAP effettuando una pratica ComunicaStarweb avente come riferimento il medesimo soggetto relativo all’adempimento SUAP importato. 2.1 WS di esportazione adempimento SUAP da esterno 2.1.1 Requisiti funzionali L’utente di applicazioni esterne deve essere in possesso di un’utenza applicativa per poter utilizzare il WS con profilo 'W-SUAP', un’utenza Telemaco che permetta l’invio di pratiche al Registro Imprese, nonchè l’accesso a ComunicaStarweb. Solo con un’utenza Telemaco l’utente esterno potrà creare un adempimento SUAP in ComunicaStarweb. Ogni chiamata al WS implica l’invio di un adempimento SUAP e non di una pratica SUAP. Questo implica che se una pratica è costituita da più adempimenti sarà necessario fare una chiamata al WS per ciascuno di essi. L’input del WS sarà un file .ZIP contenente i files che costituiscono l’adempimento SUAP nel formato proprio di ComunicaStarweb. 2.1.2 Soluzione tecnica L’utente di uno degli applicativi esterni che possono generare adempimenti SUAP, dovrà produrre un file zip e inviarlo a ComunicaStarweb tramite WS. Il WS elaborerà l’adempimento contenuto nello zip. In caso di elaborazione avvenuta con successo popolerà le opportune tabelle e genererà fisicamente l’adempimento tramite ComunicaStarweb. In caso di errore nell’elaborazione invece, il WS restituirà un codice opportuno all’utente. 2.1.2.1 Parametri in input Il WS accetta in input i seguenti parametri: • fileZip – parametro di tipo DataHandler che contiene il vero e proprio file .zip da inviare; WebService per importare un adempimento SUAP in ComunicaStarweb 4/16 2.1.2.2 • fileZipName – parametro di tipo String che contiene il nome (senza path e senza estensione) del file zip associato al parametro precedente; • userName – parametro di tipo String che contiene lo username dell’utente per effettuare la login con EACO. NOTA: lo username è case sensitive in caso di username non corretto il sistema risponderà con l’errore numero 14 (rif. pag. 14), in generale le utenze che vengono utilizzate saranno in caratteri maiuscoli; • password – parametro di tipo String che contiene la password criptata, associata allo username fornito. La login a EACO Il WS in input si aspetta username (con profilo 'W-SUAP') e password per poter effettuare la login tramite il servizio EACO. La password in input deve essere criptata secondo l’algoritmo PBEWithMD5AndDES utilizzando una Passphrase per criptare. La passphrase per convenzione sarà il parametro fileZipName in input al WS. La stringa da criptare deve essere passata al Cipher in formato byte[] sfruttando il formato UTF-8 byte[] utf8 = toEncrypt.getBytes("UTF8"); Quindi la password criptata col Cipher deve essere passata al ws dopo averla ritrasformata in stringa tramite il metodo encode della libreria BASE64Encoder. E’ importante usare in codifica e decodifica lo stesso salt e lo stesso numero di iterazioni, altrimenti la password non può essere decriptata correttamente dal WS. Il WS usa i seguenti Salt e Iteration count, gli stessi dovranno essere usati dal Client: // Salt byte[] salt = { (byte)0xc7, (byte)0x73, (byte)0x21, (byte)0x8c, (byte)0x7e, (byte)0xc8, (byte)0xee, (byte)0x99 }; // Iteration count int iterationCount = 19; 2.1.2.3 Profilazione utenti Il servizio effettua due controlli sulle utenze: • il primo è volto a verificare che l’utenza di accesso al servizio sia profilata per potere accedere al servizio stesso; • il secondo verifica l’utenza Telemaco dell’utente che poi creerà l’adempimento in ComunicaStarweb (campo user_telemaco del descrittore XML). WebService per importare un adempimento SUAP in ComunicaStarweb 5/16 2.1.2.4 Il file ZIP Il nome del file zip da inviare al WS (parametro fileZipName) deve necessariamente essere di tipo CODICE_PRATICA.ZIP dove il CODICE PRATICA è nel formato: CF-GGMMAAAA-HHMM Per CF si intende il codice fiscale o la partita IVA dell’impresa o di colui che ricoprirà il ruolo di legale rappresentante della stessa se l’impresa medesima non è ancora costituita. I successivi 13 caratteri rappresentano data e ora in cui la pratica è stata predisposta, nel formato giorno (2 caratteri quindi di tipo 01, 02...31), mese (2 caratteri quindi di tipo 01...12) e anno (4 caratteri) – ore (in formato 01..24) e minuti (2 caratteri). Il file zip (parametro fileZip) da inviare al WS deve contenere obbligatoriamente: 1. un file xml descrittore dell’adempimento 2. una directory adempimento SUAP che dovrà contenere i file obbligatori per descrivere un adempimento SUAP. Non è possibile importare due file zip con il medesimo CODICE PRATICA. 2.1.2.4.1.1 Il file xml descrittore dell’adempimento Il file xml descrittore ha la struttura del descrittoreAcquisizione.xsd: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="stringaDescrizione"> <xs:restriction base="xs:string"> <xs:maxLength value="80"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="stringaLarge"> <xs:restriction base="xs:string"> <xs:maxLength value="400"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="stringaSigle"> <xs:restriction base="xs:string"> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="codiceCatastale"> <xs:restriction base="xs:string"> <xs:length value="4"/> <xs:pattern value="[a-zA-Z][0-9]{3}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="fileFirmato"> WebService per importare un adempimento SUAP in ComunicaStarweb 6/16 <xs:restriction base="xs:string"> <xs:pattern value="(.)+\.(p7m|P7M)"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="fileXml"> <xs:restriction base="xs:string"> <xs:pattern value="(.)+\.(xml|XML)"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="fileGenerico"> <xs:restriction base="xs:string"> <xs:pattern value="(.)+\.(PDF|pdf|TXT|txt|JPG|jpg|P7M|p7m|M7M| m7m|TSD|tsd)"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="siglaProvincia"> <xs:restriction base="xs:string"> <xs:length value="2"/> <xs:pattern value="[a-zA-Z]{2}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="cap"> <xs:restriction base="xs:string"> <xs:length value="5"/> <xs:pattern value="[0-9]{5}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="tipologiaSegnalazione"> <xs:restriction base="xs:string"> <xs:enumeration value="ALTRO"><xs:annotation><xs:documentation>ALTRO</xs:documentation></xs:anno tation></xs:enumeration> <xs:enumeration value="APERTURA"><xs:annotation><xs:documentation>APERTURA</xs:documentation></x s:annotation></xs:enumeration> <xs:enumeration value="CESSAZIONE"><xs:annotation><xs:documentation>CESSAZIONE</xs:documentation ></xs:annotation></xs:enumeration> <xs:enumeration value="MODIFICHE"><xs:annotation><xs:documentation>MODIFICHE</xs:documentation>< /xs:annotation></xs:enumeration> <xs:enumeration value="SUBENTRO"><xs:annotation><xs:documentation>SUBENTRO</xs:documentation></x s:annotation></xs:enumeration> <xs:enumeration value="TRASFORMAZIONE"><xs:annotation><xs:documentation>TRASFORMAZIONE</xs:docum entation></xs:annotation></xs:enumeration> </xs:restriction> </xs:simpleType> <xs:simpleType name="codiceConDescrizioneAllegatoTipiStandard"> <xs:restriction base="xs:string"> WebService per importare un adempimento SUAP in ComunicaStarweb 7/16 <xs:enumeration value="CI-COPIA CARTA DI IDENTITA'"><xs:annotation><xs:documentation>COPIA CARTA DI IDENTITA'</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="CPS-COPIA PERMESSO DI SOGGIORNO"><xs:annotation><xs:documentation>COPIA PERMESSO DI SOGGIORNO</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="PLPLANIMETRIA"><xs:annotation><xs:documentation>PLANIMETRIA</xs:documentation></xs :annotation></xs:enumeration> <xs:enumeration value="PS-PROCURA SPECIALE"><xs:annotation><xs:documentation>PROCURA SPECIALE</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="RT-RELAZIONE TECNICA/ASSEVERAZIONE"><xs:annotation><xs:documentation>RELAZIONE TECNICA/ASSEVERAZIONE</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="01-CERTIFICATO DI AGIBILITA'"><xs:annotation><xs:documentation>CERTIFICATO DI AGIBILITA'</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="02-CERTIFICATO DI DESTINAZIONE D'USO"><xs:annotation><xs:documentation>CERTIFICATO DI DESTINAZIONE D'USO</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="03-TITOLO DI GODIMENTO DEI LOCALI"><xs:annotation><xs:documentation>TITOLO DI GODIMENTO DEI LOCALI</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="05-CERTIFICAZIONE DI EMISSIONE FUMI IN ATMOSFERA"><xs:annotation><xs:documentation>CERTIFICAZIONE DI EMISSIONE FUMI IN ATMOSFERA</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="06-ASSEVERAZIONE ACUSTICO AMBIENTALE"><xs:annotation><xs:documentation>ASSEVERAZIONE ACUSTICO AMBIENTALE</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="07-ATTESTAZIONE PAGAMENTI"><xs:annotation><xs:documentation>ATTESTAZIONE PAGAMENTI</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="12-ATTO NOTARILE"><xs:annotation><xs:documentation>ATTO NOTARILE</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="13-TITOLO ABITATIVO"><xs:annotation><xs:documentation>TITOLO ABITATIVO</xs:documentation></xs:annotation></xs:enumeration> <xs:enumeration value="14CONTRATTO"><xs:annotation><xs:documentation>CONTRATTO</xs:documentation></xs:ann otation></xs:enumeration> <xs:enumeration value="15-DICHIARAZIONE DI SUCCESSIONE"><xs:annotation><xs:documentation>DICHIARAZIONE DI SUCCESSIONE</xs:documentation></xs:annotation></xs:enumeration> </xs:restriction> </xs:simpleType> <xs:simpleType name="codiceConDescrizioneAllegatoTipoAltro"> <xs:restriction base="xs:string"> <xs:pattern value="99\-.*"><xs:annotation><xs:documentation>ALTRO</xs:documentation></xs:ann otation></xs:pattern> <xs:maxLength value="80"/> </xs:restriction> </xs:simpleType> WebService per importare un adempimento SUAP in ComunicaStarweb 8/16 <xs:simpleType name="codiceConDescrizioneAllegato"> <xs:union memberTypes="codiceConDescrizioneAllegatoTipiStandard codiceConDescrizioneAllegatoTipoAltro"/> </xs:simpleType> <xs:element name="adempimento"> <xs:complexType> <xs:sequence> <xs:element name="codice_catastale_destinatario" type="codiceCatastale"/> <xs:element name="oggetto_comunicazione" type="stringaDescrizione"/> <xs:element name="nome_adempimento" type="stringaDescrizione"/> <xs:element name="nome_file_firmato" type="fileFirmato"/> <xs:element name="nome_file_xml" minOccurs="0" type="fileXml"/> <xs:element name="descrizione_pdf" minOccurs="0" type="xs:string"/> <xs:element name="allegato" maxOccurs="10" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="codice_e_descrizione" type="codiceConDescrizioneAllegato"/> <xs:element name="nome_file" type="fileGenerico"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="cciaa_destinataria" type="siglaProvincia"/> <xs:element name="user_telemaco" type="stringaSigle"/> <xs:element name="denominazione_impresa" type="stringaLarge"/> <xs:element name="tipologia_segnalazione" type="tipologiaSegnalazione"/> <xs:element name="provincia_suap" type="siglaProvincia"/> <xs:element name="comune_suap" type="xs:string"/> <xs:element name="comune_destinatario" type="xs:string"/> <xs:element name="indirizzo_suap" type="xs:string"/> <xs:element name="num_civico_suap" type="xs:string"/> <xs:element name="cod_istat_suap" type="xs:string"/> <xs:element name="cap_suap" type="cap"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Perchè sia valido è necessario inserire: • Il codice catastale (campo codice_catastale_destinatario) del comune destinatario, che deve ovviamente essere ABILITATO SUAP. • L’oggetto della comunicazione (campo oggetto_comunicazione) • Il nome dell’adempimento SUAP da inserire (campo nome_adempimento) WebService per importare un adempimento SUAP in ComunicaStarweb 9/16 • Il nome del file pratica SUAP PDF.P7M (di tipo CODICE_PRATICA.MDA.PDF.P7M , senza path prefisso) che deve essere contenuto nella cartella adempimento SUAP (campo nome_file_firmato) • Il nome del file dati pratica SUAP .XML (di tipo CODICE_PRATICA.MDA.XML , senza path prefisso) contenuto nella cartella adempimento SUAP (campo nome_file_xml). Questo campo non è obbligatorio. • la descrizione del pdf contenuto nella cartella adempimento SUAP (campo descrizione_pdf). Questo campo non è obbligatorio. • Da 0 a 10 allegati all’adempimento (nodi allegato per cui è obbligatorio inserire il nome_file (privo di path prefisso) ed un campo codice_e_descrizione. Quest’ultimo contiene il codice e la descrizione dell’allegato. Il formato è una stringa del tipo 'codice-descrizione'. Lo schema prevede alcune codifiche standard per le tipologie di allegato più comuni, qualora si volesse usare una descrizione personalizzata è sufficiente usare la codifica '99-descrizione'. • CCIAA destinataria (campo cciaa_destinataria). La sigla della provincia della CCIAA cui è destinato l’adempimento. • User Telemaco dell’utente che poi creerà l’adempimento in ComunicaStarweb (campo user_telemaco) • Denominazione dell’impresa denominazione_impresa) • Tipologia di segnalazione (campo tipologia_segnalazione) • Provincia dell’insediamento produttivo (campo provincia_suap) • Comune dell’insediamento produttivo (campo comune_suap) • Comune destinatario (campo comune_destinatario) • Indirizzo dell’insediamento produttivo (campo indirizzo_suap) • Numero civico dell’insediamento produttivo (campo num_civico_suap) • Codice ISTAT dell’insediamento produttivo (campo cod_istat_suap) • CAP dell’insediamento produttivo (campo cap_suap) cui associare l’adempimento (campo Particolare attenzione dovrà essere posta su caratteri speciali quali '&', '>', '<': questi caratteri dovranno essere inseriti in una sezione CDATA (es. <![CDATA[mario rossi & c. snc]]> ). Un esempio di file xml è il seguente: <?xml version="1.0" encoding="UTF-8" ?> <adempimento xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://starweb.infocamere.it/esportaAdempimentoSu apWeb/schema/descrittoreAcquisizione.xsd"> <codice_catastale_destinatario>A757</codice_catastale_destinatario> <oggetto_comunicazione>PROVA ADEMPIMENTO 1</oggetto_comunicazione> <nome_adempimento>ADEMPIMENTO 1</nome_adempimento> WebService per importare un adempimento SUAP in ComunicaStarweb 10/16 <nome_file_firmato>03532060161-210120111535.MDA.PDF.P7M</nome_file_firmato> <nome_file_xml>03532060161-21012011-1535.MDA.xml</nome_file_xml> <descrizione_pdf>Descrizione del pdf</descrizione_pdf> <allegato> <codice_e_descrizione>99-ALTRO</codice_e_descrizione> <nome_file>ALTRO_DOCUMENTO.PDF</nome_file> </allegato> <allegato> <codice_e_descrizione>01-CERTIFICATO DI AGIBILITA'</codice_e_descrizione> <nome_file>BOLLETTINO_ASL.PDF</nome_file> </allegato> <allegato> <codice_e_descrizione>CPS-COPIA PERMESSO DI SOGGIORNO</codice_e_descrizione> <nome_file>COPIA_PERMESSO_DI_SOGGIORNO.PDF</nome_file> </allegato> <allegato> <codice_e_descrizione>CPS-COPIA PERMESSO DI SOGGIORNO</codice_e_descrizione> <nome_file>COPIA_PERMESSO_DI_SOGGIORNO_2.PDF</nome_file> </allegato> <allegato> <codice_e_descrizione>PS-PROCURA SPECIALE</codice_e_descrizione> <nome_file>PROCURA_SPECIALE.PDF</nome_file> </allegato> <cciaa_destinataria>BL</cciaa_destinataria> <user_telemaco>T11111</user_telemaco> <denominazione_impresa>IMPRESA DI TEST</denominazione_impresa> <tipologia_segnalazione>MODIFICHE</tipologia_segnalazione> <provincia_suap>BL</provincia_suap> <comune_suap>BELLUNO</comune_suap> <comune_destinatario>BELLUNO</comune_destinatario> <indirizzo_suap>VIA DELLA SCARPATA AMMAZZACAPRONI</indirizzo_suap> <num_civico_suap>10</num_civico_suap> <cod_istat_suap>050026</cod_istat_suap> <cap_suap>32100</cap_suap> </adempimento> Che descrive il file zip così composto: WebService per importare un adempimento SUAP in ComunicaStarweb 11/16 Figura 2: Esempio contenuto file Zip in input Figura 3: Esempio contenuto della cartella Adempimento nel file Zip in input I path dell’xsd da inserire nella dichiarazione della root (adempimento) del descrittore xml sono i seguenti (per ciascun ambiente): COLLAUDO: http://starwebtest.infocamere.it/esportaAdempimentoSuapWeb/schema/descritto reAcquisizione.xsd PRODUZIONE: http://starweb.infocamere.it/esportaAdempimentoSuapWeb/schema/descrittoreAcquisi zione.xsd WebService per importare un adempimento SUAP in ComunicaStarweb 12/16 così: <adempimento xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://starweb.infocamere.it/esportaAdempime ntoSuapWeb/schema/descrittoreAcquisizione.xsd"> N.B. Gli ambienti di sviluppo e test sono ad uso interno Infocamere, l’ambiente di collaudo può essere utilizzato dall’esterno per provare il software, mentre l’ambiente di produzione è quello ufficiale di utilizzo del software. 2.1.2.4.1.2 La directory Adempimento SUAP Oltre all’xml descrittore il file ZIP deve contenere una cartella del tutto analoga a quella generata dalla componente “SCIA Lombardia” di ComunicaStarweb (Figura 3). La cartella Adempimento SUAP avrà nome identico al CODICE PRATICA e deve contenere almeno il file PDF firmato (P7M) e il file PDF SUAP (MDA.PDF). Come già detto, questi files (compreso l’MDA.XML) devono avere nome identico al CODICE PRATICA. Oltre ai file PDF, P7M e XML la directory potrà contenere gli eventuali allegati all’adempimento SUAP. I file allegati devono avere una dimensione massima di circa 4 Mb. 2.1.2.5 Funzionamento del web service Se vengono fornite credenziali di accesso si procede con le operazioni di importo dell’adempimento. Acquisito il file .ZIP il WS effettuerà una serie di controlli a cominciare dalla validità del file ZIP ricevuto. Verranno quindi controllate la presenza del file XML descrittore e della cartella Adempimento SUAP con i file che obbligatoriamente deve contenere (file firmato e pdf). Se presenti saranno effettuati controlli semantici sui nomi dei file e delle directory in modo da accertarsi che il codice pratica fornito sia valido. Quindi l’xml descrittore viene validato tramite l’xsd proprietario ed elaborato in modo da estrarre le informazioni necessarie all’inserimento dell’adempimento SUAP. Il WS quindi procede ad effettuare controlli incrociati tra i file fisici presenti nello ZIP e quelli dichiarati nell’xml. Viene controllato che l’utenza Telemaco fornita nel descrittore sia valida e che il comune destinatario sia abilitato SUAP. Se tutti i controlli andranno a buon fine il WS creerà un Adempimento SUAP analogo a quelli che è possibile creare tramite ComunicaStarweb e restituirà all’utente un messaggio di successo. Nel caso in cui uno dei precedenti controlli non sia andato a buon fine il WS restituirà all’utente un messaggio di errore. WebService per importare un adempimento SUAP in ComunicaStarweb 13/16 Alla fine di una transazione completa, appena descritta, il WS effettuerà la logout da eaco in modo da permettere allo user di effettuare un nuovo export o di loggarsi in Comunica. 2.1.2.5.1.1 L’ output del WS L’output del WS sarà una stringa del tipo: ESITO|CODICE|MESSAGGIO ESITO potrà assumere valore OK o KO a seconda che sia positivo o negativo. CODICE e MESSAGGIO potranno assumere i seguenti valori: #successo ok=OK|0|EXPORT DELL'ADEMPIMENTO AVVENUTO CON SUCCESSO #possibili output di errore ko.adempimento.suap=KO|1|ERRORE NELL'ESTRAZIONE DELLO ZIP: LA CARTELLA ADEMPIMENTO SUAP NON E' PRESENTE. ko.zip.corrotto=KO|2|ERRORE NELL'ESTRAZIONE DELLO ZIP: IL FILE ZIP RISULTA CORROTTO. ko.nome.allegato=KO|4|ERRORE NELL'ESTRAZIONE DELLO ZIP: UNO O PIU' FILE ALLEGATI CONTENGONO NEL NOME CARATTERI NON CONSENTITI. ko.file.firmato=KO|5|ERRORE NELL'ESTRAZIONE DELLO ZIP: IL FILE PDF FIRMATO (PDF.P7M) NON E' PRESENTE. ko.file.pdf=KO|6|ERRORE NELL'ESTRAZIONE DELLO ZIP: IL FILE PDF SUAP NON E' PRESENTE. ko.file.xml=KO|7|ERRORE NELL'ESTRAZIONE DELLO ZIP: IL FILE XML DESCRITTORE DELL'ADEMPIMENTO NON E' PRESENTE. ko.file.xml.validazione=KO|8|ERRORE: IL FILE XML DESCRITTORE DELL'ADEMPIMENTO NON E' VALIDO. ko.file.allegato=KO|9|ERRORE: UN ALLEGATO DICHIARATO NEL DESCRITTORE NON E' PRESENTE NELLO ZIP. NOME ALLEGATO: ko.file.mda.xml=KO|10|ERRORE: IL FILE MDA.XML DICHIARATO NEL DESCRITTORE NON PRESENTE E' PRESENTE NELLO ZIP. ko.file.p7m=KO|11|ERRORE: IL FILE PDF.P7M DICHIARATO NEL DESCRITTORE NON PRESENTE E' PRESENTE NELLO ZIP. ko.file.allegati.zip=KO|12|ERRORE: ESISTONO FILE ALLEGATI PRESENTI NELLO ZIP MA NON DICHIARATI NEL DESCRITTORE XML. ko.user.telemaco=KO|13|ERRORE: LA USERID TELEMACO FORNITA NEL FILE DESCRITTORE NON ESISTE OPPURE NON POSSIEDE I PRIVILEGI PER ACCEDERE A STARWEB. ko.user.non.profilato=KO|14|ERRORE: LA USERID FORNITA NON POSSIEDE IL PROFILO DI AUTENTICAZIONE AL WEB SERVICE. ko.user.non.esistente=KO|15|ERRORE: LA USERID FORNITA NON ESISTE. ko.comune.suap=KO|16|ERRORE: IL COMUNE DESTINATARIO NON E'ABILITATO SUAP. ko.query.sequenza.adempimento=KO|17|ERRORE DI INSERIMENTO: IMPOSSIBILE INSERIRE L'ADEMPIMENTO,LA SEQUENZA ADEMPIMENTO NON ESISTE. ko.insert.adempimento=KO|18|ERRORE NELL'INSERIMENTO DELL'ADEMPIMENTO. ko.insert.adempimento.unique=KO|19|ERRORE NELL'INSERIMENTO DELL'ADEMPIMENTO: IL CODICE PRATICA FORNITO ESISTE GIA'. ko.insert.allegato=KO|20|ERRORE NELL'INSERIMENTO DEGLI ALLEGATI DELL'ADEMPIMENTO. ko.db.data=KO|21|ERRORE NELLA COMUNICAZIONE CON LA BASE DATI. ko.final.dir=KO|22|ERRORE NELL'EXPORT DELLA DIRECTORY ADEMPIMENTO. ko.config=KO|23|ERRORE NELL'INIZIALIZZAZIONE DEL WEB SERVICE. ko.dimensione.allegato=KO|24|ERRORE NELL'ESTRAZIONE DELLO ZIP: UNO O PIU' FILE ALLEGATI SUPERANO LA MASSIMA DIMENSIONE CONSENTITA ko.codice.pratica=KO|25|ERRORE NELL'ESTRAZIONE DELLO ZIP: IL CODICE PRATICA FORNITO E' INCONGRUENTE. IL FORMATO CORRETTO E': CF-ddMMyyyy-HHmm WebService per importare un adempimento SUAP in ComunicaStarweb 14/16 ko.codice.pratica.cf=KO|26|ERRORE NELL'ESTRAZIONE DELLO ZIP: IL CODICE PRATICA FORNITO E' INCONGRUENTE. IL CF CHE LA COMPONE NON E' CORRETTO ko.codice.pratica.data=KO|27|ERRORE NELL'ESTRAZIONE DELLO ZIP: IL CODICE PRATICA FORNITO E' INCONGRUENTE. IL FORMATO DELLA DATA CHE LA COMPONE NON E' CORRETTO ko.input.name=KO|28|ERRORE NELLA LETTURA DEI PARAMETRI IN INPUT: IL PARAMETRO fileZipName RISULTA VUOTO. ko.input.file=KO|29|ERRORE NELLA LETTURA DEI PARAMETRI IN INPUT: IL PARAMETRO fileZip RISULTA VUOTO. ko.generale=KO|30|ERRORE GENERALE: CONTATTARE L'AMMINISTRATORE DI SISTEMA. ko.login.minosse=KO|31|ERRORE NELL'AUTENTICAZIONE UTENTE: CONTROLLARE LA CORRETTEZZA DI USERID E PASSWORD E CHE NON ESISTA UNA SESSIONE APERTA PER QUESTO USERID. Il codice 31 è usato in caso di errore non censito. 2.2 Client per interrogazione WS esporta adempimento SUAP Il WSDL che descrive il servizio sarà accessibile usando i seguenti endpoint COLLAUDO: http://starwebtest.infocamere.it/esportaAdempimentoSuapWSesportaAdempimentoSuapWS/EsportaAdempimentoSuapBean?wsdl PRODUZIONE: http://starweb.infocamere.it/esportaAdempimentoSuapWSesportaAdempimentoSuapWS/EsportaAdempimentoSuapBean?wsdl N.B. Gli ambienti di sviluppo e test sono ad uso interno Infocamere, l’ambiente di collaudo può essere utilizzato dall’esterno per provare il software, mentre l’ambiente di produzione è quello ufficiale di utilizzo del software. L’applicazione esterna che vorrà invocarlo, dovrà generare un apposito client a partire dal WSDL dato. Il Client dovrà usare lo standard JAX-WS 2.x RI, e in particolare dovrà implementare la codifica MTOM (Message Transmission Optimization Mechanism ) per l’invio del file zip. Sarà quindi necessario abilitare l’uso di MTOM sul client in questo modo: EsportaAdempimentoSuapService service = new EsportaAdempimentoSuapService(); EsportaAdempimentoSuap port = service.getEsportaAdempimentoSuapPort(); Binding binding = ((BindingProvider)port).getBinding(); ((SOAPBinding)binding).setMTOMEnabled(true); Abilitato l’MTOM, si potrà richiamare il metodo “esportaAdempimentoSuap” passandogli i due parametri richiesti, ovvero il file zip in formato javax.activation.DataHandler e il nome del WebService per importare un adempimento SUAP in ComunicaStarweb 15/16 file (senza path e senza estensione) in formato java.lang.String. Il Client dovrà criptare la password da inviare al WS nel modo descritto nell’apposito paragrafo (2.1.2.2). WebService per importare un adempimento SUAP in ComunicaStarweb 16/16