Product Information
如何使用BADI “Sales Item Tax Fields Modification” 修改专业服务订单的税收分类
业务需求:
客户创建一个服务项目并且生成服务订单,需要管理专业服务订单上的可选税分类。
方案:
使用BADI “Sales Item Tax Fields Modification” 修改专业服务订单的税收分类
这是S/4HANA Cloud 2002发布的新功能“专业服务的可选税收分类”中的一部分。
英文版原文链接: https://blogs.sap.com?p=601
详情:
- 需要用到的ROLE:
Role Name |
Role Description |
SAP_BR_PROJ_MANAGE_COMM |
Project Manager – Commercial Services |
SAP_BR_INTERNAL_SALES_REP |
Internal Sales Representative |
-
让我们按照下面的步骤来实现这个需求:
1. 打开应用程序<自定义字段和逻辑>
2. 创建一个新的自定义字段。选择“+”(创建)按钮来建立新的自定义字段。
注意: 使用“代码列表”类型。
选择“创建并编辑”
3. 选择“UI和报表”,向下滚动直至找到“计划客户项目”,点击“启用”使用户界面上可使用这个新定义字段。
启用:
选择“保存”,然后点击“发布”。
4.发布这个字段可能需要等待几分钟。完成后状态会显示为“已发布”。
5.创建新的自定义逻辑。选择“+”(创建)按钮来建立新的自定义逻辑。
6.选择这段逻辑所对应的正确的业务上下文和增强实施。
点击“创建”。
7. 现在可以撰写自定义逻辑了。在本演示中使用以下代码:
salesdocumentitem_tax_out = salesdocumentitem_tax_in.
If salesdocument-salesdocumenttype = ‘DMR1’.
if processingstep = ‘INITIAL’.
data: refdocitem type i_salesdocumentitem.
if salesdocumentitem-referencesddocument is not initial and salesdocumentitem-referencesddocumentitem is not initial.
select single * from i_salesdocumentitem into @refdocitem where salesdocument = @salesdocumentitem-referencesddocument and salesdocumentitem = @salesdocumentitem-referencesddocumentitem.
if refdocitem-yy1_tax_classification_sdi is not initial.
salesdocumentitem_tax_out-producttaxclassification1 = refdocitem-yy1_tax_classification_sdi.
else.
salesdocumentitem_tax_out-producttaxclassification1 = refdocitem-producttaxclassification1.
endif.
endif.
endif.
endif.
8. 当你输入自定义代码后,选择“保存草稿”:
然后点击“发布”:
9. 发布这段自定义逻辑可能需要等待几分钟。完成后状态会显示为“已发布”
10.将这段新创建的自定义逻辑添加到相关的UI应用程序屏幕上。
前往应用程序<计划客户项目>并找到相关的项目。
前往“开票”页并选择“编辑”。
11.点击“设定”,选择要添加的自定义字段然后点击“确定”:
12.在演示中,将税分类改为1:
开票到期日期:
13. 现在前往应用程序<审批开票建议 – 今天到期>去创建一个基于客户项目的借项凭证请求 (DMR)。
注意:这是可以通过BAdI 实施来使用税分类的步骤。
选择“编辑”:
14.选择“审批”:
15. 当一个借项凭证生成时,将出现一条消息:
16.检查是否预期的税收分类已存在
前往应用程序<管理借项凭证请求>.
搜寻已创建的DMR。在本次演示中, 我们想查看凭证70001602:
17. 双击物料下的项目行
18.前往“出具发票凭证”页,可以看到税收分类的数值为“1”
总结:
-
在专业服务用例中,必须通过使用应用程序<计划客户项目>中的自定义字段和BAdI实施来修改DMR(借项凭证请求)中的税收分类(而不是在订单类型SO01的销售订单中)
-
在BAdI实施中你需要做以下操作:
-
从之前的凭证中通过I_SalesDocumentItem读取自定义字段。
- 税收分类字段是通过自定义字段赋值的。