欢迎来到萧静默的博客

书山有路勤为径,学海无涯苦作舟。

SAP获取采购订单含税值

假设PB00填的是含税价,那怎么获取呢?

因此,我们有两种方式获取:方式一:使用传统表KONV
表:KONV
关联字段:EKPO-EBELN(采购订单号)->通过EKKO关联(因为KNUMV在EKKO中)EKPO-EBELP(行项目号)->

KONV-KPOSN   EKKO-KNUMV(条件编号)->KONV-KNUMV
条件:KONV-KSCHL='PB00'(或配置中对应的条件类型
方式二:使用CDS视图PRCD_ELEMENTS(需要SAPS/4HANA环境)
视图:PRCD_ELEMENTS
关联字段:EKPO-EBELN->通过EKKO关联(PRCD_ELEMENTS-KNUMV =EKKO-KNUMV)EKPO-EBELP->
PRCD_ELEMENTS-KPOSN
条件:PRCD_ELEMENTS-KSCHL='PB00'
由于用户提到的是采购订单,我们通常可以从行项目出发,通过头表找到条件编号,再关联条件表。

由于用户提到的是习采购订单,我们通通过头表找到牛编号,再关联条件表。次日
具体步骤:
1.根据采购订单号(EBELN)在EKKO表中找到对应的条件编号(KNUMV)。
2.然后通过KNUMV和行项目号(EBELP)在条件表(KONV或PRCD_ELEMENTS)中查找条件类型为PB00的记录。
关键字段说明:
条件值:在KONV表中,条件金额存储在字段KBETR(条件率)或KWERT(条件值)中?注意,对于单价条件类型(如PB00),通常使用KBETR存储单价,而KWERT存储总价(条件值乘以数量)。但具体要看条件类型的配置(条件类别)。
根据标准定价逻辑,单价通常存储在KBETR中。但是,用户需求是含税价(单价),所以应该取KBETR。
因此,在KONV表中,我们取KBETR作为含税单价。
注意:KBETR存储的值是按条件定价单位(KONV-KPEIN)调整过的。通常,条件定价单位默认是1,但如果条件定价单位不为1,则实际单价为KBETR除以KPEIN。
例如:如果KBETR=1000,KPEIN=5,则实际单价=1000/5=200。

所以,我们需要同时取出KPEIN字段。
总结:
对于传统ABAP环境(使用表KONV):
表:KONV
字段:KBETR(条件值,含税单价需要根据KPEIN调整)
关联:KONV-KNUMV=EKKO-KNUMV(通过采购订单头表EKKO关联),并且KONV-KPOSN=EKPO-EBELP(行项目号),同时KONV-KSCHL='PB00
查询示例(SQL思路):

SELECT
EKPO.EBELN AS 订单号,
EKPO.EBELP AS 行号,
KONV.KBETR AS 含税价原始值,
KONV.KPEIN AS 定价单位,
KONV.KBETR / KONV.KPEIN AS 实际含税单价
FROM EKPO
JOIN EKKO ON EKPO.EBELN = EKKO.EBELNJOIN KONV ON EKKO.KNUMV = KONV.KNUMVAND EKPO.EBELP = KONV.KPOSNWHERE
EKPO.EBELN="采购订单号'AND KONV.KSCHL = 'PBO0';

 

posted @ 2026-01-15 08:54  萧静默  阅读(1)  评论(0)    收藏  举报