For some reason, the second nested async DB function never gets the results returned. First db call gets some planners from MSSQL needed for a 2nd db call to an OracleDB. I can see the Oracle query works as i get the results in the db function displayed.
app.get('/api/Scrap/:ParmLocation/:ParmDepartment', (req, res) => {
var ParmLocation = req.params.ParmLocation;
var ParmDepartment = req.params.ParmDepartment;
console.log('/api/Scrap called for ' + ParmLocation + ' Department ' + ParmDepartment + ' @ ' + Date());
// First get planners for this department
var query = `SELECT Planners FROM DeptPlanners where Department = '${ParmDepartment}'`
var PromisePlanners = db.DBQueryBHBrowser(query);
var Planners = '';
PromisePlanners.then(function(result) {
result.recordset.forEach(function(row){
Planners = Object.values(Object.values(row))[0];
});
console.log('/api/Scrap Planners completed @ ' + Date());
console.log('Planners: ' + Planners);
var query = `SELECT TO_CHAR(TO_DATE(SUBSTR(ILTRDJ,-5), 'YYDDD'),'WW') AS Week, SUM(ILTRQT / 1000 * -1) AS TOTQTY, SUM(ILPAID / 100 * -1) AS TOTAMT
FROM PRODDTA.F4111
JOIN PRODDTA.F4102 ON ILITM = IBITM AND IBMCU = ILMCU AND IBANPL NOT IN (50030002,50030039)
JOIN PRODDTA.F4101 ON IMLITM = ILLITM
JOIN PRODCTL.F5500001 On ILTRDJ = DCGRDT
LEFT JOIN PRODCTL.F0005 ON ILRCD= LTRIM(F0005.Drky)
And DRSY='42' AND DRRT='RC'
WHERE ILMCU = ' 50010' AND ILDCT IN('ID', 'IS')
AND ILTRDJ BETWEEN 123001 AND 123365
AND IBANPL IN (${Planners})
AND ILRCD NOT IN('517','509') AND ILUSER <> 'HIPPK'
GROUP BY TO_CHAR(TO_DATE(SUBSTR(ILTRDJ,-5), 'YYDDD'),'WW')
ORDER BY Week`
var PromiseScrap = db.DBQueryJDE(query);
PromiseScrap.then(function(result) {
//if (debugMode == true) {
console.log(`/api/Scrap ${ParmLocation} ${ParmDepartment} completed @ ${Date()}`);
console.log(`JDE Data:` + result ); // This is always 'Undefined'
//}
res.send(result);
}).catch(function () {
console.log("Promise Rejected for api/Scrap");
});
}).catch(function () {
console.log("Promise Rejected for /api/Scrap get Planners");
});
})
The second call DBQueryJDE has
async function DBQueryJDE(sqlquery) {
try {
//if (debugMode) {
console.log('Oracle SQL:\n' + sqlquery);
//}
var oracledb = require('oracledb');
var connectionProperties = {
user: process.env.DBAAS_USER_NAME || "SomeUserID",
password: process.env.DBAAS_USER_PASSWORD || "SomePassword",
connectString: "(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = db92IF.bherp.local)(PORT = 1521))(CONNECT_DATA =(SERVICE_NAME= DB92IF.bherp.local)))"};
oracledb.getConnection(connectionProperties, function (err, connection) {
if (err) {
console.error(err.message);
response.status(500).send("Error connecting to DB");
return;
}
connection.execute(sqlquery,
function (err, result) {
if (err) {
console.error(err.message);
response.status(500).send("Error getting data from JDE DB");
doRelease(connection);
return;
}
console.log("RESULTSET:" + JSON.stringify(result));
doRelease(connection);
//console.log('returned from close');
return result;
}
);
});
//return result;
} catch (error) {
console.log('DBErrorJDE: ' + err.message + '\n Query:' + sqlquery);
doRelease(connection);
return;
}
};
The results in console are
node app Dashboard server listening on port 3000
/api/Scrap called for BHNW Department Manifolds @ Wed May 03 2023 09:19:54 GMT-0400 (Eastern Daylight Time)
/api/Scrap Planners completed @ Wed May 03 2023 09:19:54 GMT-0400 (Eastern Daylight Time)
Planners: 50030015,50030029
Oracle SQL: SELECT TO_CHAR(TO_DATE(SUBSTR(ILTRDJ,-5), 'YYDDD'),'WW') AS Week, SUM(ILTRQT / 1000 * -1) AS TOTQTY, SUM(ILPAID / 100 * -1) AS TOTAMT FROM PRODDTA.F4111 JOIN PRODDTA.F4102 ON ILITM = IBITM AND IBMCU = ILMCU AND IBANPL NOT IN (50030002,50030039) JOIN PRODDTA.F4101 ON IMLITM = ILLITM JOIN PRODCTL.F5500001 On ILTRDJ = DCGRDT LEFT JOIN PRODCTL.F0005 ON ILRCD= LTRIM(F0005.Drky) And DRSY='42' AND DRRT='RC' WHERE ILMCU = ' 50010' AND ILDCT IN('ID', 'IS') AND ILTRDJ BETWEEN 123001 AND 123365 AND IBANPL IN (50030015,50030029) AND ILRCD NOT IN('517','509') AND ILUSER <> 'HIPPK' GROUP BY TO_CHAR(TO_DATE(SUBSTR(ILTRDJ,-5), 'YYDDD'),'WW') ORDER BY Week
/api/Scrap BHNW Manifolds completed @ Wed May 03 2023 09:19:54 GMT-0400 (Eastern Daylight Time)
JDE Data:undefined
RESULTSET:{"metaData":[{"name":"WEEK"},{"name":"TOTQTY"},{"name":"TOTAMT"}],"rows":[["01",24,1573.83],["02",35,2096.06],["03",26,903.28],["04",16,729.95],["05",25,873.44],["06",61,2015.3500000000001],["07",28,2293.91],["08",23,1223.8500000000001],["09",24,800.9],["10",41,1366.04],["11",17,1712.95],["12",30,1588.1200000000001],["13",45,1189.51],["14",33,1104.3],["15",71,2378.3],["16",38,1430.72],["17",35,2559.43],["18",22,725.89]]}