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: 
Read only

To post parked PO invoice using function module BAPI_INCOMINGINVOICE_CREATE

Former Member
0 Likes
640

Hi,

I have a requirement to batch update program to auto post the parked po invoice.

Is it possible to use the function module BAPI_INCOMINGINVOICE_CREATE to post po invoices as batch job? or Can I go for BDC program?

Please give me your suggestions.

Here I am giving the code which I used FM-> BAPI_INCOMINGINVOICE_CREATE.(But it gives the error)


REPORT  ZSAT_BDC1.

TABLES: ZIXCP_T03,EKBE,EKPO.

DATA: BEGIN OF WA_PARK OCCURS 0,
        EBELN LIKE ZIXCP_T03-EBELN,
        XBLNR LIKE ZIXCP_T03-XBLNR,
        BELNR LIKE ZIXCP_T03-BELNR,
      END OF WA_PARK.

DATA: GT_PARK TYPE STANDARD TABLE OF ZIXCP_T03,
      GWA_PARK TYPE ZIXCP_T03.

DATA:GT_RSEG TYPE STANDARD TABLE OF RSEG,
     GWA_RSEG TYPE RSEG.

DATA: GT_HIST TYPE STANDARD TABLE OF EKBE,
      GWA_HIST TYPE EKBE.

DATA: GT_HEADER TYPE STANDARD TABLE OF RBKP,
      GWA_HEADER TYPE RBKP.

DATA:GT_BAPI_INCINV_CREATE_HEADER TYPE STANDARD TABLE OF BAPI_INCINV_CREATE_HEADER,
     GWA_BAPI_INCINV_CREATE_HEADER TYPE BAPI_INCINV_CREATE_HEADER,
     GT_BAPI_INCINV_CREATE_ITEM TYPE STANDARD TABLE OF BAPI_INCINV_CREATE_ITEM,
     GWA_BAPI_INCINV_CREATE_ITEM TYPE BAPI_INCINV_CREATE_ITEM,
     GT_BAPIRET2 TYPE STANDARD TABLE OF BAPIRET2,
     GWA_BAPIRET2 TYPE BAPIRET2,
     GV_INVOICEDOCNUMBER TYPE BAPI_INCINV_FLD-INV_DOC_NO,
     GV_FISCALYEAR TYPE BAPI_INCINV_FLD-FISC_YEAR.

SELECT * FROM ZIXCP_T03
         INTO TABLE GT_PARK
         WHERE STATUS = '041' AND
               PO_INDICATOR = 'X'.
IF SY-SUBRC = 0.
  SELECT * FROM EKBE
           INTO TABLE GT_HIST
           FOR ALL ENTRIES IN GT_PARK
           WHERE EBELN = GT_PARK-EBELN
             and vgabe = 'P'
             and BEWTP = 'T'.
  IF SY-SUBRC = 0.

    SELECT * FROM RBKP INTO TABLE GT_HEADER
             FOR ALL ENTRIES IN GT_PARK
             WHERE BELNR = GT_PARK-BELNR.

    IF SY-SUBRC = 0.

      SELECT * FROM RSEG INTO TABLE GT_RSEG
               FOR ALL ENTRIES IN GT_PARK
               WHERE BELNR = GT_PARK-BELNR.

      LOOP AT GT_PARK INTO GWA_PARK.
        READ TABLE GT_HEADER INTO GWA_HEADER WITH KEY BELNR = GWA_PARK-BELNR.
        IF SY-SUBRC = 0.
*          MOVE-CORRESPONDING GWA_HEADER TO GWA_BAPI_INCINV_CREATE_HEADER.
          GWA_BAPI_INCINV_CREATE_HEADER-INVOICE_IND = 'X'.
          GWA_BAPI_INCINV_CREATE_HEADER-COMP_CODE = GWA_HEADER-BUKRS.
          GWA_BAPI_INCINV_CREATE_HEADER-DOC_DATE =  GWA_HEADER-BLDAT.
          GWA_BAPI_INCINV_CREATE_HEADER-PSTNG_DATE = GWA_HEADER-BUDAT.
          GWA_BAPI_INCINV_CREATE_HEADER-REF_DOC_NO = GWA_HEADER-XBLNR.
          GWA_BAPI_INCINV_CREATE_HEADER-CURRENCY     =  GWA_HEADER-WAERS.

*          GWA_BAPI_INCINV_CREATE_HEADER-ITEM_TEXT = GWA_HEADER-
          GWA_BAPI_INCINV_CREATE_HEADER-DEL_COSTS_TAXC = GWA_HEADER-MWSKZ1.
          GWA_BAPI_INCINV_CREATE_HEADER-DOC_TYPE  = GWA_HEADER-BLART.
          GWA_BAPI_INCINV_CREATE_HEADER-BLINE_DATE = GWA_HEADER-ZFBDT.

          READ TABLE GT_RSEG INTO GWA_RSEG WITH KEY BELNR = GWA_PARK-BELNR.
          IF SY-SUBRC = 0.
            CLEAR GWA_BAPI_INCINV_CREATE_ITEM.
            REFRESH GT_BAPI_INCINV_CREATE_ITEM.
            LOOP AT GT_RSEG INTO GWA_RSEG
                    WHERE BELNR = GWA_PARK-BELNR.
*              MOVE-CORRESPONDING GWA_RSEG TO GWA_BAPI_INCINV_CREATE_ITEM.
              GWA_BAPI_INCINV_CREATE_ITEM-INVOICE_DOC_ITEM = GWA_RSEG-BUZEI.
              GWA_BAPI_INCINV_CREATE_ITEM-PO_NUMBER = GWA_RSEG-EBELN.
              GWA_BAPI_INCINV_CREATE_ITEM-PO_ITEM = GWA_RSEG-EBELP.
              GWA_BAPI_INCINV_CREATE_ITEM-ITEM_AMOUNT = GWA_RSEG-WRBTR.
              GWA_BAPI_INCINV_CREATE_ITEM-REF_DOC      = GWA_RSEG-LFBNR.
              GWA_BAPI_INCINV_CREATE_ITEM-REF_DOC_YEAR = GWA_RSEG-LFGJA.
              GWA_BAPI_INCINV_CREATE_ITEM-REF_DOC_IT   = GWA_RSEG-LFPOS.
              GWA_BAPI_INCINV_CREATE_ITEM-TAX_CODE  = GWA_RSEG-MWSKZ.
              APPEND GWA_BAPI_INCINV_CREATE_ITEM TO GT_BAPI_INCINV_CREATE_ITEM.
              GWA_BAPI_INCINV_CREATE_HEADER-GROSS_AMOUNT = GWA_BAPI_INCINV_CREATE_HEADER-GROSS_AMOUNT + GWA_BAPI_INCINV_CREATE_ITEM-ITEM_AMOUNT.
            ENDLOOP.

            CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'
              EXPORTING
                HEADERDATA       = GWA_BAPI_INCINV_CREATE_HEADER
              IMPORTING
                INVOICEDOCNUMBER = GV_INVOICEDOCNUMBER
                FISCALYEAR       = GV_FISCALYEAR
              TABLES
                ITEMDATA         = GT_BAPI_INCINV_CREATE_ITEM
                RETURN           = GT_BAPIRET2.

          ENDIF.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDIF.
ENDIF.

Code Formatted by: Alvaro Tejada Galindo on Jan 8, 2009 2:38 PM

1 REPLY 1
Read only

Former Member
0 Likes
431

Look at BAPI_INCOMINGINVOICE_POST

Rob