<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: BAPI for MIR4 Transaction in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369632#M808775</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am psting my code ,could u suggest me the possible changes to be done in my code,i feel the BAPI u refered is correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am selectin &lt;STRONG&gt;second radio button in&lt;/STRONG&gt; the selection screen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT zfiap_park_docs MESSAGE-ID zfiap NO STANDARD PAGE HEADING
                                                      LINE-SIZE 255.

*
* Title (english) : Year End Job for AP Parked *
* Description     : Batch Program - Year End Job for AP Parked Docs    *
* DESCRIPTION                                                          *
*                                                                      *
* Automatically changing the posting date for all Parked documents     *
* at Year End to the begining of the following Year.                   *

* Modif.description   :                                                *
*  Automatically changing the posting date for all Parked documents    *
* at Year End to the begining of the following Year. Automatic         *
* numbering for trade deals invoices and for incoices posted with      *
* reference to purchase order.                                         *
***********************************************************catalog_end**

*----------------------------------------------------------------------*
*        SAP TABLES
*----------------------------------------------------------------------*
TABLES : vbkpf,  "Document Header for Document Parking
         t001,   "Company Codes
         zsd_settle_rebat,  " Rebate settlement table            "@001
         rbkp,              "Document Header: Invoice Receipt    "@001
         t100.   "Message texts

* Begin of insert @001
TYPES : BEGIN OF ty_belnr,
         o_belnr TYPE vbkpf-belnr,
         n_belnr TYPE vbkpf-belnr,
        END OF ty_belnr.
* End of insert @001

*----------------------------------------------------------------------*
*        Constants
*----------------------------------------------------------------------*
DATA: c_periv LIKE t009b-periv VALUE 'A1'. "Fiscal year variant

* Begin of Insert @001
DATA: c_checked VALUE 'X',
      c_r1(2) VALUE 'R1',
      c_r2(2) VALUE 'R2',
      c_r3(2) VALUE 'R3'.
* End of Insert @001

*----------------------------------------------------------------------*
*---  Internal tables
*----------------------------------------------------------------------*

*---  Batchinputdata of single transaction
DATA: BEGIN OF t_bdcdata OCCURS 0.
        INCLUDE STRUCTURE bdcdata.
DATA: END OF t_bdcdata.

*---  Records from vbkpf table to change fiscal year
DATA: BEGIN OF t_vbkpf OCCURS 0,
        belnr LIKE vbkpf-belnr,
        ausbk LIKE vbkpf-ausbk,
        tcode LIKE vbkpf-tcode,
        bktxt LIKE vbkpf-bktxt,                             "@001
      END OF t_vbkpf.

* Begin opf insert @001
* Internal table for data for MIR7
DATA : t_rbkp LIKE TABLE OF rbkp,
       wa_rbkp LIKE LINE OF t_rbkp.

DATA : t_belnr TYPE TABLE OF ty_belnr,
       wa_belnr LIKE LINE OF t_belnr.

DATA : wa_rebat LIKE zsd_settle_rebat.
* End of insert @001

*---  Messages
DATA: t_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

*----------------------------------------------------------------------*
*     Variables
*----------------------------------------------------------------------*
DATA: w_date LIKE sy-datum,    "dummy
      w_ptdt(8) TYPE n,        "New Posting Date
      w_group_opened.          "Session group opened

DATA w_rad(2) TYPE c.          "For radio button values            "@001
*----------------------------------------------------------------------*
*     Selection Parameters
*----------------------------------------------------------------------*

SELECT-OPTIONS s_blart FOR vbkpf-blart OBLIGATORY NO-EXTENSION.

SELECT-OPTIONS s_belnr FOR vbkpf-belnr.                     "@001

PARAMETERS:
*       Company code
        p_bukrs LIKE vbkpf-bukrs OBLIGATORY VALUE CHECK,
*       Fiscal Year
        p_gjahr LIKE vbkpf-gjahr DEFAULT sy-datum(4) OBLIGATORY,
*       New Posting Date
        p_budat LIKE vbkpf-budat OBLIGATORY,
*       Run mode
        p_ctumod LIKE ctu_params-dismode DEFAULT 'N' OBLIGATORY,
                                "A: show all dynpros
                                "E: show dynpro on error only
                                "N: do not display dynpro
*       Update mode
        p_cupdat LIKE ctu_params-updmode DEFAULT 'L' OBLIGATORY,
                                "S: synchronously
                                "A: asynchronously
                                "L: local
*       Session Name
        p_groupi LIKE apqi-groupid OBLIGATORY DEFAULT sy-repid,
*       Batch Input User
        p_userid LIKE apqi-userid  OBLIGATORY DEFAULT sy-uname,
*       Session Locked untill specified date
        p_strtdt LIKE apqi-startdate,
*       Keep Batch Session
        p_qerase AS CHECKBOX DEFAULT 'X'.

* Begin of insert @001
* Renumbering of vendor invoices without PO.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_r1 RADIOBUTTON GROUP rad.
SELECTION-SCREEN COMMENT 3(50) text-006.
SELECTION-SCREEN END OF LINE.

* Renumbering of vendor invoices with PO.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_r2 RADIOBUTTON GROUP rad.
SELECTION-SCREEN COMMENT 3(50) text-007.
SELECTION-SCREEN END OF LINE.

* Renumbering of trade deals vendor invoices.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_r3 RADIOBUTTON GROUP rad.
SELECTION-SCREEN COMMENT 3(50) text-008.
SELECTION-SCREEN END OF LINE.
* End of insert @001

INITIALIZATION.

*set default value for Parameter Session Lock
  CALL FUNCTION 'MONTH_PLUS_DETERMINE'
    EXPORTING
      months  = 1
      olddate = sy-datum
    IMPORTING
      newdate = p_strtdt.

*set default value for parameter New Posting Date
  CALL FUNCTION 'FIRST_AND_LAST_DAY_IN_YEAR_GET'
    EXPORTING
      i_gjahr     = sy-datum(4)
      i_periv     = c_periv
    IMPORTING
      e_first_day = w_date
      e_last_day  = p_budat.

  CALL FUNCTION 'ADD_TIME_TO_DATE'
    EXPORTING
      i_idate = p_budat
      i_time  = 1
      i_iprkz = ' '
    IMPORTING
      o_idate = p_budat.

*---  AT SELECTION SCREEN
AT SELECTION-SCREEN ON p_bukrs.

* Validation for Company Code
  SELECT SINGLE * FROM t001 WHERE bukrs = p_bukrs.
  IF sy-subrc NE 0.
    MESSAGE e065.
  ENDIF.

AT SELECTION-SCREEN.

*Validation for Records exits
  SELECT SINGLE * FROM vbkpf WHERE ausbk = p_bukrs
                               AND gjahr = p_gjahr
                               AND blart IN s_blart.

  IF sy-subrc NE 0.
    MESSAGE e066 WITH p_bukrs p_gjahr.
  ENDIF.

* Begin of insert @001
AT SELECTION-SCREEN ON RADIOBUTTON GROUP rad.
  CLEAR w_rad.
  IF p_r1 = c_checked.
    w_rad = c_r1.
  ELSEIF p_r2 = c_checked.
    w_rad = c_r2.
  ELSE.
    w_rad = c_r3.
  ENDIF.
* End of insert @001

*----------------------------------------------------------------------*
*---   START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.

* authority check
  PERFORM check_aurthority.

* format date
  PERFORM format_date.

  CASE w_rad.                                               "@001
    WHEN c_r1 OR c_r3.                                      "@001

* select records from table vbkpf with selection creteria given
      CLEAR t_vbkpf.
      REFRESH t_vbkpf.

*Begin of changes - @001
*      SELECT belnr ausbk tcode FROM vbkpf
*            INTO CORRESPONDING FIELDS OF TABLE t_vbkpf
*                          WHERE belnr = p_belnr
*                            AND ausbk = p_bukrs
*                            AND gjahr = p_gjahr
*                            AND blart IN s_blart.
      SELECT belnr ausbk tcode bktxt FROM vbkpf
      INTO CORRESPONDING FIELDS OF TABLE t_vbkpf
                    WHERE belnr IN s_belnr
                      AND ausbk = p_bukrs
                      AND gjahr = p_gjahr
                      AND blart IN s_blart.
*End of changes - @001

      SORT t_vbkpf.

      LOOP AT t_vbkpf.
        wa_belnr-o_belnr = t_vbkpf-belnr.                   "@001
* build up bdcdata
        REFRESH t_bdcdata.
        PERFORM bdc_dynpro      USING 'SAPMF05V' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF05V-GJAHR'.
        PERFORM bdc_field       USING 'RF05V-BUKRS'
                                       t_vbkpf-ausbk.
        PERFORM bdc_field       USING 'RF05V-BELNR'
                                       t_vbkpf-belnr.
        PERFORM bdc_field       USING 'RF05V-GJAHR'
                                       p_gjahr.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
*   for tcodes FBV1 or FB01
*    IF T_VBKPF-TCODE = 'FBV1' OR T_VBKPF-TCODE = 'FB01'.   "@001
        IF t_vbkpf-tcode = 'FBV1' OR t_vbkpf-tcode = 'FB01' "@001
                                  OR t_vbkpf-tcode = 'YFV6'."@001
          PERFORM bdc_dynpro      USING 'SAPLF040' '0600'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'BKPF-BUDAT'.
          PERFORM bdc_field       USING 'BKPF-BUDAT'
                                         w_ptdt.
          PERFORM bdc_field       USING 'BKPF-BKTXT'
                                         t_vbkpf-belnr.

*   for tcodes FV60 or FV65 or FB60
        ELSEIF t_vbkpf-tcode = 'FV60' OR t_vbkpf-tcode = 'FV65'
                                      OR t_vbkpf-tcode = 'FB60'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '1100'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'INVFO-BUDAT'.
          PERFORM bdc_field       USING 'INVFO-BUDAT'
                                         w_ptdt .
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=MORE'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '1100'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'INVFO-BKTXT'.
*Begin of changes - @001
*          PERFORM bdc_field       USING 'INVFO-BKTXT'
*                                         t_vbkpf-belnr.
          PERFORM bdc_field       USING 'INVFO-BKTXT'
                                         t_vbkpf-bktxt.
*End of changes - @001

*   for tcodes FB50 or FV50
        ELSEIF t_vbkpf-tcode = 'FB50' OR t_vbkpf-tcode = 'FV50'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '1001'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'ACGL_HEAD-BUDAT'.
          PERFORM bdc_field       USING 'ACGL_HEAD-BUDAT'
                                        w_ptdt.
          PERFORM bdc_field       USING 'ACGL_HEAD-BKTXT'
                                        t_vbkpf-belnr.

        ENDIF.

        PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=BP'.

*Begin of insert  - @001
        IF w_rad = c_r3.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '1100'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'INVFO-BKTXT'.
*BDC data for the popup screen
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '/00'.

        ENDIF.
*End of insert  - @001

        IF NOT t_bdcdata[] IS INITIAL.
          PERFORM bdc_transaction USING 'FBV4' p_ctumod p_cupdat.
        ENDIF.

      ENDLOOP.

* Begin of insert @001
      IF w_rad = c_r3.
        CLEAR wa_belnr.
        LOOP AT t_belnr INTO wa_belnr.
          PERFORM update_table.
        ENDLOOP.
      ENDIF.

    WHEN c_r2.

      IF s_belnr[] IS INITIAL.
        SELECT * FROM rbkp INTO TABLE t_rbkp
                 WHERE gjahr = p_gjahr
                 AND   blart IN s_blart
                 AND   bukrs = p_bukrs
                 AND  ( rbstat = 'A' OR
                       rbstat = 'B' OR
                       rbstat = 'C' ).
      ELSE.
        SELECT * FROM rbkp INTO TABLE t_rbkp
                 WHERE belnr IN s_belnr
                 AND   gjahr = p_gjahr
                 AND   blart IN s_blart
                 AND   bukrs = p_bukrs
                 AND  ( rbstat = 'A' OR
                       rbstat = 'B' OR
                       rbstat = 'C' ).
      ENDIF.

      IF sy-subrc = 0.
        LOOP AT t_rbkp INTO wa_rbkp.

          REFRESH t_bdcdata.
          PERFORM bdc_dynpro      USING 'SAPLMR1M' '6150'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RBKP-BELNR'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=RBAN'.
          PERFORM bdc_field       USING 'RBKP-BELNR'
                                        wa_rbkp-belnr.
          PERFORM bdc_field       USING 'RBKP-GJAHR'
                                        wa_rbkp-gjahr.
          PERFORM bdc_dynpro      USING 'SAPLMR1M' '6000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/EPPCH'.

          IF wa_rbkp-rbstat = 'A' OR wa_rbkp-rbstat = 'B'.
*         Park
            PERFORM bdc_dynpro      USING 'SAPLMR1M' '6000'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=PARK'.
          ELSE.
*         Store
            PERFORM bdc_dynpro      USING 'SAPLMR1M' '6000'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=STORE'.
          ENDIF.

          PERFORM bdc_field       USING 'INVFO-BUDAT'
                                         w_ptdt.

          IF NOT t_bdcdata[] IS INITIAL.
            *PERFORM bdc_transaction USING 'MIR4' p_ctumod* p_cupdat.
          ENDIF.
          CLEAR wa_rbkp.
        ENDLOOP.
      ELSE.
        MESSAGE i066 WITH p_bukrs p_gjahr.
        STOP.
      ENDIF.
  ENDCASE.
* End of insert @001


* Close batch input session
  IF w_group_opened = 'X'.
    PERFORM close_group.
  ENDIF.

* Release memory of internal table
  FREE: t_bdcdata, t_vbkpf, t_messtab.

*----------------------------------------------------------------------*
*   create batchinput session                                          *
*----------------------------------------------------------------------*
FORM open_group.

*  CALL FUNCTION 'BDC_OPEN_GROUP'
*    EXPORTING
*      client   = sy-mandt
*      group    = p_groupi
*      user     = p_userid
*      keep     = p_qerase
*      holddate = p_strtdt.

CALL FUNCTION 'BDC_OPEN_GROUP'
 EXPORTING
   CLIENT                    = SY-MANDT
*   DEST                      = FILLER8
   GROUP                     = p_groupi
   HOLDDATE                  = p_strtdt
   KEEP                      = p_qerase
   USER                      = p_userid
*   RECORD                    = FILLER1
*   PROG                      = SY-CPROG
 EXCEPTIONS
   CLIENT_INVALID            = 1
   DESTINATION_INVALID       = 2
   GROUP_INVALID             = 3
   GROUP_IS_LOCKED           = 4
   HOLDDATE_INVALID          = 5
   INTERNAL_ERROR            = 6
   QUEUE_ERROR               = 7
   RUNNING                   = 8
   SYSTEM_LOCK_ERROR         = 9
   USER_INVALID              = 10
   OTHERS                    = 11
          .
IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.



ENDFORM.                    "OPEN_GROUP

*----------------------------------------------------------------------*
*   end batchinput session                                             *
*----------------------------------------------------------------------*
FORM close_group.
  CALL FUNCTION 'BDC_CLOSE_GROUP'.
ENDFORM.                    "CLOSE_GROUP

*----------------------------------------------------------------------*
*        Start new transaction                                         *
*----------------------------------------------------------------------*
FORM bdc_transaction USING tcode ctumode cupdate.
  DATA: wl_mstring(480).         "String to print messages
  DATA: wl_subrc LIKE sy-subrc.  "sub-rc
  DATA : lwa_options TYPE ctu_params.                       "@001

*   clear message table
  REFRESH t_messtab.

*Begin of insert - @001
  IF w_rad = c_r3.

    lwa_options-racommit = c_checked.
    lwa_options-dismode = ctumode.
    lwa_options-updmode = cupdate.

*   Call Tcode for updating doc
    CALL TRANSACTION tcode USING t_bdcdata
                     OPTIONS FROM lwa_options
                     MESSAGES INTO t_messtab.
  ELSE.

*End of insert - @001

*   Call Tcode for updating doc
    CALL TRANSACTION tcode USING t_bdcdata
                     MODE   ctumode
                     UPDATE cupdate
                     MESSAGES INTO t_messtab.

  ENDIF.                                                    "@001

  wl_subrc = sy-subrc.

*   write status
  WRITE: / 'CALL_TRANSACTION', tcode,
           'returncode:'(i05), wl_subrc,
           'RECORD:',sy-index.

  WRITE : / text-009, t_vbkpf-belnr, p_gjahr,               "@001
            text-010.                                       "@001

*   write messages
  LOOP AT t_messtab.

* Begin of insert @001
    IF t_messtab-msgtyp = 'S' AND t_messtab-msgv2 = p_bukrs
                              AND w_rad = c_r3.
      wa_belnr-n_belnr = t_messtab-msgv1.
      APPEND wa_belnr TO t_belnr.
    ENDIF.
* End of insert @001

    SELECT SINGLE * FROM t100 WHERE sprsl = t_messtab-msgspra
                              AND   arbgb = t_messtab-msgid
                              AND   msgnr = t_messtab-msgnr.
    IF sy-subrc = 0.
      wl_mstring = t100-text.
      IF wl_mstring CS '&amp;amp;1'.
        REPLACE '&amp;amp;1' WITH t_messtab-msgv1 INTO wl_mstring.
        REPLACE '&amp;amp;2' WITH t_messtab-msgv2 INTO wl_mstring.
        REPLACE '&amp;amp;3' WITH t_messtab-msgv3 INTO wl_mstring.
        REPLACE '&amp;amp;4' WITH t_messtab-msgv4 INTO wl_mstring.
      ELSE.
        REPLACE '&amp;amp;' WITH t_messtab-msgv1 INTO wl_mstring.
        REPLACE '&amp;amp;' WITH t_messtab-msgv2 INTO wl_mstring.
        REPLACE '&amp;amp;' WITH t_messtab-msgv3 INTO wl_mstring.
        REPLACE '&amp;amp;' WITH t_messtab-msgv4 INTO wl_mstring.
      ENDIF.
      CONDENSE wl_mstring.
      WRITE: / t_messtab-msgtyp, wl_mstring(250).
    ELSE.
      WRITE: / t_messtab.
    ENDIF.
  ENDLOOP.
  SKIP.

*   if subrc is not 0, generate session
  IF wl_subrc &amp;lt;&amp;gt; 0 AND p_groupi &amp;lt;&amp;gt; space.
    IF w_group_opened = ' '.
      PERFORM open_group.
      w_group_opened = 'X'.
    ENDIF.

    CALL FUNCTION 'BDC_INSERT'
      EXPORTING
        tcode     = tcode
      TABLES
        dynprotab = t_bdcdata.
  ENDIF.

ENDFORM.                    "BDC_TRANSACTION

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
  CLEAR t_bdcdata.
  t_bdcdata-program  = program.
  t_bdcdata-dynpro   = dynpro.
  t_bdcdata-dynbegin = 'X'.
  APPEND t_bdcdata.
ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
  CLEAR t_bdcdata.
  t_bdcdata-fnam = fnam.
  t_bdcdata-fval = fval.
  APPEND t_bdcdata.
ENDFORM.                    "BDC_FIELD

*---------------------------------------------------------------------*
*       Date format
*---------------------------------------------------------------------*
FORM format_date.
  w_ptdt+0(2) = p_budat+6(2).
  w_ptdt+2(2) = p_budat+4(2).
  w_ptdt+4(4) = p_budat+0(4).
ENDFORM.                    "FORMAT_DATE

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  check_aurthority
*&amp;amp;---------------------------------------------------------------------*
FORM check_aurthority.
  AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
                      ID 'BUKRS' FIELD p_bukrs   "Company code
                      ID 'ACTVT' FIELD '03'.     "Display
  IF sy-subrc &amp;lt;&amp;gt; 0.
    AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
                        ID 'BUKRS' FIELD p_bukrs  "Company code
                        ID 'ACTVT' FIELD '08'.    "Display/changing
    IF sy-subrc &amp;lt;&amp;gt; 0.
      MESSAGE e067 WITH p_bukrs.
      STOP.
    ENDIF.
  ENDIF.

ENDFORM.                    " check_aurthority

* Begin of insert @001
*&amp;amp;---------------------------------------------------------------------
*
*&amp;amp;      Form  update_table
*&amp;amp;---------------------------------------------------------------------
*
FORM update_table.

  SELECT SINGLE * FROM zsd_settle_rebat INTO wa_rebat
                       WHERE  belnr = wa_belnr-o_belnr
                          AND   gjahr = p_gjahr.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = wa_belnr-n_belnr
    IMPORTING
      output = wa_belnr-n_belnr.

  wa_rebat-belnr =  wa_belnr-n_belnr.
  wa_rebat-budat  =  p_budat.

  SELECT SINGLE gjahr FROM bkpf
                INTO  wa_rebat-gjahr
                WHERE belnr = wa_belnr-n_belnr
                AND   wwert = p_budat.

  MODIFY zsd_settle_rebat FROM wa_rebat.
  IF sy-subrc = 0.
    COMMIT WORK.
    MESSAGE s605(01).
  ELSE.
    ROLLBACK WORK.
  ENDIF.

ENDFORM.                    " entry_table
* End of insert @001
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code Formatted by: Alvaro Tejada Galindo on Jan 22, 2008 5:30 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 22 Jan 2008 14:14:25 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-22T14:14:25Z</dc:date>
    <item>
      <title>BAPI for MIR4 Transaction</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369629#M808772</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; My program was using BDC session for MIR4 transaction ,but as it is not working in background,I am supposed to replace BDC session Code with BAPI for MIR4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can any one let me know the suitable &lt;STRONG&gt;BAPI for MIR4&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Alvaro Tejada Galindo on Jan 22, 2008 5:28 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Jan 2008 13:27:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369629#M808772</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-22T13:27:36Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for MIR4 Transaction</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369630#M808773</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If its for display only, try using the below BAPI&lt;/P&gt;&lt;P&gt;BAPI_INCOMINGINVOICE_GETDETAIL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pass the invoice number and the fiscal year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Rangaraju&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Jan 2008 13:47:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369630#M808773</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-22T13:47:48Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for MIR4 Transaction</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369631#M808774</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Madhavi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this, may help u.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LMR1M001 User exits in Logistics Invoice Verification&lt;/P&gt;&lt;P&gt;LMR1M002 Account grouping for GR/IR account maintenance&lt;/P&gt;&lt;P&gt;LMR1M003 Number assignment in Logistics Invoice Verification&lt;/P&gt;&lt;P&gt;LMR1M004 Logistics Invoice Verification: item text for follow-on docs&lt;/P&gt;&lt;P&gt;LMR1M005 Logistics Inv. Verification: Release Parked Doc. for Posting&lt;/P&gt;&lt;P&gt;LMR1M006 Logistics Invoice Verification: Process XML Invoice&lt;/P&gt;&lt;P&gt;MRMH0001 Logistics Invoice Verification: ERS procedure&lt;/P&gt;&lt;P&gt;MRMH0002 Logistics Invoice Verification: EDI inbound&lt;/P&gt;&lt;P&gt;MRMH0003 Logistics Invoice Verification: Revaluation/RAP&lt;/P&gt;&lt;P&gt;MRMN0001 Message output and creation: Logistics Invoice Verification&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;lt;REMOVED BY MODERATOR&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;Hema.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Alvaro Tejada Galindo on Jan 22, 2008 5:29 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Jan 2008 14:07:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369631#M808774</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-22T14:07:40Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for MIR4 Transaction</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369632#M808775</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am psting my code ,could u suggest me the possible changes to be done in my code,i feel the BAPI u refered is correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am selectin &lt;STRONG&gt;second radio button in&lt;/STRONG&gt; the selection screen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT zfiap_park_docs MESSAGE-ID zfiap NO STANDARD PAGE HEADING
                                                      LINE-SIZE 255.

*
* Title (english) : Year End Job for AP Parked *
* Description     : Batch Program - Year End Job for AP Parked Docs    *
* DESCRIPTION                                                          *
*                                                                      *
* Automatically changing the posting date for all Parked documents     *
* at Year End to the begining of the following Year.                   *

* Modif.description   :                                                *
*  Automatically changing the posting date for all Parked documents    *
* at Year End to the begining of the following Year. Automatic         *
* numbering for trade deals invoices and for incoices posted with      *
* reference to purchase order.                                         *
***********************************************************catalog_end**

*----------------------------------------------------------------------*
*        SAP TABLES
*----------------------------------------------------------------------*
TABLES : vbkpf,  "Document Header for Document Parking
         t001,   "Company Codes
         zsd_settle_rebat,  " Rebate settlement table            "@001
         rbkp,              "Document Header: Invoice Receipt    "@001
         t100.   "Message texts

* Begin of insert @001
TYPES : BEGIN OF ty_belnr,
         o_belnr TYPE vbkpf-belnr,
         n_belnr TYPE vbkpf-belnr,
        END OF ty_belnr.
* End of insert @001

*----------------------------------------------------------------------*
*        Constants
*----------------------------------------------------------------------*
DATA: c_periv LIKE t009b-periv VALUE 'A1'. "Fiscal year variant

* Begin of Insert @001
DATA: c_checked VALUE 'X',
      c_r1(2) VALUE 'R1',
      c_r2(2) VALUE 'R2',
      c_r3(2) VALUE 'R3'.
* End of Insert @001

*----------------------------------------------------------------------*
*---  Internal tables
*----------------------------------------------------------------------*

*---  Batchinputdata of single transaction
DATA: BEGIN OF t_bdcdata OCCURS 0.
        INCLUDE STRUCTURE bdcdata.
DATA: END OF t_bdcdata.

*---  Records from vbkpf table to change fiscal year
DATA: BEGIN OF t_vbkpf OCCURS 0,
        belnr LIKE vbkpf-belnr,
        ausbk LIKE vbkpf-ausbk,
        tcode LIKE vbkpf-tcode,
        bktxt LIKE vbkpf-bktxt,                             "@001
      END OF t_vbkpf.

* Begin opf insert @001
* Internal table for data for MIR7
DATA : t_rbkp LIKE TABLE OF rbkp,
       wa_rbkp LIKE LINE OF t_rbkp.

DATA : t_belnr TYPE TABLE OF ty_belnr,
       wa_belnr LIKE LINE OF t_belnr.

DATA : wa_rebat LIKE zsd_settle_rebat.
* End of insert @001

*---  Messages
DATA: t_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

*----------------------------------------------------------------------*
*     Variables
*----------------------------------------------------------------------*
DATA: w_date LIKE sy-datum,    "dummy
      w_ptdt(8) TYPE n,        "New Posting Date
      w_group_opened.          "Session group opened

DATA w_rad(2) TYPE c.          "For radio button values            "@001
*----------------------------------------------------------------------*
*     Selection Parameters
*----------------------------------------------------------------------*

SELECT-OPTIONS s_blart FOR vbkpf-blart OBLIGATORY NO-EXTENSION.

SELECT-OPTIONS s_belnr FOR vbkpf-belnr.                     "@001

PARAMETERS:
*       Company code
        p_bukrs LIKE vbkpf-bukrs OBLIGATORY VALUE CHECK,
*       Fiscal Year
        p_gjahr LIKE vbkpf-gjahr DEFAULT sy-datum(4) OBLIGATORY,
*       New Posting Date
        p_budat LIKE vbkpf-budat OBLIGATORY,
*       Run mode
        p_ctumod LIKE ctu_params-dismode DEFAULT 'N' OBLIGATORY,
                                "A: show all dynpros
                                "E: show dynpro on error only
                                "N: do not display dynpro
*       Update mode
        p_cupdat LIKE ctu_params-updmode DEFAULT 'L' OBLIGATORY,
                                "S: synchronously
                                "A: asynchronously
                                "L: local
*       Session Name
        p_groupi LIKE apqi-groupid OBLIGATORY DEFAULT sy-repid,
*       Batch Input User
        p_userid LIKE apqi-userid  OBLIGATORY DEFAULT sy-uname,
*       Session Locked untill specified date
        p_strtdt LIKE apqi-startdate,
*       Keep Batch Session
        p_qerase AS CHECKBOX DEFAULT 'X'.

* Begin of insert @001
* Renumbering of vendor invoices without PO.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_r1 RADIOBUTTON GROUP rad.
SELECTION-SCREEN COMMENT 3(50) text-006.
SELECTION-SCREEN END OF LINE.

* Renumbering of vendor invoices with PO.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_r2 RADIOBUTTON GROUP rad.
SELECTION-SCREEN COMMENT 3(50) text-007.
SELECTION-SCREEN END OF LINE.

* Renumbering of trade deals vendor invoices.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS p_r3 RADIOBUTTON GROUP rad.
SELECTION-SCREEN COMMENT 3(50) text-008.
SELECTION-SCREEN END OF LINE.
* End of insert @001

INITIALIZATION.

*set default value for Parameter Session Lock
  CALL FUNCTION 'MONTH_PLUS_DETERMINE'
    EXPORTING
      months  = 1
      olddate = sy-datum
    IMPORTING
      newdate = p_strtdt.

*set default value for parameter New Posting Date
  CALL FUNCTION 'FIRST_AND_LAST_DAY_IN_YEAR_GET'
    EXPORTING
      i_gjahr     = sy-datum(4)
      i_periv     = c_periv
    IMPORTING
      e_first_day = w_date
      e_last_day  = p_budat.

  CALL FUNCTION 'ADD_TIME_TO_DATE'
    EXPORTING
      i_idate = p_budat
      i_time  = 1
      i_iprkz = ' '
    IMPORTING
      o_idate = p_budat.

*---  AT SELECTION SCREEN
AT SELECTION-SCREEN ON p_bukrs.

* Validation for Company Code
  SELECT SINGLE * FROM t001 WHERE bukrs = p_bukrs.
  IF sy-subrc NE 0.
    MESSAGE e065.
  ENDIF.

AT SELECTION-SCREEN.

*Validation for Records exits
  SELECT SINGLE * FROM vbkpf WHERE ausbk = p_bukrs
                               AND gjahr = p_gjahr
                               AND blart IN s_blart.

  IF sy-subrc NE 0.
    MESSAGE e066 WITH p_bukrs p_gjahr.
  ENDIF.

* Begin of insert @001
AT SELECTION-SCREEN ON RADIOBUTTON GROUP rad.
  CLEAR w_rad.
  IF p_r1 = c_checked.
    w_rad = c_r1.
  ELSEIF p_r2 = c_checked.
    w_rad = c_r2.
  ELSE.
    w_rad = c_r3.
  ENDIF.
* End of insert @001

*----------------------------------------------------------------------*
*---   START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.

* authority check
  PERFORM check_aurthority.

* format date
  PERFORM format_date.

  CASE w_rad.                                               "@001
    WHEN c_r1 OR c_r3.                                      "@001

* select records from table vbkpf with selection creteria given
      CLEAR t_vbkpf.
      REFRESH t_vbkpf.

*Begin of changes - @001
*      SELECT belnr ausbk tcode FROM vbkpf
*            INTO CORRESPONDING FIELDS OF TABLE t_vbkpf
*                          WHERE belnr = p_belnr
*                            AND ausbk = p_bukrs
*                            AND gjahr = p_gjahr
*                            AND blart IN s_blart.
      SELECT belnr ausbk tcode bktxt FROM vbkpf
      INTO CORRESPONDING FIELDS OF TABLE t_vbkpf
                    WHERE belnr IN s_belnr
                      AND ausbk = p_bukrs
                      AND gjahr = p_gjahr
                      AND blart IN s_blart.
*End of changes - @001

      SORT t_vbkpf.

      LOOP AT t_vbkpf.
        wa_belnr-o_belnr = t_vbkpf-belnr.                   "@001
* build up bdcdata
        REFRESH t_bdcdata.
        PERFORM bdc_dynpro      USING 'SAPMF05V' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF05V-GJAHR'.
        PERFORM bdc_field       USING 'RF05V-BUKRS'
                                       t_vbkpf-ausbk.
        PERFORM bdc_field       USING 'RF05V-BELNR'
                                       t_vbkpf-belnr.
        PERFORM bdc_field       USING 'RF05V-GJAHR'
                                       p_gjahr.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
*   for tcodes FBV1 or FB01
*    IF T_VBKPF-TCODE = 'FBV1' OR T_VBKPF-TCODE = 'FB01'.   "@001
        IF t_vbkpf-tcode = 'FBV1' OR t_vbkpf-tcode = 'FB01' "@001
                                  OR t_vbkpf-tcode = 'YFV6'."@001
          PERFORM bdc_dynpro      USING 'SAPLF040' '0600'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'BKPF-BUDAT'.
          PERFORM bdc_field       USING 'BKPF-BUDAT'
                                         w_ptdt.
          PERFORM bdc_field       USING 'BKPF-BKTXT'
                                         t_vbkpf-belnr.

*   for tcodes FV60 or FV65 or FB60
        ELSEIF t_vbkpf-tcode = 'FV60' OR t_vbkpf-tcode = 'FV65'
                                      OR t_vbkpf-tcode = 'FB60'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '1100'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'INVFO-BUDAT'.
          PERFORM bdc_field       USING 'INVFO-BUDAT'
                                         w_ptdt .
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=MORE'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '1100'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'INVFO-BKTXT'.
*Begin of changes - @001
*          PERFORM bdc_field       USING 'INVFO-BKTXT'
*                                         t_vbkpf-belnr.
          PERFORM bdc_field       USING 'INVFO-BKTXT'
                                         t_vbkpf-bktxt.
*End of changes - @001

*   for tcodes FB50 or FV50
        ELSEIF t_vbkpf-tcode = 'FB50' OR t_vbkpf-tcode = 'FV50'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '1001'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'ACGL_HEAD-BUDAT'.
          PERFORM bdc_field       USING 'ACGL_HEAD-BUDAT'
                                        w_ptdt.
          PERFORM bdc_field       USING 'ACGL_HEAD-BKTXT'
                                        t_vbkpf-belnr.

        ENDIF.

        PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=BP'.

*Begin of insert  - @001
        IF w_rad = c_r3.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '1100'.

          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'INVFO-BKTXT'.
*BDC data for the popup screen
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '/00'.

        ENDIF.
*End of insert  - @001

        IF NOT t_bdcdata[] IS INITIAL.
          PERFORM bdc_transaction USING 'FBV4' p_ctumod p_cupdat.
        ENDIF.

      ENDLOOP.

* Begin of insert @001
      IF w_rad = c_r3.
        CLEAR wa_belnr.
        LOOP AT t_belnr INTO wa_belnr.
          PERFORM update_table.
        ENDLOOP.
      ENDIF.

    WHEN c_r2.

      IF s_belnr[] IS INITIAL.
        SELECT * FROM rbkp INTO TABLE t_rbkp
                 WHERE gjahr = p_gjahr
                 AND   blart IN s_blart
                 AND   bukrs = p_bukrs
                 AND  ( rbstat = 'A' OR
                       rbstat = 'B' OR
                       rbstat = 'C' ).
      ELSE.
        SELECT * FROM rbkp INTO TABLE t_rbkp
                 WHERE belnr IN s_belnr
                 AND   gjahr = p_gjahr
                 AND   blart IN s_blart
                 AND   bukrs = p_bukrs
                 AND  ( rbstat = 'A' OR
                       rbstat = 'B' OR
                       rbstat = 'C' ).
      ENDIF.

      IF sy-subrc = 0.
        LOOP AT t_rbkp INTO wa_rbkp.

          REFRESH t_bdcdata.
          PERFORM bdc_dynpro      USING 'SAPLMR1M' '6150'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RBKP-BELNR'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=RBAN'.
          PERFORM bdc_field       USING 'RBKP-BELNR'
                                        wa_rbkp-belnr.
          PERFORM bdc_field       USING 'RBKP-GJAHR'
                                        wa_rbkp-gjahr.
          PERFORM bdc_dynpro      USING 'SAPLMR1M' '6000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/EPPCH'.

          IF wa_rbkp-rbstat = 'A' OR wa_rbkp-rbstat = 'B'.
*         Park
            PERFORM bdc_dynpro      USING 'SAPLMR1M' '6000'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=PARK'.
          ELSE.
*         Store
            PERFORM bdc_dynpro      USING 'SAPLMR1M' '6000'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=STORE'.
          ENDIF.

          PERFORM bdc_field       USING 'INVFO-BUDAT'
                                         w_ptdt.

          IF NOT t_bdcdata[] IS INITIAL.
            *PERFORM bdc_transaction USING 'MIR4' p_ctumod* p_cupdat.
          ENDIF.
          CLEAR wa_rbkp.
        ENDLOOP.
      ELSE.
        MESSAGE i066 WITH p_bukrs p_gjahr.
        STOP.
      ENDIF.
  ENDCASE.
* End of insert @001


* Close batch input session
  IF w_group_opened = 'X'.
    PERFORM close_group.
  ENDIF.

* Release memory of internal table
  FREE: t_bdcdata, t_vbkpf, t_messtab.

*----------------------------------------------------------------------*
*   create batchinput session                                          *
*----------------------------------------------------------------------*
FORM open_group.

*  CALL FUNCTION 'BDC_OPEN_GROUP'
*    EXPORTING
*      client   = sy-mandt
*      group    = p_groupi
*      user     = p_userid
*      keep     = p_qerase
*      holddate = p_strtdt.

CALL FUNCTION 'BDC_OPEN_GROUP'
 EXPORTING
   CLIENT                    = SY-MANDT
*   DEST                      = FILLER8
   GROUP                     = p_groupi
   HOLDDATE                  = p_strtdt
   KEEP                      = p_qerase
   USER                      = p_userid
*   RECORD                    = FILLER1
*   PROG                      = SY-CPROG
 EXCEPTIONS
   CLIENT_INVALID            = 1
   DESTINATION_INVALID       = 2
   GROUP_INVALID             = 3
   GROUP_IS_LOCKED           = 4
   HOLDDATE_INVALID          = 5
   INTERNAL_ERROR            = 6
   QUEUE_ERROR               = 7
   RUNNING                   = 8
   SYSTEM_LOCK_ERROR         = 9
   USER_INVALID              = 10
   OTHERS                    = 11
          .
IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.



ENDFORM.                    "OPEN_GROUP

*----------------------------------------------------------------------*
*   end batchinput session                                             *
*----------------------------------------------------------------------*
FORM close_group.
  CALL FUNCTION 'BDC_CLOSE_GROUP'.
ENDFORM.                    "CLOSE_GROUP

*----------------------------------------------------------------------*
*        Start new transaction                                         *
*----------------------------------------------------------------------*
FORM bdc_transaction USING tcode ctumode cupdate.
  DATA: wl_mstring(480).         "String to print messages
  DATA: wl_subrc LIKE sy-subrc.  "sub-rc
  DATA : lwa_options TYPE ctu_params.                       "@001

*   clear message table
  REFRESH t_messtab.

*Begin of insert - @001
  IF w_rad = c_r3.

    lwa_options-racommit = c_checked.
    lwa_options-dismode = ctumode.
    lwa_options-updmode = cupdate.

*   Call Tcode for updating doc
    CALL TRANSACTION tcode USING t_bdcdata
                     OPTIONS FROM lwa_options
                     MESSAGES INTO t_messtab.
  ELSE.

*End of insert - @001

*   Call Tcode for updating doc
    CALL TRANSACTION tcode USING t_bdcdata
                     MODE   ctumode
                     UPDATE cupdate
                     MESSAGES INTO t_messtab.

  ENDIF.                                                    "@001

  wl_subrc = sy-subrc.

*   write status
  WRITE: / 'CALL_TRANSACTION', tcode,
           'returncode:'(i05), wl_subrc,
           'RECORD:',sy-index.

  WRITE : / text-009, t_vbkpf-belnr, p_gjahr,               "@001
            text-010.                                       "@001

*   write messages
  LOOP AT t_messtab.

* Begin of insert @001
    IF t_messtab-msgtyp = 'S' AND t_messtab-msgv2 = p_bukrs
                              AND w_rad = c_r3.
      wa_belnr-n_belnr = t_messtab-msgv1.
      APPEND wa_belnr TO t_belnr.
    ENDIF.
* End of insert @001

    SELECT SINGLE * FROM t100 WHERE sprsl = t_messtab-msgspra
                              AND   arbgb = t_messtab-msgid
                              AND   msgnr = t_messtab-msgnr.
    IF sy-subrc = 0.
      wl_mstring = t100-text.
      IF wl_mstring CS '&amp;amp;1'.
        REPLACE '&amp;amp;1' WITH t_messtab-msgv1 INTO wl_mstring.
        REPLACE '&amp;amp;2' WITH t_messtab-msgv2 INTO wl_mstring.
        REPLACE '&amp;amp;3' WITH t_messtab-msgv3 INTO wl_mstring.
        REPLACE '&amp;amp;4' WITH t_messtab-msgv4 INTO wl_mstring.
      ELSE.
        REPLACE '&amp;amp;' WITH t_messtab-msgv1 INTO wl_mstring.
        REPLACE '&amp;amp;' WITH t_messtab-msgv2 INTO wl_mstring.
        REPLACE '&amp;amp;' WITH t_messtab-msgv3 INTO wl_mstring.
        REPLACE '&amp;amp;' WITH t_messtab-msgv4 INTO wl_mstring.
      ENDIF.
      CONDENSE wl_mstring.
      WRITE: / t_messtab-msgtyp, wl_mstring(250).
    ELSE.
      WRITE: / t_messtab.
    ENDIF.
  ENDLOOP.
  SKIP.

*   if subrc is not 0, generate session
  IF wl_subrc &amp;lt;&amp;gt; 0 AND p_groupi &amp;lt;&amp;gt; space.
    IF w_group_opened = ' '.
      PERFORM open_group.
      w_group_opened = 'X'.
    ENDIF.

    CALL FUNCTION 'BDC_INSERT'
      EXPORTING
        tcode     = tcode
      TABLES
        dynprotab = t_bdcdata.
  ENDIF.

ENDFORM.                    "BDC_TRANSACTION

*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
  CLEAR t_bdcdata.
  t_bdcdata-program  = program.
  t_bdcdata-dynpro   = dynpro.
  t_bdcdata-dynbegin = 'X'.
  APPEND t_bdcdata.
ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
  CLEAR t_bdcdata.
  t_bdcdata-fnam = fnam.
  t_bdcdata-fval = fval.
  APPEND t_bdcdata.
ENDFORM.                    "BDC_FIELD

*---------------------------------------------------------------------*
*       Date format
*---------------------------------------------------------------------*
FORM format_date.
  w_ptdt+0(2) = p_budat+6(2).
  w_ptdt+2(2) = p_budat+4(2).
  w_ptdt+4(4) = p_budat+0(4).
ENDFORM.                    "FORMAT_DATE

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  check_aurthority
*&amp;amp;---------------------------------------------------------------------*
FORM check_aurthority.
  AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
                      ID 'BUKRS' FIELD p_bukrs   "Company code
                      ID 'ACTVT' FIELD '03'.     "Display
  IF sy-subrc &amp;lt;&amp;gt; 0.
    AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
                        ID 'BUKRS' FIELD p_bukrs  "Company code
                        ID 'ACTVT' FIELD '08'.    "Display/changing
    IF sy-subrc &amp;lt;&amp;gt; 0.
      MESSAGE e067 WITH p_bukrs.
      STOP.
    ENDIF.
  ENDIF.

ENDFORM.                    " check_aurthority

* Begin of insert @001
*&amp;amp;---------------------------------------------------------------------
*
*&amp;amp;      Form  update_table
*&amp;amp;---------------------------------------------------------------------
*
FORM update_table.

  SELECT SINGLE * FROM zsd_settle_rebat INTO wa_rebat
                       WHERE  belnr = wa_belnr-o_belnr
                          AND   gjahr = p_gjahr.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = wa_belnr-n_belnr
    IMPORTING
      output = wa_belnr-n_belnr.

  wa_rebat-belnr =  wa_belnr-n_belnr.
  wa_rebat-budat  =  p_budat.

  SELECT SINGLE gjahr FROM bkpf
                INTO  wa_rebat-gjahr
                WHERE belnr = wa_belnr-n_belnr
                AND   wwert = p_budat.

  MODIFY zsd_settle_rebat FROM wa_rebat.
  IF sy-subrc = 0.
    COMMIT WORK.
    MESSAGE s605(01).
  ELSE.
    ROLLBACK WORK.
  ENDIF.

ENDFORM.                    " entry_table
* End of insert @001
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code Formatted by: Alvaro Tejada Galindo on Jan 22, 2008 5:30 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Jan 2008 14:14:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369632#M808775</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-22T14:14:25Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for MIR4 Transaction</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369633#M808776</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hey i need to replace it with BAPI&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Jan 2008 14:16:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369633#M808776</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-22T14:16:17Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for MIR4 Transaction</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369634#M808777</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You use the BAPI &lt;/P&gt;&lt;P&gt;BAPI_INCOMINGINVOICE_SAVE or BAPI_INCOMINGINVOICE_PARK&lt;/P&gt;&lt;P&gt;in this you have pass the data for Header and Item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Venkat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 23 Jan 2008 21:47:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369634#M808777</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-23T21:47:57Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI for MIR4 Transaction</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369635#M808778</link>
      <description>&lt;P&gt;The BAPI is MRM_INVOICE_PREPARE_AND_POST. Don`t forget commit.I had used it.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Dec 2020 03:30:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-for-mir4-transaction/m-p/3369635#M808778</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2020-12-09T03:30:31Z</dc:date>
    </item>
  </channel>
</rss>

