nodejs-bpxwdyn
v1.0.4
Published
node-js addon to interface BPXWDYN (dynamic allocation)
Downloads
9
Readme
nodejs-bpxwdyn
Node.js interface to the BPXWDYN program (svc 99 service with text commands)
Installation
Before installing, download and install IBM Open Enterprise SDK for Node.js 16 or higher. nodejs-bpxwdyn v1.0.3 or higher is required for Node.js 18 or higher.
Install
npm install nodejs-bpxwdyn
Use
bpxwdyn.execute_rtvars
Arguments:
- Command to BPXWDYN Reference 1
- Second argument, is the call-back function for asynchronous call.
Returns:
This function requests BPXWDYN to return DDNAME, DSNAME and VOLSER The callback function receive five return objects, they are respectively:
- Error String, if Return code is not 0
- Return code
- DDNAME if Return code is 0
- DSNAME if Return code is 0
- VOLSER if Return code is 0
bpxwdyn.execute
Arguments:
- Command to BPXWDYN Reference 1
- Second argument, is the call-back function for asynchronous call.
Returns:
This function does not requests BPXWDYN to return variables The callback function receive two return objects, they are respectively:
- Error String, if Return code is not 0
- Return code
Example:
const bpxwdyn = require('nodejs-bpxwdyn');
async function foo() {
console.log("\n\n------------------------------------------------------TESTING alloc shr msg(2) da('SYS1.MACLIB(GETMAIN)')");
let p1 = new Promise((resolve, reject) => {
bpxwdyn.execute_rtvars(
"alloc shr msg(2) da('SYS1.MACLIB(GETMAIN)')",
function(err, rc, ddname, dsname, volser) {
console.log(
"\n\n----- ALLOC SHR DA('SYS1.MACLIB(GETMAIN)') ---------");
if (rc == 0) {
console.log("ddname-received", ddname);
console.log("dsname-received", dsname);
console.log("volser-received", volser);
resolve(ddname);
} else {
console.log("error-string", err);
reject("allocate failed");
}
});
}).catch((error) => {
console.log("Error", error);
return;
})
let ddname_allocated = await p1;
console.log("\n\n------------------------------------------------------TESTING free dd(" + ddname_allocated + ")");
let p2 = new Promise((resolve, reject) => {
bpxwdyn.execute("free dd(" + ddname_allocated + ")", function(err, rc) {
console.log("\n\n----- FREE DD('" + ddname_allocated + "')-----");
if (rc == 0) {
resolve("OK");
} else {
console.log("error-string", err);
reject("free failed");
}
});
}).catch((error) => {
console.log("Error", error);
return;
})
let freed = await p2;
console.log("\n\n------------------------------------------------------TESTING alloc diag(2) shr msg(2) da('DOES.NOT.EXIST')" );
bar()
}
async function bar() {
let p1 = new Promise((resolve, reject) => {
bpxwdyn.execute_rtvars(
"alloc diag(2) shr msg(2) da('DOES.NOT.EXIST')",
function(err, rc, ddname, dsname, volser) {
console.log(
"\n\n-----ALLOC DA('DOES.NOT.EXIST')---------------------");
if (rc == 0) {
console.log("ddname-received", ddname);
console.log("dsname-received", dsname);
console.log("volser-received", volser);
resolve(ddname);
} else {
console.log("error-string", err);
reject("allocate failed");
}
});
}).catch((error) => {
console.log("Error", error);
})
let ddname_allocated = await p1;
}
foo();
Test
node test.js