详细报错:

"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();

其他参考答案:

NetSuite 开发日记 —— 库存详细信息记录更改数量问题的更多相关文章

  1. Asp.Net MVC4入门指南(9):查询详细信息和删除记录

    在本教程中,您将查看自动生成的Details和Delete方法. 查询详细信息和删除记录 打开Movie控制器并查看Details方法. public ActionResult Details(int ...

  2. [课程设计]Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)

    Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点 ...

  3. 钉钉开发入门,微应用识别用户身份,获取用户免登授权码code,获取用户userid,获取用户详细信息

    最近有个需求,在钉钉内,点击微应用,获取用户身份,根据获取到的用户身份去企业内部的用户中心做校验,校验通过,相关子系统直接登陆; 就是在获取这个用户身份的时候,网上的资料七零八落的,找的人烦躁的很,所 ...

  4. [课程设计]Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面)

    Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队 ...

  5. [课程设计]Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)

    Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选 ...

  6. Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)

    Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选 ...

  7. 记录EntityValidationErrors的详细信息

    0.一个问题 使用过EF的人相信都会遇到Validation failed for one or more entities. See ‘EntityValidationErrors’这种异常,这是由 ...

  8. 微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆

    原创声明:本文为本人原创作品,绝非他处转账,转载请联系博主 从接触公众号到现在,开发维护了2个公众号,开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事, ...

  9. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.3 Details用户详细信息]

    3.3 Details用户详细信息 用户详细信息是通过objectId获取.代码如下 public async Task<ActionResult> Details(string obje ...

  10. NX二次开发-UFUN获取工程图详细信息UF_DRAW_ask_drawing_info

    NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <uf_part.h> UF_initialize ...

随机推荐

  1. Mysql优化篇-索引优化与查询优化

    1.索引失败案列 如果查询时没有使用索引,查询语句就会扫描表中所有记录,在数据量大的情况下,查询会很慢. (1)全值匹配 (2)最佳左前缀法则 mysql可以为多个字段创建索引,一个索引可以包括16个 ...

  2. 在Go中如何实现并发

    Go语言的并发机制是其强大和流行的一个关键特性之一.Go使用协程(goroutines)和通道(channels)来实现并发编程,这使得编写高效且可维护的并发代码变得相对容易.下面是Go的并发机制的详 ...

  3. 点云配准算法-旋转矩阵估计-Kabsch-Umeyama algorithm

    Kabsch-Umeyama algorithm 参考文献: https://www.wikiwand.com/en/Kabsch_algorithm 面向点云配准,最小化两点集均方根误差(RMSD, ...

  4. 其它——Redis与Mysql双写一致性方案解析

    文章目录 一 前言 二 一致性方案 三 先更新数据库,再更新缓存 四 先删缓存,再更新数据库 五 先更新数据库,再删缓存 一 前言 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用.在读取 ...

  5. Vue2系列(lqz)——Vue基础

    文章目录 Vue介绍 一 模板语法 1.1 插值 1.1.1 概述 1.1.2 案例 二 指令 2.1 文本相关指令 2.2 事件指令 2.3 属性指令 三 class与style 3.1 class ...

  6. linux常用命令(六)

    用于查找系统文件的相关命令 grep find locate grep:查找文件中符号条件的字符串(关键词) 命令语法:grep [选项] 查找模式 [文件名] 选项 选项含义 -E 模式是一个可扩展 ...

  7. CF1401C

    题目简化和分析: 交换数组使其变为升序,满足交互的两数 \(a_i\) 与 \(a_j\),$ \min{a_i(1\le i\le n)}|\gcd(a_i,a_j)$ . 简单思维题,Div.2 ...

  8. SpringCloudAlibaba Seata在Openfeign跨节点环境出现全局事务Xid失效原因底层探究

    原创/朱季谦 曾经在SpringCloudAlibaba的Seata分布式事务搭建过程中,跨节点通过openfeign调用不同服务时,发现全局事务XID在当前节点也就是TM处,是正常能通过RootCo ...

  9. Docker磁盘&内存&CPU资源实战

    Docker 资源实战:cpu/内存配置: #查看帮助 docker run --help docker update --help #配置容器使用cpu /内存大小--privileged 给与容器 ...

  10. ChatGPT提示词迭代

    openAI CEO 除了上一篇讲的:限定,排除,示例,生成,扩展了其他方法,包括:关键词.调教和其他使用方法 关键词 像应用搜索引擎一样,在描述的句子开头给一些关键词,比如: 问题 代码 解释 分析 ...