Creating bulk assembly build using selected work orders.

Jira Code: MAR-8

Creating bulk assembly builds from the work orders if that work order is checked. Finally, it will show the status page and list transformed work orders with its assembly build.

Suitelet for creating a form which shows a sublist of all work orders that creates assembly builds.

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 * @NModuleScope SameAccount
 */

/*******************************************************************************
 * Marshall
 *  
  ******************************************************************************
 * Date: 22-09-2019
  
 * Author: Jobin & Jismi IT Services LLP
 * Script Description: custom form for creating bulk assembly build using work order.
 * Date created :
 
 ******************************************************************************/
define(['N/record', 'N/search', 'N/ui/serverWidget', 'N/task'],

    function(record, search, serverWidget, task) {

        function checkForParameter(parameter) {
            if (parameter != "" && parameter !== null && parameter !== undefined && parameter !== false && parameter !== "null" && parameter !== "undefined" && parameter !== 'false' && parameter != " ")
                return parameter;
            else {
                return null;
            }
        }

        function onRequest(context) {
            if (context.request.method == 'GET') {
                try {

                    // create a form

                    var form = serverWidget.createForm({
                        title: 'BUILD WORK ORDERS IN BULK',
                        hideNavBar: false
                    });

                    // calling client script

                    form.clientScriptFileId = 102577;
                    var woArr = [];

                    //getting url parameter from client script.

                    var tranDate = context.request.parameters.currentDateField;
                    var tranMemo = context.request.parameters.currentMemoField;
                    var tranLocation = context.request.parameters.currentLocation;
                    var mode = context.request.parameters.MODE;
                    log.debug("tranDate", tranDate);
                    log.debug("tranMemo", tranMemo);
                    log.debug("tranLocation", tranLocation);
                    log.debug("mode", mode);

                    // checking filter condition.

                    if (mode != "TRUE") {
                        log.debug("innnnnn")

                        var workorderSearchObj = search.create({
                            type: "workorder",
                            filters: [
                                ["type", "anyof", "WorkOrd"],
                                "AND",
                                ["internalid", "noneof", "@NONE@"],
                                "AND",
                                ["mainline", "is", "T"],
                                "AND",
                                ["taxline", "is", "F"],
                                "AND",
                                ["shipping", "is", "F"],
                                "AND",
                                ["buildable", "greaterthan", "0"],
                                "AND",
                                ["status", "anyof", "WorkOrd:B"],
                                "AND",
                                ["location", "anyof", "115", "12", "13", "109", "18", "14", "112", "15", "16", "11", "9", "17", "10"]
                            ],
                            columns: [
                                search.createColumn({ name: "internalid", label: "Internal ID" }),
                                search.createColumn({ name: "trandate", label: "Date" }),
                                search.createColumn({ name: "memo", label: "Memo" }),
                                search.createColumn({
                                    name: "entityid",
                                    join: "customerMain",
                                    label: "Name"
                                }),
                                search.createColumn({ name: "item", label: "Item" }),
                                search.createColumn({ name: "startdate", label: "Custom Production Start Date" }),
                                search.createColumn({ name: "enddate", label: "Custom Production End Date" }),
                                search.createColumn({ name: "tranid", label: "Document Number" }),
                                search.createColumn({ name: "quantity", label: "Quantity" }),
                                search.createColumn({ name: "buildable", label: "Buildable" })
                            ]
                        });
                        var searchResultCount = workorderSearchObj.runPaged().count;
                        log.debug("workorderSearchObj result count", searchResultCount);
                        workorderSearchObj.run().each(function(result) {
                            var woObj = {};
                            woObj.InternalId = result.getValue(workorderSearchObj.columns[0]);
                            woObj.date = result.getValue(workorderSearchObj.columns[1]);
                            woObj.memo = result.getValue(workorderSearchObj.columns[2]);
                            woObj.customerName = result.getValue(workorderSearchObj.columns[3]);
                            woObj.item = result.getText(workorderSearchObj.columns[4]);
                            woObj.startDate = result.getValue(workorderSearchObj.columns[5]);
                            woObj.endDate = result.getValue(workorderSearchObj.columns[6]);
                            woObj.order = result.getValue(workorderSearchObj.columns[7]);
                            woObj.quantity = result.getValue(workorderSearchObj.columns[8]);
                            woObj.buildquantity = result.getValue(workorderSearchObj.columns[9]);
                            woArr.push(woObj);
                            return true;
                        });

                        log.debug("woArr", woArr);
                    } else {

                        log.debug("out")
                        var filters_all = [];
                        filters_all.push(["type", "anyof", "WorkOrd"]);
                        filters_all.push("AND");
                        filters_all.push(["internalid", "noneof", "@NONE@"]);
                        filters_all.push("AND");
                        filters_all.push(["mainline", "is", "T"]);
                        filters_all.push("AND");
                        filters_all.push(["taxline", "is", "F"]);
                        filters_all.push("AND");
                        filters_all.push(["shipping", "is", "F"]);
                        filters_all.push("AND");
                        filters_all.push(["buildable", "greaterthan", "0"]);
                        filters_all.push("AND");
                        filters_all.push(["status", "anyof", "WorkOrd:B"]);




                        if ((tranDate != "") && (tranDate != null) && (tranDate != undefined)) {
                            filters_all.push("AND");
                            filters_all.push(["trandate", "on", tranDate]);
                        }

                        if ((tranMemo != "") && (tranMemo != null) && (tranMemo != undefined)) {
                            filters_all.push("AND");
                            filters_all.push(["memo", "is", tranMemo]);
                        }

                        if ((tranLocation != "") && (tranLocation != null) && (tranLocation != undefined)) {
                            filters_all.push("AND");
                            filters_all.push(["location", "anyof", tranLocation]);
                        } else {
                            filters_all.push("AND");
                            filters_all.push(["location", "anyof", "115", "12", "13", "109", "18", "14", "112", "15", "16", "11", "9", "17", "10"]); //location details
                        }

                        log.debug("filters_all", filters_all);

                        var workorderSearchObj = search.create({
                            type: "workorder",
                            filters: filters_all,
                            columns: [
                                search.createColumn({ name: "internalid", label: "Internal ID" }),
                                search.createColumn({ name: "trandate", label: "Date" }),
                                search.createColumn({ name: "memo", label: "Memo" }),
                                search.createColumn({
                                    name: "entityid",
                                    join: "customerMain",
                                    label: "Name"
                                }),
                                search.createColumn({ name: "item", label: "Item" }),
                                search.createColumn({ name: "startdate", label: "Custom Production Start Date" }),
                                search.createColumn({ name: "enddate", label: "Custom Production End Date" }),
                                search.createColumn({ name: "tranid", label: "Document Number" }),
                                search.createColumn({ name: "quantity", label: "Quantity" }),
                                search.createColumn({ name: "buildable", label: "Buildable" })
                            ]
                        });
                        var searchResultCount = workorderSearchObj.runPaged().count;
                        log.debug("workorderSearchObj result count", searchResultCount);
                        workorderSearchObj.run().each(function(result) {
                            var woObj = {};
                            woObj.InternalId = result.getValue(workorderSearchObj.columns[0]);
                            woObj.date = result.getValue(workorderSearchObj.columns[1]);
                            woObj.memo = result.getValue(workorderSearchObj.columns[2]);
                            woObj.customerName = result.getValue(workorderSearchObj.columns[3]);
                            woObj.item = result.getText(workorderSearchObj.columns[4]);
                            woObj.startDate = result.getValue(workorderSearchObj.columns[5]);
                            woObj.endDate = result.getValue(workorderSearchObj.columns[6]);
                            woObj.order = result.getValue(workorderSearchObj.columns[7]);
                            woObj.quantity = result.getValue(workorderSearchObj.columns[8]);
                            woObj.buildquantity = result.getValue(workorderSearchObj.columns[9]);
                            woArr.push(woObj);
                            return true;
                        });


                        log.debug("woArr", woArr);

                    }



                    var bodyDateField = form.addField({
                        id: 'custpage_filterdate',
                        type: serverWidget.FieldType.DATE,
                        label: 'DATE',
                    })
                    if (tranDate != null && tranDate != "" && tranDate != undefined) {
                        bodyDateField.defaultValue = tranDate;
                    } else {
                        bodyDateField.defaultValue = "";
                    }
                    var bodyMemoField = form.addField({
                        id: 'custpage_memo',
                        type: serverWidget.FieldType.TEXT,
                        label: 'MEMO',
                    })
                    if (tranMemo != null && tranMemo != "" && tranMemo != undefined) {
                        bodyMemoField.defaultValue = tranMemo;
                    } else {
                        bodyMemoField.defaultValue = "";
                    }
                    var locationArr = [];
                    var bulkLocation = form.addField({
                        id: 'custpage_location',
                        type: serverWidget.FieldType.SELECT,
                        label: 'BULK BUILD FROM LOCATION',
                    })
                    var locationSearchObj = search.create({
                        type: "location",
                        filters: [
                            ["custrecord_isoutsidelocation", "is", "T"]
                        ],
                        columns: [
                            search.createColumn({ name: "internalid", label: "Internal ID" }),
                            search.createColumn({
                                name: "name",
                                sort: search.Sort.ASC,
                                label: "Name"
                            })
                        ]
                    });
                    var searchResultCount = locationSearchObj.runPaged().count;
                    log.debug("locationSearchObj result count", searchResultCount);
                    locationSearchObj.run().each(function(result) {
                        var locationObj = {};
                        locationObj.internalId = result.getValue(workorderSearchObj.columns[0]);
                        locationObj.name = result.getValue(workorderSearchObj.columns[1]);
                        locationArr.push(locationObj);
                        return true;
                    });

                    bulkLocation.addSelectOption({
                        value: "",
                        text: ""
                    });

                    // for setting  bulk location list

                    for (var j = 0; j < locationArr.length; j++) {
                        bulkLocation.addSelectOption({
                            value: locationArr[j].internalId,
                            text: locationArr[j].name
                        });
                    }

                    if (tranLocation != null && tranLocation != "" && tranLocation != undefined) {
                        bulkLocation.defaultValue = tranLocation;
                    } else {
                        bulkLocation.defaultValue = "";
                    }

                    // creating a sublist

                    var sublist = form.addSublist({
                        id: 'custpage_table',
                        type: serverWidget.SublistType.LIST,
                        label: 'work order list'
                    });

                    sublist.addMarkAllButtons();


                    var checkbox = sublist.addField({
                        id: 'custpage_build',
                        label: 'Build',
                        type: serverWidget.FieldType.CHECKBOX
                    });
                    var woId = sublist.addField({
                        id: 'custpage_id',
                        label: "InternalId",
                        type: serverWidget.FieldType.TEXT
                    });
                    woId.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });
                    var woDate = sublist.addField({
                        id: 'custpage_date',
                        label: 'Date',
                        type: serverWidget.FieldType.DATE
                    });

                    var woOrder = sublist.addField({
                        id: 'custpage_order',
                        label: 'Order',
                        type: serverWidget.FieldType.TEXT
                    });

                    var woItem = sublist.addField({
                        id: 'custpage_item',
                        label: 'Item',
                        type: serverWidget.FieldType.TEXT
                    });

                    /*var woCusName = sublist.addField({
                        id: 'custpage_project',
                        label: 'Customer project name',
                        type: serverWidget.FieldType.TEXT
                    });*/
                    var woQuant = sublist.addField({
                        id: 'custpage_quantity',
                        label: 'QUANTITY',
                        type: serverWidget.FieldType.TEXT
                    });

                    var woBuildQuant = sublist.addField({
                        id: 'custpage_build_quantity',
                        label: 'BUILDABLE QUANTITY',
                        type: serverWidget.FieldType.TEXT
                    });

                    var woMemo = sublist.addField({
                        id: 'custpage_memo',
                        label: 'MEMO',
                        type: serverWidget.FieldType.TEXT
                    });

                    var woStartDate = sublist.addField({
                        id: 'custpage_start',
                        label: 'PRODUCTION START DATE',
                        type: serverWidget.FieldType.DATE
                    });

                    var woEndDate = sublist.addField({
                        id: 'custpage_end',
                        label: 'PRODUCTION END DATE',
                        type: serverWidget.FieldType.DATE
                    });



                    // setting values in the sublist

                    for (var i = 0; i < woArr.length; i++) {
                        sublist.setSublistValue({
                            id: 'custpage_id',
                            line: i,
                            value: checkForParameter(woArr[i].InternalId)
                        });

                        sublist.setSublistValue({
                            id: 'custpage_date',
                            line: i,
                            value: checkForParameter(woArr[i].date)
                        });

                        sublist.setSublistValue({
                            id: 'custpage_memo',
                            line: i,
                            value: checkForParameter(woArr[i].memo)
                        });
                        sublist.setSublistValue({
                            id: 'custpage_order',
                            line: i,
                            value: checkForParameter(woArr[i].order)
                        });
                        sublist.setSublistValue({
                            id: 'custpage_item',
                            line: i,
                            value: checkForParameter(woArr[i].item)
                        });

                        /*sublist.setSublistValue({
                            id: 'custpage_project',
                            line: i,
                            value: checkForParameter(woArr[i].customerName)
                        });*/
                        sublist.setSublistValue({
                            id: 'custpage_quantity',
                            line: i,
                            value: checkForParameter(woArr[i].quantity)
                        });

                        sublist.setSublistValue({
                            id: 'custpage_build_quantity',
                            line: i,
                            value: checkForParameter(woArr[i].buildquantity)
                        });

                        sublist.setSublistValue({
                            id: 'custpage_start',
                            line: i,
                            value: checkForParameter(woArr[i].startDate)
                        });

                        sublist.setSublistValue({
                            id: 'custpage_end',
                            line: i,
                            value: checkForParameter(woArr[i].endDate)
                        });


                    }

                    /*form.addSubmitButton('Submit');*/

                    var workOrderSubmit = form.addButton({
                        id: 'custpage_submit',
                        label: 'Submit',
                        functionName: 'submitaction'
                    });
                    var workOrderRest = form.addButton({
                        id: 'custpage_reset',
                        label: 'Reset',
                        functionName: 'resetbtn'
                    });

                    context.response.writePage(form);

                } catch (err) {
                    log.debug("err", err)
                }
            }
        }

        return {
            onRequest: onRequest
        };

    });

client script for getting selected sublist lines in a button click.

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */

/*******************************************************************************
* Marshall
*  
 ******************************************************************************
* Date: 24-09-2019
 
* Author: Jobin & Jismi IT Services LLP
* Script Description: To create a client script for button action and filter functionality.
* Date created :24-09-2019
 
******************************************************************************/

define(['N/record', 'N/currentRecord', 'N/search', 'N/https', 'N/url', 'N/ui/message'], function(record, currentRecord, search, https, url, message) {



    function fieldChanged(context) {
        try {

            var url = 'https://4594915-sb1.app.netsuite.com/app/site/hosting/scriptlet.nl?script=812&deploy=1'; // url of suitlet form

            var currentRecord = context.currentRecord;
            console.log("currentRecord", currentRecord);

            var fieldName = context.fieldId;

            //field change for loading url

            if (fieldName == 'custpage_filterdate' || fieldName == 'custpage_memo' || fieldName == 'custpage_location') {
                var currentDateField = currentRecord.getText({
                    'fieldId': 'custpage_filterdate'
                });

                console.log("currentDateField", currentDateField);

                var currentMemoField = currentRecord.getValue({
                    'fieldId': 'custpage_memo'
                });
                console.log("currentMemoField", currentMemoField);

                var currentLocation = currentRecord.getValue({
                    'fieldId': 'custpage_location'
                });
                console.log("currentLocation", currentLocation);



                if (url.indexOf('?') > -1) {

                    url += '&MODE=TRUE&' + '&currentDateField=' + currentDateField + '&currentMemoField=' + currentMemoField + '&currentLocation=' + currentLocation;
                } else {
                    url += '?MODE=TRUE&=' + '&currentDateField=' + currentDateField + '&currentMemoField=' + currentMemoField + '&currentLocation=' + currentLocation;
                }
                window.onbeforeunload = function() {};
                window.location.href = url;

            }



        } catch (err) {
            console.log("err", err)
        }
    }

    function resetbtn() {
        try {
            var url = 'https://4594915-sb1.app.netsuite.com/app/site/hosting/scriptlet.nl?script=812&deploy=1';
            window.location.href = url;
            window.onbeforeunload = function() {};

        } catch (err3) {
            console.log('err3', err3);
        }
    }

    function submitaction() {
        try {
            //meassage for user
            var myMsg = message.create({
                title: "YOUR REQUEST IS PROCESSING",
                message: "Do not reload your page until your pop-up window visible",
                type: message.Type.INFORMATION
            });

            // will disappear after 5s
            myMsg.show({
                duration: 10000
            });
            document.getElementById("custpage_submit").disabled = true;
            document.getElementById("custpage_reset").disabled = true;
            var workOrderSublist = currentRecord.get();
            console.log("workOrderSublist", workOrderSublist)

            var lines = workOrderSublist.getLineCount({
                sublistId: "custpage_table"
            });

            console.log("lines", lines)

            var customerArray = [];
            var resArr = [];
            var count = 0;
            var concatArr = [];

            // for getting checked worked sublist line

            for (var i = 0; i < lines; i++) {
                var chkboxValue = workOrderSublist.getSublistValue({
                    sublistId: 'custpage_table',
                    fieldId: 'custpage_build',
                    line: i
                });
                console.log("chkboxValue", chkboxValue)

                if (chkboxValue == true) {
                    var customerId = workOrderSublist.getSublistValue({
                        sublistId: 'custpage_table',
                        fieldId: 'custpage_id',
                        line: i
                    });
                    customerArray.push(customerId);

                }
            }
            console.log("customerArray", customerArray)
            var chunkArr = null;
            var masterArr = [];

            // splicing array of internal id into groups

            while (customerArray.length > 0) {
                chunkArr = customerArray.splice(0, 10)
                console.log("chunkArr", chunkArr)
                masterArr.push(chunkArr);
                console.log("chunkArrLength", chunkArr.length)
            }
            console.log("masterArr", masterArr.length)

            //genarating url for for calling another suitelet page

            if (masterArr.length > 0) {

                for (var index = 0; index < masterArr.length; index++) {

                    var get_url = url.resolveScript({
                        scriptId: "customscript_jj_sl_mar_8_work_order_tran",
                        deploymentId: "customdeploy_jj_sl_mar_8_work_order_tran",
                        returnExternalUrl: false
                    });
                    var bodyObj = {
                        'details': {
                            'customerData': masterArr
                        }
                    };

                    https.post.promise({
                        url: get_url,
                        headers: {
                            'Content-Type': 'application/json'
                        },
                        body: JSON.stringify(masterArr[index])
                    }).then(function(response) {
                        var resObj = response.body;
                        var passObj = JSON.parse(resObj);
                        concatArr = concatArr.concat(passObj);

                        console.log("concatArr", concatArr)

                        if (response.body) {
                            count++;
                        }
                        console.log("count", count);

                        if (count == masterArr.length) {


                            console.log("SUCESS");

                            //console.log("resArr", resArr);

                            var customRecord = record.create({
                                type: 'customrecord_jj_mar_8_bulk_build_status'
                            });

                            customRecord.setValue({
                                fieldId: 'custrecord_jj_mar_8_build_status',
                                value: JSON.stringify(concatArr)
                            })

                            var statusRecId = customRecord.save();
                            console.log("statusRecId", statusRecId);
                            var get_url_res = url.resolveScript({
                                scriptId: "customscript_jj_sl_assembly_build_result",
                                deploymentId: "customdeploy_jj_sl_mar_8_assembly_build",
                                returnExternalUrl: false,
                                params: {
                                    statusRecId: statusRecId
                                }
                            });

                            window.open(get_url_res, "width=600", "height=600");


                        }

                    }).catch(function onRejected(reason) {
                        console.log('Invalid Request: ');
                        console.log(reason);

                    });
                }



            }
        } catch (err) {
            console.log("err", err)
        }
    }

    function closebutton() {
        try {
            window.opener.onbeforeunload = function() {};
            window.opener.location.reload();
            window.onbeforeunload = function() {};
            window.close();

        } catch (err5) {
            console.log("err5", err5)
        }
    }


    return {

        fieldChanged: fieldChanged,
        resetbtn: resetbtn,
        submitaction: submitaction,
        closebutton: closebutton

    };

});

Suitelet for transform assembly builds from work orders.

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 * @NModuleScope SameAccount
 */

/*******************************************************************************
 * Marshall
 *  
  ******************************************************************************
 * Date: 22-09-2019
  
 * Author: Jobin & Jismi IT Services LLP
 * Script Description: Creating bulk assembly build using work order.
 * Date created : 22-09-2019
 
 ******************************************************************************/

define(['N/search', 'N/record'],
    function(search, record) {

        function onRequest(Context) {
            try {
                var scriptBody = Context.request.body;
                var processData = JSON.parse(scriptBody)
                log.debug("processData", processData);
                var resultArray = [];
                var binLocation = null;
                var len = processData.length;

                for (var i = 0; i < len; i++) {
                    try {

                        //transform assembly build from work oreder
                        var objRecord = record.transform({
                            fromType: record.Type.WORK_ORDER,
                            fromId: processData[i],
                            toType: record.Type.ASSEMBLY_BUILD,
                            isDynamic: true
                        });

                        //for getting location and quantity using internal id.

                        var fieldLookUp = search.lookupFields({
                            type: search.Type.WORK_ORDER, //The intended record type
                            id: processData[i], //Record ID
                            columns: ['location', 'buildable'] //Desired joined field referenced_record.desired_field
                        });

                        log.debug("fieldLookUp", fieldLookUp);



                        var binSearchObj = search.create({
                            type: "bin",
                            filters: [
                                ["location", "anyof", fieldLookUp.location[0].value]
                            ],
                            columns: [
                                search.createColumn({
                                    name: "binnumber",
                                    sort: search.Sort.ASC,
                                    label: "Bin Number"
                                })
                            ]
                        });
                        var searchResultCount = binSearchObj.runPaged().count;
                        log.debug("binSearchObj result count", searchResultCount);
                        binSearchObj.run().each(function(result) {
                            binLocation = result.getValue(binSearchObj.columns[0]);
                            log.debug("binLocation", binLocation);
                            return true;
                        });
                        log.debug("binSearchObj1");

                        // creating sub record for inventory setup 

                        var inventoryStat = objRecord.getSubrecord({
                            fieldId: 'inventorydetail'
                        });
                        log.debug("binSearchObj2");

                        inventoryStat.selectNewLine({
                            sublistId: 'inventoryassignment'
                        });

                        log.debug("binSearchObj3");
                        inventoryStat.setCurrentSublistText({
                            sublistId: 'inventoryassignment',
                            fieldId: 'binnumber',
                            text: binLocation
                        });

                        log.debug("binSearchObj4");

                        inventoryStat.setCurrentSublistText({
                            sublistId: 'inventoryassignment',
                            fieldId: 'status',
                            text: 'Good'
                        });

                        log.debug("binSearchObj4");
                        inventoryStat.setCurrentSublistValue({
                            sublistId: 'inventoryassignment',
                            fieldId: 'quantity',
                            value: parseFloat(fieldLookUp.buildable)
                        });

                        inventoryStat.commitLine({

                            sublistId: 'inventoryassignment'
                        });

                        try {
                            var recordId = objRecord.save();
                            var statusObj = { "internalId": processData[i], "build": recordId };
                        } catch (err4) {
                            var statusObj = { "internalId": processData[i], "build": err4.message };
                        }

                        resultArray.push(statusObj);
                    } catch (err3) {
                        log.debug("err", err)
                    }

                }

                log.debug("resultArray", resultArray);
                Context.response.write(JSON.stringify(resultArray))


            } catch (er) {
                log.debug('er', er.message)
            }
        }


        return {
            onRequest: onRequest
        };

    });

Suitelet for showing final result page.

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 * @NModuleScope SameAccount
 */

/*******************************************************************************
 * Marshall
 *  
  ******************************************************************************
 * Date: 27-09-2019
  
 * Author: Jobin & Jismi IT Services LLP
 * Script Description: create a suitelet for showing result page.
 * Date created :27-09-2019
 
 ******************************************************************************/
define(['N/runtime', 'N/record', 'N/search', 'N/ui/serverWidget'],

    function(runtime, record, search, serverWidget) {


        function onRequest(context) {

            if (context.request.method == 'GET') {
                try {


                    var scriptBody = context.request.parameters.statusRecId; // To get record id of custom record
                    var processData = JSON.parse(scriptBody)
                    log.debug(processData)
                    // create a suitelet form for result page.
                    var resusltform = serverWidget.createForm({
                        title: 'BUILD WORK ORDERS IN BULK',
                        hideNavBar: false
                    });

                    // calling client script fileId
                    resusltform.clientScriptFileId = 102577;

                    //for getting object from custom record build bulk status.

                    var fieldLookUp = search.lookupFields({
                        type: "customrecord_jj_mar_8_bulk_build_status", //The intended record type
                        id: processData, //Record ID
                        columns: ['custrecord_jj_mar_8_build_status'] //Desired joined field referenced_record.desired_field
                    });


                    log.debug("fieldLookUp", fieldLookUp);

                    var statusData = JSON.parse(fieldLookUp.custrecord_jj_mar_8_build_status)

                    log.debug("statusData", statusData);

                    var arrResultLen = statusData.length;
                    log.debug("arrResultLen", arrResultLen);

                    //creating sublist for showing result 

                    var sublist = resusltform.addSublist({
                        id: 'custpage_table',
                        type: serverWidget.SublistType.LIST,
                        label: 'work order list'

                    });
                    var workId = sublist.addField({
                        id: 'custpage_workid',
                        label: 'WORK ORDER ID',
                        type: serverWidget.FieldType.SELECT,
                        source: record.Type.WORK_ORDER
                    });
                    workId.updateDisplayType({ displayType: serverWidget.FieldDisplayType.DISABLED });

                    var buildId = sublist.addField({
                        id: 'custpage_buildid',
                        label: 'ASSEMBLY BUILD ID',
                        type: serverWidget.FieldType.TEXTAREA


                    });


                    for (var i = 0; i < arrResultLen; i++) {

                        sublist.setSublistValue({
                            id: 'custpage_workid',
                            line: i,
                            value: statusData[i].internalId
                        });

                        // for showing link in list

                        var url12 = '<a href = "' + '> View record</a>'
                        var url12;

                        if (statusData[i].build > 0) {
                            url12 = '<a href = "/app/accounting/transactions/build.nl?id=' + statusData[i].build + '"> view record</a>'
                        } else {
                            url12 = statusData[i].build
                        }

                        sublist.setSublistValue({
                            id: 'custpage_buildid',
                            line: i,
                            value: url12
                        });


                    }

                    //Close button action.

                    var resultCloseBtn = resusltform.addButton({
                        id: 'custpage_close',
                        label: 'CLOSE',
                        functionName: 'closebutton'
                    });

                    context.response.writePage(resusltform);

                } catch (err) {
                    log.debug("err", err)
                }
            }
        }

        return {
            onRequest: onRequest
        };

    });

Leave a comment

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