Application Development and Automation 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: 

How to do a post with fm or bapi like in vl02n?

BergOff
Explorer
0 Kudos
168

Hi, experts.
How to do a post like in vl02.
I tried this, but it's only change a picking quantity.

 

 

DATA:
        is_dlv_data_control TYPE  bapidlvbuffercontrol,
        it_delivery_header  TYPE TABLE OF  bapidlvhdr,
        it_delivery_item TYPE TABLE OF bapidlvitem,
        r_vbeln TYPE RANGE OF vbeln,
        s_vbeln LIKE LINE OF r_vbeln,
        vbpok_ls TYPE vbpok,
        kostk TYPE vbuk-kostk,
        vbpok_lt TYPE TABLE OF vbpok,
        vbkok_ls TYPE vbkok,
        return2 TYPE bapiret2,                        "#EC NEEDED
        prot_lt TYPE TABLE OF prott.

  DATA:
      ef_error_any_0 TYPE xfeld,                                    "#EC NEEDED
      ef_error_in_item_deletion_0 TYPE  xfeld,                      "#EC NEEDED
      ef_error_in_pod_update_0 TYPE  xfeld,                         "#EC NEEDED
      ef_error_in_interface_0 TYPE  xfeld,                          "#EC NEEDED
      ef_error_in_goods_issue_0 TYPE  xfeld,                        "#EC NEEDED
      ef_error_in_final_check_0 TYPE  xfeld,                          "#EC NEEDED
      ef_error_partner_update TYPE  xfeld,                          "#EC NEEDED
      ef_error_sernr_update TYPE  xfeld .                         "#EC NEEDED

  FIELD-SYMBOLS:
                 <fs_delivery_item> LIKE LINE OF it_delivery_item.

  CALL FUNCTION 'ENQUEUE_EVVBLKE'
    EXPORTING
      vbeln          = vbeln
    EXCEPTIONS
      foreign_lock   = 2
      system_failure = 3.

    if sy-subrc = 1.

    elseif sy-subrc = 2.

    elseif sy-subrc = 3.

    endif.

*Проверяем статус общее комплектование по поставке укомплектована = 'C'
  SELECT SINGLE kostk INTO kostk FROM vbuk WHERE kostk <> 'C' AND vbeln = vbeln.
  IF sy-subrc <> 0.
    EXIT.
  ENDIF.

  is_dlv_data_control-item = 'X'.

  s_vbeln-low = vbeln.
  s_vbeln-option = 'EQ'.
  s_vbeln-sign = 'I'.
  APPEND s_vbeln TO r_vbeln.

  CALL FUNCTION 'BAPI_DELIVERY_GETLIST'
    EXPORTING
      is_dlv_data_control = is_dlv_data_control
    TABLES
      it_vbeln            = r_vbeln
      et_delivery_header  = it_delivery_header
      et_delivery_item    = it_delivery_item.

  LOOP AT it_delivery_item ASSIGNING <fs_delivery_item> WHERE lfimg > 0.
    SELECT SINGLE kosta INTO kostk FROM vbup WHERE kosta <> 'C' AND vbeln = <fs_delivery_item>-vbeln AND posnr = <fs_delivery_item>-posnr.
    IF sy-subrc <> 0.
      CONTINUE.
    ENDIF.
    vbpok_ls-vbeln_vl = <fs_delivery_item>-vbeln.
    vbpok_ls-posnr_vl = <fs_delivery_item>-posnr.
    vbpok_ls-vbeln = sy-datum.
    vbpok_ls-posnn = <fs_delivery_item>-posnr.
    vbpok_ls-lianp    = 'X'.
    vbpok_ls-lfimg    = <fs_delivery_item>-lfimg.
    vbpok_ls-taqui  = 'X'.
    vbpok_ls-pikmg = vbpok_ls-lfimg.
    APPEND vbpok_ls TO vbpok_lt.

    vbkok_ls-vbeln_vl = vbeln.
  ENDLOOP.

  CALL FUNCTION 'WS_DELIVERY_UPDATE'
    EXPORTING
      vbkok_wa                    = vbkok_ls
      COMMIT                      = 'X'
      if_error_messages_send_0    = 'X'
      update_picking              = 'X'
      nicht_sperren               = 'X'
      delivery                    = vbeln
    IMPORTING
      ef_error_any_0              = ef_error_any_0
      ef_error_in_item_deletion_0 = ef_error_in_item_deletion_0
      ef_error_in_pod_update_0    = ef_error_in_pod_update_0
      ef_error_in_interface_0     = ef_error_in_interface_0
      ef_error_in_goods_issue_0   = ef_error_in_goods_issue_0
      ef_error_in_final_check_0   = ef_error_in_final_check_0
      ef_error_partner_update     = ef_error_partner_update
      ef_error_sernr_update       = ef_error_sernr_update
    TABLES
      vbpok_tab                   = vbpok_lt
      prot                        = prot_lt.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT   = 'X'
    IMPORTING
      RETURN = return2.

 

 

1 REPLY 1

Raifloresca
Explorer
0 Kudos
84

Hi,

Try filling the fields WABUC and KZWAD with ABAP_TRUE in the vbkok_wa structure.

Regards.