前提:系统设定为标准三步接收(接收-检验-入库)
问题:何时可以进行转移操作?程序中应该如何处理?
在采购订单的接收过程中,做完第一步接收(RECEIVE)后,进行第二步检验前可以进行转移(TRANSFER)--直接选择目的类型为接收就行了;
在进行完第二步检验后,同样也可以再次进行转移(TRANSFER)--操作方式同上,如果使用后同程序来进行事务,就需要对此两种情况下的TRANSFER进行区分,因为要取到parent_transaction_id才能进行事务.
系统中可以进行多次转移和多次检验,而且多次检验结果可以不同.
如果想取出接收未检验或者检验未入库的记录,只需要从中间过程表rcv_supply表中取数即可,系统进行事务处理时会自动对数量进行计算,数量为0的记录将会被删除.采用rcv_transaction_id 与rcv_transactions中的transaction_id对应.
SELECT rs.shipment_line_id,
rs.quantity,
rs.*
FROM rcv_supply rs,
rcv_transactions rt
WHERE rs.rcv_transaction_id = rt.transaction_id
AND rt.transaction_type IN ('RECEIVE', 'TRANSFER');
事务处理时采用接shipment_line_id分组方式.