";SuiteScript 2.0入口点脚本必须实现一个脚本类型函数"";错误



我正在尝试将此代码上传到NetSuite

/**
* @NApiVersion 2.0
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
define(['N/ui/dialog'],
function(dialog){
/**
* Validation function to be executed when sublist line is committed.
*
* @param {Object} context
* @param {Record} context.currentRecord - Current form record
* @param {string} context.sublistId - Sublist name
*
* @returns {boolean} Return true if sublist line is valid
*
* @since 2015.2
*/


function validadeRate(context){
try{
var currentRecord = context.currentRecord
var sublistName = context.sublistId
if(sublistname ==='expense'){
var categ = CurrentRecord.getCurrentSublistValue({
sublistId: sublistName,
fieldId: 'category'
})
if ((categ = 259) && (rate != 0.819)){
var currIndex = currentRecord.getCurrentSublistIndex({
sublistId: sublistName
})
currIndex +=1
var options = {
title : 'Rate Incorreto!',
message:'Por favor, verifique o valor informado no campo Rate na linha ' + currIndex + '.',                            
}
dialog.alert(options).then(function (result) { }).catch(function(result){})

return false
}
}
return true
}
catch(ex){
log.error('validateLine: ', ex.message)
}
}

return {
validadeRate : validadeRate
}
});

但当我试图将文件上传到Netsuite:时,我遇到了这个错误

注意

SuiteScript 2.0入口点脚本必须实现一个脚本类型的函数。*

这是一个函数的一部分,该函数将验证一个支出类别的费率。

我该如何解决这个问题?

提前感谢!

这是NetSuite的"入口点脚本验证",表示脚本无效,因为它不包括预定义的入口点(事件(函数之一。这些功能是:

fieldChanged

lineInit

pageInit

采购后

保存记录

sublistChanged

validateDelete

validateField

validateInsert

validateLine

您可以绕过此验证,并通过添加其中一个入口点上传脚本,即使它什么都不做。例如,在function (dialog)函数中,您可以添加pageInit((函数:

function pageInit(scriptContext) {}

并将您的返回块更改为:

return {
validadeRate : validadeRate,
pageInit: pageInit
}

现在它有了一个有效的入口点,验证应该会通过

然而,可能还有一个更简单的方法。它显示(通过JSDoc块(,您的validadeRate函数应该在每次添加子列表行时被触发。这正是validateLine入口点的作用。因此,您可以将返回块中的密钥更改为";validateLine";

return {
validateLine: validadeRate
}

并且NetSuite将知道每次添加线路时调用CCD_ 4。

您已将其指定为客户端脚本模块,但尚未为任何客户端脚本入口点分配处理程序。阅读帮助文档SuiteScript 2.0 Client Script Entry Points and API,并实现模块中的任何一个入口点。

更改返回函数如下。并测试一次。


返回{validateLine:有效日期}

最新更新