2009 Jun 10 6:22 AM
Hi,
I have below code
DATA: f_value1 TYPE string,
lv_checkfield LIKE dd08v-fieldname.
DATA: lv_cond(72) TYPE c,
itab_where LIKE TABLE OF lv_cond.
f_value1 = <fs_table>.
concatenate lv_checkfield 'EQ' <fs_table> into lv_cond separated by space.
APPEND lv_cond TO itab_where.
i m getting error "the type f_value1 cannot be converted to the type of <fs_table>
So can u pls help in concatening value of <fs_table> into lv_cond.
Regards,
Santosh
Hi,
I have below code
DATA: f_value1 TYPE string,
lv_checkfield LIKE dd08v-fieldname.
DATA: lv_cond(72) TYPE c,
itab_where LIKE TABLE OF lv_cond.
f_value1 = <fs_table>.
concatenate lv_checkfield 'EQ' <fs_table> into lv_cond separated by space.
APPEND lv_cond TO itab_where.
i m getting error "the type f_value1 cannot be converted to the type of <fs_table>
So can u pls help in concatening value of <fs_table> into lv_cond.
Regards,
Santosh
2009 Jun 10 6:28 AM
2009 Jun 10 6:29 AM
Hi,
Statement like this f_value1 = <fs_table> will not work if f_value1 & <fs_table> are not of teh same type.
How are you assigning <fs_table>?
Can you be more clear with your requirment?
What do you exactly mean by "concatening value of <fs_table> into lv_cond".
Regards,
Ankur Parab
2009 Jun 10 6:39 AM
i m posting my code below
TABLES: ora_add_in.
***********************************************************************
DECLARATIONS
***********************************************************************
TYPE-POOLS : vrm.
DATA: param TYPE vrm_id,
values TYPE vrm_values,
value LIKE LINE OF values.
DATA: d_table_ref TYPE REF TO data.
DATA: d_rfc_db_opt TYPE rfc_db_opt.
DATA: it_opt LIKE rfc_db_opt OCCURS 0 WITH HEADER LINE.
DATA: d_file TYPE string.
DATA: gd_fldname TYPE string,
gdo_data TYPE REF TO data,
go_typedescr TYPE REF TO cl_abap_typedescr,
go_datadescr TYPE REF TO cl_abap_datadescr.
DATA : it_dd03l TYPE STANDARD TABLE OF dd03l WITH HEADER LINE.
DATA : tab_fld TYPE string.
DATA : lv_cnt(3) TYPE i VALUE 0,
lv_char(4) TYPE c,
lv_text_table LIKE dd08v-tabname,
lv_checkfield LIKE dd08v-fieldname.
DATA : p_file_new LIKE rlgrap-filename.
DATA: lv_cond(72) TYPE c,
itab_where LIKE TABLE OF lv_cond.
***********************************************************************
SELECTION SCREEN
***********************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_tab TYPE dd02l-tabname OBLIGATORY.
PARAMETERS : p_desk RADIOBUTTON GROUP a1 USER-COMMAND abc,
p_app RADIOBUTTON GROUP a1 DEFAULT 'X'.
PARAMETERS: p_ch1(1) DEFAULT '|',
p_pz TYPE i OBLIGATORY DEFAULT 1000.
PARAMETERS: p_file LIKE rlgrap-filename OBLIGATORY DEFAULT '/usr/sap/tmp/test.txt',
d_file1 LIKE rlgrap-filename.
SELECT-OPTIONS: s_opt FOR d_rfc_db_opt NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b1.
***********************************************************************
FIELD SYMBOLS
***********************************************************************
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE,
<fs_table1> TYPE STANDARD TABLE.
FIELD-SYMBOLS:
<gs_struct> TYPE ANY,
<gd_fld> TYPE ANY,
<gd_fld1> TYPE ANY,
<gd_fld2> TYPE ANY,
<l_fs_bom> TYPE ANY,
<f_value1> TYPE any.
***********************************************************************
INITIALIZATION
***********************************************************************
INITIALIZATION.
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD 'ZTABLE_DATA_DOWNLOAD'.
IF sy-subrc <> 0. "Not Authorized
MESSAGE s753(kh) WITH 'TCD' 'ZTABLE_DATA_DOWNLOAD'.
ENDIF.
***********************************************************************
AT SELECTION SCREEN
***********************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR d_file1.
PERFORM select_file USING d_file1.
AT SELECTION-SCREEN OUTPUT..
PERFORM selection-screen-output.
***********************************************************************
START OF SELECTION
***********************************************************************
START-OF-SELECTION.
IF p_app = 'X'.
PERFORM authority_check.
PERFORM select_data.
ELSE.
PERFORM authority_check.
PERFORM select_desk_data.
ENDIF.
&----
*& Form select_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM select_data .
SELECT * FROM dd03l INTO TABLE it_dd03l WHERE tabname = p_tab.
SORT it_dd03l BY position.
REFRESH it_opt.
LOOP AT s_opt WHERE sign = 'I' OR option = 'EQ'.
it_opt-text = s_opt-low.
APPEND it_opt.
ENDLOOP.
CREATE DATA d_table_ref TYPE TABLE OF (p_tab).
UNASSIGN <fs_table>.
ASSIGN d_table_ref->* TO <fs_table>.
CREATE DATA gdo_data TYPE (p_tab).
ASSIGN gdo_data->* TO <gs_struct>.
IF <fs_table> IS ASSIGNED.
CLEAR <fs_table>.
IF NOT it_opt[] IS INITIAL.
SELECT * FROM (p_tab) INTO TABLE <fs_table> WHERE (it_opt).
IF sy-subrc EQ 0.
PERFORM download_file TABLES <fs_table> USING p_file.
MESSAGE i398(00) WITH 'Upload from SAP Successfull'.
ENDIF.
ELSE.
SELECT * FROM (p_tab) INTO TABLE <fs_table> PACKAGE SIZE p_pz.
IF sy-subrc EQ 0.
CALL FUNCTION 'DDUT_TEXTTABLE_GET'
EXPORTING
tabname = p_tab
IMPORTING
texttable = lv_text_table
checkfield = lv_checkfield.
IF lv_text_table is not initial.
assign <f_value1> to <fs_table>.
concatenate lv_checkfield 'EQ' <f_value1> into lv_cond separated by space.
APPEND lv_cond TO itab_where.
unassign <f_value1>.
SELECT * FROM (lv_text_table)
INTO TABLE <fs_table1>
FOR ALL ENTRIES IN <fs_table>
WHERE (itab_where).
ENDIF.
lv_cnt = lv_cnt + 1.
lv_char = lv_cnt.
SHIFT lv_char LEFT DELETING LEADING space.
CONCATENATE p_file lv_char INTO p_file_new.
PERFORM download_file TABLES <fs_table> USING p_file_new.
ENDIF.
REFRESH <fs_table>.
CLEAR lv_char.
CLEAR lv_cnt.
CLEAR p_file_new.
ENDSELECT.
MESSAGE i398(00) WITH 'Upload from SAP Successfull'.
ENDIF.
ENDIF.
ENDFORM. " select_data
&----
*& Form download_file
&----
text
----
-->P_<FS_TABLE> text
-->P_P_FILE text
----
FORM download_file TABLES p_tab USING p_file.
DATA: d_table_line TYPE REF TO data,
d_str TYPE rfc_db_fld,
f_type,
f_value TYPE string.
DATA : lv_line TYPE string.
DATA : l_wa_itab_length(4) TYPE c VALUE '2000'.
IF NOT p_tab[] IS INITIAL.
SORT p_tab.
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE.
IF sy-subrc NE 0.
MESSAGE 'Error on output file read' TYPE 'E'.
ELSE.
LOOP AT p_tab.
DO.
READ TABLE it_dd03l INDEX sy-index.
ASSIGN COMPONENT syst-index OF STRUCTURE <gs_struct> TO <gd_fld>.
IF ( syst-subrc NE 0 ).
EXIT.
ENDIF.
go_typedescr = cl_abap_typedescr=>describe_by_data( <gd_fld> ).
gd_fldname = go_typedescr->get_relative_name( ).
CONCATENATE 'P_TAB' '-' it_dd03l-fieldname INTO tab_fld.
UNASSIGN <l_fs_bom>.
ASSIGN COMPONENT it_dd03l-fieldname OF STRUCTURE p_tab TO <l_fs_bom>.
IF <l_fs_bom> IS ASSIGNED.
DESCRIBE FIELD <l_fs_bom> TYPE f_type.
IF f_type = 'P' OR f_type = 'X' OR f_type = 'I'.
f_value = <l_fs_bom>.
CONCATENATE lv_line f_value INTO lv_line SEPARATED BY p_ch1.
ELSE.
CONCATENATE lv_line <l_fs_bom> INTO lv_line SEPARATED BY p_ch1.
ENDIF.
ENDIF.
ENDDO.
TRANSFER lv_line TO p_file LENGTH l_wa_itab_length.
CLEAR p_tab.
CLEAR lv_line.
ENDLOOP.
CLOSE DATASET p_file.
ENDIF.
ENDIF.
REFRESH p_tab.
ENDFORM. " download_file
&----
*& Form select_file
&----
text
----
-->P_P_FILE text
----
FORM select_file USING p_p_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = '*.TXT'
def_path = 'C:\'
mask = ',.TXT,.*.'
mode = 'O'
IMPORTING
filename = p_p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
WRITE:/ 'Error in Selecting :', p_p_file.
ENDIF.
ENDFORM. " select_file
&----
*& Form download_desktop
&----
text
----
--> p1 text
<-- p2 text
----
FORM download_desktop TABLES p_tab USING p_file.
IF NOT p_tab[] IS INITIAL.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = p_tab
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE i398(00) WITH 'Error during Downloading'.
ENDIF.
ENDIF.
ENDFORM. " download_desktop
&----
*& Form selection-screen-output
&----
text
----
--> p1 text
<-- p2 text
----
FORM selection-screen-output .
LOOP AT SCREEN.
CHECK screen-name CS 'P_FILE'.
IF p_app = 'X'.
screen-active = 1.
ELSE.
screen-active = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
LOOP AT SCREEN.
CHECK screen-name CS 'D_FILE1'.
IF p_desk = 'X'.
screen-active = 1.
ELSE.
screen-active = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
LOOP AT SCREEN.
CHECK screen-name CS 'P_CH1'.
IF p_desk = 'X'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
LOOP AT SCREEN.
CHECK screen-name CS 'P_PZ'.
IF p_desk = 'X'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDFORM. " selection-screen-output
&----
*& Form select_desk_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM select_desk_data .
REFRESH it_opt.
LOOP AT s_opt WHERE sign = 'I' OR option = 'EQ'.
it_opt-text = s_opt-low.
APPEND it_opt.
ENDLOOP.
CREATE DATA d_table_ref TYPE TABLE OF (p_tab).
UNASSIGN <fs_table>.
ASSIGN d_table_ref->* TO <fs_table>.
IF <fs_table> IS ASSIGNED.
CLEAR <fs_table>.
SELECT * FROM (p_tab) INTO TABLE <fs_table>
WHERE (it_opt).
IF sy-subrc EQ 0.
PERFORM download_file_desktop TABLES <fs_table> USING d_file1.
MESSAGE i398(00) WITH 'Upload from SAP Successfull'.
ENDIF.
ENDIF.
ENDFORM. " select_desk_data
&----
*& Form download_file_desktop
&----
text
----
-->P_<FS_TABLE> text
-->P_D_FILE1 text
----
FORM download_file_desktop TABLES p_table
USING p_d_file1.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = p_d_file1
filetype = 'DAT'
TABLES
data_tab = p_table
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE i398(00) WITH 'Error during Downloading'.
ENDIF.
ENDFORM. " download_file_desktop
&----
*& Form AUTHORITY_CHECK
&----
text
----
<--P_MODE text
----
FORM authority_check.
CONSTANTS: auc_actvt_02 LIKE authb-actvt VALUE '02',
auc_actvt_03 LIKE authb-actvt VALUE '03'.
DATA : auc_dicbercls LIKE authb-dicbercls.
SELECT SINGLE cclass INTO auc_dicbercls
FROM tddat
WHERE tabname = p_tab.
IF sy-subrc NE 0.
auc_dicbercls = '&NC&'.
ENDIF.
AUTHORITY-CHECK OBJECT 'S_TABU_DIS'
ID 'DICBERCLS' FIELD auc_dicbercls
ID 'ACTVT' FIELD auc_actvt_03.
IF sy-subrc <> 0.
MESSAGE s753(kh) WITH auc_actvt_03.
STOP.
ENDIF.
ENDFORM. " AUTHORITY_CHECK
2009 Jun 10 6:42 AM
Hi,
Please paste the code between
so that the code is visible and can me understood properly.
regards,
Ankur Parab
2009 Jun 10 6:50 AM
i'm not willing to read that. reduce your code to show only the relevant parts and use correct forum markup.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |