MM模块中常用到的透明表

来源:互联网 发布:勇敢一点 薛之谦 知乎 编辑:程序博客网 时间:2024/05/19 00:38

再次重复:透明表是硬盘数据  内表是内存数据


透明表LFA1   供应商主数据    供应商编号 和 中文名字


查看供应商(LIFNR)的MRP控制者 DISPO  使用事务码MK03   对应透明表  LFM1的字段EKGRP



事务码ME01 维护货源清单  也就是  一个物料MATNR可能有多个供应商LIFNR   那么查询这些供应商列表的事务码就是ME01


与货源清单对应的透明表  EORD


透明表LFM1 供应商主记录 购买组织数据  此表中有LIFNR和EKGRP采购组 也就是相当于DISPO吧  订单货币 支付条件 

我刚刚发现了一个很强大的事务码 XK99 ---批量维护:供应商

这个事务码长这个样子:


看到没有是不是很强大

如何看到某一个供应商LIFNR下所有的物料MATNR呢

目前只是知道可以用MD04的集中读取功能,如下图:



下面介绍一下  订单 也就是采购订单  Purchase Order应该是这么拼吧,反正就是PO 

PO的形成 在我们这里这样的: 首先 由制造部门的同事 进行SAP的操作,也就是制定生产计划,然后由SAP服务器依据生产计划以及MBOM,进行MRP运算。

运算的结果,就是将来一个很短的时间(一周或者两周内),我们要完成这些生产订单,需要的物料(乱七八糟一堆零件)的物料号和数量。 BOM就是bill of material

MRP运算的结果,会体现在采购部门的工作人员使用的事务码的数据上,比如MD04 采购部门的同事 登陆MD04的最主要工作就是,一个物料一个物料的看,某一个物料是否需要马上订货。比如一个公司,进行生产需要的物料数目为1万个,我是说,需要1万种类的物料。那么采购部门会把这一万种物料,分给部门内的员工,比如部门内有10个员工,那么每个人就分到了1000个物料。他们各自维护,各自的1000个物料就好了。

他们每天的工作就是,“遍历”这1000个物料,看看哪个物料经过MRP运算(每天定时运算)后,又要缺货了,必须马上进行订货。

那么,他们怎么进行订货呢?

首先,打开MD04,一看,卧槽,这个物料库存这么低,而且10天以后需要500个,库存只有100个,怎么办?在MD04上进行操作, 把“相关需求”(一个条目,MRP的运算结果)双击,进去,把它变成PO项目,也就是订单。  然后在SAP中,打印这个PO项目,变成一个PDF文档或者一张纸,然后把这个发给供应商,让他们发货。


上述过程,是采购人员在SAP中的鼠标键盘操作,实际上,这些操作对应的SAP中数据的变化,是这样的:

透明表:

表EKET    计划协议计划行   这个表里保存的,是一条一条的交货计划,也就是交货计划,比如你定了400个 但是供应商不是一次性给你送过来,1号 8号 15号 22号 分四次 每次送100个,这样,你的这一个订单就有四个交货计划的记录

属性EBELN表示采购凭证号  

属性EBELP表示这一个采购凭证里面的项目号   也就是一个采购订单可以买n个物料 每个物料有一个项目号

属性ETENR表示计划行也就是一个采购凭证里,某一个物料的(项目号)下,的一个交货计划

属性EINDT表示交货日期  这一个交货计划的交货日期


上述表示交货

还有一个很重要的内容就是  “交货已完成”标识  也就是ELIKZ

表EKPO 采购凭证项目   这个表里保存的是一条一条的 项目  其实对应的是一个个物料的采购信息,而不是一个个交货计划

我觉得是有点问题的。我最初的设想,一个物料会有多个交货计划 

还是直接上图吧  下图就是一个采购订单, 下面半个图,是一个项目,这个项目中有两个 交货计划



上述中的交货计划,已经没有未清数量了,于是我们看 “交货”tab的时候,如下图


于是,表示这个 采购凭证下的这个项目 已经交货完成了。但是也有不同的例子

下面这个例子  这个订单中 10项目  有三个交货计划 其中两个已经交货了 有一个还没有交货



你看看它的交货tab


这就显示,还没有交货完成

于是,我们在abap编程的时候,究竟怎样体现尚未交货完成的  订单呢?

目前我初步的判断是,用交货计划中的,收货数量来判断,这个数字是由采购员自己维护的,我猜测,“交货”tab中的 “交货已完成”的复选框,是由入库人员维护的

那个对勾对应的数据是 ,表EKPO的属性 ELIKZ 表示这个采购订单下这个项目整体,是否交货完成  这个数据由入库,也就是库房人员维护

我们需要的是一个更加细致的数据,也就是,假如这一个采购订单的一个项目下这个物料,分三次交货,那么如果前两次已经到货并入库了,第三次还没有交货

我们只关注第三次尚未入库的数量,这个数量与库房的工作人员无关,因为这个数据来自于表

EKET的WEMNG也就是入库数量,如果这个数据不是零,就说明已经入库了

如果这个数据是零,那么说明这个交货计划还没有执行,我们只需要知道它对应的数量即可。

下面上一个SE11中EKET的图就直观多了


做判断的时候,看看WEMNG是否为0 如果是那么取MENGE中的数量

WEMNG表示收货数量

MENGE表示计划收货数量

另外 采购订单的WERKS也是需要考虑的

好吧,下面说说MD04的问题

MD04是一个SAP的事务码 通常 使用者是 采购人员
MD04的通常用途是,输入一个物料编码,得到该物料,从现时点开始往后一段时间(一两个月)的所有 需求 和 订货情况

是一个列表

该列表包括:


1.库存(你现在库里面有多少货)                                         正数(或零)

2.OrdRes (铁定的,不会再改变的,用于生产的需求)  负数

3.相关需求(不铁定的,可能会再改变的,需求)              负数

4.PurRqs                                                                                   不考虑 (尚未正式下单的东西)

5.PO项目                                                                                    正数 (正式的PO订单)


上述内容,就是基本上MD04的所有内容。


我在计算JIT金额的时候是这样计算的:

PO项目 + 库存 + 相关需求 + OrdRes = x

如果x小于零 ,那么 需要计算JIT金额


对于订单(未交货订单)的数据,可以参考ME2M,如下图


该事务码可以查询所有未交货的订单

通过对比ME2M和我自己编的事务码,我发现一个情况:

某一个物料(早已经存在的)有可能去年由A进行采购,今年移交给B进行维护

如果用MM03来查看,你会发现它的DISPO已经变成了B,但是你用ME2M来查询,那笔采购订单还是挂在A的名下。但是如果用我的事务码查询,则挂在B的名下


0 0
原创粉丝点击