N/query suitescript sample

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 */
define(['N/query', 'N/record', 'N/ui/serverWidget', 'N/log'], function(query, record, serverWidget, log) {


    function onRequest(context) {
        if (context.request.method === 'GET') {
            var form = serverWidget.createForm({
                title: 'Customer and Sales Order List'
            });


            var sublist = form.addSublist({
                id: 'custpage_customer_sublist',
                type: serverWidget.SublistType.LIST,
                label: 'Customers and Sales Orders'
            });


            sublist.addField({
                id: 'custpage_customerid',
                type: serverWidget.FieldType.TEXT,
                label: 'Customer ID'
            });
            sublist.addField({
                id: 'custpage_customername',
                type: serverWidget.FieldType.TEXT,
                label: 'Customer Name'
            });
            sublist.addField({
                id: 'custpage_salesorderid',
                type: serverWidget.FieldType.TEXT,
                label: 'Sales Order ID'
            });
            sublist.addField({
                id: 'custpage_salesorderamount',
                type: serverWidget.FieldType.CURRENCY,
                label: 'Sales Order Amount'
            });


            var myQuery = query.create({
                type: query.Type.CUSTOMER
            });


            var customerAlias = myQuery.join({
                fieldId: 'salesorder'
            });


            myQuery.columns = [
                myQuery.createColumn({ fieldId: 'entityid' }),
                myQuery.createColumn({ fieldId: 'companyname' }),
                customerAlias.createColumn({ fieldId: 'tranid' }),
                customerAlias.createColumn({ fieldId: 'total' })
            ];


            var resultSet = myQuery.run();
            var results = resultSet.results;


            for (var i = 0; i < results.length; i++) {
                sublist.setSublistValue({
                    id: 'custpage_customerid',
                    line: i,
                    value: results[i].values[0].value
                });
                sublist.setSublistValue({
                    id: 'custpage_customername',
                    line: i,
                    value: results[i].values[1].value
                });
                sublist.setSublistValue({
                    id: 'custpage_salesorderid',
                    line: i,
                    value: results[i].values[2].value
                });
                sublist.setSublistValue({
                    id: 'custpage_salesorderamount',
                    line: i,
                    value: results[i].values[3].value
                });
            }


            form.addSubmitButton({
                label: 'Delete All Customers'
            });


            context.response.writePage(form);
        } else if (context.request.method === 'POST') {
            var deleteQuery = query.create({
                type: query.Type.CUSTOMER
            });


            deleteQuery.columns = [
                deleteQuery.createColumn({ fieldId: 'internalid' })
            ];


            var deleteResultSet = deleteQuery.run();
            var deleteResults = deleteResultSet.results;


            for (var i = 0; i < deleteResults.length; i++) {
                try {
                    record.delete({
                        type: record.Type.CUSTOMER,
                        id: deleteResults[i].values[0].value
                    });
                    log.audit('Customer Deleted', 'Customer ID: ' + deleteResults[i].values[0].value);
                } catch (e) {
                    log.error('Error Deleting Customer', e.toString());
                }
            }


            context.response.write('All customers have been deleted.');
        }
    }


    return {
        onRequest: onRequest
    };
});


Leave a comment

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