首页 > 其他分享 >SAP-修改销售订单税额

SAP-修改销售订单税额

时间:2024-04-16 10:34:01浏览次数:12  
标签:tax condx 订单 lt cond 税额 SAP TYPE ls

SAP-修改销售订单税额

用户需要通过接口实现,修改行上的MWSI或MWST税额(两个不会同时存在),前台通过事务码VA02可以直接修改如图示字段。

SAP销售订单条件截图

观察字段名称,需要修改字段为定价值(KOMV-KWERT),相关字段有条件金额或百分比(KOMV-KBETR),条件基值(KOMV-KAWRT)

通过BAPI_SALESORDER_CHANGE修改

首先调用BAPISDORDER_GETDETAILEDLIST接收lt_itemlt_cond

      " 省略MWST的逻辑
      READ TABLE lt_cond INTO ls_cond WITH KEY itm_number = ls_item-posnr
                                               cond_type = 'MWSI' .
      IF sy-subrc =  '0'.
        lv_tabix = sy-tabix .
        ls_cond-cond_value = ls_item-mwsi .
        MODIFY lt_cond FROM ls_cond INDEX lv_tabix.
      endif.
      CLEAR: ls_condx.
      ls_condx-updateflag = 'U' .
      ls_condx-itm_number = ls_item-posnr.
      ls_condx-cond_st_no = ls_cond-cond_st_no.
      ls_condx-cond_count = ls_cond-cond_count.
      ls_condx-cond_unit  = 'X'.
      ls_condx-cond_type  = ls_cond-cond_type.
      ls_condx-cond_value = 'X'. 
      ls_condx-currency   = 'X'.
      ls_condx-cond_count_long  = ls_cond-cond_count_long.
      ls_condx-varcond          = ls_cond-varcond.
      APPEND ls_condx TO lt_condx .
      ...
  ...
  ls_logic-cond_handl = 'X' .
  CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
      salesdocument    = lv_vbeln
      order_header_inx = ls_header_inx
      logic_switch     = ls_logic
    TABLES
      return           = lt_return
      order_item_in    = lt_item_in
      order_item_inx   = lt_item_inx
      partnerchanges   = lt_partnr
      schedule_lines   = lt_schedu
      schedule_linesx  = lt_schedux
      conditions_in    = lt_cond
      conditions_inx   = lt_condx
    .

处理若干问题后,发现实际修改的值是条件金额或百分比(KOMV-KBETR),在lt_condx中没有标记定价值(KOMV-KWERT)字段,因此无法修改!!!

参看网上的资料 CSDN SAP-ABAP-创建销售订单BAPI税额修改增强

最终处理方案

1、程序RV61AFZB隐式增强FORM USEREXIT_XKOMV_BEWERTEN_END

FORM USEREXIT_XKOMV_BEWERTEN_END.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form USEREXIT_XKOMV_BEWERTEN_END, Anfang                                                                                                          A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZEI_RV61AFZB.    "active version

  TYPES: BEGIN OF l_tax,
           knumv     TYPE knumv,
           posnr     TYPE kposn,
           stunr     TYPE stunr,
           cond_type TYPE kscha,
           kwert     TYPE komv-kwert,
           kawrt     TYPE komv-kawrt,
         END OF l_tax .
  DATA: lt_tax TYPE TABLE OF l_tax,
        ls_tax TYPE l_tax.
  " `SAPLZFG_SD013`为函数组名称
  ASSIGN ('(SAPLZFG_SD013)GT_TAX') TO FIELD-SYMBOL(<ft_tax>) .
  IF <ft_tax> IS NOT ASSIGNED OR <ft_tax> IS INITIAL.
    RETURN .
  ENDIF.

  MOVE-CORRESPONDING <ft_tax> TO lt_tax.
  FIELD-SYMBOLS: <fs_xkomv> LIKE komv_index.

  LOOP AT lt_tax INTO ls_tax.
    READ TABLE xkomv ASSIGNING <fs_xkomv>
              WITH KEY knumv = ls_tax-knumv
                       kposn = ls_tax-posnr
                       stunr = ls_tax-stunr
                       kschl = ls_tax-cond_type.
    IF sy-subrc =  '0'.
      <fs_xkomv>-kwert = ls_tax-kwert.
      <fs_xkomv>-ksteu = 'E'.
    ENDIF.
  ENDLOOP.

ENDENHANCEMENT.
*$*$-End:   (1)---------------------------------------------------------------------------------$*$*
ENDFORM.

2、函数组LZFG_SD013TOP声明全局变量

TYPES: BEGIN OF l_tax,
         knumv     TYPE knumv,
         posnr     TYPE kposn,
         stunr     TYPE stunr,
         cond_type TYPE kscha,
         kwert     TYPE komv-kwert,
         kawrt     TYPE komv-kawrt,
       END OF l_tax .
DATA: gt_tax TYPE TABLE OF l_tax .

3、给全局变量 gt_tax 赋值


    SELECT SINGLE knumv
    INTO @data(lv_knumv)
     FROM vbak
    WHERE vbeln = @lv_vbeln .
   
    IF ls_item-mwsi IS NOT INITIAL.
        READ TABLE lt_cond INTO ls_cond WITH KEY itm_number = ls_item-posnr
                                                  cond_type = 'MWST' .
        IF sy-subrc =  '0'.
                   " DENK965851 在程序 RV61AFZB 隐式增强 FORM USEREXIT_XKOMV_BEWERTEN_END
                  gt_tax = VALUE #( BASE gt_tax
                        ( knumv     = lv_knumv
                        posnr     = ls_cond-itm_number
                        stunr     = ls_cond-cond_st_no
                        cond_type = ls_cond-cond_type
                        kwert     = ls_item-mwsi
                        ) .
                    ) .
        ENDIF.
    ENDIF.

4、最后调用BAPI_SALESORDER_CHANGE,不需要给lt_cond传MWST和MWSI参数,系统会自动处理。

标签:tax,condx,订单,lt,cond,税额,SAP,TYPE,ls
From: https://www.cnblogs.com/windmill78/p/18137565

相关文章

  • Python根据主播直播时间段判定订单销售额归属
    写在前面:最近在群里看到一个这样的直播电商的场景觉得还是挺有趣的,于是就想用Python来实现。需求描述:根据主播直播时间段结合销售订单的付款时间判断所属销售的归属生成主播在线直播时间段数据fromdatetimeimportdatetime,timedeltaimportrandomimportpandasaspd......
  • 【流水账01】来新公司两星期,自学sap系统
    机缘巧合,匪夷所思地来了cmoc总部黄埔江边,首先学习报销系统。那么很自然地,必须自己学一波会计,搞清楚什么是科目表,账户,科目,借贷,分录的基本概念搞清楚什么是凭证,做账,过账今天开会,财务想实现自动清账,搞得我一脸懵逼回家后b站竟然有个小视频给讲的很清楚,解惑了:【3.SAP未清项实......
  • 网上图书商城的设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+LW)图
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读300套最新项目持续更新中.....最新ssm+java项目文档+视频演示+可运行源码分享最新jsp+java项目文档+视频演示+可运行源码分享最新SpringBoot项目文档+视频演示+可运行源码分享2024年56套包含java,ssm......
  • 汽车车辆租赁系统的设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+L
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读300套最新项目持续更新中.....最新ssm+java项目文档+视频演示+可运行源码分享最新jsp+java项目文档+视频演示+可运行源码分享最新SpringBoot项目文档+视频演示+可运行源码分享2024年56套包含java,ssm......
  • 【转载】在SAP HANA中创建普通用户进行模型视图开发的权限设置
    转载自SAPComumunity模型视图是SAPHANA中一个重要的组成部分,它包括属性视图、分析视图以及计算视图。正确地使用模型视图进行开发,不仅能够在团队开发中使开发人员对业务理解能有更好的传递作用,也能够对业务场景进行加速,提高执行速度。相信读者之前对于模型视图的概念已经有了......
  • WMS如何与SAP ERP集成,提升现代供应链仓储管理效率?
    一、WMS是什么? WarehouseManagementSystem(缩写为“WMS”),即仓库管理系统,它是一种帮助企业实现高效仓储管理的软件解决方案,集成仓储物流、物料统计、库存管理、人员配置等仓储管理的重要环节,针对人工作业的出错率高、效率低、成本高等管理痛点逐一击破,帮助企业减少错误率、消除仓......
  • 虾皮台湾订单如何发货?
    在跨境电商领域,针对特定地区的订单发货需要考虑到多种因素,包括物流渠道、法规政策、以及客户需求等。对于虾皮平台上的商家而言,处理台湾地区的订单同样需要一套精细化的策略和流程。虎观采购将探讨如何处理虾皮台湾订单,确保高效、合规的发货流程。一、了解台湾地区的物流渠道......
  • SAP 要件定义:创建一个客户组织(BP)
     SAP创建一个客户组织(BP)点击创建一个组织。维护基本信息:公司名称,搜索项,邮政编码,城市,国家/地区,语言,稳妥起见,在这里我选择先保存一下。点击上方小蓝笔和眼镜的图标:【在显示和更改间切换(F6)】然后【在业务伙伴角色中更改】选择:FLCU00客户(标准财务),然后点击,【通用数据】旁......
  • SAP OMWD 评估范围的账户确认+OBYC 配置会计 维护 自动过账
     标题1:OMWD评估范围的账户确认路径:SPRO→物料管理→评估和科目设置→科目确定→无向导的科目确定→将评估范围群集分组创建评估范围以后,需要在OMWD里,计入评估分组代码,我这里把分组代码设置成一样的了。标题2:OBYC配置会计维护自动过账在FB03显示凭证中,查询已经完......
  • FastReport 报表打印分组(切换订单的时候,让页码分开显示)
    注:在打印报表时,想要一次性打印很多ID(单号)的报表,当一个ID的内容很多,一页放不开的时候,会出现好几张纸是同一个ID的情况。此时,你想要的分页是根据ID分页时,以下操作可以帮你实现第一步:GroupHeader设置分组为单号,设置属性ResetPageNumber为True,StartNewPage为True (2)报表,设置里勾......