Run SQL queries against NetSuite using SuiteQL through SuiteTalk Rest Webservices.
This class extends netsuite-rest
npm i suiteql
This package is still compatible with CommonJS. But some dependencies, like got
are now available only in ESM. This package will not be modified to support latest got
versions to stay compatible with CommonJS. Instead you can use the native ESM module netsuite-api-client, which is a fork of the current package.
const suiteql = require('suiteql');
let suiteQL = new suiteql({
consumer_key: process.env.consumer_key,
consumer_secret_key: process.env.consumer_secret_key,
token: process.env.token,
token_secret: process.env.token_secret,
realm: process.env.realm,
base_url: process.env.base_url
});
query(string, limit = 1000, offset = 0)
-
string - Select query to run
-
limit - Limit number of rows, max is 1000
-
offset - Rows to start from
This method returns with the promise support, response will be in JSON format
let transactions = await suiteQL.query("select id from transaction", 10, 0);
When working on large number of rows, stream is handy
queryAll(string, limit = 1000)
-
string - Select query to run
-
limit - Limit number of rows, max is 1000
let items = [];
let st = suiteQL.queryAll(`
select
tranid, id from transaction
where
rownum <= 30
`);
st.on("data", (data) => {
items.push(data);
});
st.on("end", () => {
console.log("stream ended")
});