Scheduled Script to Automatically Close Old Transactions

If client has old invoices or sales orders that need to be closed after a specific time, we can use a Scheduled Script.

Example: Auto-close Sales Orders older than 90 days

define(['N/record', 'N/search', 'N/task'], function(record, search, task) {
    function execute(scriptContext) {
        let salesOrderSearch = search.create({
            type: search.Type.SALES_ORDER,
            filters: [['datecreated', 'before', 'daysago90'], 'AND', ['status', 'noneof', 'Closed']],
            columns: ['internalid']
        });


        salesOrderSearch.run().each(function(result) {
            record.submitFields({
                type: record.Type.SALES_ORDER,
                id: result.getValue('internalid'),
                values: { orderstatus: 'C' } // C = Closed
            });
            return true;
        });
    }
    return { execute: execute };
});

Leave a comment

Your email address will not be published. Required fields are marked *