Application Development 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: 

call transaction fb02

Former Member
0 Kudos

hi,

i have problem in my bdc programm there is 3 buttons for execute a call transaction in

test mode, foreground, background

i have problem in execution of test mode

when i execute test mode radiobutton

i am print the data as

number of records in upload file: 1

number of records that are processed without error:

number of errornuous record:

i am get the upload file data but i am not get records without error and error record in flat file after execution of programm.

flat file records are correct.

my codes are this

REPORT zfb02upld

NO STANDARD PAGE HEADING LINE-SIZE 255.

******************************************************************

  • I N T E R N A L T A B L E *

******************************************************************

DATA: BEGIN OF wa_data,

belnr TYPE bdc_fval, "Accounting Document Number

bukrs TYPE bdc_fval, "Company Code

gjahr TYPE bdc_fval, "Fiscal Year

bktxt TYPE bdc_fval, "Document Header Text

xblnr TYPE bdc_fval, "Reference Field

END OF wa_data.

DATA : BEGIN OF wa_error,

index TYPE c LENGTH 1,

text TYPE c LENGTH 100,

lines like sy-tabix,

END OF wa_error.

DATA : it_error LIKE TABLE OF wa_error.

DATA : it_success LIKE TABLE OF wa_data.

*********************************************************************

  • D A T A *

*********************************************************************

DATA: it_data LIKE TABLE OF wa_data.

DATA: it_bdcdata TYPE TABLE OF bdcdata.

DATA: wa_bdcdata LIKE LINE OF it_bdcdata.

DATA it_messtab LIKE TABLE OF bdcmsgcoll.

DATA wa_messtab LIKE LINE OF it_messtab.

DATA: v_file TYPE string.

DATA: v_index TYPE i.

DATA: v_text(100) TYPE c.

*DATA: message TYPE string.

DATA: c_x TYPE char01 VALUE 'X',

c_n(01) TYPE c.

*********************************************************************

  • S E L E C T I O N S C R E E N *

*********************************************************************

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME.

PARAMETERS : pa_file LIKE fc03tab-pl00_file OBLIGATORY.

SELECTION-SCREEN SKIP.

PARAMETERS: p_test RADIOBUTTON GROUP rec,

p_back RADIOBUTTON GROUP rec DEFAULT 'X',

p_onli RADIOBUTTON GROUP rec.

SELECTION-SCREEN END OF BLOCK b.

*********************************************************************

  • AT SELECTION-SCREEN *

*********************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_file.

PERFORM get_file USING pa_file.

************************************************************************

  • START-OF-SELECTION *

************************************************************************

START-OF-SELECTION.

v_file = pa_file.

*uploading flat file into internal table

PERFORM upload_file USING v_file CHANGING it_data.

PERFORM bdc.

&----


*& Form bdc

&----


  • text

----


FORM bdc.

IF p_onli = c_x.

c_n = 'A'.

ELSE.

c_n = 'N'.

ENDIF.

IF p_test = c_x.

WRITE:/ 'Test Mode Completed'.

ULINE.

PERFORM audit_report. " jayant

ENDIF.

*POPULATING THE BDCDATA

LOOP AT it_data INTO wa_data.

REFRESH it_bdcdata.

CLEAR it_bdcdata.

PERFORM bdc_dynpro USING 'SAPMF05L' '0100' c_x.

PERFORM bdc_field USING 'BDC_CURSOR' 'RF05L-BELNR'.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

PERFORM bdc_field USING 'RF05L-BELNR' wa_data-belnr.

PERFORM bdc_field USING 'RF05L-BUKRS' wa_data-bukrs.

PERFORM bdc_field USING 'RF05L-GJAHR' wa_data-gjahr.

PERFORM bdc_dynpro USING 'SAPMF05L' '0700' c_x.

PERFORM bdc_field USING 'BDC_CURSOR' 'BKPF-BELNR'.

PERFORM bdc_field USING 'BDC_OKCODE' '=VK'.

PERFORM bdc_dynpro USING 'SAPMF05L' '1710' c_x.

PERFORM bdc_field USING 'BDC_CURSOR' 'TTYPT-OTEXT'.

PERFORM bdc_field USING 'BDC_OKCODE' '=ENTR'.

PERFORM bdc_field USING 'BKPF-BKTXT' wa_data-bktxt.

PERFORM bdc_field USING 'BKPF-XBLNR' wa_data-xblnr.

PERFORM bdc_dynpro USING 'SAPMF05L' '0700' c_x.

PERFORM bdc_field USING 'BDC_CURSOR' 'BKPF-BELNR'.

PERFORM bdc_field USING 'BDC_OKCODE' '=AE'.

CALL TRANSACTION 'FB02' USING it_bdcdata

MODE c_n

MESSAGES INTO it_messtab.

PERFORM write_message.

ENDLOOP.

ENDFORM. "bdc

&----


*& Form get_file

&----


  • text

----


  • -->P_PA_FILE text

----


FORM get_file USING p_pa_file.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

program_name = syst-repid

field_name = 'PA_FILE'

CHANGING

file_name = pa_file.

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. " get_file

&----


*& Form upload_file

&----


  • text

----


  • -->P_V_FILE text

  • <--P_IT_DATA text

----


FORM upload_file USING p_v_file

CHANGING p_it_data LIKE it_data.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = p_v_file

filetype = 'DAT'

TABLES

data_tab = p_it_data.

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. " upload_file

&----


*& Form bdc_dynpro

&----


  • text

----


  • -->P_0043 text

  • -->P_0044 text

----


FORM bdc_dynpro USING program TYPE bdc_prog

dynpro TYPE bdc_dynr

dynbegin TYPE bdc_start.

wa_bdcdata-program = program.

wa_bdcdata-dynpro = dynpro.

wa_bdcdata-dynbegin = dynbegin.

APPEND wa_bdcdata TO it_bdcdata.

CLEAR wa_bdcdata.

ENDFORM. " bdc_dynpro

&----


*& Form bdc_field

&----


  • text

----


  • -->P_0048 text

  • -->P_0049 text

----


FORM bdc_field USING fnam TYPE fnam_____4

fval TYPE bdc_fval.

wa_bdcdata-fnam = fnam.

wa_bdcdata-fval = fval.

APPEND wa_bdcdata TO it_bdcdata.

CLEAR wa_bdcdata.

ENDFORM. " bdc_field

----


  • FORM write_message *

----


  • This subroutine populates the BDC table *

----


FORM write_message.

  • Get the BDC error messages

LOOP AT it_messtab INTO wa_messtab.

CLEAR v_text.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

id = wa_messtab-msgid

lang = 'EN'

no = wa_messtab-msgnr

v1 = wa_messtab-msgv1

v2 = wa_messtab-msgv2

v3 = wa_messtab-msgv3

v4 = wa_messtab-msgv4

IMPORTING

msg = v_text.

IF sy-subrc = 0.

CASE wa_messtab-msgtyp.

  • WHEN 'S'.

  • WRITE:/ v_text.

  • CLEAR v_text.

WHEN 'E'.

wa_error-index = v_index. "record num

wa_error-text = v_text . "message text

APPEND wa_error TO it_error.

CLEAR wa_error.

ENDCASE.

ENDIF.

ENDLOOP.

REFRESH it_messtab.

CLEAR wa_messtab.

IF NOT it_error[] IS INITIAL.

WRITE: /30 'ERROR RECORDS DETAILS'.

SKIP 1.

WRITE: /5 'RECORD NO', 15 sy-vline,

16 'ERROR MESSAGE'.

ULINE.

LOOP AT it_error INTO wa_error.

WRITE : /5 wa_error-index LEFT-JUSTIFIED,

15 sy-uline,

16 wa_error-text.

CLEAR wa_error.

ENDLOOP.

ENDIF.

ENDFORM. " f_error_handling

----


  • FORM audit_report *

----


  • This subroutine populates the BDC table *

----


FORM audit_report.

*data: lines like sy-tabix.

DATA: lv_input TYPE i,

lv_process TYPE i,

lv_error TYPE i,

lv_count TYPE i.

DESCRIBE TABLE it_data LINES lv_input.

DESCRIBE TABLE it_success LINES lv_process.

DESCRIBE TABLE it_error LINES lv_error.

WRITE:/5 text-011, 50 lv_input,

/5 text-012, 50 lv_process,

/5 text-013, 50 lv_error.

ENDFORM. "audit_report

plz help me .

thanks.

1 REPLY 1

Former Member
0 Kudos

for some reason, you are running PERFORM audit_report prior to actually running your BDC code. So your itabs aren't populated with successes/failures.


IF p_test = c_x.
WRITE:/ 'Test Mode Completed'.
ULINE.
PERFORM audit_report.
ENDIF.