Scheduled和Map/Reduce类型脚本重复创建记录或者逻辑重复运行

症状 事务处理类型或者自定义类型的单据在Scheduled或者Map/Reduce类型的脚本背景下被重复创建,重复创建的时间可能非常接近,在同1分钟或几分钟以内。 分析过程 查看是否Scheduled和MapReduce类型脚本存在ondemand类型的唤起,这种情况可能是有该脚本自身以ondemand类型唤起,也可能是来自suitelet或者userevent类型的脚本唤起。 ondemand的唤起在部署资源充足的情况下可能在很短时间通过task.submit()被唤起多次,每次唤起通过search获得相同的数据,用相同的逻辑处理,因此重复创建记录可能就发生在同一分钟。 解决办法 最有效的办法是限制ondemand运行,只留一个not scheduled的脚本部署,确保只有一个实例在运行。如果同时也有定时运行的实例,务必移动到上班时间之外,避免ondemand触发和定时触发同时取数。

Suitescript创建customer无法正确指定subsidiary

问题 Suitescript创建customer无法正确指定subsidiary,无论指定什么值都会默认到系统最高级的subsidiary。 解决 NetSuite用suitescript创建脚本实际上赋值subsidiary需要分两步,第一步创建customer,第二步创建customer和subsidiary的关系。 因此脚本设计时第一步保存customer,第二步载入customer再赋值subsidiary再保存。

在SuiteScript2.0开发中使用TBA OAuth1.0

问题 使用 SuiteScript 2.0 连接到一个 RESTlet 脚本 解决方案 任何与 NetSuite 的集成或非用户界面访问,如果使用管理员角色或其他高特权角色,需要使用两因素身份验证(2FA),或者需要调整为使用基于令牌的身份验证(TBA)。 设置要求 使用 RESTlets 的 TBA 所需数据 代码 建议使用 Oauth 和 CryptoJS 这两个库   1. 下载oauth.js and cryptojs.js  (或者从 github.com/mark-keaton/oauth-netsuite )   2. 复制oauth.js 和cryptojs.js 到文件柜   3. 创建secret.js 作为存放密钥的地方 示例secret.js 脚本示例 在测试过程中,如果出现问题,系统可能会显示“Invalid Login attempt error”(无效的登录尝试错误)的错误或响应。在这种情况下,您可以使用“登录审计追踪”报告来收集更多详细信息。报告位于“Setup > Users / Roles > View Login Audit Trail”下。 在报告的“结果”选项卡中,您可以添加以下字段以获取更多信息:Detail(详细信息),’Token-based Application Name’(用于确认应用程序所发出的请求)和’Token-based Access Token Name’(基于令牌的访问令牌名称)。

renderer.addCustomDataSource()当输入类型为Object时,输入的对象键值为纯数字可能报错

这是一个非常有趣的观察,当使用如下代码试图生成一个PDF时,SuiteScript会报错: 这里如果format是OBJECT,会报错提示 如果把format设置为JSON,则报错提示为 我尝试过使用JSON.parse()或者是用regex把输入的jsonArr进行整理,但是没有任何效果。最后我发现问题出现在json存在一个键是纯数字的,整理之后问题消失 作为JSON,它的键可以是数字或者字符串,但是可能是NetSuite内部的原因,键为纯数字的时候会报错,建议开发的时候注意。

当Restlet保存销售订单时SuiteScript报错提示ROUNDING_ERROR

情况描述 系统中有一个restlet类型的接口用于传入订单,有一个订单在保存的时候提示ROUNDING_ERROR。在传入的时候每一行货品传入以下数据: 问题解决 根据互联网可以找到的答案之一(reddit)疑似是对istaxable=false的货品设置了taxtotal会造成这样的错误。但是这个不符合我的系统的情况。 最后发现问题是外部系统错误地传入了一个item=0的货品行,但是又同时具有其他的值如location、taxcode,触发了ROUNDING_ERROR,类似于下面的数据: 非常奇怪,这个错误提示应该是“货品不存在”。总之ROUNDING_ERROR的出现可能往往并不是准确的。

NetSuite Transaction Types and Names

Transaction Type Type Code Bill VendBill Bill Credit VendCred Bill Payment VendPymt Bin Putaway Worksheet BinWksht Bin Transfer BinTrnfr Blanket Purchase Order BlankOrd Cash Refund CashRfnd Cash Sale CashSale CCard Refund CardRfnd Check Check Commission Commissn Credit Card CardChrg Credit Memo CustCred Cross Charge Journal XChgJrnl Currency Revaluation FxReval Customer Deposit CustDep Customer Refund CustRfnd... » read more