PO条件在交货后更改控制点
GR之后无法进行Change的情况解决方案:
新增断点在程序:SAPLV69A - LV69AF22 / 18
Form : KONDITION_LOESCHEN
*----------------------------------------------------------------------*
***INCLUDE LV69AF22 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form KONDITION_LOESCHEN
*&---------------------------------------------------------------------*
FORM kondition_loeschen.
DATA: ls_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_cpf( iv_knumv = xkomv-knumv ).
IF lo_pricing_cpf IS BOUND.
TRY.
lo_pricing_cpf->remove_condition_guid( iv_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
完成。