Bug 7415

Summary: Anlegen Bestellbestätigung ohne Änderungsbelege
Product: [SCX/Suite] VMI Reporter: Hopmann, Peter <Peter.Hopmann>
Component: IF-LieferavisAssignee: Hopmann, Peter <Peter.Hopmann>
Status: VERIFIED FIXED QA Contact: Tilli, Benedikt <Benedikt.Tilli>
Severity: normal    
Priority: P2 Keywords: Vorabkorrektur
Version: 7.30   
Hardware: All   
OS: All   
Whiteboard:
Kundennummer: Bestellnummer:
PV Übergabe: --- Phase Roadmap: ---
Erledigt mit: Monoceros SAP Release: ---
Transport: M27K902006, E74K903533 CRM-ID/Ticket:

Description Hopmann, Peter intern 2017-04-13 13:30:50 CEST
Beim Anlegen von Bestellbestätigungen zu einer VMI-Bestellung werden keine Änderungsbelege geschrieben.
Comment 3 Hopmann, Peter intern 2017-04-19 13:47:25 CEST
/GIB/CL_DCV_PO_CONFIRM_CREATOR
METHOD confirmation_create.
...
    ROLLBACK WORK.
  ELSE.
    DELETE lt_ekes_upd                                                      "7415
      WHERE kz <> 'I'.                                                      "7415
    /gib/cl_dcv_po_vd_confirmation=>write_change_log( it_post = lt_ekes_upd "7415
                                                      if_ebeln = lf_ebeln  "7415
                                                      ir_msg = mr_msg ).   "7415

    LOOP AT lt_ekes_upd INTO ls_ekes
      WHERE kz = 'I'.
...

METHOD confirmation_delete.
DATA:...
        lt_uekes_pre TYPE TABLE OF uekes,    "7415
        lt_uekes_post TYPE TABLE OF uekes,   "7415
...
      SELECT * FROM ekes INTO CORRESPONDING FIELDS OF TABLE lt_ekes
        WHERE ebeln = is_ekes-ebeln
          AND ebelp = is_ekes-ebelp.
      lt_uekes_pre = lt_ekes.                   "7415
      LOOP AT lt_ekes INTO ls_ekes.
...
    LOOP AT lt_ekes_upd INTO ls_ekes
      WHERE kz = 'D'.
      APPEND ls_ekes TO lt_uekes_post.                     "7415
      ir_del->unset_confirm_number( ls_ekes-etens ).
      MESSAGE s078 WITH ls_ekes-ebeln ls_ekes-ebelp ls_ekes-etens INTO lf_dummy.
      mr_msg->sy_set( ).
***6155      ir_del->save_data( EXCEPTIONS OTHERS = 0 ).
    ENDLOOP.
    /gib/cl_dcv_po_vd_confirmation=>write_change_log( 
         it_pre = lt_uekes_pre         "7415
         it_post = lt_uekes_post       "7415
         if_ebeln = is_ekes-ebeln      "7415
         ir_msg = mr_msg ).            "7415

    dequeue_po( is_ekes-ebeln ).
  ENDIF.

ENDMETHOD.

/GIB/CL_DCV_PO_VD_CONFIRMATION
  METHOD create_order_confirmation.
...
      DELETE lt_ekes_upd                             "5603
        WHERE kz <> 'I'.                             "5603
**7415      write_change_log( it_post = lt_ekes_upd ).     "5603
      write_change_log( it_post = lt_ekes_upd         "7415
                        if_ebeln = mf_ebeln           "7415
                        ir_msg = mr_msg ).            "7415
      LOOP AT lt_ekes_upd INTO ls_uekes
        WHERE kz = 'I'.
...

  METHOD write_change_log.
Schnittstelle erweitern:
IF_EBELN	Importing	Type	EBELN
IR_MSG	Importing	Type Ref To	/GIB/CL_DCV_ERROR_MSG
Methode umstellen auf STATIC PUBLIC

  METHOD write_change_log.
*#5603
    DATA: lf_chobjectid TYPE cdhdr-objectid,
          lf_indicator TYPE c.

***7415    lf_chobjectid = mf_ebeln.
    lf_chobjectid = if_ebeln.             "7415
    CALL FUNCTION 'CHANGEDOCUMENT_OPEN'
      EXPORTING
        objectclass      = 'EINKBELEG'
        objectid         = lf_chobjectid
***      PLANNED_CHANGE_NUMBER   = PLANNED_CHANGE_NUMBER
***      PLANNED_OR_REAL_CHANGES = PLANNED_OR_REAL_CHANGES
      EXCEPTIONS
        sequence_invalid = 1
        OTHERS           = 2.
    IF sy-subrc <> 0.
***7415      mr_msg->sy_set( ).
      ir_msg->sy_set( ).        "7415
      EXIT.
    ENDIF.

    lf_indicator = 'U'.
    CALL FUNCTION 'CHANGEDOCUMENT_MULTIPLE_CASE'
      EXPORTING
        tablename              = 'EKES'
        reftablename           = 'WEKET'
        change_indicator       = lf_indicator
        docu_delete            = ''
      TABLES
        table_old              = it_pre
        table_new              = it_post
      EXCEPTIONS
        nametab_error          = 1
        open_missing           = 2
        position_insert_failed = 3
        OTHERS                 = 4.
    IF sy-subrc <> 0.
***7415      mr_msg->sy_set( ).
      ir_msg->sy_set( ).          "7415
      EXIT.
    ENDIF.

    CALL FUNCTION 'CHANGEDOCUMENT_CLOSE'
      EXPORTING
        objectclass             = 'EINKBELEG'
        objectid                = lf_chobjectid
        date_of_change          = sy-datlo
        time_of_change          = sy-uzeit
        tcode                   = sy-tcode
        username                = sy-uname
        object_change_indicator = lf_indicator
**      NO_CHANGE_POINTERS      = NO_CHANGE_POINTERS
      EXCEPTIONS
        header_insert_failed    = 1
        object_invalid          = 2
        open_missing            = 3
        no_position_inserted    = 4
        OTHERS                  = 5.
    IF sy-subrc <> 0.
***7415      mr_msg->sy_set( ).
      ir_msg->sy_set( ).
      EXIT.
    ENDIF.

**    COMMIT WORK.

  ENDMETHOD.

  METHOD change_order_confirmation.
...
      write_change_log( it_pre = lt_uekes_pre       "5603
***7415                        it_post = lt_uekes_post ).  "5603
                        it_post = lt_uekes_post       "7415
                        if_ebeln = mf_ebeln           "7415
                        ir_msg = mr_msg ).            "7415
      dequeue( ).
    ENDIF.

  ENDMETHOD.