|
|
 |
 |
Lo script Perl utilizza l'interfaccia SOAP per dialogare con il Server Soap allo scopo di ottenere i dati presenti nel DB.
Ciascuno script quindi:
- prepara la domanda, indicando il servizio richiesto e i relativi parametri
- invia la domanda via TCP/P
- riceve la risposta via TCP/IP (il Server SOAP risponde sempre in XML, anche quando deve comunicare delle anomalie, ad esempio nella validazione dei parametri della domanda; l'unico caso in cui non arriva alcuna risposta al Client SOAP si verifica quando il Server SOAP con cui cerca di stabilire la connessione non č pių attivo)
Esempio di domanda effettuata dal Soap Client in Perl
# Modulo AR di interfaccia SOAP
use ArSoap::SoapCaller;
...
# Interfaccia SOAP
$response = SoapCaller::Call ( 'http://ar3.ar-ent.net:90/',
'ArSoap/Inet/Rs/Valori/Divise.ars',
'http://www.ar-ent.net/CmbDiv',
$parameters
);
...
|
Parametri (in formato XML) associati alla domanda
$parameters = '
<s:Envelope xmlns:s="urn:schemas-xmlsoap-org:soap.v1"
xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance"
xmlns:n1="http://www.ar-ent.net/">
<s:Body>
<n1:CmbDiv>
<ar:question xmlns:ar="http://www.ar-ent.net/">
<ar:parms>
<ar:dt_rif>30-06-2000</ar:dt_rif>
<ar:c_div_importi>EUR</ar:c_div_importi>
<ar:nummax>20</ar:nummax>
<ar:c_div>CAD</ar:c_div>
<!-- ar:c_div>XYZ</ar:c_div -->
</ar:parms>
</ar:question>
</n1:CmbDiv>
</s:Body>
</s:Envelope>';
|
Risposta favorevole (in formato XML) del Server Soap
$response = '
<s:Envelope xmlns:s="urn:schemas-xmlsoap-org:soap.v1"
xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance">
<s:Body>
<ar:answer>
<ar:status>ok</ar:status>
<ar:divisa>
<ar:n_div>3</ar:n_div>
<ar:c_div>CAD</ar:c_div>
<ar:dsc_lun>Dollari Canadesi</ar:dsc_lun>
<ar:c_div_importi>EUR</ar:c_div_importi>
<ar:dt_rif>30-06-2000</ar:dt_rif>
<ar:cambi>
<ar:cambio>
<ar:dt>30-06-2000</ar:dt>
<ar:dtjul>36707</ar:dtjul>
<ar:valore>1,41570</ar:valore>
</ar:cambio>
<ar:cambio>
<ar:dt>29-06-2000</ar:dt>
<ar:dtjul>36706</ar:dtjul>
<ar:valore>1,40520</ar:valore>
</ar:cambio>
<ar:cambio>
<ar:dt>28-06-2000</ar:dt>
<ar:dtjul>36705</ar:dtjul>
<ar:valore>1,39400</ar:valore>
</ar:cambio>
...
<ar:cambio>
<ar:dt>05-06-2000</ar:dt>
<ar:dtjul>36682</ar:dtjul>
<ar:valore>1,39050</ar:valore>
</ar:cambio>
</ar:cambi>
</ar:divisa>
</ar:answer>
</s:Body>
</s:Envelope>';
|
Risposta con errore (in formato XML) del Server Soap
$error = '
<s:Envelope xmlns:s="urn:schemas-xmlsoap-org:soap.v1"
xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance">
<s:Body>
<s:Fault>
<faultcode>s:Server</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<actor>PRSWE110::impl_CmbDiv()</actor>
<content>Divisa con codice='XYZ' non presente</content>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>';
|
Links da
- Amministrazione
- 3SLBJSU Sviluppo della tecnologia Perl
- pres.arg.10 Struttura Tecnica di I-NetSim
- Disegno Tecnico
- 3SOUNIF Perl di presentazione
|