2014 Feb 17 10:34 AM
Every thing is going correct up to uploading data to Table control. The first fields of table control are not uploading. But other fields are showing data. I have attached my code below.
Every thing is going correct up to uploading data to Table control. The first fields of table control are not uploading. But other fields are showing data. I have attached my code below.
2014 Feb 17 10:50 AM
Hi,
when you play with BDC & Table Control enter data only in one line an press ENTER ("/00") never try to insert all the line of your tables.
a lot of time, in background, the las line stay blank to allow you to insert data.
regards
Fred
2014 Feb 17 11:08 AM
2014 Feb 19 3:51 AM
Hi,
Which method are you using in your process . If you are using CALL TRANSACTION method, u can run the BDC in foreground and check the steps, for better understanding as in how the values in the BDCDATA table is being maintained.
Regards,
Mayur Priyan. S
PS: We are unable to view any code attachment. Request you to please upload it.
2014 Feb 19 8:00 AM
Here is my Code.
TYPE-POOLS: truxs.
* Structure of Vendor Data
TYPES:
BEGIN OF ty_lfa1,
lifnr(10) TYPE c,
bukrs(4) TYPE c,
ekorg(4) TYPE c,
ktokk(4) TYPE c,
anred(15) TYPE c,
name1 TYPE lfa1-name1,
sortl TYPE lfa1-sortl,
land1 TYPE lfa1-land1,
spras TYPE lfa1-spras,
akont TYPE lfb1-akont,
fdgrv TYPE lfb1-fdgrv,
waers TYPE lfm1-waers,
END OF ty_lfa1.
* Structure of Vendor Bank Data
TYPES:
BEGIN OF ty_bank,
lifnr(10) TYPE c,
banks TYPE banks,
bankl TYPE bankl,
bankn TYPE bankn,
END OF ty_bank.
*Table Type Declaration
TYPES:
ty_tbl_bank_ex TYPE TABLE OF alsmex_tabline,
ty_tbl_lfa1 TYPE TABLE OF ty_lfa1,
ty_tbl_bank TYPE TABLE OF ty_bank,
ty_tbl_bdc TYPE TABLE OF bdcdata.
*Internal Table Declaration
DATA:
t_tab TYPE ty_tbl_lfa1,
t_bdc TYPE ty_tbl_bdc.
DATA:
t_bank TYPE ty_tbl_bank,
t_xel TYPE truxs_t_text_data.
DATA:
v_banks TYPE char10,
v_bankl TYPE char15,
v_bankn TYPE char15,
li TYPE num2.
DATA:
lt_bank_ex TYPE ty_tbl_bank_ex,
ls_excel TYPE alsmex_tabline.
* Selection Screen Design
PARAMETER: p_file TYPE rlgrap-filename OBLIGATORY,
p_file1 TYPE rlgrap-filename OBLIGATORY.
* F4 Help for P_FILE
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM value_request USING p_file.
*F4 Help for P_FILE1
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
PERFORM value_request USING p_file1.
*Start of Selection
START-OF-SELECTION.
" Fetch Vendor Data from Excel file
PERFORM fetch_data
USING t_xel
p_file
CHANGING t_tab.
CHECK t_tab IS NOT INITIAL.
" Fetch Vendor's Bank Data from Excel file to Excel Table
PERFORM fetch_bank_data
USING p_file1
CHANGING lt_bank_ex.
BREAK-POINT.
CHECK lt_bank_ex IS NOT INITIAL.
" Fetch Vendor's Bank Data from Excel Table to Internal Table
PERFORM fill_bank
USING lt_bank_ex
CHANGING t_bank.
BREAK-POINT.
IF sy-subrc = 0.
"Fill Vendor and Bank Data from Internal tables to database by vk11
PERFORM fill_vk11
USING t_tab
t_bank
CHANGING t_bdc.
ENDIF.
*&---------------------------------------------------------------------*
*& Form bdc_dynpro
*&---------------------------------------------------------------------*
* BDC Screen
*----------------------------------------------------------------------*
FORM bdc_dynpro USING value(p_0107)
value(p_0108).
DATA:
ls_bdc TYPE bdcdata.
ls_bdc-dynbegin = 'X'.
ls_bdc-program = p_0107.
ls_bdc-dynpro = p_0108.
APPEND ls_bdc TO t_bdc.
CLEAR: ls_bdc.
ENDFORM. " bdc_dynpro
*&---------------------------------------------------------------------*
*& Form bdc_field
*&---------------------------------------------------------------------*
* BDC Field
*----------------------------------------------------------------------*
FORM bdc_field
USING value(p_0122)
value(p_0123).
DATA:
ls_bdc TYPE bdcdata.
ls_bdc-fnam = p_0122.
ls_bdc-fval = p_0123.
APPEND ls_bdc TO t_bdc.
CLEAR: ls_bdc.
ENDFORM. " bdc_field
*&---------------------------------------------------------------------*
*& Form value_request
*&---------------------------------------------------------------------*
* Value Request for P_FILE
*----------------------------------------------------------------------*
FORM value_request
USING fp_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = fp_file.
ENDFORM. " value_request
*&---------------------------------------------------------------------*
*& Form fetch_data
*&---------------------------------------------------------------------*
* Value Request for P_FILE
*----------------------------------------------------------------------*
FORM fetch_data
USING fp_t_xel TYPE truxs_t_text_data
fp_p_file TYPE rlgrap-filename
CHANGING fp_t_tab TYPE ty_tbl_lfa1.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_tab_raw_data = fp_t_xel
i_filename = fp_p_file
TABLES
i_tab_converted_data = fp_t_tab
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
ENDFORM. " fetch_data
*&---------------------------------------------------------------------*
*& Form fetch_bank_data
*&---------------------------------------------------------------------*
* Fetch Bank Data
*----------------------------------------------------------------------*
FORM fetch_bank_data
USING fp_p_file1 TYPE rlgrap-filename
CHANGING fp_lt_bank_ex TYPE ty_tbl_bank_ex.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = fp_p_file1
i_begin_col = 1
i_begin_row = 2
i_end_col = 100
i_end_row = 100
TABLES
intern = fp_lt_bank_ex
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
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. " fetch_bank_data
*&---------------------------------------------------------------------*
*& Form fill_bank
*&---------------------------------------------------------------------*
* Fill Bank Data from Excel Table
*----------------------------------------------------------------------*
FORM fill_bank
USING fp_lt_bank_ex TYPE ty_tbl_bank_ex
CHANGING fp_t_bank TYPE ty_tbl_bank.
DATA:
ls_bank TYPE ty_bank,
ls_excel TYPE alsmex_tabline.
LOOP AT fp_lt_bank_ex INTO ls_excel.
CASE ls_excel-col.
WHEN '0001'.
ls_bank-lifnr = ls_excel-value.
WHEN '0002'.
ls_bank-banks = ls_excel-value.
WHEN '0003'.
ls_bank-bankl = ls_excel-value.
WHEN '0004'.
ls_bank-bankn = ls_excel-value.
ENDCASE.
CLEAR ls_excel.
AT END OF row.
APPEND ls_bank TO fp_t_bank.
CLEAR : ls_bank.
ENDAT.
ENDLOOP.
ENDFORM. " fill_bank
*&---------------------------------------------------------------------*
*& Form fill_vk11
*&---------------------------------------------------------------------*
* Fill Data from VK11 transaction
*----------------------------------------------------------------------*
FORM fill_vk11
USING fp_t_tab TYPE ty_tbl_lfa1
fp_t_bank TYPE ty_tbl_bank
CHANGING fp_t_bdc TYPE ty_tbl_bdc.
DATA:
ls_bank TYPE ty_bank,
ls_tab TYPE ty_lfa1.
LOOP AT fp_t_tab INTO ls_tab.
PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
ls_tab-lifnr.
PERFORM bdc_field USING 'RF02K-BUKRS'
ls_tab-bukrs.
PERFORM bdc_field USING 'RF02K-EKORG'
ls_tab-ekorg.
PERFORM bdc_field USING 'RF02K-KTOKK'
ls_tab-ktokk.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-SORTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-ANRED'
ls_tab-anred.
PERFORM bdc_field USING 'LFA1-NAME1'
ls_tab-name1.
PERFORM bdc_field USING 'LFA1-SORTL'
ls_tab-sortl.
PERFORM bdc_field USING 'LFA1-LAND1'
ls_tab-land1.
PERFORM bdc_field USING 'LFA1-SPRAS'
ls_tab-spras.
PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-KUNNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
LOOP AT fp_t_bank INTO ls_bank WHERE lifnr = ls_tab-lifnr.
li = li + 1.
CONCATENATE 'LFBK-BANKS(' li ')' INTO v_banks.
PERFORM bdc_field USING v_banks
ls_bank-banks.
CONCATENATE 'LFBK-BANKL(' li ')' INTO v_bankl.
PERFORM bdc_field USING v_bankl
ls_bank-bankl.
CONCATENATE 'LFBK-BANKN(' li ')' INTO v_bankn.
PERFORM bdc_field USING v_bankn
ls_bank-bankn.
CONDENSE v_banks NO-GAPS.
CONDENSE v_bankl NO-GAPS.
CONDENSE v_bankn NO-GAPS.
PERFORM bdc_field USING 'BDC_CURSOR'
v_banks.
CLEAR: v_banks, v_bankl, v_bankn.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-FDGRV'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB1-AKONT'
ls_tab-akont.
PERFORM bdc_field USING 'LFB1-FDGRV'
ls_tab-fdgrv.
PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-ZTERM'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB5-MAHNA'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFM1-WAERS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_field USING 'LFM1-WAERS'
ls_tab-waers.
CALL TRANSACTION 'XK01' USING fp_t_bdc
MODE 'A'
UPDATE 'A'.
CLEAR: ls_tab.
REFRESH: fp_t_bdc.
ENDLOOP.
ENDFORM. " fill_vk11
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |