PO条件在交货后更改控制点

PO条件在交货后更改控制点

GR之后无法进行Change的情况解决方案:

新增断点在程序:SAPLV69A  -  LV69AF22 / 18

Form : KONDITION_LOESCHEN

PO条件在交货后更改控制点

*----------------------------------------------------------------------*
***INCLUDE LV69AF22 .
*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&      Form  KONDITION_LOESCHEN
*&---------------------------------------------------------------------*
FORM kondition_loeschen.

  DATAls_mess TYPE balmi,
        lo_pricing_cpf TYPE REF TO if_pricing_cpf.

* loop selected lines
  LOOP AT xkomv WHERE selkz 'X'.
    IF xkomv-kschl NE space AND
       xkomv-kherk NA 'BD' AND
       xkomv-kmanu NE 'D'.
      IF xkomv-kaend_loe 'X' OR xkomv-kherk 'C' AND
         xkomv-kntyp NA komp-kaend_typ OR
           xkomv-kntyp EQ space OR komp-kaend_typ EQ space ).

*         Delete CPE Formula Data
        IF xkomv-krech 'Q'.
          CALL FUNCTION 'CPE_ERP_FORMULA_DELETE'
            EXPORTING
              iv_application    xkomv-kappl
              iv_knumv          xkomv-knumv
              iv_kposn          xkomv-kposn
              iv_kschl          xkomv-kschl
            EXCEPTIONS
              cpe_not_active    0
              formula_not_found 0.
        ENDIF.

*       delete CPF data
        IF cl_prc_switch_check=>get_instance)->mv_log_prc_sfws_cs_617 EQ abap_true.
          IF xkomv-is_cpf_enabled abap_true.
            lo_pricing_cpf cl_pricing_cpf_factory=>if_pricing_cpf_factory~get_instance)->get_pricing_cpfiv_knumv xkomv-knumv ).
            IF lo_pricing_cpf IS BOUND.
              TRY.
                  lo_pricing_cpf->remove_condition_guidiv_kposn xkomv-kposn
                                                         iv_stunr xkomv-stunr
                                                         iv_zaehk xkomv-zaehk ).
                CATCH cx_pricing_cpf ##no_handler.
              ENDTRY.
            ENDIF.
          ENDIF.
        ENDIF.

        ENHANCEMENT-POINT KONDITION_LOESCHEN_01 SPOTS ES_SAPLV69A .
*$*$-Start: KONDITION_LOESCHEN_01---------------------------------------------------------------$*$*
ENHANCEMENT 11  OIC_SAPLV69A.    "active version
          IF XKOMV-KRECH 'Q' AND XKOMV-KHERK 'C'.    "SO4K003992 MMU
            PERFORM OIC_FORMULA_DELETE.                  "SO4K003992 MMU
          ENDIF.                                         "SO4K003992 MMU
ENDENHANCEMENT.
*$*$-End:   KONDITION_LOESCHEN_01---------------------------------------------------------------$*$*
* preparations for deletion, which will take place later
        IF xkomv-kherk NE 'E'.
* sepecial handling for multi-dimensional conditions (freight)
          IF NOT xkomv-mdflg IS INITIAL.
            IF <vfkomv> IS ASSIGNED.
              CALL FUNCTION 'SD_VFKOMV_DELETE'
                EXPORTING
                  i_komv   xkomv
                CHANGING
                  c_vfkomv <vfkomv>.
            ENDIF.
          ENDIF.
          xkomv-kschl space.
        ELSE.
* mark item sum for deletion
          xkomv-updkz 'D'.
        ENDIF.
      ELSE.
        xkomv-selkz space.
        MESSAGE i226 WITH xkomv-kschl.
        IF NOT gf_called_by_lord IS INITIAL.
          MOVE-CORRESPONDING sy TO ls_mess.
          CALL FUNCTION 'APPL_LOG_WRITE_SINGLE_MESSAGE'
            EXPORTING
              object  'LORD'
              MESSAGE ls_mess.
        ENDIF.
      ENDIF.
    ELSE.
      xkomv-selkz space.
      MESSAGE i204 WITH xkomv-kschl.
      IF NOT gf_called_by_lord IS INITIAL.
        MOVE-CORRESPONDING sy TO ls_mess.
        CALL FUNCTION 'APPL_LOG_WRITE_SINGLE_MESSAGE'
          EXPORTING
            object  'LORD'
            MESSAGE ls_mess.
      ENDIF.
    ENDIF.
    MODIFY xkomv.
  ENDLOOP.

  rv61a-ksteu 'A'.

ENDFORM.                    "kondition_loeschen

完成。