Ship Confirm 的时候跑的 Concurrent Request: ITS (Interface Trip Stop) 是什么
2014-04-19 16:41
597 查看
在做 sales order流程的时候,会遇到一个concurrent request 经常出错,这个concurrent 叫 interface trip stop (ITS)。它是在ship confirm完自动运行的,这篇文章主要讨论 ITS 的作用。
Sales Order 的流程:Book SO ->Pick Release -> Pick Confirm -> Ship Confirm
Sales Order从创建到关闭过程中涉及到的表(财务模块的没有包含在内):
OM 模块:
OE_ORDER_HEADERS (SOH)
OE_ORDER_LINES (SOL)
INV 模块:
MTL_RESERVATIONS (MR)
MTL_TRANSACTIONS_INTERFACE (MTI)
MTL_MATERIAL_TRANSACTIONS (MMT)
MTL_TXN_REQUEST_LINES_V (MOV)
Shipping 模块:
WSH_NEW_DELIVERIES (WND)
WSH_DELIVERY_DETAILS (WDD)
每个步骤中各个表的状态 Status:
WDD 表中有三个字段:released_status,oe_interfaced_flag, inv_interfaced_flag
分别表明WDD:WDDstatus, interface to OM status, interface to INV status
OMI = order management interfaced
INI = inventory interfaced
对比一下 Ship Confirm前后各个表的状态:
1. WDD 表中 OMI & INI 两个状态都由原来的'N' 变成了'Y'。这两个字段分别表明由Shipping 模块向OM & INV 模块通过填入接口数据,并处理接口数据是否成功的标志。对 OM 模块而言,就是update SOH &SOL。对 INV 而言,就是插入MTI 并调用 INV 的concurrent program 来处理MTI并最终生成MMT。
2. OM 模块的SOL 表中的状态由awaiting shipping 变成了shipped。
3. INV 模块的 MTI 表插入了一条记录,并生成了一条 MMT 记录,然后 MTI 的记录被删除。
4. MR 表的reservation 数据被删除。
5. WND 表的状态由open 变成closed。
在sales order 发运货物(ship thedelivery)的过程中,shipping 模块要反过来向order management 和 inventory模块填入接口数据,这个过程是由一个叫 interface trip stop 的concurrent program完成的。首先要interface to OM,其次 interface to INV。
也可以单独的调用这个concurrentrequest,但是系统会先检查OM 的interface 状态是否成功,如果不成功就不允许interface toINV。
在pick confirm 之后,WDD的状态会变成staged,这时候就可以做ship delivery 的动作了。在这个过程当中,可能发生的情况有:
case:1
如果ship confirm 的时候选择了deferinterface flag,那么ITS 就不会自动运行,这时WDD的状态就会是shipped。这表明货物已经被运离仓库了(shipment has left thewarehouse)。但是这些数据还没有向OM & INV 模块反馈(not interfaced to OM &INV module)。这种情况下的shipping transaction 是没有完成的,inventory period无法关闭。
case:2
如果ship confirm 的时候没有选择deferinterface flag,那么ITS 会自动运行。DeliveryDetails的状态会变成interfaced。这表明shipment 已经离开了仓库,而且已经把相关的数据反馈到OM 和INV模块当中。需要注意的是,只有在OM 和INV 两个模块的interface 全部成功,Delivery Details的状态才会变成interfaced。如果仅仅OM 成功但是INV 的不成功,DeliveryDetails的状态依然会停留在shipped
的状态。
(参考:http://oracleebslearning.blogspot.sg/2012/10/interface-trip-stop.html)
Sales Order 的流程:Book SO ->Pick Release -> Pick Confirm -> Ship Confirm
Sales Order从创建到关闭过程中涉及到的表(财务模块的没有包含在内):
OM 模块:
OE_ORDER_HEADERS (SOH)
OE_ORDER_LINES (SOL)
INV 模块:
MTL_RESERVATIONS (MR)
MTL_TRANSACTIONS_INTERFACE (MTI)
MTL_MATERIAL_TRANSACTIONS (MMT)
MTL_TXN_REQUEST_LINES_V (MOV)
Shipping 模块:
WSH_NEW_DELIVERIES (WND)
WSH_DELIVERY_DETAILS (WDD)
每个步骤中各个表的状态 Status:
Book SO | |
SOH | booked |
SOL | awaiting shipping |
MR | supply source type =13demand source type = 2 |
MTI | none |
MMT | none |
MOV | none |
WND | none |
WDD | releady to releaseOMI=N INI=N |
After Release SO | |
SOH | booked |
SOL | awaiting shipping |
MR | same asabove |
MTI | none |
MMT | none |
MOV | pre approved |
WND | open |
WDD | release to warehourseOMI=N INI=N |
After Transact Move Order (Pick Confirm) | |
SOH | booked |
SOL | awaiting shipping |
MR | ship ready =released |
MTI | inserted anddeleted |
MMT | add two records: movefrom subinv to shipping stage |
MOV | closed |
WND | open |
WDD | staged OMI=NINI=N |
After Ship Confirm (ITS runs automatically) | |
SOH | booked |
SOL | shipped |
MR | deleted |
MTI | inserted anddeleted |
MMT | add one record: soissue |
MOV | closed |
WND | closed |
WDD | shipped OMI=YINI=Y |
After Workflow Background Processor | |
SOH | closed |
SOL | closed |
MR | none |
MTI | none |
MMT | same asabove |
MOV | closed |
WND | closed |
WDD | same asabove |
分别表明WDD:WDDstatus, interface to OM status, interface to INV status
OMI = order management interfaced
INI = inventory interfaced
对比一下 Ship Confirm前后各个表的状态:
1. WDD 表中 OMI & INI 两个状态都由原来的'N' 变成了'Y'。这两个字段分别表明由Shipping 模块向OM & INV 模块通过填入接口数据,并处理接口数据是否成功的标志。对 OM 模块而言,就是update SOH &SOL。对 INV 而言,就是插入MTI 并调用 INV 的concurrent program 来处理MTI并最终生成MMT。
2. OM 模块的SOL 表中的状态由awaiting shipping 变成了shipped。
3. INV 模块的 MTI 表插入了一条记录,并生成了一条 MMT 记录,然后 MTI 的记录被删除。
4. MR 表的reservation 数据被删除。
5. WND 表的状态由open 变成closed。
在sales order 发运货物(ship thedelivery)的过程中,shipping 模块要反过来向order management 和 inventory模块填入接口数据,这个过程是由一个叫 interface trip stop 的concurrent program完成的。首先要interface to OM,其次 interface to INV。
也可以单独的调用这个concurrentrequest,但是系统会先检查OM 的interface 状态是否成功,如果不成功就不允许interface toINV。
在pick confirm 之后,WDD的状态会变成staged,这时候就可以做ship delivery 的动作了。在这个过程当中,可能发生的情况有:
case:1
如果ship confirm 的时候选择了deferinterface flag,那么ITS 就不会自动运行,这时WDD的状态就会是shipped。这表明货物已经被运离仓库了(shipment has left thewarehouse)。但是这些数据还没有向OM & INV 模块反馈(not interfaced to OM &INV module)。这种情况下的shipping transaction 是没有完成的,inventory period无法关闭。
case:2
如果ship confirm 的时候没有选择deferinterface flag,那么ITS 会自动运行。DeliveryDetails的状态会变成interfaced。这表明shipment 已经离开了仓库,而且已经把相关的数据反馈到OM 和INV模块当中。需要注意的是,只有在OM 和INV 两个模块的interface 全部成功,Delivery Details的状态才会变成interfaced。如果仅仅OM 成功但是INV 的不成功,DeliveryDetails的状态依然会停留在shipped
的状态。
(参考:http://oracleebslearning.blogspot.sg/2012/10/interface-trip-stop.html)
相关文章推荐
- 什么时候应当使用interface?什么时候应当使用abstract class?
- Interface Trip Stop - SRS
- Interface Trip Stop - SRS
- 什么时候选用interface?什么时候选用abstract?
- Interface Trip Stop - SRS 报错
- 使用API进行发运确认并运行Interface Trip Stop
- intellij idea 部署项目的时候 图中application context 写不写有什么关系?有什么作用?
- 什么时候应该使用Web Service
- 什么时候加上android.intent.category.DEFAULT和LAUNCHER
- 是时候写点什么了
- 抽象类(abstract class)和接口(interface)有什么异同?
- c++中const与函数一起用的时候需要注意什么?
- (转)当别人努力的时候,你在做什么? 评论事情的一种态度 当你在抱怨的时候,为什么不想想我做了什么? 把简单的原则坚持贯彻下去 消极的心态,养成了惯性的思维,一切都是不好的。 也许这就是人性的弱点,不经意的习惯,却逐渐腐蚀了你的人生。
- C++ exception throw和catch的时候,发生了什么
- 对象是什么时候被release的?
- 什么时候才能恢复我学习的心...
- ViewController 的loadView、viewDidLoad、viewDidUnload分别是什么时候调用
- 当我在写一个评论通知功能的时候, 我在想些什么?
- 程序员编程的时候喝什么好些?
- 我们什么时候应该使用异常?