天天看点

采购申请、采购订单、供应商采购定价表(采购订单直接用条件记录号找不走a表)取数逻辑及代码  

账户EBAN 采购申请

BANFN 采购申请号                              BNFPO 项目

EBELN 采购订单号                               EBELP 项目                                               

KNTTP 科目分配类别                           

MATNR 物料号                                    TXZ01 短文本                                           EKGRP 采购组   

MATKL 物料组   

LOEKZ 删除标识                                  FRGKZ 批准标识(X)                              

STATU 处理状态(N未处理、B采购订单)--只要转过,数量没有转完也是B,可以判断menge > bsmng有没有 完全转完

PREIS 价格                                           PEINH 价格单位

MENGE 采购申请数量                          BSMNG 已订购数量                                 MEINS 采购申请计量单位                    BADAT 需求(请求)日期

EBKN 采购申请帐户设置(分配、订单号等)

EKKO 采购凭证抬头

EBELN 采购凭证号                                       LIFNR 供应商号                     BSART  采购凭证类型   

AEDAT 记录(采购凭证)创建日期        BUKRS 公司代码

EKGRP 采购组                                              WAERS 货币码(作为货币参考字段)                          FRGKE 审批标识

RESWK 供货工厂    IHREZ 您的参考

MEMORYTYPE  不完整性(H 暂存)

EKPO 采购凭证项目

EBELN 采购凭证号                                       EBELP 项目号                                       

PSTYP 采购凭证项目类别(有转换例程,存表和增强里是数字,可以直接关联采购信息记录类别)

KNTTP 科目分配类别(决定收货到库存还是消耗)(如成本中心、固定资产、办公用品等) 

REPOS 发票收据标识(可以用来判断是否为免费项目,为空时标识免费,X表示非免费;目前只能用这个字段判断)

MATNR 物料号                                            MATKL 物料组       

TXZ01 采购订单短文本(物料描述、工序描述)

MENGE 数量                                                MEINS 订单单位(不是基本单位)                                        

NETPR 净价

NETWR 不含税金额                                      BRTWR 含税金额

peinh 定价单位   bprme 价格单位

LOEKZ 删除、冻结标识(删除为L、冻结为S)                                                         

ELIKZ 交货已完成(X)        EREKZ 最后发票标识(X,判断是否已清排除不需要开票的,合计开票数量和行项目数量比一下)

RETPO 退货项目(X)                                 MWSKZ 税码

BANFN 采购申请号                              BNFPO 项目号

RESLO 供货工厂

WEBRE 基于收货(GR)

注:采购订单项目项目类别中的'L'表示分包,分包和工序外协的区别是分包是从采购订单直接创建,工序外协由生产订单带过来,分包可以是多个工序直接得到成品

即分包是提供原材料给供应商的采购

A003 税码和税率的对应关系

  select a003~mwskz konp~knumh konp~kopos konp~kbetr into table gt_konp

  from a003

  inner join konp on a003~knumh = konp~knumh

  where a003~kappl = 'TX' and a003~kschl = 'MWVS' and a003~aland = 'CN' .

T007S 税码名

TSKM  物料税

EKET 计划协议计划行(采购凭证行项目交货、收货)

EBELN 采购凭证号                                     EBELP 采购凭证项目                               EINDT 项目交货日期

MENGE 计划交货数量                               WEMNG 收货数量(已检验确认)

CHARG 批号

LICHA 供应商的批次

EKBE采购凭证(收货)历史(包含了对应的采购凭证、物料凭证、发票凭证、以及交货数量)(没有收货就没有采购订单项目对应的数据,判断是否冲销)(只取收货数量可以直接去EKET)

EBELN 采购凭证号                                            EBELP 采购凭证项目    

BELNR 凭证号                                                   BUZEI 凭证项目号

LFBNR 参考凭证                                                LFPOS 参考凭证项目号                             

VGABE 事件类型(P预制,2过账)(比如预制发票后EKBE会多一条P的参考凭证,物料平时新的s)

BWART 移动类型

MENGE 数量(101移动类型)                          WESBS 数量(收货至冻结库存)(103、104、105、106移动类型)(对于工序是103收货、104冲销、105确认、106冲销)(105为负值,103、104、106为正值)

BAMNG 基本单位数量(基本单 MARA-MEINS)

BEWTP 采购订单历史分类(收货、发票、分包等 英文字母表示)                       

SHKZG 借贷标识(收货时H为负,发料时S为负) (贷项和冲销都是H)                  

BUDAT 过账日期                     

CPUDT 凭证输入日期                                        CPUTM 输入时间

采购订单历史类别:E 为收货,O 为减库存(分包项目是给供应商提供物料,所以会减库存),Q 为发票校验,此项目中 BELNR 为发票凭证号,LFBNR为物料凭证号

收货历史中的凭证号和参考凭证号详解:

采购订单项目有多张101物料凭证时,参考凭证都是第一张101。

注:当采购订单中勾选了“基于收货的IV”时,多张105凭证会合并,此时105凭证就没有对应的参考凭证了;这个选项会从信息记录带过来,免费订单由于不用开票,所以默认勾选了。

GR冻结库存

在103收货时,WESBS数量为正,SHKZG借贷标识为S(借)。在105确认时,WESBS数量为负,SHKZG借贷标识为H(贷)

在104退货或冲销时,WESBS数量为正,SHKZG借贷标识为H

104、105、106的参考凭证都是103。

预制发票时填写的参考凭证就应该是这里的参考凭证(比如105填写物料凭证会报错)。

附:

物料凭证的过账日期决定了收货的记账期间,发票凭证的记账日期决定了付款的记账期间,一个是物流,一个现金流,可以发生在不同期间 

采购订单收货中,如果物料凭证记错了,则是整张冲销,如果是不合格,则是退货不合格的数量;有检验批的物料不允许退货,只能冲销,对应的检验批会增加取消状态

取已收货数量和已开票数量金额

        case gt_ekbe-bewtp.

          when 'E'. "收货

            if gt_ekbe-shkzg = 'S'.

              item_100-menge = gt_ekbe-menge.   "数量

              item_100-wrbtr = gt_ekbe-wrbtr.   "金额

            elseif gt_ekbe-shkzg = 'H'.

              item_100-menge = 0 - gt_ekbe-menge.

              item_100-wrbtr = 0 - gt_ekbe-wrbtr.

            endif.

          when 'Q'.

            if gt_ekbe-shkzg = 'S'.

              item_100-menge = 0 - gt_ekbe-menge.

              item_100-wrbtr = 0 - gt_ekbe-wrbtr.

            elseif gt_ekbe-shkzg = 'H'.

              item_100-menge = gt_ekbe-menge.

              item_100-wrbtr = gt_ekbe-wrbtr.

            endif.

        endcase.

或者取1(收货),2(开票)计算

EKBZ 交货费用的凭证历史

      if gt_ekbz-shkzg = 'H'.

        item_200-menge = gt_ekbz-menge.   "数量

        item_200-wrbtr = gt_ekbz-dmbtr.   "金额

      elseif gt_ekbz-shkzg = 'S'.

        item_200-menge = 0 - gt_ekbz-menge.

        item_200-wrbtr = 0 - gt_ekbz-dmbtr.

      endif.

RBKP 发票凭证抬头

IVTYP 发票来源(空MIR7 MIRO,A用函数。存在BUG(超预制)导致为空,同时CDHDR也没有数据)     CPUDT 输入日期(可以被重新,预制时记录预置日期,过账时重写成过账日期)

RSEG 发票凭证项目

EKKN 采购凭证中的账户设置(采购订单项目分配到生产订单)(项目上填写了科目分配类别才有科目分配的,如工序,否则没有和采购订单对应的数据)

EBELN 采购凭证号                                          EBELP 项目号                   AUFNR 生产订单号

PS_PSP_PNR WBS元素

注:当采购订单科目分配项目为'F'时,项目细节才有‘科目分配’,只有采购订单为工序时,才会对应生产订单(因为我们的工序分配到生产订单上)

LFA1 供应商主数据(一般地区有电话和地址)

LIFNR 供应商编号                    NAME1 供应商名称

KTOKK 供应商科目组

LFB1 供应商主数据 (公司代码)

LIFNR 供应商号                        bukrs 公司代码  zterm 付款条件

TVZBT 付款条件

付款条件多行文本用 函数 FI_PRINT_ZTERM取

LFM1 供应商主记录(采购组织数据)

LFM1LIFNR 供应商编号         LFM1WAERS 采购订单货币

T163Y 项目类型文本(采购订单项目类型)

T163YPSTYP 项目类别(编号)   T163YEPSTP 项目类别(代码)   T163YSPRAS 语言代码

T163YPTEXT 项目类别文本

QMAT 检验类型 - 物料参数(质量视图)

采购定价表(采购订单直接用条件记录号找不走a表)

IMG-物料管理-采购-条件-定义价格确定流程-定义条件类型

找到指定条件类型点击存取记录,找到条件表

采购申请、采购订单、供应商采购定价表(采购订单直接用条件记录号找不走a表)取数逻辑及代码  

A017(采购价格条件)(池表)

KNUMH 条件记录号                        MATNR 物料号      LIFNR 供应商号

DATBI 条件记录有效截止日期          DATAB 有效起始日   

取数逻辑

先从A表找到有效条件记录,再去konp找价格

KONP 条件(项目)(可取采购信息记录价格)

KNUMH 条件记录号                       KBETR 价格

 注:取采购信息记录价格,先根据物料号、供应商号、有效日期在A017取条件记录号,然后用条件记录号在KONP中取价格(不用管KOPOS,每个KNUMH只有一条记录)

EINA (采购信息记录 --根据物料号和供应商号取采购信息记录编号)

INFNR 采购信息记录编号                 

MATNR 物料号                LIFNR 供应商号    

loekz 基础数据的删除标记

EINE 采购信息记录-采购组织

INFNR 采购信息记录编号  EKORG   ekgrp 采购组

WERKS 工厂如果为空,表示每个工厂都生效               

ESOKZ 采购信息记录分类  

MWSKZ 税代码(税率)  LOEKZ 组织数据的删除标记(两个删除标记都要检查)

采购信息记录的修改日志类为 INFOSATZ

EORD Purchasing Source List

( eord~febel = 'X' or eord~FLIFN = 'X' )  Fixed vendor

EIPA 订购价格历史:信息记录(采购信息记录使用历史)

INFNR 采购信息记录编号                   EBELN 采购订单号                             EBELP 项目号

采购信息记录表详解

EQUK 配额抬头

MATNR 物料     WERKS 工厂       QUNUM 配额协议

VDATU 配额分配生效期 BDATU 有效至

EQUP 配额行项目

QUNUM配额协议     QUPOS项目    SOBES 特殊采购(寄售)

其中SOBES存储的123之类的数值(比如寄售是2),和SOKEZ(寄售是K)的对应关系可以在SPRO->采购->定义项目类别的外部表示中配置,表T163Y(项目类型文本)

取数逻辑及代码  

附:      采购凭证项目已清数量 = SUM(计划行计划交货数量  计划行收货数量)

             采购凭证项目已收货数量 = SUM(MENGE + WESBS)(通过借贷标识判断数量正负,借为正,贷为负)

取采购信息记录 净价(信息记录的删除标记和价格不为空有遗留问题)

    SELECT SINGLE KNUMH INTO ITABKNUMH

      FROM A017

      WHERE  A017~MATNR = ITABMATNR AND A017~LIFNR = ITABLIFNR AND A017~DATBI > ITABAEDAT.             "信息记录有效截止日期大于采购订单创建日期

       SELECT SINGLE KBETR INTO ITABKBETR

         FROM KONP

         WHERE KNUMH = ITABKNUMH AND KBETR NE 0.

    MODIFY ITAB.

在采购订单收货历史中, SHKZG为借贷标识,SHKZG = H表示冲销或退货(不合格退货),收货数量取负值

继续阅读