点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好!!!! ...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好!!!! ...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好!!!!
我有一个问题,我想知道是否有人对此有所了解。 使用SAP 9.2的DI API使用多个批号填充收货采购订单时,这是舍入错误。 很可能我应该将接收到的总数四舍五入到特定位数,但我不知道会是多少。
详细地说,我创建了一个使用DI API自动化SAP Business One 9.2的应用程序。 用户标识收到的采购订单,然后输入收到的批次和数量。 输入所有批次后,应用程序将创建一个收货采购订单并将其过账。 该应用程序正常工作。 但是,用户偶尔会收到大约十二个相同格式的批号后出现错误:
"错误-4014:如果未完全选择批次/序列号,则无法添加行。"
我问用户是否可以一次接收一次所提供的批次。 用户非常友善,一次可以尝试一,二和三,一切正常。 当他尝试一次接收四个时,应用程序收到了前面提到的错误。
此行为使我怀疑这是一个四舍五入的问题,因为SAP和我的应用程序没有使用相同数量的数字来计算接收到的总量。 知道应该考虑多少个数字确实很有帮助,这样就不会发生这种情况。
非常感谢您的帮助!
曼努埃尔
因此,我们得出的结论是,这是SAP数据体系结构的缺点,而导致此问题的原因是因为"批次数量","行数量"和"每个度量因子"的单位四舍五入为多个数字(在我们的示例中为4 小数位),这样当采购计量单位与库存计量单位不同时,当在同一收货单上接收到三批或更多批次的相同项目时,DI API偶尔会无法收到库存。 出现以下错误:"(错误-4014)如果未完全选择批次/序列号,则无法添加行。"
要变通解决此限制,我们在将表单添加到SAP DI API中之前,先"按摩" DI API的DocumentLines对象的"数量"属性的值。 从"采购单位"到"库存单位"(即BatchNumbers对象的"数量"属性上的内容)给出了SAP处理的位数。
以下是我们用于解决此限制的功能:
声明@dblFunctionResult浮动
设置@dblFunctionResult = @dblQuantity
如果(1 <@dblUMFactor)
开始
设置@dblFunctionResult = Round((@dblQuantity * @dblUMFactor),4)
设置@ dblFunctionResult = Round((@dblFunctionResult/@dblUMFactor),6)
结束
Return(@dblFunctionResult)
其中@dblQuantity是购买计量单位中的已接收数量,@dblUMFactor是SAP采购订单中指定的UnitsPerMeasure。
我们对接收到的每个批次都使用此函数,因此,SAP的DocumentLines对象的Quantity属性(由DI API舍入为四位数)现在与BatchNumbers对象的Quantity字段的总和相匹配,后者使用的库存单位为 度量,也由DI API分别舍入为四位数。
我希望这会有所帮助。
Manuel
一周热门 更多>