问题描述
我有一个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
}
});