欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > SAP 采购订单 Adobe 消息输出

SAP 采购订单 Adobe 消息输出

2024/10/23 23:32:52 来源:https://blog.csdn.net/weixin_42579000/article/details/140586439  浏览:    关键词:SAP 采购订单 Adobe 消息输出

目录

1 简介

2 业务数据例子

3 选择增强 & 代码

1)BADI: MM_PUR_S4_PO_MODIFY_HEADER

2)BADI: MM_PUR_S4_PO_MODIFY_ITEM

4 自定义 Adobe form

1)PO Master form

2)PO form

5 前台主数据配置

6 后台配置

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

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_PurchaseOrderItemAPI01where PurchaseOrder = @purchaseorderitem-purchaseorder and PurchaseOrderItem = @purchaseorderitem-PurchaseOrderIteminto @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。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com