Skip to Content
0
Former Member
Aug 17, 2010 at 04:16 PM

BAPI_PO_CHANGE does not change delivery priority

591 Views

I tried to change delivery priority of PO but it didn't work. Here is the code. Is there anything wrong with this?

report  z_bapi_po_change.


data:
* shipping
        lt_bapiitemship  type standard table of bapiitemship,
        ls_bapiitemship  type bapiitemship,

        lt_bapiitemshipx type standard table of bapiitemshipx,
        ls_bapiitemshipx type bapiitemshipx,
* item
        lt_bapimepoitem  type standard table of bapimepoitem,
        ls_bapimepoitem  type bapimepoitem,

        lt_bapimepoitemx type standard table of bapimepoitemx,
        ls_bapimepoitemx type bapimepoitemx,
* return

        lt_return        type bapiret2_t,
        ls_return        like line of lt_return,
* alv
        lo_alv           type ref to cl_salv_table.


parameters:
    pa_ebeln type ebeln,
    pa_ebelp type ebelp,
    pa_lprio type lprio.

start-of-selection.


  ls_bapimepoitem-po_item  = pa_ebelp.
  append ls_bapimepoitem to lt_bapimepoitem.

  ls_bapimepoitemx-po_itemx = 'X'.
  append ls_bapimepoitemx to lt_bapimepoitemx.



  ls_bapiitemship-po_item  = pa_ebelp.
  ls_bapiitemship-dlv_prio = pa_lprio.
  append ls_bapiitemship to lt_bapiitemship.

  ls_bapiitemshipx-po_item = pa_ebelp.
  ls_bapiitemshipx-po_itemx = 'X'.
  ls_bapiitemshipx-dlv_prio = 'X'.
  append ls_bapiitemshipx to lt_bapiitemshipx.


  call function 'BAPI_PO_CHANGE'
    exporting
      purchaseorder = pa_ebeln
    tables
      return        = lt_return
      poshipping    = lt_bapiitemship
      poshippingx   = lt_bapiitemshipx.

  read table lt_return into ls_return
  with key type = 'E'.

  if sy-subrc NE 0.
    call function 'BAPI_TRANSACTION_COMMIT'
      exporting
        wait = 'X'.
  endif.

end-of-selection.


  cl_salv_table=>factory(
    importing
      r_salv_table   = lo_alv
    changing
      t_table        = lt_return
         ).
  lo_alv->display( ).