SD-SO 更改 item category

本文介绍了一种在ABAP环境下对VBAPITEM进行增强的方法,通过修改itemcategory并更新相关业务数据来实现。具体步骤包括在VBAPITEM增强和SO保存检查中加入特定代码,确保itemcategory变化后能自动调整关联的业务数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据业务需要我们在SO的增强中修改 item category,item category 有许多相关的业务数据,所以在修改之后我们需要调用一些标准subroutine修改与之相关的业务数据。

在VBAP ITEM 增强和SO保存检查的增强中添加如下代码进行修改:

      LOOP AT xvbap.
        gv_tabix = sy-tabix.
        CLEAR: ls_vbap_copy.
        READ TABLE lt_vbap_copy INTO ls_vbap_copy
          WITH KEY vbeln = xvbap-vbeln  posnr = xvbap-posnr BINARY SEARCH.
        IF sy-subrc = 0.
          IF ls_vbap_copy-pstyv NE xvbap-pstyv.
            svbap-tabix = gv_tabix.
            PERFORM vbap_bearbeiten_vorbereiten(sapfv45p).
            PERFORM vbap_fuellen(sapfv45p).
            vbap-pstyv = ls_vbap_copy-pstyv.

            PERFORM vbkd_fuellen_tvap(sapfv45k).
            PERFORM vbap_bearbeiten(sapfv45p).
            PERFORM vbap_bearbeiten_ende(sapfv45p).
          ENDIF.
        ENDIF.
      ENDLOOP.
标准 item category determine 逻辑如下:

            IF i_vbap-uepos = 0.
              CLEAR hvbap.
            ELSE.
              PERFORM hvbap_lesen(sapfv45p) USING i_vbap-uepos.
              ASSIGN ('(SAPFV45P)HVBAP') TO <fs_hvbap>.
              IF <fs_hvbap> IS ASSIGNED AND <fs_hvbap> IS NOT INITIAL.
                CLEAR: hvbap.
                hvbap = <fs_hvbap>.
              ENDIF.
            ENDIF.

            CALL FUNCTION 'RV_VBAP_PSTYV_DETERMINE'
              EXPORTING
                t184_auart          = i_vbak-auart
                t184_mtpos          = lv_mtpos
                t184_uepst          = hvbap-pstyv
                t184_vwpos          = space
                vbap_pstyv_i        = space
              IMPORTING
                vbap_pstyv          = i_vbap-pstyv
              EXCEPTIONS
                eintrag_nicht_da    = 1
                pstyv_nicht_erlaubt = 2
                OTHERS              = 3.
            IF sy-subrc <> 0.
* Implement suitable error handling here
            ENDIF.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值