15 批量预制-MIR7采购预制供应商AP发票-自开发程序设计和取值逻辑

业务背景:因客户需要做的预制发票行项目超过上百行,所以在SAP标准功能MIR7中进行操作非常不方便。需要自开发一个批量做供应商发票预制的功能。

SAP标准功能:MIR7 - 预制发票 

自开发程序:ZMM_MASS_MIR7 - 批量预制供应商发票程序

自定义事务码:ZMM_MASS_MIR7 - 批量预制供应商发票程序

涉及到的SAP后台表:

EKKO-采购订单抬头表

EKPO-采购订单行项目表

EKBE-采购订单历史记录表

EKKN-采购订单科目表

LFA1-供应商基础数据表

T001-公司代码表

MARA-物料主数据表

MKAT-物料描述表

RBKP-供应商发票抬头

RSEG-供应商发票行项目

ZMM_MASS_MIR7_HEADER-采购预制发票自建表-抬头表

ZMM_MASS_MIR7_LINE ITEM-采购预制发票自建表-行项目表

总体取值逻辑梳理:

1 根据EKKO-EBELN=EKPO-EBELN => INNER JOIN"EKKO&EKPO"

2 根据EKKO-EBELN=EKBE-EBELN AND EKBE-EBELP=EKPO-EBELP => INNER JOIN"EKKO&EKBE"

3 根据EKKO-EBELN=EKKN-EBELN AND EKKN-EBELP=EKPO-EBELP => INNER JOIN OR LEFT JOIN"EKKO&EKKN"

4 根据用户输入项:EKKO-LIFNR AND EKKO-BUKRS AND EKKN-PS_PSP_PNR(如果启用PS模块才需求) AND EKKO-EKGRP AND EKKN-AUFNR AND EKBE-BELNR AND EKPO-MATNR AND EKKO-EBELN AND EKBE-GJAHR AND EKBE-BUDAT AND EKPO-WEKRS AND EKBE-LFBNR AND EKBE-VGABE="1"(业务/事件类型=1收货) AND EKPO-LOEKZ<>"L"(L标识被采购订单行项目已被删除) AND EKBE-BWART=("101"&"102") OR ("105"&"106") OR ("122"&"123") OR ("161"&"162") AND EKPO-REPOS(发票收据&注意事项1) AND EKKN-VBELN

注意事项1:BP供应商主数据创建,在采购视图FLVN01下面有字段-基于收货的发票确认 无法进行必填设置,设置了字段-授予赠品也需要必填。所以只能在创建采购信息记录时,要去字段-基于收货的发票确认,还可以通过将采购订单字段-基于收货的发票确认默认勾选。否则会影响批量预制发票的程序取值,如果采购订单中这个字段没有勾选就会导致预制发票的程序取值不全。

选择屏幕1-创建

EKKO-BUKRS:公司代码 SELECT-OPTIONS & NO INTERVAL

EKPO-WERKS:工厂代码 SELECT-OPTIONS & NO INTERVAL

EKKO-EKGRP:采购组 SELECT-OPTIONS & NO INTERVAL

EKKO-LIFNR:供应商代码 SELECT-OPTIONS & NO INTERVAL

EKPO-EBELN:采购订单 SELECT-OPTIONS

EKPO-MATNR:物料编号 SELECT-OPTIONS

EKBE-BUDAT:过账日期 SELECT-OPTIONS

EKBE-BELNR:物料凭证 SELECT-OPTIONS

EKBE-GJAHR:物料凭证会计年度 SELECT-OPTIONS

EKKN-AUFNR:生产订单 SELECT-OPTIONS

EKKN-VBELN:销售订单 SELECT-OPTIONS

EKKN-PS_PSP_PNR:项目WBS编号 SELECT-OPTIONS

EKBE-LFBNR:供应商送货单号(参考凭证) SELECT-OPTIONS

选择屏幕2-保存

KKO-BUKRS:公司代码 SELECT-OPTIONS & NO INTERVAL

EKPO-WERKS:工厂代码 SELECT-OPTIONS & NO INTERVAL

EKKO-EKGRP:采购组 SELECT-OPTIONS & NO INTERVAL

EKKO-LIFNR:供应商代码 SELECT-OPTIONS & NO INTERVAL

EKPO-EBELN:采购订单 SELECT-OPTIONS

EKBE-BUDAT:过账日期 SELECT-OPTIONS

XXXX-STATUS:处理状态(1-临时创建,2-已创建预制发票,3-已删除) SELECT-OPTIONS & NO INTERVAL

选择屏幕1-创建-ALV字段

EKKO-BUKRS:公司代码

EKBE-WERKS:工厂代码

EKKO-WAERS:采购订单货币

EKKO-LIFNR:供应商编码

EKPO-RETPO:采购订单退货标识

EKBE-BELNR:采购订单收货物料凭证

EKBE-BUZEI:采购订单收货物料凭证行号

EKBE-GJAHR:采购订单收货物料凭证会计年度

EKBE-BUDAT:采购订单收货物料凭证过账日期

EKBE-EBELN:采购订单号

EKBE-EBELP:采购订单行项目号

EKPO-KNTTP:采购订单行项目-科目类别

EKPO-PSTYP:采购订单行项目-项目类别

EKBE-MATNR:物料编号

MAKT-MAKTX:物料描述

EKPO-MWSKZ:税码=J2

PRCD_ELEMENTS-KBETR:税率=13%

EKBE-MENGE:采购订单行项目-已收货过账数量=1 PCS

EKPO-MEINS:采购订单行项目-基本计量单位 PCS

EKPO-BPRME:采购订单行项目-订单单位 TO

EKPO-BPUMZ:转换分子

EKPO-BPUMN:转换分母

EKBE-WRBTR:采购订单行项目-已收货过账数量对应金额(净价=不含税)

XXXX-WRBTR:预制发票不含税总金额(净价)=100 CNY

XXXX-WMWST:预制发票不含税总价对应的税额=13 CNY

XXXX-WRBTR:预制发票含税价总金额=113 CNY

EKKN-AUFNR:生产订单号

EKKN-VBELN:销售订单号

EKKN-PS_PSP_PNR:项目WBS号

选择屏幕2-保存-ALV字段

同选择屏幕1-创建-ALV字段

MIR7预制发票BAPI

CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'

Done.

Created on 18th May, 2024

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值