Our shop floor operators are getting logged out of the automated terminal system every 15-20 minutes during production tracking in NetSuite 2023.1. The terminals run a custom SuiteScript Suitelet interface for work order completion and material consumption entry.
We’ve set the session timeout policy to 60 minutes in the role settings, but operators are still being kicked out much sooner. They’re in the middle of entering production data when the session expires, losing their work.
Suitelet code includes:
function onRequest(context) {
var form = serverWidget.createForm({title: 'Production Entry'});
// form fields for work orders
context.response.writePage(form);
}
Is there a way to implement role-based exceptions or a keep-alive mechanism for shop floor terminals? These are dedicated devices that should maintain active sessions during production shifts.
The issue is that Suitelets don’t automatically refresh the session like regular NetSuite pages do. You need to add a client script that pings the server periodically to keep the session alive. Add a pageInit function that sets up a setInterval call to make a lightweight server request every 5-10 minutes.
Keep-alive pings are very lightweight and shouldn’t hit governance limits if done correctly. Use a RESTlet that returns a simple status with minimal processing - just enough to keep the session active. You can make these calls every 10 minutes safely. The key is to avoid any database operations in the keep-alive endpoint.
We’re not using kiosk mode browsers - just regular Chrome in fullscreen. The cookies are persisting. So it sounds like we definitely need a keep-alive script. But would that affect NetSuite’s governance limits if we’re pinging every few minutes across 20+ terminals?