最新消息:ww12345678 的部落格重装上线,希望大家继续支持。

Dynamics AX 库存【重新计算】的原理

原创 William 1779浏览 0评论
Q:
部分帐套做库存重算的时候,当进度提示到98%的时候提示正在迭代,速度很慢,如果把最大执行次数按照默认的100次的话,重算一次至少需要2个小时。最后弹出提示信息“如果要想得到更精确的结果,请增加最大执行次数。”请问库存【重新计算】的原理是什么?做了些什么操作?生成些什么东西?还有我们的问题可能是什么原因造成的?
A:
1.重新计算与关帐的区别 不关闭库存期间 不关闭库存交易记录 可以对单独的物料或物料组单独进行重新计算 可以自上次关帐后的任何时间进行重新计算 2.关帐步骤: 检查在上次关帐后是否存在重新计算 从最后一个重新计算开始逐一取消重新计算 将所有物料交易记录放到InventCostList表队列中 取InventCostList表第一条未锁定记录 锁定该记录 查找该记录标记字段(参考批次ID),如果存在标记,则按照标记进行结算 查找该记录销售退货(退回批次ID),如果存在,则按照退回批次进行结算 按照物料指定的结算方法进行结算 查看该记录是否结算完毕,如果结算完毕,则将“财务未记帐”字段设置为否,“财务上已结算”字段设置为当前日期。 从InventCostList表删除该条纪录 继续执行,直到所有物料都处理完毕。 根据参数设置,过账到总帐科目 关闭当月库存 根据参数设置,决定是否进行重新计算 3.重新计算步骤: 检查在上次关帐后是否存在重新计算 从最后一个重新计算开始逐一取消重新计算 将所有物料交易记录放到InventCostList表队列中 允许用户指定物料范围 取InventCostList表第一条未锁定记录 锁定该记录 查找该记录标记字段(参考批次ID),如果存在标记,则按照标记进行模拟结算 查找该记录销售退货(退回批次ID),如果存在,则按照退回批次进行模拟结算 按照物料指定的结算方法进行模拟结算 查看该记录是否结算完毕,如果结算完毕,则将“财务未记帐”字段设置为否,“财务上已结算”字段设置为当前日期。(不做) 从InventCostList表删除该条纪录 继续执行,直到所有物料都处理完毕。 根据参数设置,过账到总帐科目 关闭当月库存(不做) 根据参数设置,决定是否进行重新计算 (不做) 一言以蔽之:重新计算实际是做了一次模拟关账。
Q:
部分帐套做库存重算的时候,当进度提示到98%的时候提示正在迭代,速度很慢,如果把最大执行次数按照默认的100次的话,重算一次至少需要2个小时。
A:
关于重新计算的效率,如果当月有3000张生产单,采用先进先出算法,一次重新计算大概需要10个小时左右(我们公司的情况),如果采用加权平均并且使用4.0版本,由于先天算法的问题可能需要更长的时间,具体没有测试过。关于迭代请参考我上面的描述。 Q: 最后弹出提示信息“如果要想得到更精确的结果,请增加最大执行次数。”
A:
基本每次都会有这个提示。我个人认为这个提示主要是给采用加权平均系列的结算方式看的。但无论你采用什么结算方式最后都会有这么个提示。
A:
关于取消“关闭”和取消“重新计算”操作我做一点补充: 当我们执行取消“关闭”和取消“重新计算”操作时,系统执行了一个讨巧的方法,并没有执行什么高深的算法,只是简单的按照相反的数值重新插入到相关表中,并通过一个叫做“取消”的字段做了一下标记而已(类似于我们手工做的反冲操作)。所以会像楼上april朋友所说的“会导致数据库膨胀”,因为并没有删除任何记录嘛,反而平白无故多了一倍的记录。 实际上AX也注意到了这个问题,所以在“AX->库存管理->期间->清除->库存结算清除”位置留下了一个清除这些无用数据的功能。该功能提供了两个日期参数: 组合已过帐的结算的截止日期、删除已过帐的已取消的结算的截止日期。第二个参数就是问你要删除到那天为止的已取消的“关闭”或“重新计算”的记录。
Q:
AX->库存管理->期间->清除->库存结算清除 中第一个日期作用是什么? 删除已经过账的非取消的库存结算(重算和关闭)对系统会产生什么影响?
A:
库存管理 > 期间 > 清除 > 库存结算清除 使用此窗体可以对已结转的库存交易记录进行分组或删除已取消的结算。清除已结转或已删除的库存结算尤其有利于释放系统资源。 需要特别注意的是,如果将十分接近当前日期或会计年度的库存结算进行分组或删除(作为结算交易记录信息的一部分),可能会导致丢失信息。 注意 在对已结转的库存交易记录进行分组后就无法对它们进行更改,因为会丢失结算交易记录信息。 如果您删除了已取消的库存结算,则无法通过财务交易记录对已取消的库存结算进行对帐。
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址