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

rep-bdc

Former Member
0 Likes
1,012

can you call a bdc program from report program?

1 ACCEPTED SOLUTION
Read only

varma_narayana
Active Contributor
0 Likes
926

Hi...

When You Create a BDC Program(Report)

You can call it from another report program using SUBMIT.

eg:

SUBMIT ZREPBDC1

WITH P_FILE = ' '

WITH P_CUSTOMER = 'C100'.

Look at the F1 help for SUBMIT statement.

Reward for helpful solutions.

Regards.

7 REPLIES 7
Read only

Former Member
0 Likes
926

Hi

<b>Yes, You can

Reward points for useful Answers</b>

Regards

Anji

Read only

Former Member
0 Likes
926

hi

yes u can call BDC program from report program

for example please refer to the link

http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g

regards

ravish

<b>plz dont forget to reward points if helpful</b>

Read only

Former Member
0 Likes
926

Hi Valluri,

We Can call a BDC Program from Report Program.

Check the thread for more information,

https://forums.sdn.sap.com/click.jspa?searchID=3416654&messageID=3100671

Thanks,

Read only

Former Member
0 Likes
926

<b>yes we can call the bdc program</b>

sample code for it ....

REPORT ZSYSTEM LINE-SIZE 255. 
TABLES: T100. 
* Batch-input data 
DATA: BEGIN OF G_BDCDATA OCCURS 100. 
        INCLUDE STRUCTURE BDCDATA. 
DATA: END OF G_BDCDATA. 
DATA: G_MESSAGE(200). 
PERFORM FILL_BDCDATA. 
CALL TRANSACTION 'FI01'  USING G_BDCDATA  MODE 'N'. 
* of course it is nicer with a message itab, but this example 
* should also demostrate the use of system variables. 
SELECT SINGLE * FROM T100 WHERE 
                SPRSL = 'E' 
            AND ARBGB = SY-MSGID 
            AND MSGNR = SY-MSGNO. 
G_MESSAGE = T100-TEXT. 

PERFORM REPLACE_PARAMETERS  USING     SY-MSGV1 
                                      SY-MSGV2 
                                      SY-MSGV3 
                                      SY-MSGV4 
                            CHANGING  G_MESSAGE. 

WRITE: / 'System variables:'. 
SKIP. 
WRITE: / '        Sy-msgty:', SY-MSGTY. 
WRITE: / '        Sy-msgid:', SY-MSGID. 
WRITE: / '        Sy-msgno:', SY-MSGNO. 
WRITE: / '        Sy-msgv1:', SY-MSGV1. 
WRITE: / '        Sy-msgv2:', SY-MSGV2. 
WRITE: / '        Sy-msgv3:', SY-MSGV3. 
WRITE: / '        Sy-msgv4:', SY-MSGV4. 
SKIP. 
WRITE: / 'The transaction was called with a wrong country code.'. 
WRITE: / 'The error message should be either that or that you have'. 
WRITE: / '  no authorisation to execute the transaction'. 
SKIP. 
WRITE: / 'Message:'. 
SKIP. 
WRITE: / SY-MSGTY, G_MESSAGE. 

*---------------------------------------------------------------------* 
*       Build up the BDC-table                                        * 
*---------------------------------------------------------------------* 
FORM FILL_BDCDATA. 
  REFRESH G_BDCDATA. 

  PERFORM BDC_DYNPRO USING 'SAPMF02B' '0100'. 
  PERFORM BDC_FIELD USING 'BNKA-BANKS' 'ZZZ'. 
  PERFORM BDC_FIELD USING 'BDC_OKCODE' 'QQQQQ'. 

ENDFORM. 

*---------------------------------------------------------------------* 
*       FORM BDC_DYNPRO                                               * 
*---------------------------------------------------------------------* 
*       Batchinput: Start new Dynpro                                  * 
*---------------------------------------------------------------------* 
FORM BDC_DYNPRO USING P_PROGRAM P_DYNPRO. 
  CLEAR G_BDCDATA. 
  G_BDCDATA-PROGRAM = P_PROGRAM. 
  G_BDCDATA-DYNPRO = P_DYNPRO. 
  G_BDCDATA-DYNBEGIN = 'X'. 
  APPEND G_BDCDATA. 
ENDFORM.                               " BDC_DYNPRO 

*---------------------------------------------------------------------* 
*       FORM BDC_FIELD                                                * 
*---------------------------------------------------------------------* 
*       Batchinput: Feld hinzufugen                                   * 
*---------------------------------------------------------------------* 
FORM BDC_FIELD USING P_FNAM P_FVAL. 
  CLEAR G_BDCDATA. 
  G_BDCDATA-FNAM = P_FNAM. 
  G_BDCDATA-FVAL = P_FVAL. 
  APPEND G_BDCDATA. 
ENDFORM.                               " BDC_FIELD 
*---------------------------------------------------------------------* 
*       FORM REPLACE_PARAMETERS                                       * 
*---------------------------------------------------------------------* 
*       ........                                                      * 
*---------------------------------------------------------------------* 
*  -->  P_PAR_1                                                       * 
*  -->  P_PAR_2                                                       * 
*  -->  P_PAR_3                                                       * 
*  -->  P_PAR_4                                                       * 
*  -->  P_MESSAGE                                                     * 
*---------------------------------------------------------------------* 
FORM REPLACE_PARAMETERS  USING    P_PAR_1 
                                  P_PAR_2 
                                  P_PAR_3 
                                  P_PAR_4 
                         CHANGING P_MESSAGE. 

* erst mal pruefen, ob numerierte Parameter verwendet wurden 
  DO. 
    REPLACE '&1' WITH P_PAR_1 INTO P_MESSAGE. 
    IF SY-SUBRC <> 0. 
      EXIT. 
    ENDIF. 
  ENDDO. 
  DO. 
    REPLACE '&2' WITH P_PAR_2 INTO P_MESSAGE. 
    IF SY-SUBRC <> 0. 
      EXIT. 
    ENDIF. 
  ENDDO. 
  DO. 
    REPLACE '&3' WITH P_PAR_3 INTO P_MESSAGE. 
    IF SY-SUBRC <> 0. 
      EXIT. 
    ENDIF. 
  ENDDO. 
  DO. 
    REPLACE '&4' WITH P_PAR_4 INTO P_MESSAGE. 
    IF SY-SUBRC <> 0. 
      EXIT. 
    ENDIF. 
  ENDDO. 
* falls keine numerierten Parameter vorh., ersetzen wie gehabt 
  REPLACE '&' WITH P_PAR_1 INTO P_MESSAGE. 
  CONDENSE P_MESSAGE. 
  IF SY-SUBRC EQ 0. 
    REPLACE '&' WITH P_PAR_2 INTO P_MESSAGE. 
    CONDENSE P_MESSAGE. 
    IF SY-SUBRC EQ 0. 
      REPLACE '&' WITH P_PAR_3 INTO P_MESSAGE. 
      CONDENSE P_MESSAGE. 
      IF SY-SUBRC EQ 0. 
        REPLACE '&' WITH P_PAR_4 INTO P_MESSAGE. 
        CONDENSE P_MESSAGE. 
      ENDIF. 
    ENDIF. 
  ENDIF. 

ENDFORM.                               "replace_parameters 

reward points if it is usefull....

Girish

Read only

varma_narayana
Active Contributor
0 Likes
927

Hi...

When You Create a BDC Program(Report)

You can call it from another report program using SUBMIT.

eg:

SUBMIT ZREPBDC1

WITH P_FILE = ' '

WITH P_CUSTOMER = 'C100'.

Look at the F1 help for SUBMIT statement.

Reward for helpful solutions.

Regards.

Read only

Former Member
0 Likes
926

Hi,

Yes u can cal a BDC program from a report.

Check out my sample code in HR ABAP.

REPORT  zcmr_022_bdc_eor_it9024                 .


*---------------------------------------------------------------------*
*        Types : TY_                                                  *
*---------------------------------------------------------------------*

*--> Upload data from the flat file.
TYPES : BEGIN OF ty_9024,
        pernr     TYPE p9024-pernr,     "Personnel Number
        begda(10) TYPE c,               "Start date
        endda(10) TYPE c,               "End date
        zrtgscl2  TYPE p9024-zrtgscl2,  "Rating scale
        ZPSCLS    TYPE p9024-ZPSCLS   , "Position Class
        END OF ty_9024.

*---------------------------------------------------------------------*
*        INTERNAL TABLE : IT_                                         *
*---------------------------------------------------------------------*

DATA : it_9024     TYPE TABLE OF ty_9024   , "Uploaded Data
       it_files    TYPE filetable ,          "File Name
       it_bdcdata  TYPE TABLE OF bdcdata   , "Insert BDC data
*---------------------------------------------------------------------*
*        WORK AREA : WA_                                              *
*---------------------------------------------------------------------*

       wa_9024    TYPE ty_9024    , "Uploaded Data
       wa_file    TYPE file_table , "File Name
       wa_bdcdata TYPE bdcdata    , "Insert BDC data

*---------------------------------------------------------------------*
*        DATA : W_                                                    *
*---------------------------------------------------------------------*

       w_title TYPE string , "Title for the File selection window.
       w_rc    TYPE i      . "Return code for the class

*---------------------------------------------------------------------*
*        SELECTION SCREEN                                             *
*---------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.

PARAMETERS : pr_file TYPE localfile OBLIGATORY.         "File Name

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.

PARAMETERS : pr_sess TYPE  d0100_mapn OBLIGATORY,       "Session Name
             pr_keep TYPE c AS CHECKBOX DEFAULT text-001.
                                                "Session kept in SM35

SELECTION-SCREEN END OF BLOCK b2.

*---------------------------------------------------------------------*
*        AT SELECTION-SCREEN ON VALUE REQUEST                         *
*---------------------------------------------------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.

  w_title = text-t03.

*--> Function module to fetch the file name
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = w_title
    CHANGING
      file_table              = it_files
      rc                      = w_rc
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      not_supported_by_gui    = 4
      OTHERS                  = 5.

  IF sy-subrc = 0.
    READ TABLE it_files INTO wa_file INDEX 1.
    IF sy-subrc IS INITIAL.
      MOVE wa_file TO pr_file.
    ELSE.
      CLEAR pr_file.
    ENDIF.
  ELSE.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

*---------------------------------------------------------------------*
*        START-OF-SELECTION                                           *
*---------------------------------------------------------------------*
START-OF-SELECTION.
*--> Upload the flat file
  PERFORM f001_upload_it9024.
*--> Insert through transaction
  PERFORM f002_insert_it9024.


*---------------------------------------------------------------------*
*        END-OF-SELECTION                                             *
*---------------------------------------------------------------------*
END-OF-SELECTION.

*&---------------------------------------------------------------------*
*&      Form  F001_UPLOAD_IT9024
*&---------------------------------------------------------------------*
*      uploads the flatfile to the final internal table.
*----------------------------------------------------------------------*
FORM f001_upload_it9024.

  DATA : lw_file TYPE string.

  MOVE pr_file TO lw_file.

*--> Function Module to fetch the data form flat file to internal table
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                = lw_file
      filetype                = 'ASC'
      has_field_separator     = 'X'
    TABLES
      data_tab                = it_9024
    EXCEPTIONS
      file_open_error         = 1
      file_read_error         = 2
      no_batch                = 3
      gui_refuse_filetransfer = 4
      invalid_type            = 5
      no_authority            = 6
      unknown_error           = 7
      bad_data_format         = 8
      header_not_allowed      = 9
      separator_not_allowed   = 10
      header_too_long         = 11
      unknown_dp_error        = 12
      access_denied           = 13
      dp_out_of_memory        = 14
      disk_full               = 15
      dp_timeout              = 16
      OTHERS                  = 17.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                    "F001_UPLOAD_IT9024


*&---------------------------------------------------------------------*
*&      Form  F002_INSERT_IT9024
*&---------------------------------------------------------------------*
*       Insert data to info type 9024
*----------------------------------------------------------------------*
FORM f002_insert_it9024.


*--> Opens the session
  PERFORM f003_open_group.
  LOOP AT it_9024 INTO wa_9024.

    PERFORM:   f005_bdc_dynpro      USING 'SAPMP50A' '1000',

               f006_bdc_field       USING 'BDC_OKCODE'  '=INS',
               f006_bdc_field       USING 'RP50G-PERNR' wa_9024-pernr,
               f006_bdc_field       USING 'RP50G-TIMR6' 'X',

               f006_bdc_field       USING 'RP50G-CHOIC' '9024',
               f005_bdc_dynpro      USING 'MP902400' '2000',
               f006_bdc_field       USING 'BDC_OKCODE'  '=UPD',
               f006_bdc_field       USING 'P9024-BEGDA'  wa_9024-begda,
               f006_bdc_field       USING 'P9024-ENDDA'  wa_9024-endda,
               f006_bdc_field       USING 'P9024-ZRTGSCL2' wa_9024-zrtgscl2,
               f006_bdc_field       USING 'P9024-ZPSCLS' wa_9024-ZPSCLS.


    CLEAR wa_9024.

    PERFORM f007_bdc_insert USING 'PA30'.

  ENDLOOP.

  PERFORM f004_close_group.

  CALL TRANSACTION 'SM35'.

ENDFORM.                    "f002_insert_it9024

*&---------------------------------------------------------------------*
*&      Form  f003_open_group
*&---------------------------------------------------------------------*
*       Opens the session
*----------------------------------------------------------------------*
FORM f003_open_group.

  CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
      client = sy-mandt
      group  = pr_sess
      keep   = pr_keep
      user   = sy-uname.
*  IF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*  ENDIF.


ENDFORM.                    "f003_open_group
*&---------------------------------------------------------------------*
*&      Form  F004_CLOSE_GROUP
*&---------------------------------------------------------------------*
*       Closes the BDC group
*----------------------------------------------------------------------*
FORM f004_close_group.

  CALL FUNCTION 'BDC_CLOSE_GROUP'.
*  IF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
*  ENDIF.


ENDFORM.                    "f004_close_group



*&---------------------------------------------------------------------*
*&      Form  F005_BDC_DYNPRO
*&---------------------------------------------------------------------*
*       Uploads the program and screen no to it_bdcdata
*----------------------------------------------------------------------*
FORM f005_bdc_dynpro USING program type any dynpro type any.

  wa_bdcdata-program  = program.
  wa_bdcdata-dynpro   = dynpro.
  wa_bdcdata-dynbegin = 'X'.
  APPEND wa_bdcdata TO it_bdcdata.
  CLEAR wa_bdcdata.
ENDFORM.                    "f005_bdc_dynpro

*&---------------------------------------------------------------------*
*&      Form  F006_bdc_field
*&---------------------------------------------------------------------*
*       Uploads field name and field values to it_bdcdata
*----------------------------------------------------------------------*
FORM f006_bdc_field USING fnam type any fval type any.
  wa_bdcdata-fnam = fnam.
  wa_bdcdata-fval = fval.
  APPEND wa_bdcdata TO it_bdcdata.
  CLEAR wa_bdcdata.
ENDFORM.                    "F006_bdc_field



*&---------------------------------------------------------------------*
*&      Form  F007_BDC_INSERT
*&---------------------------------------------------------------------*
*       Uploads the tcode to it_bdcdata
*----------------------------------------------------------------------*
FORM f007_bdc_insert USING tcode type any.


  CALL FUNCTION 'BDC_INSERT'
    EXPORTING
      tcode     = tcode
    TABLES
      dynprotab = it_bdcdata.


  REFRESH it_bdcdata.
ENDFORM.                    "F007_BDC_INSERT

****Reward points if this answer is helpful.

All the best

Read only

Former Member
0 Likes
926

Hi,

Yes..We Can.

Check this example:

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

DATA : L_EBELN TYPE EKPO-EBELN,

L_EBELP TYPE EKPO-EBELP.

DATA : L_DATE1 TYPE SY-DATUM,

L_DATE2 TYPE SY-DATUM,

L_YEAR(4),

L_MONTH(2),

L_DATE(2).

DATA: L_AMOUNT1 LIKE RK40C-WTGBTR.

DATA: L_POSID_OLD TYPE PS_POSID.

DATA: L_POSID_NEW TYPE PS_POSID.

DATA: LS_COBK LIKE COBK.

DATA: LT_ITEMS LIKE RK40C OCCURS 0 WITH HEADER LINE,

LT_COEP LIKE COEP OCCURS 0 WITH HEADER LINE,

LT_COEPL LIKE COEPL OCCURS 0 WITH HEADER LINE,

LT_COEPR LIKE COEPR OCCURS 0 WITH HEADER LINE,

LT_MESG LIKE MESG OCCURS 0 WITH HEADER LINE.

DATA: LV_NUM TYPE POSNR_ACC VALUE '1'.

DATA: CD_SEND_REC_REL LIKE COHEADER-SEND_REC_REL,

LD_STATUS LIKE RK23F-STATUS.

DATA: L_DYNNR LIKE FELD-DYNNR.

CLEAR : L_DATE,L_DATE1,L_DATE2,L_YEAR,L_MONTH.

L_DATE1 = SY-DATUM.

L_YEAR = L_DATE1(4).

L_MONTH = L_DATE1+4(2).

L_DATE = L_DATE1+6(2).

CONCATENATE L_DATE L_MONTH L_YEAR INTO L_DATE2 .

CASE R_UCOMM.

WHEN '&IC1'. "doubleclick

CHECK RS_SELFIELD-FIELDNAME = 'EBELN'.

READ TABLE G_T_FINAL INDEX RS_SELFIELD-TABINDEX.

IF SY-SUBRC = 0.

READ TABLE G_T_TEMP WITH KEY LOGNUM = G_T_FINAL-LOGNUM.

IF SY-SUBRC = 0.

MESSAGE I899(KB) WITH TEXT-004.

ELSE.

CLEAR : L_EBELN,L_EBELP,LS_COBK,LT_ITEMS,G_T_BDC,G_T_MESSAGE,

CD_SEND_REC_REL,LD_STATUS.

REFRESH: LT_ITEMS,G_T_BDC,G_T_MESSAGE.

SET PARAMETER ID 'BES' FIELD G_T_FINAL-EBELN.

GET PARAMETER ID 'BES' FIELD L_EBELN.

SET PARAMETER ID 'BSP' FIELD G_T_FINAL-EBELP.

GET PARAMETER ID 'BSP' FIELD L_EBELP.

SORT G_T_FINAL BY EBELN EBELP.

READ TABLE G_T_FINAL WITH KEY EBELN = L_EBELN

EBELP = L_EBELP

BINARY SEARCH.

IF SY-SUBRC = 0.

LS_COBK-KOKRS = G_T_FINAL-KOKRS.

LS_COBK-GJAHR = SY-DATUM+0(4).

LS_COBK-VRGNG = 'RKU1'.

LS_COBK-PERAB = SY-DATUM+4(2).

LS_COBK-PERBI = SY-DATUM+4(2).

LS_COBK-BLDAT = SY-DATUM.

LS_COBK-BUDAT = SY-DATUM.

LS_COBK-CPUDT = SY-DATUM.

LS_COBK-USNAM = SY-UNAME.

LS_COBK-WSDAT = SY-DATUM.

LS_COBK-KURST = 'M'.

LS_COBK-VARNR = '05SAP'.

LS_COBK-KWAER = G_T_FINAL-WAERS.

LS_COBK-CPUTM = SY-UZEIT.

CLEAR : L_POSID_OLD,L_POSID_NEW.

CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'

EXPORTING

INPUT = G_T_FINAL-POSID_NEW

IMPORTING

OUTPUT = L_POSID_NEW.

CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'

EXPORTING

INPUT = G_T_FINAL-POSID_OLD

IMPORTING

OUTPUT = L_POSID_OLD.

L_AMOUNT1 = G_T_FINAL-AMOUNT.

LT_ITEMS-ZLENR = LV_NUM.

LT_ITEMS-EPSPNR = L_POSID_NEW.

LT_ITEMS-SPSPNR = L_POSID_OLD.

LT_ITEMS-KSTAR = G_T_FINAL-KSTAR.

LT_ITEMS-WAERS = G_T_FINAL-WAERS.

LT_ITEMS-WTGBTR = L_AMOUNT1.

LT_ITEMS-WKGBTR = L_AMOUNT1.

APPEND LT_ITEMS.

CLEAR: LT_ITEMS.

  • For reposting the Cost

CHECK NOT LT_ITEMS[] IS INITIAL.

CALL FUNCTION 'K40C_COBK_CHECK_POST'

CHANGING

ITCOBK = LS_COBK

EXCEPTIONS

PERIOD_BLOCKED = 1

EXTERNAL_NUMBER_MISSING = 2

ERROR_OCCURED = 3.

IF SY-SUBRC IS INITIAL.

CALL FUNCTION 'K40C_DOCUMENT_LINE_CHECK'

EXPORTING

DOC_HEADER = LS_COBK

IGNORE_WARNINGS = 'X'

TABLES

DOC_ITEMS = LT_ITEMS.

*...Create Tables for database

CALL FUNCTION 'K40C_DOCUMENT_CREATE'

EXPORTING

DOC_HEADER = LS_COBK

TABLES

DOC_ITEMS = LT_ITEMS

ITCOEP = LT_COEP

ITCOEPL = LT_COEPL

ITCOEPR = LT_COEPR.

CALL FUNCTION 'K40C_DOCUMENT_POST'

TABLES

ITCOEP = LT_COEP

ITCOEPL = LT_COEPL

ITCOEPR = LT_COEPR

CHANGING

DOC_HEADER = LS_COBK.

ENDIF.

ENDIF.

IF SY-SUBRC = 0.

GET PARAMETER ID 'KBXXN_P_VAR_RKU1' FIELD CD_SEND_REC_REL.

GET PARAMETER ID 'KBXX_START_DYNPRO' FIELD LD_STATUS.

IF CD_SEND_REC_REL IS INITIAL AND LD_STATUS IS INITIAL.

CLEAR L_DYNNR.

L_DYNNR = '1220'.

PERFORM BDC_DYNPRO USING 'SAPLK23F1' '1200'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'COHEADER-SEND_REC_REL'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=PVAR'.

PERFORM BDC_FIELD USING 'COHEADER-SEND_REC_REL'

'05SAP'.

PERFORM BDC_FIELD USING 'RK23F-STATUS'

'L'.

PERFORM BDC_FIELD USING 'COHEADER-BLDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-BUDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-PERIO'

L_MONTH.

PERFORM BDC_DYNPRO USING 'SAPLK23F1' '1200'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RK23F-STATUS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=LISI'.

PERFORM BDC_FIELD USING 'COHEADER-SEND_REC_REL'

'05SAP'.

PERFORM BDC_FIELD USING 'RK23F-STATUS'

'S'.

PERFORM BDC_FIELD USING 'COHEADER-BLDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-BUDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-PERIO'

L_MONTH.

PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.

ENDIF.

IF CD_SEND_REC_REL EQ '05SAP' AND LD_STATUS EQ 'S'.

CLEAR L_DYNNR.

L_DYNNR = '1220'.

PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.

ELSEIF CD_SEND_REC_REL EQ '05SAP' AND LD_STATUS EQ 'L'.

CLEAR L_DYNNR.

L_DYNNR = '1220'.

PERFORM BDC_DYNPRO USING 'SAPLK23F1' L_DYNNR.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RK23F-STATUS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=LISI'.

PERFORM BDC_FIELD USING 'COHEADER-SEND_REC_REL'

'05SAP'.

PERFORM BDC_FIELD USING 'RK23F-STATUS'

'S'.

PERFORM BDC_FIELD USING 'COHEADER-BLDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-BUDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-PERIO'

L_MONTH.

PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.

ELSEIF CD_SEND_REC_REL NE '05SAP' AND LD_STATUS EQ 'S'.

CASE CD_SEND_REC_REL.

WHEN '01SAP' OR '02SAP' OR '04SAP' OR '08SAP' OR '09SAP'.

CLEAR L_DYNNR.

L_DYNNR = '1220'.

WHEN '03SAP' OR '07SAP'.

CLEAR L_DYNNR.

L_DYNNR = '1230' .

WHEN '06SAP'.

CLEAR L_DYNNR.

L_DYNNR = '1210'.

WHEN '10SAP'.

CLEAR L_DYNNR.

L_DYNNR = '1270'.

ENDCASE.

PERFORM BDC_DYNPRO USING 'SAPLK23F1' L_DYNNR.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'COHEADER-SEND_REC_REL'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=PVAR'.

PERFORM BDC_FIELD USING 'COHEADER-SEND_REC_REL'

'05SAP'.

PERFORM BDC_FIELD USING 'RK23F-STATUS'

'S'.

PERFORM BDC_FIELD USING 'COHEADER-BLDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-BUDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-PERIO'

L_MONTH.

PERFORM BDC_FIELD USING 'RK23F-WAERS'

'EUR'.

PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.

ELSEIF CD_SEND_REC_REL NE '05SAP' AND LD_STATUS EQ 'L'.

CASE CD_SEND_REC_REL.

WHEN '01SAP' OR '02SAP' OR '04SAP' OR '08SAP' OR '09SAP'.

CLEAR L_DYNNR.

L_DYNNR = '1220'.

WHEN '03SAP' OR '07SAP'.

CLEAR L_DYNNR.

L_DYNNR = '1230' .

WHEN '06SAP'.

CLEAR L_DYNNR.

L_DYNNR = '1210'.

WHEN '10SAP'.

CLEAR L_DYNNR.

L_DYNNR = '1270'.

ENDCASE.

PERFORM BDC_DYNPRO USING 'SAPLK23F1' '1200'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'COHEADER-SEND_REC_REL'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=PVAR'.

PERFORM BDC_FIELD USING 'COHEADER-SEND_REC_REL'

'05SAP'.

PERFORM BDC_FIELD USING 'RK23F-STATUS'

'L'.

PERFORM BDC_FIELD USING 'COHEADER-BLDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-BUDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-PERIO'

L_MONTH.

PERFORM BDC_DYNPRO USING 'SAPLK23F1' '1200'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RK23F-STATUS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=LISI'.

PERFORM BDC_FIELD USING 'COHEADER-SEND_REC_REL'

'05SAP'.

PERFORM BDC_FIELD USING 'RK23F-STATUS'

'S'.

PERFORM BDC_FIELD USING 'COHEADER-BLDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-BUDAT'

L_DATE2.

PERFORM BDC_FIELD USING 'COHEADER-PERIO'

L_MONTH.

PERFORM FILL_BDC_SCREEN USING L_DYNNR L_DATE2 L_MONTH.

ENDIF.

CALL TRANSACTION 'KB11N' USING G_T_BDC MODE G_MODE MESSAGES

INTO G_T_MESSAGE.

IF NOT G_T_MESSAGE[] IS INITIAL.

READ TABLE G_T_MESSAGE WITH KEY MSGTYP = 'S'.

IF SY-SUBRC = 0.

DELETE FROM BALHDR WHERE LOGNUMBER = G_T_FINAL-LOGNUM AND

OBJECT = G_T_FINAL-OBJECT AND

SUBOBJECT = G_T_FINAL-SUBOBJECT.

COMMIT WORK.

G_T_TEMP = G_T_FINAL.

APPEND G_T_TEMP.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

CLEAR G_T_MESSAGE.

REFRESH G_T_MESSAGE.

*refresh g_t_bdc.

CLEAR G_T_BDC.

REFRESH G_T_BDC.

ENDIF.

ENDCASE.

ENDFORM. " USER_COMMAND

Regards,

Padmam.