在什么版本的javascript上netsuite 目前运行SuiteScripts?
这是我的理解:SuiteScript是一个在javascript引擎上运行的NetSuite脚本API.Javascript有多个版本(EG ES6和ES7).这个引擎使用哪个版本?或者,也许我应该问"SuiteScript运行的是什么javascript引擎?".然后我可以查看该引擎运行的哪个版本的javascript?
让我举一个实际的例子来说明我的成就.在javascript版本的ECMAScript 7中,您可以声明一个异步函数,但是您不能在ECMAScript 6中声明.我可以在SuiteScript中声明一个"异步函数"吗?(任意例子)
我想在该字段中使用现有值设置多选的值.(即)如果Filed具有值"A,B"意味着我想用现有值添加新值"c"那么,结果将是"A,B,C".
我使用"N/Record"模块SubmitFields API来设置多选字段的值,就像这样
代码:SuiteScript 2.0版本:
初始代码:
var strArrayValue = new Array();
strArrayValue [0] = "A";
strArrayValue [1] = "B";
strArrayValue [2] = "C";
record.submitFields({
type:'purchaseorder',
id:56,
values:{
custbody_multiselectfield: strArrayValue
},
options: {
enableSourcing: false,
ignoreMandatoryFields : true
}
});
Run Code Online (Sandbox Code Playgroud)
它显示如下错误:"您输入了无效类型参数:arg 4"
更新的代码:
var strArrayValue = new Array();
strArrayValue [0] = "A";
strArrayValue [1] = "B";
strArrayValue [2] = "C";
var PORec = record.load({ // Loading Purchase Order Recod
type:"purchaseorder",
id:56,
isDynamic: true
)};
PORec.setValue('custbody_multiselectfield',strArrayValue ); // Setting Value (Array …Run Code Online (Sandbox Code Playgroud) 通过UI,我创建了几个附加到支持故障单记录的消息记录,其中两个记录具有文件附件.我已经能够检索票证,以及它在Bellcript中的相关消息 - 正确报告hasAttachment为'T' - 但我似乎无法访问附件本身.文档指出附件是一个名为'mediaitem'的子列表(或'mediaitemlist',具体取决于您所查看的位置),但没有一个子列表API在这些名称上取得任何成功.
var record = nlapiLoadRecord('message', 1092823, {recordmode: 'dynamic'});
var itemCount = record.getLineItemCount('mediaitem');
// returns -1
Run Code Online (Sandbox Code Playgroud)
文档和其他在线信息非常稀疏,所以任何帮助将不胜感激.
所以,这就是我正在做的事情(现在硬编码大多数值,只是想学习NS):
var vendorBillPayment = record.create({
type: record.Type.VENDOR_PAYMENT,
isDynamic: false,
defaultValues: {
entity: 45
}
})
vendorBillPayment.setValue({
fieldId: 'entityname',
value: "Superior ISP"
})
vendorBillPayment.setValue({
fieldId: 'account',
value: 129
})
vendorBillPayment.setValue({
fieldId: 'currency',
value: 1
})
vendorBillPayment.setValue({
fieldId: 'customform',
value: 45
})
vendorBillPayment.setValue({
fieldId: 'exchangerate',
value: "1.00"
})
var recordId = vendorBillPayment.save({
enableSourcing: false,
ignoreMandatoryFields: true
})
Run Code Online (Sandbox Code Playgroud)
现在,问题从下面的代码段开始,VendorPayment记录有一个子列表'apply',这是付款需要应用的账单清单.
vendorBillPayment.setSublistValue({
sublistId: 'apply',
fieldId: 'internalid',
line: 1,
value: "303"
});
Run Code Online (Sandbox Code Playgroud)
返回的错误是:
error message:{"type":"error.SuiteScriptError","name":"UNEXPECTED_ERROR","message":null,"stack":["anonymous(N/recordService)","<anonymous>(/SuiteScripts/..)"],"cause":{"type":"internal error","code":"UNEXPECTED_ERROR","details":null,"userEvent":null,"stackTrace":["anonymous(N/recordService)","<anonymous>(/SuiteScripts/..)"],"notifyOff":false},"id":"","notifyOff":false}
Run Code Online (Sandbox Code Playgroud)
也就是说,消息不是很有用.我一直在浏览他们的文档,但没有获胜.
编辑:结果是apply子列表是类型列表.这意味着,不能以编程方式添加/删除该子列表中的行.只是编辑现有的线条.
除了创建VENDOR_PAYMENT记录之外,还有其他方式以编程方式支付供应商账单吗?
有没有人知道SuiteScript 2.0的等价物?
nlapiRequestURL(url, postdata, headers, httpMethod)
Run Code Online (Sandbox Code Playgroud) 我正在尝试加载如下的自定义记录:
var mergeRecord = record.load({
type: record.Type.'custrecord_merge_vendor',
id: '12',
isDynamic: true
});
Run Code Online (Sandbox Code Playgroud)
这看似错误..但标准记录的等价如下:
var objRecord = record.load({
type: record.Type.SALES_ORDER,
id: 157,
isDynamic: true,
});
Run Code Online (Sandbox Code Playgroud)
这该怎么做 ?
1)在Restlet、suitelet和suitetalk中比较在哪些场景下我们最喜欢使用restlet,在哪些场景下我们最喜欢使用suitelet,在哪些场景下我们最喜欢使用suitetalk。任何人都可以帮忙
2)工作流和套件脚本有什么区别。什么是工作流的治理限制。我们更喜欢工作流而不是套件脚本的场景是什么。
3)我们使用客户端脚本进行客户端验证,我们使用用户事件脚本进行服务器端验证的场景是什么,用户事件脚本的主要目的是什么。
4)netsuite中有多少类型的suitelet以及用例是什么。我们可以使用后端suitelet实现netsuite自定义页面吗?
5)我们可以使用调度脚本为 1000 个搜索请求(每个线程 100 个搜索请求)实现多线程。如果是,那么我们如何实现它?
我有一个带有子列表按钮的小套房,我试图让该按钮在自定义模块上执行功能。我无法正常工作。我收到错误消息“无法调用未定义的方法“接收””。
添加按钮的代码段
define(['N/error', 'N/record', 'N/search', 'N/ui/serverWidget','./lib1'],
function(error, record, search, ui, lib1) {
//... some code here
searchSublist.addButton({
id: 'custpage_recievepayment',
label: 'Receive Payment',
functionName: "lib1.receive()"});
}Run Code Online (Sandbox Code Playgroud)
定制模块的片段
define(['N/redirect'],
function(redirect){
function receive(){
var deal = '497774';
var url = redirect.toSuitelet({
scriptId: 'customscript_deal_entry_2_0',
deploymentId: 'customdeploy1',
returnExternalUrl: false,
params: {
prevdeal: url
}
})
}
});Run Code Online (Sandbox Code Playgroud)
早上大师,
我在Netsuite中使用多个“公式”列进行了保存的搜索。
例如,formulapercent' named columns, although the每个唯一的标签有多个。
但是,当nlobjSearchResult.getValue('formulapercent')自然使用时,我只会得到第一个公式百分比列值。
如何指定要在getValue 哪个公式列中返回值?
我真的不想使用列号,以防以后需要在Netsuite中为保存的搜索插入新列。
希望有类似的东西 nlobjSearchResult.getValue('formulapercent','<label>')
我尝试了多参数选项,但是它不起作用。
简单修复?
干杯
史蒂夫
我在尝试编辑NetSuite中的CUSTOMER记录时遇到了以下问题.我创建的脚本非常简单.
如果用这么简单的代码,我怎么可能做错呢?
{"type":"error.SuiteScriptModuleLoaderError","name":"MODULE_DOES_NOT_EXIST","message":"Module does not exist: /SuiteScripts/BillingInfoUpdated.js","stack":[]}
Run Code Online (Sandbox Code Playgroud)
脚本:
define(['N/log'], function (log) {
/**
* User Event 2.0 example showing usage of the Submit events
*
* @NApiVersion 2.x
* @NModuleScope SameAccount
* @NScriptType UserEventScript
* @appliedtorecord customer
*/
var exports = {};
function afterSubmit(scriptContext) {
log.debug({
"title": "After Submit",
"details": "action=" + scriptContext.type
});
}
exports.afterSubmit = afterSubmit;
return exports;
});
Run Code Online (Sandbox Code Playgroud)