Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Need to delete / cancel delivery after picking

Former Member
0 Kudos

Hi,

In case if delivery picked and PGI has not been done then i need to cancel the delivery. To delete / cancel the delivery i need to undo pickings. Could you suggest me the FM / BAPI to unpick the qtys and cancel the delivery.

5 REPLIES 5

Former Member
0 Kudos

Hi..

Refer the below thread...

Hope this helps...

Regards,

Chithra

0 Kudos

Sorry, we are using 4.6C. Just i need to BAPI / FM to perform unpicking. Because i found the BAPI to delete/cancel the delivery, before i use that i need to do unpicking.

0 Kudos

Hi , Former Member,

Could you tell me which FM you used in the end?
Thanks very much.

0 Kudos

A 'former member' is unlikely to respond...

I've solved it. Thank you.Share my test code.

DATAls_vbkok        TYPE vbkok.
DATAlt_vbkok        TYPE STANDARD TABLE OF vbkok.
DATAlt_prott        TYPE STANDARD TABLE OF prott.
DATAls_prott        TYPE prott.
DATAlt_vbpok        TYPE STANDARD TABLE OF vbpok.
DATAls_vbpok        TYPE vbpok.
DATAlv_message      TYPE string.
DATAlv_all_message  TYPE string.
DATAlv_flag         TYPE char01.


PARAMETERS p_vbeln TYPE likp-vbeln OBLIGATORY.

ls_vbkok-vbeln_vl p_vbeln.


CLEAR:ls_vbpok,lv_flag,lv_message,lv_all_message,lt_prott.


DATA lt_lips LIKE TABLE OF lips WITH HEADER LINE.
SELECT  FROM lips
  INTO TABLE lt_lips
  WHERE vbeln p_vbeln.

LOOP AT lt_lips.
  SELECT SINGLE FROM vbfa
    INTO @DATA(lw_vbfa)
    WHERE vbelv @LT_lips-vbeln
      AND posnv @LT_lips-posnr
      AND vbtyp_n 'Q'.
  ls_vbpok-vbeln_vl  lt_lips-vbeln.
  ls_vbpok-posnr_vl  lt_lips-posnr.
  ls_vbpok-vbeln     lw_vbfa-vbeln.
  ls_vbpok-posnn     lw_vbfa-posnn.
  ls_vbpok-vbtyp_n   'Q'.
  ls_vbpok-meins     lt_lips-meins.
  ls_vbpok-pikmg     0.
  APPEND ls_vbpok TO lt_vbpok.
ENDLOOP.

CALL FUNCTION 'WS_DELIVERY_UPDATE'
  EXPORTING
    vbkok_wa                 ls_vbkok
    synchron                 'X'
    commit                   'X'
    delivery                 p_vbeln
    update_picking           'X'
    if_database_update       '1'
    nicht_sperren            'X'
    if_error_messages_send_0 'X'
  TABLES
    vbpok_tab                lt_vbpok
    prot                     lt_prott
  EXCEPTIONS
    error_message            1
    OTHERS                   2.
IF sy-subrc   .
  LOOP AT lt_prott INTO ls_prott WHERE msgty CA 'EAX'.
    CALL FUNCTION 'MESSAGE_TEXT_BUILD'
      EXPORTING
        msgid               ls_prott-msgid
        msgnr               ls_prott-msgno
        msgv1               ls_prott-msgv1
        msgv2               ls_prott-msgv2
        msgv3               ls_prott-msgv3
        msgv4               ls_prott-msgv4
      IMPORTING
        message_text_output lv_message.

    CONCATENATE  lv_all_message lv_message  INTO  lv_all_message .
    lv_message lv_all_message.
    lv_flag 'X' .
    CLEAR ls_prott.
  ENDLOOP.
ELSE.
  CLEAR lv_message.
  CALL FUNCTION 'MESSAGE_TEXT_BUILD'
    EXPORTING
      msgid               sy-msgid
      msgnr               sy-msgno
      msgv1               sy-msgv1
      msgv2               sy-msgv2
      msgv3               sy-msgv3
      msgv4               sy-msgv4
    IMPORTING
      message_text_output lv_all_message.
  lv_message lv_all_message.
  lv_flag 'X' .
ENDIF .

IF lv_flag IS  INITIAL .
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait 'X'.
  WRITE 'OK'.
*  CLEAR lv_message.
*  CALL FUNCTION 'MESSAGE_TEXT_BUILD'
*    EXPORTING
*      msgid               = sy-msgid
*      msgnr               = sy-msgno
*      msgv1               = sy-msgv1
*      msgv2               = sy-msgv2
*      msgv3               = sy-msgv3
*      msgv4               = sy-msgv4
*    IMPORTING
*      message_text_output = lv_all_message.
*  WRITE : / lv_all_message.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  WRITE lv_all_message.
ENDIF.