自从我学习这个 API 以来,这个问题一直困扰着我。我认为它可能与“netsuite log”或“netsuite langauge”有关,但任何地方都没有这方面的文档。
我想在发票创建后立即获取发票的 tranid。
我有一个包含以下代码的用户事件脚本。
function showValue()
{
var tranid = nlapiGetFieldValue('tranid');
nlapiLogExecution('DEBUG', 'save transaction', nlapiGetRecordType() + ", "+ nlapiGetRecordId() + ", "+ 'tranid' + ": "+ tranid + ", "+ (new Date()))
}
Run Code Online (Sandbox Code Playgroud)
将“提交功能”设置为“showValue”后。
该部署适用于发票。
事件类型设置为创建。
当我保存新发票时,以下内容将添加到部署的执行日志中:
"invoice, 1143428, tranid: To Be Generated, Fri Oct 13 2017 04:21:08 GMT-0700 (PDT)"
Run Code Online (Sandbox Code Playgroud)
如何设置内部id但tranid仍然是“待生成”?当然,tranid 会在设置内部 id 时设置。
如何在用户事件脚本中获取 tranid?
我正在尝试创建一个带有子列表字段的自定义子列表,其中source作为状态记录,在Setup> Company> States/Provinces/Countries部分中进行管理.这是我正在使用的示例代码,但它不起作用.
_sublist.addField({
id: 'custpage_license_state,
type: serverWidgetModule.FieldType.SELECT,
label: 'LICENSE STATE',
source: 'state' //not recognizing record id
});
Run Code Online (Sandbox Code Playgroud)
我尝试过使用'state','states',' - 195', - 195(能够找到这是我们实例中状态记录的内部id"-195"),但没有任何效果.
有没有人知道如何做这项工作.
谢谢.
我启用了多个位置功能和多位置库存.我需要一种方法来设置或检索特定于位置的值,例如手头位置,位置下一个计数日期,位置最后计数日期,位置库存盘点间隔.
这些字段可通过"已保存的搜索"界面访问,但SuiteAnswers上没有关于如何通过SuiteScript API获取这些字段的文档.SuiteScript Records浏览器没有用于访问此子列表的条目.如何在不使用搜索的情况下使用SuiteScript API设置或检索值?
具体来说,我希望能够加载记录,为特定位置设置下一个库存盘点日期,然后提交并关闭并实际查看Netsuite中的更改.目前我发现的唯一解决方法是在setscript中笨拙地构建CSV文件并与作业管理器一起提交,但这有其自身的局限性.
我有一个计划脚本,它执行一些计算并更新销售订单上的自定义标题字段,每 30 分钟运行一次。
随着 Netsuite 中订单数量的增加,我开始收到错误消息“发生了意外错误”
执行时间:677.15s 脚本使用:75 错误:SSS_INSTRUCTION_COUNT_EXCEEDED” 脚本执行指令计数超出。堆栈跟踪:已调度
请帮助我摆脱这个错误。
ps:上述问题没有可用的套件答案。
我正在尝试创建一个自定义探查器库以加载到我的SuiteScript 2.0脚本中.它的路径是/SuiteScripts/profiler.js,而我的Suitelet在/SuiteScripts/suitelet.js中
这里我是如何尝试将其加载到我的suitelet中的:
define(['N/ui/serverWidget', 'N/log', 'N/file', './profiler'],
function(serverWidget, log, file, profiler) {
function onRequest(context) {
log.debug('profiler', profiler) // --> logs undefined
Run Code Online (Sandbox Code Playgroud)
我在profiler.js中尝试了两种方法:
方法#1:
function Profiler() {
var profileInstance = {};
// add methods to profileInstance
return profileInstance
}
Run Code Online (Sandbox Code Playgroud)
方法#2:
require([],
function() {
function profiler() {
var profilerInstance = {};
// add methods to profilerInstance
return profilerInstance;
}
return {
profiler: profiler
};
});
Run Code Online (Sandbox Code Playgroud)
在方法#2中,我还添加了一条注释,指示SuiteScript版本和require.config:
/**
*@NApiVersion 2.x
*/
require.config({
shim: {
'profiler': {
exports: 'profiler'
}
},
paths: {
profiler: …Run Code Online (Sandbox Code Playgroud) 我想使用“suitescript 2.0”版本向用户显示没有堆栈跟踪的自定义错误消息。在工作流中,自定义错误消息在没有堆栈跟踪的情况下显示,但在套件脚本中,“错误消息”与堆栈跟踪一起显示。
堆栈跟踪错误: {"type":"error.SuiteScriptError","name":"MISSING_CONTRACT_LINE","message":"请输入至少一个合同行项目以保存合同。","stack":["createError (N/error)","beforeSubmit(SuiteScripts/Ex_UE_Contract_2.0.js:117)","createError(N/error)"],"cause":{"name":"MISSING_CONTRACT_LINE","message":"请至少输入一个合同行项目以保存合同。"},"id":""}
我想显示没有堆栈跟踪的自定义错误消息,如下所示:"name":"MISSING_CONTRACT_LINE","message":"请输入至少一个合同行项目以保存合同。"
我的代码:
throw error.create({
name: 'MISSING_CONTRACT_LINE',
message: 'Please enter atleast one Contract Line item to save a contract.'
});
Run Code Online (Sandbox Code Playgroud)
有什么可能的方法来实现这一目标吗?
提前致谢。
我有一个自定义记录,其中包含项目字段和位置字段.我在该记录上保存了一个已经包含我想要的列的搜索以及一些始终需要的开始标准.我在销售订单时想要使用此搜索.我想在行上存储所有项目内部ID和位置ID的数组,然后将其作为动态过滤器传递给SuiteScript 2.0中的此搜索.
根据文档,这可以做到.在search.Filter页面上,它显示"您使用search.createFilter(options)创建搜索过滤器对象,并将其添加到您使用search.create(options)创建的search.Search对象或使用search.load(options)加载".但是,我没有在search.load上看到任何参数,也没有在加载后添加它的代码示例.使用search.Filter的所有示例都在search.create函数中使用它
感谢您提供任何帮助.
我正在尝试使用工作流程脚本访问 NetSuite 中的子列表。我在所有销售订单上放置了一个按钮,一旦按下将执行此脚本。我不断收到一个错误,提示我的子列表为空。如果为空,有人可以解释为什么吗?
function(record) {
var salesorder = record.newRecord;
var salesordernumber = salesorder.getValue('tranid');
var date = salesorder.getValue('trandate');
var sublist = salesorder.getSublistValue({
Sublistid : 'item'
});
log.debug('Employee Code', salesordernumber);
log.debug('Supervisior Name', date);
log.debug('itemr', sublist);
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} scriptContext
* @param {Record} scriptContext.newRecord - New record
* @param {Record} scriptContext.oldRecord - Old record
* @Since 2016.1
*/
});
function onAction(context) {
return {
onAction : onAction
};
}
Run Code Online (Sandbox Code Playgroud) 出于调试目的,我想查看对象变量内部的内容。如何在 Suitescript 中打印对象内容?