我们可以通过单击按钮来更新Netsuite的“自定义记录类型”字段吗?

问题描述

我有一个Suitelet脚本来创建表单,在那里我提取自定义记录类型”中包含的信息作为表单字段的认值。 还为Suitelet表单创建一个ClientScript,其中包含通过单击按钮执行的功能。 该功能有效,但是我不知道如何更新自定义记录类型的信息。 这是我的代码的一部分:

套房:

/**
 *@NApiVersion 2.0
 *@NScriptType Suitelet
 */

 define(['N/record','N/search','N/ui/serverWidget'],function(record,search,serverWidget) { 
     function onRequest(context) { 
        try {
            if (context.request.method === 'GET') {

                var form = serverWidget.createForm({
                    title: 'SKU @R_219_4045@ion'
                });

                form.clientScriptFileId  =  3060; 
   
                //create fields groups to organize the fields
                var itemgroup = form.addFieldGroup({
                    id : 'itemgroup',label : 'Next item SKU Number'
                });

                var usegroup = form.addFieldGroup({
                    id : 'usegroup',label : 'Who is using this?'
                });
                
               //Add the fields
                var skufield = form.addField({
                    id: 'skufield',type: serverWidget.FieldType.TEXT,label: 'SKU Number',container: 'itemgroup'
                });
                skufield.isMandatory = true;
   
                // create a field with the user using this numbers when clicking the button
                var whousingskunumber = form.addField({
                    id: 'namefield',label: 'User:',container: 'usegroup'
                });
                whousingskunumber.updatedisplayType({
                    displayType: serverWidget.FielddisplayType.disABLED
                });

                var usingsince = form.addField({
                    id: 'sincefield',label: 'Using since',container: 'usegroup'
                });
                usingsince.updatedisplayType({
                    displayType: serverWidget.FielddisplayType.disABLED
                });

                // Add the buttons
                form.addSubmitButton({
                    label: 'Update Number'
                });
                form.addResetButton({
                    label: 'Cancel'
                });
                
                var useNumber = form.addButton({
                    label: 'Use this number',id: 'useNumber',functionName: 'useNumberFunction',});
                var releaseNumber = form.addButton({
                    label: 'Release usage',id: 'relaseNumber',functionName: 'relaseNumberFunction',});

               context.response.writePage(form);
               
           } else {
               // Section Four - Output - Used in all sections
               var delimiter = /\u0001/;
               var skuField = context.request.parameters.skufield;
               var whoField = context.request.parameters.whofield;
   
               var ccField = context.request.parameters.cctypefield;
   
               context.response.write('You have entered:'
                   + '<br/>  New SKU Number: '+ whoField + skuField);
            }

            var skuNumObj = search.lookupFields({
               type: 'customrecordere_lw_lastskunum',id: 2,columns: ['custrecord_ere_lw_usingsince','custrecordere_lw_nextskunum','custrecord_ere_lw_whousingskunum']
           });
           
           var usingSince = skuNumObj.custrecord_ere_lw_usingsince;
           var whoIsUsing = skuNumObj.custrecord_ere_lw_whousingskunum;
           var nextSku = skuNumObj.custrecordere_lw_nextskunum;
           
           skufield.defaultValue = nextSku;
           whousingskunumber.defaultValue = 'Nobody';
           usingsince.defaultValue = 'You can use it!';

        } catch (error) {
            log.error({title: 'Failed to get items to update',details: error});
        }

     }
 return {
     onRequest: onRequest
 };

});

ClientScript

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 */
//Noslen Pena

define(['N/runtime','N/currentRecord','N/ui/dialog','N/search'],function (runtime,currentRecord,dialog,search) {
        function pageInit(context){
            try {
                

            } catch (error) {
                log.error({title: 'Failed initializing',details: error});
            }
        }

     function useNumberFunction(){
         try {
            var skuNumObj = search.lookupFields({
                type: 'customrecordere_lw_lastskunum','custrecord_ere_lw_whousingskunum']
            });
            var nextSku = skuNumObj.custrecordere_lw_nextskunum[0].value;
            skuNumObj.custrecordere_lw_nextskunum[0].value = Number(nextSku)+1;

            dialog.alert({
                title: "@R_219_4045@ion",message: 'Remember to unlock after you have used'
            });
            context.skufield.updatedisplayType({
                displayType: serverWidget.FielddisplayType.disABLED
            });
         } catch (error) {
            log.error({title: 'Failed clicking the button',details: error});
         }
     }

     function relaseNumberFunction(){
        dialog.alert({
            title: "Thank you!",message: "Remember to update the number and save the changes"
        });
        record.namefield.setValue('Nobody');
        log.debug({title: 'liberaron el uso',details:'Nobody is using the number Now'})
     }

    return {
        pageInit : pageInit,useNumberFunction    : useNumberFunction,relaseNumberFunction : relaseNumberFunction

    };

});

解决方法

我发现,保存更改或向自定义记录类型提交新值的方法如下:

           var id = record.submitFields({
                type: 'customrecordere_lw_lastskunum',id: 2,values: {
                    custrecord_ere_lw_usingsince     : since,custrecord_ere_lw_whousingskunum : username
                },options: {
                    enableSourcing: false,ignoreMandatoryFields : true
                }
            });