Frankk
23-11-21, 13:46
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!
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!