Create a Simple Form

This sample is a Suitelet that creates a simple form.

The conversion of this script from SuiteScript 1.0 to SuiteScript 2.1 includes the following:

SuiteScript 1.0 Script

SuiteScript 2.1 Script

                    function demoSimpleForm(request, response) {
    if ( request.getMethod() == 'GET' ) {
        var form = nlapiCreateForm('Simple Form');
        var field = form.addField('textfield','text', 'Text');
        field.setLayoutType('normal', 'startcol')
        form.addField('datefield','date', 'Date');
        form.addField('currencyfield','currency', 'Currency');
        form.addField('textareafield','textarea', 'Textarea');
        
        var select = form.addField('selectfield','select', 'Select');
        select.addSelectOption('','');
        select.addSelectOption('a', 'Albert');
        select.addSelectOption('b', 'Baron');
        select.addSelectOption('c', 'Chris');
        select.addSelectOption('d', 'Drake');
        select.addSelectOption('e', 'Edgar');
 
        var sublist = form.addSubList('sublist','inlineeditor', 'Inline Editor Sublist');
        sublist.addField('sublist1', 'date', 'Date');
        sublist.addField('sublist2', 'text', 'Text');
        sublist.addField('sublist3', 'currency', 'Currency');
        sublist.addField('sublist4', 'textarea', 'Large Text');
        sublist.addField('sublist5', 'float', 'Float');
 
        form.addSubmitButton('Submit');
 
        response.writePage( form );
    }
    else {
        dumpResponse(request,response);
    }
} 

                  
                    /**
 * @NApiVersion 2.1
 * @NScriptType Suitelet
 */

define(['N/ui/serverWidget'], (serverWidget) => {
    const onRequest = (context) => {
        if (context.request.method === 'GET') {
            const form = serverWidget.createForm({
                title: 'Simple Form'
            });

            const textField = form.addField({
                id: 'custpage_text',
                type: serverWidget.FieldType.TEXT,
                label: 'Text'
            });

            textField.updateLayoutType({
                layoutType: serverWidget.FieldLayoutType.NORMAL
            });

            textField.updateBreakType({
                breakType: serverWidget.FieldBreakType.STARTCOL
            });

            form.addField({
                id: 'custpage_date',
                type: serverWidget.FieldType.DATE,
                label: 'Date'
            });

            form.addField({
                id: 'custpage_currency',
                type: serverWidget.FieldType.CURRENCY,
                label: 'Currency'
            });

            const selectField = form.addField({
                id: 'custpage_select',
                type: serverWidget.FieldType.SELECT,
                label: 'Select'
            });

            selectField.addSelectOption({
                value: 'a',
                text: 'Albert'
            });

            selectField.addSelectOption({
                value: 'b',
                text: 'Baron'
            });

            const sublist = form.addSublist({
                id: 'custpage_sublist',
                type: serverWidget.SublistType.INLINEEDITOR,
                label: 'Inline Editor Sublist'
            });

            sublist.addField({
                id: 'custpage_sublist_date',
                type: serverWidget.FieldType.DATE,
                label: 'Date'
            });

            sublist.addField({
                id: 'custpage_sublist_text',
                type: serverWidget.FieldType.TEXT,
                label: 'Text'
            });

            form.addSubmitButton({
                label: 'Submit Button'
            });

            context.response.writePage(form);
            return;
        }

        const { request, response } = context;

        const text = request.parameters.custpage_text;
        const date = request.parameters.custpage_date;
        const currency = request.parameters.custpage_currency;
        const selectedValue = request.parameters.custpage_select;

        const sublistLines = [];
        const lineCount = request.getLineCount({
            group: 'custpage_sublist'
        });

        for (let line = 0; line < lineCount; line += 1) {
            sublistLines.push({
                date: request.getSublistValue({
                    group: 'custpage_sublist',
                    name: 'custpage_sublist_date',
                    line
                }),
                text: request.getSublistValue({
                    group: 'custpage_sublist',
                    name: 'custpage_sublist_text',
                    line
                })
            });
        }

        response.write(
            `You entered: ${text || ''} ${date || ''} ${currency || ''} ${selectedValue || ''}` +
            `<br>Sublist data: ${JSON.stringify(sublistLines)}`
        );
    };

    return {
        onRequest
    };
}); 

                  

General Notices