Skip to Content
0
Mar 02, 2007 at 07:34 AM

Closing POs

14 Views

Hi ppl,

I am working on closing all the open POs(ekpo-delivery complete indicator is blank) along with some more validations from other db tables using for all entries(select query). finally i have the open POs in an internal table.

within a loop i have passed this table-po_number to bapi_po_change along with DCI field marked as 'X' at last i am displaying the return struct of the bapi but all are 'E' no PO z closed or changed.

DATA: li_item   TYPE bapimepoitem OCCURS 0 WITH HEADER LINE,
        li_header TYPE bapimepoheader OCCURS 0 WITH HEADER LINE,
        li_return_values TYPE bapiret2 OCCURS 0 WITH HEADER LINE,
        lw_purchase_item LIKE LINE OF gi_purchase_item,
  li_itemx TYPE bapimepoitemx OCCURS 0 WITH HEADER LINE.

  li_item-no_more_gr = 'X'.
  LOOP AT gi_purchase_item.
    li_item-po_item     = li_itemx-po_item  = gi_purchase_item-ebelp.
    li_item-material    = gi_purchase_item-matnr.
    li_item-plant       = gi_purchase_item-werks.
    li_header-po_number = gi_purchase_item-ebeln.
    APPEND li_item.
    APPEND li_itemx.
    APPEND li_header.
    CALL FUNCTION 'BAPI_PO_CHANGE'
      EXPORTING
        purchaseorder                = li_header-po_number
 TABLES
       return                       = li_return_values
       poitem                       = li_item
       poitemx                      = li_itemx
ENDLOOP.

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*    EXPORTING
*      WAIT          =
*    IMPORTING
*      RETURN        =
            .

  LOOP AT li_return_values.
    WRITE : / li_return_values-type,
            / li_return_values-message.
 ENDLOOP.

Now what my specification is there are so many items for a single PO number i need to close even tat..... How can i pass many item numbers(EBELP) for a single po_number(EBELN)????

can anyone suggest something on this at the earliest........