SAP 采购订单 Adobe 消息输出

目录

[1 简介](#1 简介)

[2 业务数据例子](#2 业务数据例子)

[3 选择增强 & 代码](#3 选择增强 & 代码)

[1)BADI: MM_PUR_S4_PO_MODIFY_HEADER](#1)BADI: MM_PUR_S4_PO_MODIFY_HEADER)

[2)BADI: MM_PUR_S4_PO_MODIFY_ITEM](#2)BADI: MM_PUR_S4_PO_MODIFY_ITEM)

[4 自定义 Adobe form](#4 自定义 Adobe form)

[1)PO Master form](#1)PO Master form)

[2)PO form](#2)PO form)

[5 前台主数据配置](#5 前台主数据配置)

[6 后台配置](#6 后台配置)

1)基于常规规则定义输出,可以参考标准来配即可。

[2)关联自定义的 PO Master form 和 PO form。](#2)关联自定义的 PO Master form 和 PO form。)


1 简介

标准的 SAP 采购订单消息输出不会带税金额,但实际业务都会有税金额产生,这时候我们不得不选择做增强+创建自定义 Adboe form 的方式满足实际业务。

2 业务数据例子

PO 表头和行项目明细分别增加,自定义字段 PO 总金额(净价+税价)和自定义 PO 税金额和税码。自定义的 PO 总金额和 PO 税金额反映到 Adobe 自定义模板。

3 选择增强 & 代码

1)BADI: MM_PUR_S4_PO_MODIFY_HEADER

复制代码
* purchaseorderchange-<your_field_name> = 'Your field content'.

data: lv_total_amount type if_ex_mmpur_final_check_po=>bwert.

data lv_taxRate TYPE P length 2.

loop at purchaseorderitem_table into data(ls_item) where purchasingdocumentdeletioncode = space.

clear lv_taxRate.

case ls_item-taxcode.

when 'J2'.

lv_taxRate = 13.

when 'Y1'.

lv_taxRate = 11.

when 'J4'.

lv_taxRate = 9.

when 'JB'.

lv_taxRate = 6.

when 'R3'.

lv_taxRate = 5.

when 'JC'.

lv_taxRate = 4.

when 'R2'.

lv_taxRate = 3.

when 'J5'.

lv_taxRate = 1.

when 'J0'.

lv_taxRate = 0.

WHEN others.

endcase.

lv_total_amount = lv_total_amount + ls_item-netamount + ls_item-netamount * lv_taxRate / 100.

endloop.

PURCHASEORDERCHANGE-YY1_PO_TOTAL_VALUE_PDH = lv_total_amount.

2)BADI: MM_PUR_S4_PO_MODIFY_ITEM

复制代码
" purchaseorderitemchange-<your_field_name> = 'Enter your field content'.

"Defaulting of TaxCode for PO item in first round-trip

"IF purchaseorderitem_old IS INITIAL.

" purchaseorderitemchange-taxcode = 'V2'.

"ENDIF.

"Defaulting of PurchasingInfoRecordUpdateCode for PO item

"either in first round-trip or when material or plant changes

"IF purchaseorderitem_old IS INITIAL

" OR purchaseorderitem-material <> purchaseorderitem_old-material

" OR purchaseorderitem-plant <> purchaseorderitem_old-plant.

" purchaseorderitemchange-purchasinginforecordupdatecode = 'B'.

"ENDIF.

"Set the info update flag when the supplier number is filled.

"IF purchaseorderitem-suppliermaterialnumber IS NOT INITIAL.

" IF purchaseorderitem_old-purchasinginforecordupdatecode IS INITIAL AND

" purchaseorderitem-purchasinginforecordupdatecode IS INITIAL.

" purchaseorderitemchange-purchasinginforecordupdatecode = 'A'.

" ENDIF.

"ENDIF.

"Defaulting of Shipping Type in first roundtrip

"IF purchaseorderitem_old IS INITIAL AND purchaseorderitemchange-shippingtype IS INITIAL.

" purchaseorderitemchange-shippingtype = '01'.

"ENDIF.

data lv_taxcode type C length 2 .

data lv_taxRate TYPE P length 2.

if purchaseorderitemchange-taxcode is not initial.

lv_taxcode = purchaseorderitemchange-taxcode.

else.

select single TaxCode from I_PurchaseOrderItemAPI01

where PurchaseOrder = @purchaseorderitem-purchaseorder and PurchaseOrderItem = @purchaseorderitem-PurchaseOrderItem

into @lv_taxcode.

endif.

case lv_taxcode.

when 'J2'.

lv_taxRate = 13.

when 'Y1'.

lv_taxRate = 11.

when 'J4'.

lv_taxRate = 9.

when 'JB'.

lv_taxRate = 6.

when 'R3'.

lv_taxRate = 5.

when 'JC'.

lv_taxRate = 4.

when 'R2'.

lv_taxRate = 3.

when 'J5'.

lv_taxRate = 1.

when 'J0'.

lv_taxRate = 0.

WHEN others.

endcase.

if lv_taxcode is not initial.

purchaseorderitemchange-yy1_po_item_tax_amount_pdi = ( purchaseorderitem-netamount * lv_taxRate ) / 100 .

endif.

purchaseorderitemchange-yy1_po_tax_coce_pdi = lv_TaxCode .

4 自定义 Adobe form

自定义 PO Master form 和 PO form 关联起来。基于标准的 PO Master form 和 PO form 复制下来,然后再增加税金额字段。总金额字段重新命名成自定义字段,这样才能接收到前台 PO 自定义总金额数据。

1)PO Master form

2)PO form

5 前台主数据配置

基于常规的消息输出挨个定义即可。

6 后台配置

1)基于常规规则定义输出,可以参考标准来配即可。

2)关联自定义的 PO Master form 和 PO form。

相关推荐
私人珍藏库17 小时前
Adobe Photoshop CS6 Lite:PS极端简化版,压缩后大小仅50M,Photoshop精简版
ui·adobe·photoshop
共享笔记2 天前
全面评测 | Photoshop 2026 新特性深度解析与实测体验
adobe
共享笔记2 天前
Adobe Photoshop Elements 2026 正式发布:AI 引擎让修图更简单!
人工智能·adobe·photoshop
夏之繁花2 天前
Adobe Photoshop 2026 v27.0.0
ui·adobe·photoshop
hu55667984 天前
Adobe Acrobat DC PDF如何批量文本替换
adobe·pdf
hello_hereitis5 天前
Adobe Camera Raw 2026 全面解析:AI污点清除、雪景蒙版与变量调整深度评测
adobe·acr
reddingtons8 天前
体验设计总监的“第五维度”:用Adobe Aero,无代码构建AR沉浸式体验
人工智能·adobe·ar·游戏程序·设计师·增强现实·adobe aero
snpgroupcn9 天前
Adobe SAP S/4HANA 升级实践:企业规模化转型关键要素
运维·adobe·云计算
notion20259 天前
Adobe Lightroom Classic下载与安装教程(附安装包) 2025最新版详细图文安装教程
java·数据库·其他·adobe
非凡ghost9 天前
Adobe Lightroom安卓版(手机调色软件)绿色版
前端·windows·adobe·智能手机·软件需求