2012 Sep 03 5:44 PM
Hi guys
Was wondering if anyone could help me with the following problem I am having.. I'm trying to figure out how to get a single random generated variable into every single field of my structure, and then into my internal table, as abap does not support arrays.
Could anyone try and help me please??
Below is my source:
DATA p_char TYPE c LENGTH 100 VALUE 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@$%&/\()=+-#~<>[]{}'.
DATA : d_charstrn TYPE c LENGTH 100,
d_len type i.
d_len = STRLEN( p_char ).
TYPES : BEGIN OF ity_s_loadtab,
field01(100) TYPE c, field02(100) TYPE c, field03(100) TYPE c, field04(100) TYPE c,
field05(100) TYPE c, field06(100) TYPE c, field07(100) TYPE c, field08(100) TYPE c,
field09(100) TYPE c, field10(100) TYPE c, field11(100) TYPE c, field12(100) TYPE c,
field13(100) TYPE c, field14(100) TYPE c, field15(100) TYPE c, field16(100) TYPE c,
field17(100) TYPE c, field18(100) TYPE c, field19(100) TYPE c, field20(100) TYPE c,
field21(100) TYPE c, field22(100) TYPE c, field23(100) TYPE c, field24(100) TYPE c,
field25(100) TYPE c, field26(100) TYPE c, field27(100) TYPE c, field28(100) TYPE c,
field29(100) TYPE c, field30(100) TYPE c, field31(100) TYPE c, field32(100) TYPE c,
field33(100) TYPE c, field34(100) TYPE c, field35(100) TYPE c, field36(100) TYPE c,
field37(100) TYPE c, field38(100) TYPE c, field39(100) TYPE c, field40(100) TYPE c,
field41(100) TYPE c, field42(100) TYPE c, field43(100) TYPE c, field44(100) TYPE c,
field45(100) TYPE c, field46(100) TYPE c, field47(100) TYPE c, field48(100) TYPE c,
field49(100) TYPE c, field50(100) TYPE c,
END OF ity_s_loadtab.
DATA : it_testtbl TYPE STANDARD TABLE OF ity_s_loadtab,
wa_testtbl LIKE LINE OF it_testtbl.
PARAMETERS pa_rows TYPE i.
DO pa_rows TIMES.
DO 50 TIMES.
CALL FUNCTION 'Z_GENERATE_STRING'
EXPORTING
ALPHABET = p_char
ALPHABET_LENGTH = d_len
FORCE_INIT = ' '
OUTPUT_LENGTH = 100
IMPORTING
OUTPUT = d_charstrn.
ENDDO.
ENDDO.
Is there maybe an SQL query that I could maybe use or some easier way of doing this??
Thanks in advance.
2012 Sep 04 6:47 AM
Hiii,
See below code -
TYPES : BEGIN OF ity_s_loadtab,
field01(100) TYPE c, field02(100) TYPE c, field03(100) TYPE c, field04(100) TYPE c,
field05(100) TYPE c, field06(100) TYPE c, field07(100) TYPE c, field08(100) TYPE c,
field09(100) TYPE c, field10(100) TYPE c, field11(100) TYPE c, field12(100) TYPE c,
field13(100) TYPE c, field14(100) TYPE c, field15(100) TYPE c, field16(100) TYPE c,
field17(100) TYPE c, field18(100) TYPE c, field19(100) TYPE c, field20(100) TYPE c,
field21(100) TYPE c, field22(100) TYPE c, field23(100) TYPE c, field24(100) TYPE c,
field25(100) TYPE c, field26(100) TYPE c, field27(100) TYPE c, field28(100) TYPE c,
field29(100) TYPE c, field30(100) TYPE c, field31(100) TYPE c, field32(100) TYPE c,
field33(100) TYPE c, field34(100) TYPE c, field35(100) TYPE c, field36(100) TYPE c,
field37(100) TYPE c, field38(100) TYPE c, field39(100) TYPE c, field40(100) TYPE c,
field41(100) TYPE c, field42(100) TYPE c, field43(100) TYPE c, field44(100) TYPE c,
field45(100) TYPE c, field46(100) TYPE c, field47(100) TYPE c, field48(100) TYPE c,
field49(100) TYPE c, field50(100) TYPE c,
END OF ity_s_loadtab.
DATA : it_testtbl TYPE STANDARD TABLE OF ity_s_loadtab,
wa_testtbl LIKE LINE OF it_testtbl.
DATA p_char TYPE c LENGTH 100 VALUE 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@$%&/\()=+-#~<>[]{}'.
DATA : d_charstrn TYPE c LENGTH 100,
d_len type i.
d_len = STRLEN( p_char ).
FIELD-SYMBOLS : <fs> TYPE any.
data:
lo_ran type ref to cl_abap_random_int,
lv_i type i,
lv_seed type i.
lv_seed = sy-timlo.
lo_ran = cl_abap_random_int=>create( min = 0 max = d_len seed = lv_seed ).
do 50 times.
lv_i = lo_ran->get_next( ).
write / lv_i.
WRITE p_char+lv_i(1).
ASSIGN COMPONENT sy-index OF STRUCTURE wa_testtbl to <fs>.
<fs> = p_char+lv_i(1).
enddo.
APPEND wa_testtbl to it_testtbl .
Here in your internal table it_testtbl you will get random generated variable in your fields .
Just like your array
2012 Sep 04 12:35 AM
You're almost there... Slightly simplified. The "assign component" loops over all the components in your structure. The field symbol is a pointer to that field. Fill it with whatever you want.
DO pa_rows TIMES.
DO. "or do 50 times...
ASSIGN COMPONENT sy-index OF STRUCTURE wa_testtbl TO <field>.
IF sy-subrc = 0.
<field> = "my random string".
else.
exit.
endif.
ENDDO.
APPEND wa_testtbl TO it_testtbl.
ENDDO.
2012 Sep 04 6:47 AM
Hiii,
See below code -
TYPES : BEGIN OF ity_s_loadtab,
field01(100) TYPE c, field02(100) TYPE c, field03(100) TYPE c, field04(100) TYPE c,
field05(100) TYPE c, field06(100) TYPE c, field07(100) TYPE c, field08(100) TYPE c,
field09(100) TYPE c, field10(100) TYPE c, field11(100) TYPE c, field12(100) TYPE c,
field13(100) TYPE c, field14(100) TYPE c, field15(100) TYPE c, field16(100) TYPE c,
field17(100) TYPE c, field18(100) TYPE c, field19(100) TYPE c, field20(100) TYPE c,
field21(100) TYPE c, field22(100) TYPE c, field23(100) TYPE c, field24(100) TYPE c,
field25(100) TYPE c, field26(100) TYPE c, field27(100) TYPE c, field28(100) TYPE c,
field29(100) TYPE c, field30(100) TYPE c, field31(100) TYPE c, field32(100) TYPE c,
field33(100) TYPE c, field34(100) TYPE c, field35(100) TYPE c, field36(100) TYPE c,
field37(100) TYPE c, field38(100) TYPE c, field39(100) TYPE c, field40(100) TYPE c,
field41(100) TYPE c, field42(100) TYPE c, field43(100) TYPE c, field44(100) TYPE c,
field45(100) TYPE c, field46(100) TYPE c, field47(100) TYPE c, field48(100) TYPE c,
field49(100) TYPE c, field50(100) TYPE c,
END OF ity_s_loadtab.
DATA : it_testtbl TYPE STANDARD TABLE OF ity_s_loadtab,
wa_testtbl LIKE LINE OF it_testtbl.
DATA p_char TYPE c LENGTH 100 VALUE 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@$%&/\()=+-#~<>[]{}'.
DATA : d_charstrn TYPE c LENGTH 100,
d_len type i.
d_len = STRLEN( p_char ).
FIELD-SYMBOLS : <fs> TYPE any.
data:
lo_ran type ref to cl_abap_random_int,
lv_i type i,
lv_seed type i.
lv_seed = sy-timlo.
lo_ran = cl_abap_random_int=>create( min = 0 max = d_len seed = lv_seed ).
do 50 times.
lv_i = lo_ran->get_next( ).
write / lv_i.
WRITE p_char+lv_i(1).
ASSIGN COMPONENT sy-index OF STRUCTURE wa_testtbl to <fs>.
<fs> = p_char+lv_i(1).
enddo.
APPEND wa_testtbl to it_testtbl .
Here in your internal table it_testtbl you will get random generated variable in your fields .
Just like your array
2012 Sep 04 7:11 AM