现在的位置: 首页 > 综合 > 正文

Axapta物流模块深度历险(六)

2012年03月14日 ⁄ 综合 ⁄ 共 2502字 ⁄ 字号 评论关闭

料品注册(Registration),预留(Reservations)和标记(Marking)
注册
个人感觉Axapta在做销售订单时,取料品注册这个名字不太好.
对于库房来说,要么进库房要么出库房,对应出库的交易在InventTrans的字段StatusIssue存放其状态,对应入库的交易在InventTrans的字段StatusReceipt存放其状态,具体的字段值由枚举类型StatusIssue和StatusReceipt.
StatusIssue:
QuotationIssue->OnOrder->ReserveOrder->ReservePhysical->Picked->Deducted->Sold->None
StatusReceipt:
QuotationReceipt->Ordered->Arrived->Registered->Received->Purchased->None
从上面的流程可以看出,收货有个状态叫Registered,出货有个状态Picked,实际上这两个状态对应于物理库存的增加和减少,出货的Pick过程的Registration正好跟收货的状态Registered类似,这很容易让人产生错觉,也许这样说有些吹毛求疵,不过反正我第一次看的时候有些眼花,呵呵.
出货领料这个地方的注册是个什么样的过程那?
对应于不同应用的复杂度,Axapta提供了四种不同的领料方式:
1.不需要注册,甚至领料单都不用做,直接做发货单或者开发票了事.如果一个用户的使用很简单,举个不太恰当的例子,到小卖部去买一块糖,这个过程直接发货就可以了.
2.一步注册.销售的跟领料的是一个人,有库房,库房里有储位,需要登记从哪个储位取的货,比如买个手机,领料的也不知道具体在哪个储位上有,于是去库房找了一下,记住了储位编号,回来的时候登记一下,也就不用打印什么领料单了.
3.两步注册.这个比一步注册多一个打印领料单的过程.我的理解,销售和领料的不是一个人,销售的做一张PickList,说需要某某型号的手机20部,让库房的人去取,库房的人去取,并记录在哪个储位拿的,然后记录下来,把手机交给客户,OK.
4.输出订单.这个过程是最复杂的,销售部门或者客户做一张订单,自动生成输出订单传到库房模块,库房的人看到输出订单,做取货动作.
需要设定两个地方来实现上述四种不同的领料方式:
1.库房模型组(库存管理->设置->库存->库房模型组)

登记需求:对应采购单,选中此项在采购的时候必须登记.
领料需求:对应销售单,选中此项在销售的时候必须注册.
输出单:对应销售单,选中此项在做一张销售单时自动产生一张输出订单.
2.应收账款参数(应收账款->设置->参数设置)

这个参数控制领料单是否自动到Picked状态.
上述几个参数的组合可以控制领料的步骤.当然一步领料和二步领料是操作者自己控制的
1.从销售订单,过账那个功能先打印领料单,再注册就是两步注册.
2.直接从订单行->库存->领料注册就是一步.
注册好像就这么些东西,至于反领料,分批领料就不用提了.
预留
为啥要预留?就是为了让某些客户先吃饱,还能有什么说法.这个动作一定发生在领料之前(这好像是废话,呵呵).
有两种方式的预留:
1.物理预留:意思是预留的这些东西已经在某个库房的某个地方了,万事俱备,只欠出货.
2.订单预留:意思是这些货还在生产或者在供应商那里,不能随时出货,等到了我的库房里才能出货.
物理预留没话说,肯定可以用,但是订单预留允不允许各个公司会有不同的情况,于是应该可以在某个地方设置是否启用订单预留.
库存管理->参数设置

实际的交易中,有时候根本不需要预留,有时候希望系统自己帮忙预留,有时候如果预留的料品是BOM,可能需要预留BOM的子物料,这个应该也有个地方可以设置才好.
应收账款->设置->参数设置

手动:需要在销售订单行->库存->预留    自己做预留动作才会预留.
自动:在添加订单行的时候自动预留.
分解:跟自动差不多,只不过当预留的料品类型是BOM的时候,预留的是BOM的子物料,而不是料品本身.
有关预留的参数设定就这么多了.那么具体是怎么预留的那?需要先了解库房纬度组.

注意一个主库存这一列,所有勾选了该列,并且有效的库存维组,在自动预留的时候会根据销售订单行中选择的该主库存维组值,自动预留.预留的时候默认发生在最老的Lot上,这里的最老定义为:库房维组值按照首字母排序最低(这为什么是最老?奇怪).当然可以在库房模型组参数设置的地方 预留 处选择日期控制,按照财务过账的日期预留,默认是FIFO,即在先入库的Lot上预留,可以选中从装运日期倒推,从而按LIFO预留.
标记
看第一遍的时候我很费解,既然有了预留,还要标记做什么?看了几遍才明白,预留是针对库房维组设定的,没办法指定从哪一个具体的交易(Lot)中出货,而标记就是为了弥补这个问题而出现的.
比如有这样的需求,听说某个商场即将进的第一批T60很好,于是就跑过去说:"我要订你们进的第一批T60",我并不关心这一批T60是放在哪个库房,哪个储位,销售的也不太可能知道,反正是对应他们的第一批入货就可以了.这个用预留也可以做,但非常麻烦.用标记就简单得多,因为标记本身也不关心维组的情况.
用标记会在出货和入货之间建立关联,具体到数据库的物理表来说
InventTrans出货记录的字段InventRefTransId会写入入库记录的InventTransId字段的值,而入库记录的字段InventRefTrandId会写入出库记录的InventTransID(当然如果入库的数量大一些的话,入库记录会分成两条,其中一条对应出库记录,并在字段InventRefTrandId记录入库的InventTransId值).
由于在库存关帐的逻辑是所有的InventTrans会按照InventRefTrandId这个字段是否为空分成两种情况处理,而标记改写了InventRefTrandId这个字段,在库存关帐的时候逻辑跟预留不同.具体的关帐逻辑将在第五部分介绍,很真没想好怎么把那个逻辑用文字表达出来.

抱歉!评论已关闭.