Oracle EBS订单的流程(Order->AR)
from:http://blog.csdn.net/pan_tian/article/details/7693447
基本流程
创建订单
路径:Order Management > Orders,Returns > Sales Orders
填写订单头信息,客户,订单类型,销售人员
填写订单体信息,输入物料,数量...
然后Book Order,订单Book之后,你会发现订单头的Status的状态变成了“Booked”,订单行的状态为"Awaiting Shipping",记录下来你的订单号,后边的每一步都需要这个订单号。
状态:订单Book之后,这个时候发运单也就产生了,如果你去Shipping Transactions Form,查找订单,你就会发现发运单的Line Status为Ready to Release,Next Step为Pick Release
Pick Release
路径:Order Management > Shipping > Release Sales Orders > Release Sales Orders
Pick Release俗称挑库(即从仓库中挑选货物).在Order Number中输入待挑库的订单号
Auto Pick Confirm设置为No
Auto Allocate设置为N
Auto Allocate和Auto Pick Confirm都可以设置为Yes,只不过为了讲的更加详细,这里都设置为No,设置为Yes的话,那么后边的Allocate和Pick Confirm两步,系统就会自动帮你完成。
这里有两个按钮来执行Pick Release,”Concurrent“是把Pick Release的任务发给Concurrent Request来执行,"Execute Now"是系统再前段执行Pick Release,直到执行结束才把控制权返还给User,这里我们点击Concurrent按钮。
Pick Release后台做了什么事情?Pick Release会创建一个Pick Wave类型Move Order,这个Move Order就是用来把库存中的货物搬到一个临时发货区(Staging),如果打开INV日志就能看到系统是调用INV_MOVE_ORDER_PUB.CREATE_MOVE_ORDER_HEADER来创建Move Order的。(对于Pick Release的后台流程可以参见我的总结:Pick Release Process)
另外需要提到的是,在Pick Release之后,系统会针对你的订单生成一条Reservation(预留),这个时候的预留称为Soft Reservations,因为还没有明确从哪个库出货,所以会在Org级别创建物料的保留。
状态:这个时候,Shipping Transaction的Line Status为"Released to Warehouse",Next Step为"Transact Move Order";订单头的状态仍为Booked,行状态仍为”Awaiting Shipping“。
Pick Confirm
Pick Confirm(挑库确认)的动作实际上是在Transact Move Order中完成的,先Allocate挑选货物,再Transact Move Order.
路径:Inventory > Move Orders > Transact Move Orders
查询页面,Pick Wave那个Tab,输入订单号
进入TMO主界面后,点击Allocate,Allocate会根据你系统默认的Picking Rule来挑选货物,然后给你一个Suggestion的挑库项,Suggestion记录会保存在MTL_MATERIAL_TRANSACTIONS_TEMP表(即Pending Transactions)。
另外完成Allocate之后,你会看到界面Allocation项会出现Single,Multiple或者None的标识,Single表示,系统给你了产生了一条Suggestion的Transaction记录,Multiple表示产生了多条;None表示没有产生Suggestion记录(很可能是因为你系统中库存数量不足)
接下来一步就是去Transact这个Move Order
按Transact之后,Inventory Transaction Manager 会处理Suggestion Transactions(MMTT),然后物料转移的动作就真实发生了,物料就从正式Subinventory到临时存货区(Staging)。这个Transction可以从Material Transaction的Form中查询到。
另外对于Reservation来说,在Transact之后,因为库存明确了,Reservation就会变得更加明确,是对哪个Sub,locator做保留。
状态:这个时候,Shipping Transaction的Line Status为"Staged/Pick Confirmed",Next Step为"Ship Confirm/Close Trip Stop";订单头的状态仍为Booked,行状态变为了”Picked“。
Ship Confirm Deliveries
路径:Order Management > Shipping > Transactions
切换到Delivery页签,准备Ship Confirm(发货确认),如果你在Pick Release的时候,没有选择Autocreate Delivery,那么系统会检查Define Shipping Parameters里边这两个的设置,如果shipping parameters里边也没有选择,那么你需要手工的在Ship Confirm的时候选择Action->Auto-create Deliveries.
Delivery信息实际上包含你要投递货物到哪里,使用哪家物流公司....
Delivery页签,点击Ship Confirm按钮后,会弹出一个窗口,"Defer Interface"如果被勾上,说明你要手动的运行Interface Trip Stop SRS,我们勾上Defer Interface,点OK。
Delivery was successfully confirmed!!!
Ship Confirm这个动作会插入一条记录到MTL_TRANSACTIONS_INTERFACE表中,这个MTI记录的类型为Sales Order Issue,这条记录会被接下来的Interface Trip Stop来处理,最终从MTI转到MMT表中。
状态:这个时候,Shipping Transaction的Line Status为"Shipped",Next Step为"Run Interfaces";订单头的状态仍为Booked,行状态变为了”Shipped“。
Interface Trip Stop - SRS
因为我们在Ship Confirm的时候设置了Defer Interface,所以这里我们还需要手动的运行Interface Trip Stop - SRS。
路径:Order Management > Shipping > Interface > Run > Request:Interface Trip Stop - SRS
Interface Trip Stop实际上包含两部分:Order Management Interface SRS(更新发运行状态、以准备生成AR发票)和 Inventory Interface SRS(产生库存出货事务)
Order Management Interface - SRS是在Inventory Interface SRS之前运行的,这个Request更新发运行状态、以准备生成AR发票,OM Interface运行结束后会更新WSH_DELIVERY_DETAILS表的OE_INTERFACED_FLAG为Y。
状态:这个时候,Shipping Transaction的Line Status为"Interfaced",Next Step为"Not Applicable";订单头的状态仍为Booked,行状态变为了”Shipped“。
关于ITS,还可以参见我的另一篇文章:http://blog.csdn.net/pan_tian/article/details/8624936
Workflow background Process
路径:Inventory > Workflow Background Engine
Item Type:OM Order Line
Process Deferred:Yes
Process Timeout:No
这个program用于处理Deffered状态的workflow,Workflow Background Process运行后,相关数据就会从Order表导入到RA Interface表中去(RA_INTERFACE_LINES_ALL,RA_INTERFACE_SALESCREDITS_ALL,RA_Interface_distribution)
你可以通过下边的SQL来查看RA Interface信息:
1.SELECT * FROM RA_INTERFACE_LINES_ALL WHERE sales_order = '65961';
2.SELECT * FROM RA_INTERFACE_SALESCREDITS_ALL
WHERE INTERFACE_LINE_ID IN (SELECT INTERFACE_LINE_ID FROM RA_INTERFACE_LINES_ALL WHERE sales_order = '65961' );
3.SELECT * FROM RA_INTERFACE_DISTRIBUTIONS_ALL
WHERE INTERFACE_LINE_ID IN (SELECT INTERFACE_LINE_ID FROM RA_INTERFACE_LINES_ALL WHERE sales_order = '65961' );
数据插入到RA Interface之后,再看OE_ORDER_LINES_ALL的INVOICE_INTERFACE_STATUS_CODE字段变成了Yes,INVOICED_QUANTITY变为了订单行的数量。并且你会发现订单行的状态变成了Closed,订单头的状态仍为Booked。
AutoInvoice
用于生成AR发票
路径:Account Receivable > Interface > AutoInvoice
Name:Autoinvoice Master Program
Invoice Source:Order Entry
Default Day:当前日期
提交后,在request里能看到”Autoinvoice Import Program“在运行。
从上图,可以看出Auto Invoice Program用于处理RA的interface表,然后生成真正的营收发票信息,最终数据会插入AR正式表中(RA_CUSTOMER_TRX_ALL,RA_CUSTOMER_TRX_LINES,AR_PAYMENT_SCHEDULES).
可以到订单里 Order > Action > Additional Information > Invoices/Credit Memos中能看到发票信息,也可以通过下边SQL查看订单和AR信息,
SELECT ooha.order_number , oola.line_number so_line_number , oola.ordered_item ,
oola.ordered_quantity * oola.unit_selling_price so_extended_price ,
rcta.trx_number invoice_number , rcta.trx_date , rctla.line_number inv_line_number ,
rctla.unit_selling_price inv_unit_selling_price
FROM oe_order_headers_all ooha , oe_order_lines_all oola , ra_customer_trx_all rcta , ra_customer_trx_lines_all rctla
WHERE ooha.header_id = oola.header_id
AND rcta.customer_trx_id = rctla.customer_trx_id
AND rctla.interface_line_attribute6 = TO_CHAR (oola.line_id)
AND rctla.interface_line_attribute1 = TO_CHAR (ooha.order_number)
AND order_number = :p_order_number;
如果Autoinvoice Import Program有出现error的情况,你可以查看RA_INTERFACE_ERRORS_ALL表Message_text字段,来获取错误信息。
Closing the Order
订单的关闭是自动的,在所有行工作流结束(Close或者Cancel)后0.5天,订单头也将在Workflow Background Process的推动下关闭。
还有另外一种说法:you can wait until month-end and the “Order Flow – Generic” workflow will close it for you.
Order&Shipping Transactions Status Summary
Step | Order Header Status | Order Line Status | Order Flow Workflow Status (Order Header) | Line Flow Workflow Status (Order Line) | Shipping Transaction Status(RELEASED_STATUS in WDD) | |
---|---|---|---|---|---|---|
1. Enter an Order | Entered | Entered | Book Order Manual | Enter – Line | N/A | |
2. Book the Order | Booked | Awaiting Shipping | Close Order | Schedule ->Create Supply ->Ship – Line | Ready to Release(R) | |
3. Pick the Order | Booked | Picked | Close Order | Ship – Line | 1.Released to Warehouse(S)(Pick Release but not pick confirm) 2.Staged/Pick Confirmed(Y)(After pick confirm) | |
4. Ship the Order | Booked | Shipped | Close Order | Fulfill – Deferred | 1.Shipped(After ship confirm) 2.Interfaced(C)(After ITS) | |
Booked | Closed | Close Order | Fulfill ->Invoice Interface ->Close Line -> End | |||
5. Close the Order | Closed | Closed | End | End |