Aggiornamento del 16/07/2026: Approfitto della segnalazione di Silvano per aggiornare questa pagina: con HTTPGETCLOB va sempre in errore, ho provato HTTP_GET e funziona correttamente … è sicuramente ancora un problema di certificati HTTPS. Ho aggiornato il repo gist con la nuova versione HTTP_GET e funziona.
Riprendo questo vecchio post da Faq400.com … prima del blog …perché un un post ancora molto ricercato nonostante abbia i suoi anni!
Alcuni miei clienti inserivano nella tabella dei cambi l’aggiornamento degli stessi tutti i giorni o, almeno, una volta alla settimana.
Con un una piccola procedura RPG e SQL, tramite le funzioni HTTP di SQL stesso, vado a prendere i cambi direttamente dal portale della BCE tramite un ottima WEB API messa a disposizione.
Ho messo il sorgente in questo repository Gist di Github
https://gist.github.com/Faq400Git/72431bdeb7998b081cce3b29cb0fe89a
Se guardi il sorgente è una semplice procedure che chiama il web service con HTTPGETCLOB (no, dal 2026 HTTP_GET!!) SQL e ne fa il parsing tramite le funzioni XMLTABLE sempre con SQL … semplice no?
Attenzione … il servizio della BCE è HTTPS … il tuo sistema deve essere configurato per SSL … con l’installazione degli appositi prodotti programma di sistema operativo e con almeno il certificato *SYSTEM nella DCM … come spiegato a questo link: (https://www.ibm.com/support/pages/how-create-system-store-dcm)
Aggiornamento Febbraio 2025: Ho appena aggiunto un post con una guida pratica all’aggiornamento dei certificati per Java e DCM: Aggiornamento Certificati CA per BCE: Guida Pratica
--- Roberto De Pedrini Faq400.comL’estensione “RPG IV to Free Format Conversion” sviluppata da Bob Cozzi (Cozzi Research) è pensata per semplificare la conversione di…
Ciao a tutti, oggi voglio segnalarvi un altro interessante contributo di Massimo Duca, parte della sua ormai nota serie IBM…
Incuriosito da alcuni messaggi di Cristian Larsen su Linkedin (New Release - Display File DDS Edit v.0.10.1) ho voluto scaricare…
Ciao a tutti,oggi voglio segnalarvi un annuncio che potrebbe segnare una svolta per lo sviluppo applicativo su ambienti IBM: Project…
Voglio segnalarvi un nuovo articolo molto interessante di Massimo Duca nella serie IBM i & SQL Tips. In questo sesto…
Ciao a tutti, voglio segnalarvi un post molto utile di Marco Riva sul suo sito Markonetools, in cui spiega in…
View Comments
Ciao, da qualche giorno a questa parte la procedura per download cambi dal sito della BCE non funziona più.
La query che copio qui di seguito ritorna il seguente errore:
Stato SQL: 38000
Codice fornitore: -4302
Messaggio: [SQL4302] La procedura memorizzata Java o la funzione definita dall'utente SYSTOOLS.HTIPGETBLOB e il nome specifico
HTTPG00001 sono stati interrotti con un errore "java.lang.NullPointerException:null". Causa ..: La procedura memorizzata Java o la funzione definita dall'utente è stata interrotta con una eccezione Java. Se la traccia del componente SQJAVA è attiva, la traccia del componente per il lavoro contiene uno stack Java per il metodo interrotto. Correzione: Debug del metodo Java per eliminare l'errore.
QUERY SQL que ritorna l'errore:
select time, currency, dec(round(dec(rate, 20, 14), 4), 18, 10) from
(
SELECT * FROM XMLTABLE ( XMLNAMESPACES
( DEFAULT 'http://www.ecb.int/vocabulary/2002-08-01/eurofxref' ,
'http://www.gesmes.org/xml/2002-08-01' AS "gesmes") ,
'gesmes:Envelope/Cube/Cube/Cube' PASSING XMLPARSE
( DOCUMENT SYSTOOLS.HTTPGETBLOB
('https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml',
''))
COLUMNS currency CHAR(3) PATH '@currency',
rate REAL PATH '@rate',
time DATE PATH '../@time') AS ExchangeRates
) x
Vi ringrazio in anticipo per l'aiuto che ci vorrete dare.
Buona giornata.
Silvano Pacifici
Viba Spa