Hallo,

wir wollen von Node.js aus via Stored Procedure und ODBC auf ein RPGLE-Programm zugreifen um Daten zu ermitteln.

Ganz grob funktioniert das wie folgt:

Es kommt eine Anfrage von Node.js via Stored Procedure auf die i5. Dort werden die Daten ermittelt und wieder zurückgegeben.

Die Anfrage (es werden 2 Parameter übergeben) kommt korrekt an. Nach der beendigung meines Programmes kommen die Werte jedoch nicht im Zielsystem an.

Ich poste mal den Code:

=============================

var sql = `CALL PPSO.SP_KNKTON1(?,?)`

odbc.connect(dsn, (error, connection) => {
connection.query(sql, ['DE',''], function(err, result) {
if(err) {
console.log(err)
} else {
console.log(result)
}
connection.close()
})
});
=========================

es wurde auch so versucht:

=========================

async function callProcedureExample(res) {
const dsn = "DSN=NodeJS;UID=XXXX;PWD=XXXX"
try {
const connection = await odbc.connect(dsn);
const result = await connection.callProcedure(null, 'PPSO', 'SP_KNKTON1', ['DEcdeabcde', 'abcdeabcde']);
console.log(result);
} catch(err) {
console.log(err)

=========================

Beides funktioniert leider nicht!

Die Console zeigt folgendes an:


=========================

Statement: 'CALL PPSO.SP_KNKTON1(?,?)'
parameters: [ 'DE', '' ],
return: undefined,
count: 0,
columns: ]

=========================

Fakt ist, dass das ILE-Programm sauber funktioniert, der Aufruf korrekt ist (die Parameter werden übergeben), jedoch im rufenden System nichts zurückkommt.

Hat jemand eine Ahnung warum die Rückgabe nicht funktioniert? Via. PHP-Script funktioniert es einwandfrei!