Web Service per importare un adempimento SUAP in

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