NetSuite 开发日记 —— 库存详细信息记录更改数量问题
详细报错:
"type":"error.SuiteScriptError","name":"USER_ERROR","message":"在更改数量之后,您仍需要重新配置库存详细信息记录。"
"type":"error.SuiteScriptError","name":"USER_ERROR","message":"You still need to reconfigure the inventory detail record after changing the quantity."
原因:
SuiteAnswers ID 81448 的解答:
当系统启用了库存状态功能,访问子记录时会发生已添加行的行为,对新创建的库存详细信息子记录的子列表使用 selectNewLine 方法会返回错误“在更改数量之后,您仍需要重新配置库存详细信息记录” 。如果遇到此问题,建议使用 selectline 方法。
解决方案
var rec = record.transform({
fromType: 'workorder',
fromId: wordOrderId,
toType: 'workordercompletion',
isDynamic: true,
defaultValues: {
isbackflush: 'T'
}
});
// 正文字段赋值
rec.setValue('trandate', new Date());
/** 其他正文字段赋值 **/
// 行字段赋值
var sublistId = 'component';
var lineCounts = rec.getLineCount(sublistId);
for (var i = 0; i < lineCounts; i++) {
rec.selectLine({
sublistId: sublistId,
line: i
});
rec.setCurrentSublistValue({
sublistId: sublistId,
fieldId: 'quantity',
value: lineData[i].qty,
});
var subRec = rec.getCurrentSublistSubrecord({
sublistId: sublistId,
fieldId: 'componentinventorydetail',
});
var detailData = lineData[i].details;
var detailSublistId = 'inventoryassignment';
for (var j = 0; j < detailData.length; j++) {
// 根据SuiteAnswers的解答,因为启用了库存状态功能,此处需要使用selectLine方法,并非selectNewLine方法
// subRec.selectNewLine({sublistId: detailSublistId});
subRec.selectLine({sublistId: detailSublistId,line:j});
subRec.setCurrentSublistText({
sublistId: detailSublistId,
fieldId: 'issueinventorynumber',
text: detailData[j].invNum,
});
subRec.setCurrentSublistValue({
sublistId: detailSublistId,
fieldId: 'binnumber',
value: detailData[j].binNum,
});
subRec.setCurrentSublistValue({
sublistId: detailSublistId,
fieldId: 'inventorystatus',
value: detailData[j].status,
});
subRec.setCurrentSublistValue({
sublistId: detailSublistId,
fieldId: 'quantity',
value: detailData[j].quantity,
});
subRec.commitLine({
sublistId: detailSublistId
});
}
rec.commitLine({
sublistId: sublistId
});
}
rec.save();
另外,根据实际测试,使用标准模式创建完工单也可以避免该报错。
var rec = record.transform({
fromType: 'workorder',
fromId: wordOrderId,
toType: 'workordercompletion',
isDynamic: false,
defaultValues: {
isbackflush: 'T'
}
});
// 正文字段赋值
rec.setValue('trandate', new Date());
/** 其他正文字段赋值 **/
// 行字段赋值
var sublistId = 'component';
var lineCounts = rec.getLineCount(sublistId);
for (var i = 0; i < lineCounts; i++) {
rec.setSublistValue({
sublistId: sublistId,
fieldId: 'quantity',
value: lineData[i].qty,
line: i
});
var subRec = rec.getSublistSubrecord({
sublistId: sublistId,
fieldId: 'componentinventorydetail',
line: i
});
var detailData = lineData[i].details;
var detailSublistId = 'inventoryassignment';
for (var j = 0; j < detailData.length; j++) {
// 标准模式下,给issueinventorynumber赋值时,建议使用setSublistValue方法,而非setSublistText方法
// 原因:当系统中存在不同物料但库存编码相同时,此处可能发生USER_ERROR的错误,此类错误较难排查
subRec.setSublistValue({
sublistId: detailSublistId,
fieldId: 'issueinventorynumber',
value: detailData[j].invNumId,
line: j
});
subRec.setSublistValue({
sublistId: detailSublistId,
fieldId: 'binnumber',
value: detailData[j].binNum,
line: j
});
subRec.setSublistValue({
sublistId: detailSublistId,
fieldId: 'inventorystatus',
value: detailData[j].status,
line: j
});
subRec.setSublistValue({
sublistId: detailSublistId,
fieldId: 'quantity',
value: detailData[j].quantity,
line: j
});
}
}
rec.save();
其他参考答案:
- Resolve Error: "You still need to reconfigure the inventory detail record after changing the quantity."
- Unable to set Inventory Detail on Item Fulfillment Record - Suitescript 2
- Netsuite reconfigure inventory detail error
NetSuite 开发日记 —— 库存详细信息记录更改数量问题的更多相关文章
- Asp.Net MVC4入门指南(9):查询详细信息和删除记录
在本教程中,您将查看自动生成的Details和Delete方法. 查询详细信息和删除记录 打开Movie控制器并查看Details方法. public ActionResult Details(int ...
- [课程设计]Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)
Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点 ...
- 钉钉开发入门,微应用识别用户身份,获取用户免登授权码code,获取用户userid,获取用户详细信息
最近有个需求,在钉钉内,点击微应用,获取用户身份,根据获取到的用户身份去企业内部的用户中心做校验,校验通过,相关子系统直接登陆; 就是在获取这个用户身份的时候,网上的资料七零八落的,找的人烦躁的很,所 ...
- [课程设计]Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面)
Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队 ...
- [课程设计]Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)
Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选 ...
- Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)
Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选 ...
- 记录EntityValidationErrors的详细信息
0.一个问题 使用过EF的人相信都会遇到Validation failed for one or more entities. See ‘EntityValidationErrors’这种异常,这是由 ...
- 微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆
原创声明:本文为本人原创作品,绝非他处转账,转载请联系博主 从接触公众号到现在,开发维护了2个公众号,开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事, ...
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.3 Details用户详细信息]
3.3 Details用户详细信息 用户详细信息是通过objectId获取.代码如下 public async Task<ActionResult> Details(string obje ...
- NX二次开发-UFUN获取工程图详细信息UF_DRAW_ask_drawing_info
NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <uf_part.h> UF_initialize ...
随机推荐
- 【krpano】KRPano测试开发专用浏览器
KRPano技术解密网站:http://www.krpano.tech 在开发KRPano项目时候,每次测试时均需要打开测试服务器,或者上传到空间中才能进行测试,十分不方便. 因此本站提供了免费的KR ...
- Kafka Stream 高级应用
9.1将Kafka 与其他数据源集成 对于第一个高级应用程序示例,假设你在金融服务公司工作.公司希望将其现有数据迁移到新技术实现的系统中,该计划包括使用 Kafka.数据迁移了一半,你被要求去更新公司 ...
- Kong网关
Kong网关 一.kong网关核心概念 1. Upstream upstream 对象表示虚拟主机名,可用于通过多个服务对传入请求进行负载远的 2. Target 目标ip地址/主机名,其端口表示后端 ...
- 路由器与交换机:Access/Trunk,Wan/Lan
转载请注明出处: 1.交换机与路由器 交换机与路由器的特点: 交换机(Switch): 用于在局域网中传输数据帧 基于MAC地址进行转发和过滤 工作在数据链路层(第二层) 具有多个端口,可以连接多台计 ...
- 「atcoder - agc054c」Roughly Sorted
link. 高妙题,我只会到构造下界那一步-- 构造下界比较容易,只需要注意到交换一次最多让序列向合法迫近一步即可.则答案下界为 \(\sum_i \max\{\left(\sum_{j < i ...
- 「note」原根照抄
阶(multiplicative order) \(\textbf{Def.}\):\(\delta_m(a)\) 为最小的 \(n\) 使得 \(a^n\equiv 1\pmod m\),其中 \( ...
- 基于GPS定位和人脸识别的作业识别管理系统
一.技术参数 mysql5.5 asp.net jquery 高德地图api 百度人脸识别api 二.功能简介 实现简单的施工项目管理,包括项目地点,工期,名称,编号等 实现作业人员的档案信息管理,包 ...
- 面向生产的 LLM 优化
注意 : 本文同时也是 Transformers 的文档. 以 GPT3/4.Falcon 以及 LLama 为代表的大语言模型 (Large Language Model,LLM) 在处理以人为中心 ...
- 关于STM32F407ZGT6的USB损坏后使用ST-Link和USART1实现串口功能
开发板:STM32F407ZGT6: 目标:想使用软件"串口调试助手" 情况:开发板上的USB_UART口所在器件损坏或者直接没有: 解决办法:查看该开发板的原理图,可得:串口1的 ...
- Go 如何实现多态
在 Go 语言中,虽然没有经典的面向对象编程中的继承和多态的概念,但你可以通过接口(interface)来实现多态性.Go 语言鼓励组合和接口多态,这使得代码更加灵活和模块化.下面将详细介绍 Go 语 ...