使用AIF服务创建客户端销售订单时SalesQty数值设置异常求助
AIF服务创建销售订单时SalesQty值异常问题
问题描述
使用AIF服务创建销售订单,其他字段值均可正常设置,但将SalesQty设为20时,系统最终生成的订单该字段值为1.00。
相关代码:
var salesLine = new AxdEntity_SalesLine() { ItemId = txtUrunId.Text, //"1015188", SalesQty = Convert.ToDecimal(txtMiktar.Text), //20, SalesUnit = "ADET", TaxGroup = "IHRACAT", TaxItemGroup = "S%0", InventDim = new AxdEntity_InventDim[] { dim } };
排查及解决方向
- 检查单位转换配置:确认
SalesUnit(此处为"ADET")与商品基础单位的转换规则,若转换系数错误(比如设为1/20),会导致输入的20被转换为1。可在Dynamics AX系统的「库存管理 > 设置 > 单位 > 单位转换」中,查看对应商品(ItemId:1015188)的单位转换关系。 - 验证赋值逻辑:添加调试代码确认
Convert.ToDecimal(txtMiktar.Text)的实际结果是否为20,排除前端输入值异常的可能:decimal inputQty = Convert.ToDecimal(txtMiktar.Text); // 调试输出确认数值 var salesLine = new AxdEntity_SalesLine() { ItemId = txtUrunId.Text, SalesQty = inputQty, SalesUnit = "ADET", TaxGroup = "IHRACAT", TaxItemGroup = "S%0", InventDim = new AxdEntity_InventDim[] { dim } }; - 检查AIF服务契约映射:确认AIF服务的
SalesLine数据契约中,SalesQty是否正确绑定AX表的SalesLine.SalesQty字段,排查是否存在自定义转换逻辑修改数值。 - 查看系统业务规则:检查对应商品的销售订单行默认设置,比如是否有最小订单量、批量规则等自动修改数量的业务逻辑,可在「产品信息管理 > 产品 > 已发布产品」中查看商品的销售相关配置。
内容的提问来源于stack exchange,提问作者mhmtensyldrm
相关产品推荐
相关产品推荐

