1. 事务处理概述
库存模块的核心是如实记录入库和出库的品种和数量,反应库存的当前价值。正如GL是ERP的账务处理核心,所有模块的会计分录,最后都要过到GL;同样,INV是ERP的物料处理核心,所有模块的物料事务处理都要在INV中体现。采购接收入库和退货、销售发运出库和RMA退回、WIP组件发料和退回、WIP装配件完工和退回、工厂内的仓库库间物品调拨、工厂间的物品调拨、低值易耗品杂项领料、盘点产生的盈亏、项目合同领料、成本更新导致的库存价值变动、内部请购/内部销售产生的物品转移,这些事务虽然操作界面分散在各个模块中,但最终都要及时在库存中做记录,以反映企业最新的存货数量和价值状况。那么这么多种业务在库存系统中如何区分呢?Oracle的设计思路是:用“事务处理类型”来区分。

2. 事务处理类型
事务处理类型 = 事务处理来源 + 事务处理动作
除了在库存直接做事务处理或者通过开发Interface导入数据外,各标准模块该用哪个“类型”,Oracle实际上是写死的,——“来源”和“动作”当然也固定下来了。

事务处理来源:数据来自哪个模块

SELECT tst.transaction_source_type_id, tst.transaction_source_type_name,tst.user_defined_flag
FROM inv.mtl_txn_source_types tst


事务处理动作: 对出入库进行了更加细致的划分, 不允许自定义。

SELECT lov.lookup_code, lov.meaningFROM mfg_lookups lovWHERE lookup_type = 'MTL_TRANSACTION_ACTION'ORDER BY 1;


事务处理类型 = 事务处理来源 + 事务处理动作

SELECT mtp.transaction_type_id,mtp.transaction_type_name,mtp.description,-----------------------------------------------tst.transaction_source_type_id source_id,tst.transaction_source_type_name source_name,-----------------------------------------------lov.lookup_code action_id,lov.meaning action_nameFROM inv.mtl_transaction_types mtp,inv.mtl_txn_source_types tst,mfg_lookups lov
where mtp.transaction_source_type_id = tst.transaction_source_type_idand lov.lookup_type = 'MTL_TRANSACTION_ACTION'and mtp.transaction_action_id = lov.LOOKUP_CODE
order by tst.transaction_source_type_id

此外,为更好的进行追溯和查询,库存系统还把相关模块的单据ID (例:采购订单ID、销售订单ID、工单ID) 保留在inv.mtl_material_transactions.transaction_source_id字段上。

库存直接做事务处理的话(Document/ Alias / Account)保留账户别名ID或科目ID。

3. 事务处理管理器
Inventory Transaction Manager用于处理库存接口(MTL_TRANSACTIONS_INTERFACE或者MTL_MATERIAL_TRANSACTIONS_TEMP)中的记录,处理之后最终产生库存事务(MTL_MATERIAL_TRANSACTIONS)。
(MTL_MATERIAL_TRANSACTIONS里记录了所有库存事务的历史,是Inventory的最核心的表)

Inventory有两套接口表:

  • MTI: 主要用于第三方模块(产品)数据的导入,如Order Management, WIP。 对应的Form为Transaction Open Interface。
  • MMTT:Inventory, Purchasing, WIP, Move Order等相关模块的数据可以绕过MTI,直接写到MMTT中,最终Inventory Transaction Mannager会把这个临时表数据导入到库存事务表(MTT)中。对应的Form为,Pending Transactions Form。

    4. 事务处理相关表
    Basic Flow: MTI -> MMTT -> MMT

先将记录写至MTL_TRANSACTIONS_INTERFACE,再经由库存事务处理主程序Process transaction interface插入零时表MTL_MATERIAL_TRANSACTIONS_TEMP,
再由Inventory transaction worker插入正式表MMT中。

并发程序Process transaction interface(Cost Manager)系统默认排定5分钟运行一次。而并发程序Inventory transaction worker根据接口中是否有数据自动调用的,无需手工运行。

接口表导数据时,建议使用MTI表,不建议用MMTT。
MMTT表是联机处理用的,也就是说是form通过API往里面写数据并可以用API直接处理的,MTI表是接口表,里面的数据是通过并发请求转到MMTT中并通过txn worker来处理的。另一个原因,插入MMTT会绕过系统id验证,直接进入数据表。

EBS INV:事务处理相关推荐

  1. oracle的opm,Oracle EBS OPM 事务处理

    --事务处理 --created by jenrry DECLARE l_iface_rec inv.mtl_transactions_interface%ROWTYPE; l_iface_lot_r ...

  2. EBS INV:客户料号

    Oracle EBS中,标准功能允许ERP物料.客户物料存在1对多和多对1的情况. 可以在系统中这样处理(系统标准功能并没有,需要开发): A. 1对多时,录入ERP物料,客户物料置为空,并警告必须手 ...

  3. EBS INV 计算现有量(标准API)、保留量、可用量 ---根据批次、库存组织、子库

    现有量= 可用量+保留量: 1.现有量 --批次CURSOR c_lot_number(l_organization_id NUMBER) ISSELECT mln.lot_number,mln.ex ...

  4. sql分组 会计分录_oracle\EBS\常用表\视图\会计分录\mtl_serial_numbers\总账

    _all: 基表,保存多组织数据,里面有一个Org_Id字段,一般不直接出现在我们的DML中 去掉_all的视图: 根据用户环境过滤掉组织,相当于普通的基表,我们直接使用它,就当它是基表 _v: 视图 ...

  5. EBS --PO采购订单

    采购订单:主要包括订单头,订单行,发运行,分配行 一.采购订单(路径:PO/采购订单/采购订单) 1.po_headers_all 采购订单头表  ,记录向哪个供应商买东西 主要信息:agent_id ...

  6. oracle ebs会话时间,ORACLE EBS 日历和并发管理设置

    五.基础数据 基础数据通常是指与具体业务关系不大且具有全局性.基础性的一些基本数据,例如日历Calendar.币种Currency.汇率Rate.单位UOM.地点Location等等.这些基础数据的系 ...

  7. oracle ebs 采购员表,oracle EBS采购订单各表作用分析

    一.采购订单(路径:PO/采购订单/采购订单) 1.po_headers_all 采购订单头表 2.po_lines_all 采购订单行表 --po_header_id=po_headers_all. ...

  8. Flink新特性之非对齐检查点(unaligned checkpoint)简介

    前言 在食用本文之前,建议看官先充分食用这两篇文章:<Chandy-Lamport分布式快照算法小记>与<深入理解Flink的轻量级异步屏障快照(ABS)算法>. 屏障对齐的风 ...

  9. ORACEL_EBS_采购到入库所经历的表

    http://blog.csdn.net/gsairon/article/details/8432287 -采购到入库所经历的表 --0.请购单 --创建请购单方式有 --a.从外挂系统导入请购的接口 ...

  10. java 虚拟机访问对象的两种机制到底有什区别 http://www.cnblogs.com/h2-database/archive/2012/06/27/2572498.html

    h2内存数据库 指针与句柄的区别 最近两天在复习一些c++的知识,中间发现了许多以前没有注意过的问题.关于句柄以前总是将其理解为指针,其实不然,他们之间有着明显的区别. 首先,指针指向系统中物理内存的 ...

最新文章

  1. 干货|六维力和力矩传感器的技术与应用
  2. 解决pycharm输入法不跟随的方法
  3. python得到一个10位随机数的方法及拓展
  4. 商汤科技2020年校园招聘丨以你所AI,创无界未来
  5. 系统动力学9种模型_软工国际标准专栏(9)|系统和软件质量模型
  6. E. Mocha and Stars(莫比乌斯反演、简单dp)
  7. Functional ProgrammingLazy Code:被我忘记的迭代器
  8. 一个微信公众号接入另一个微信公众号的内容
  9. 游戏开发中的数学和物理算法(7):角度 vs 弧度
  10. seaborn的一些画图
  11. 分布式数据库中间件使用经验分享
  12. PHP代码中的情话,php语言编程情话
  13. Microsoft.NET多国语言资源解决方案
  14. HTML5 代码要怎样凭“魅力”吸引搜索引擎的注意?
  15. VBA 根据模板批量生成工作表
  16. Aria2保姆级教程
  17. html5 黑色圆圈,html5使用canvas画空心圆与实心圆_html5教程技巧
  18. 如何制作资产编号标签
  19. 标准Lipschitz连续函数与伪Lipschitz连续函数
  20. 编译 LineageOS 源码,并重定义 kernel log

热门文章

  1. uni-app背景图片全屏
  2. python 频数分布,频率分布
  3. 消费卡“裸奔”倒计时!商务部:排查风险,异常发卡企业将上“黑名单”
  4. c语言中堆栈作用是什么意思,请问堆栈是什么?做什么时候会用到远堆栈?
  5. 【默认输入法】Android8.1默认输入法修改(解决输入法切换和权限获取等问题)
  6. python半圆,(小小黑科技)vue+echarts实现半圆图表
  7. 如何关闭伽卡他卡的开机自启
  8. linux中,运行sh文件没权限错误:Permission denied,解决方法
  9. 一个故事看懂计算机操作系统的进化史
  10. 追梦算法网----团队数量