How to call a Suitelet post action from client script

/**
 * @NApiVersion 2.1
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */
/*
define(['N/currentRecord', 'N/url', 'N/https', 'N/ui/message'],
    /**
     * @param{currentRecord} currentRecord
     */
    function (currentRecord, url, https, message) {
  
        function changeAckStatus(purId) {
            try {

                document.getElementById("custpage_jj_ack").disabled = true;
                document.getElementById("custpage_jj_reject").disabled = true;
                let lineCnt = curRec.getLineCount({
                    sublistId: '_jj_sublist'
                });
                let poNumber = curRec.getValue({
                    fieldId: 'custpage_poreference'
                });
                let i;
                let objArray = [];
                objArray.push({ pid: purId, buttonLabel: "Acknowledge", poNum: poNumber });
                for (i = 0; i < lineCnt; i++) {
                    let itemObj = {};
                    let itemLine = curRec.getSublistValue({
                        sublistId: '_jj_sublist',
                        fieldId: 'custrecord_jj_line',
                        line: i
                    });
                    itemObj.line_num = itemLine;
                    let itemName = curRec.getSublistValue({
                        sublistId: '_jj_sublist',
                        fieldId: 'custrecord_jj_itemname',
                        line: i
                    });
                    itemObj.item_name = itemName;
                    let itemRate = curRec.getSublistValue({
                        sublistId: '_jj_sublist',
                        fieldId: 'custrecord_jj_itemrate',
                        line: i
                    });
                    itemObj.item_rate = itemRate;
                    let itemConfirm = curRec.getSublistValue({
                        sublistId: '_jj_sublist',
                        fieldId: 'custrecord_jj_confirm',
                        line: i
                    });
                    itemObj.item_date = itemConfirm;
                    let itemUpdatedRate = curRec.getSublistValue({
                        sublistId: '_jj_sublist',
                        fieldId: 'custrecord_jj_updatedrate',
                        line: i
                    });
                    itemObj.itemup_rate = itemUpdatedRate;
                    let itemConfirmedDate = curRec.getSublistText({
                        sublistId: '_jj_sublist',
                        fieldId: 'custrecord_jj_receiptdate',
                        line: i
                    });
                    itemObj.item_confirm = itemConfirmedDate;
                    objArray.push(itemObj);
                }
                let jsonObj = JSON.stringify(objArray);
                alert("Purchase Order is Acknowledged.");
                let myMsg4 = message.create({
                    title: 'ACKNOWLEDGEMENT STATUS',
                    message: 'This Purchase Order is Acknowledged',
                    type: message.Type.CONFIRMATION
                });
                log.debug("myMsg4", myMsg4)
                myMsg4.show();
                formHide();
                window.onbeforeunload = null;
                let suiteltUrl = url.resolveScript({
                    scriptId: "customscript_jj_sl_ack_link_on_po",
                    deploymentId: "customdeploy_jj_sl_ack_link_on_po",
                    returnExternalURL: true
                });
                console.log("urlack", suiteltUrl);
                let suiteUrl = suiteltUrl + "&h=ef785bf6da90d5429f25&poid=" + purId;
                let response = https.post({
                    url: suiteUrl,
                    header: { "content-type": "application/json" },
                    body: jsonObj
                });

            } catch (err) {
                console.log('error @changeAckStatus', err.message);
                return false;
            }
        }
}

Leave a comment

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