Inline Editing’s xedit Events

Whenever any record is edited inline, whether from the UI or a Script using submitFields, NetSuite will trigger an xedit User Event for that record. You can use this trigger type to make sure that any User Events you have deployed on the record being edited either process or avoid Inline Edits appropriately.

function beforeSubmit(context) {

    if (context.type === context.UserEventType.XEDIT) {
        // Do something special for Inline Edit...
    }
    
    // ...
}

function afterSubmit(context) {
    if (context.type === context.UserEventType.XEDIT) {
        // Avoid doing anything on Inline Edit
        return;
    }
    
    // ...
}

The only exception to this rule is when an Inline Edit is triggered by another User Event. Actions taken in User Event scripts will never trigger other User Event scripts.

For example, if you have an afterSubmit User Event on the Sales Order that automatically creates an appropriate Invoice, no User Events deployed to the Invoice record will be triggered. This is because NetSuite never chains User Events. In theory, this is to prevent any one script from infinite looping or cascading a whole bunch of database interactions, but in practice it is often a huge barrier to building efficient sequence flows across multiple record types.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Related posts

January 7, 2021

Anything I wrote today about business would both feel and be inadequate. I simply can’t arrive at the words to express how I feel in this moment. So instead, here are a few helpful ...

Read More

December 20, 2020

2020 was a hundred swift kicks to the shorts and one giant kick in the ass. If you’ve lost people you love, if you’ve gotten sick or hurt, if you’ve lost your job, if ...

Read More

December 16, 2020

“I’ve been meaning to learn SuiteScript, but it’s hard to find the time …”“We’re slammed, and I just don’t have the time …”“I haven’t made the time …” All are variations of a theme ...

Read More

December 14, 2020

Last week we looked at mimicking the functionality of a REST endpoint with its own module (e.g. retrieving a User, or a list of Users, refreshing a token, etc). For complex integrations that rely on a large ...

Read More