How to assign a whole internal table to field symbol
Can anyone explain me that , can we assign the whole internal table to a field symbol .If yes please explain with some simple example by assigning an internal tabl data to a field symbol and how to loop on to that field symbol to write the data from it.
Please don't paste the F1 help .
Thanks,
Rose.
hi
good
check this code
) Defining the table records and the field symbol in a similar type.
just an ordinary standard table
TYPES: BEGIN OF it_vbak_line,
vbeln LIKE vbak-vbeln,
vkorg LIKE vbak-vkorg,
vtweg LIKE vbak-vtweg,
spart LIKE vbak-spart,
kunnr LIKE vbak-kunnr,
END OF it_vbak_line.
DATA: it_vbak TYPE TABLE OF it_vbak_line.
FIELD-SYMBOLS: <it_vbak_line> TYPE it_vbak_line.
or as a screaming fast hash table for keyed reads
TYPES: BEGIN OF it_vbpa_line,
vbeln LIKE vbak-vbeln,
kunnr LIKE vbak-kunnr,
END OF it_vbpa_line.
DATA: it_vbpa TYPE HASHED TABLE OF it_vbpa_line
WITH UNIQUE KEY vbeln.
FIELD-SYMBOLS: <it_vbpa_line> TYPE it_vbpa_line.
2) In ITAB processing, utilize the ASSIGNING command.
loop example
LOOP AT it_vbak ASSIGNING <it_vbak_line>.
look at records--populate it_zpartner
read example
READ TABLE it_vbpa ASSIGNING <it_vbpa_line>
WITH TABLE KEY vbeln = <it_vbak_line>-vbeln.
3) Refer to the field symbol's fields in the loop or after the read.
wa_zpartner-vkorg = <it_vbak_line>-vkorg.
wa_zpartner-vtweg = <it_vbak_line>-vtweg.
wa_zpartner-spart = <it_vbak_line>-spart.
wa_zpartner-kunag = <it_vbak_line>-kunnr.
wa_zpartner-kunwe = <it_vbpa_line>-kunnr.
See the code example below for further detail. The code was written in R/3 4.6C and should work for all 4.x versions.
thanks
mrutyun^
Similar Messages
-
Delete row from internal table using field symbol.
Hi friends,
I created dynamic internal table using field symbol. I want to delete some data using where clause.
for example. i want to use like,
DELETE <FS> WHERE KUNNR = WA_KNA1-KUNNR.
Like the above statment it won't work. How i can use delete with where clause in field symbols.
Hope any one can help me.
Thanks and regards
Srikanth. Shi Srikanth,
I think you have to LOOP through the whole internal table and check each line and decide to delete or not:
LOOP at <itab> INTO <wa>.
ASSIGN COMPONENT 'KUNNR' OF STRUCTURE <wa> TO <field>.
CHECK <field> IS ASSIGNED.
IF <field> EQ WA_KNA1-KUNNR.
DELETE ...
ENDIF.
UNASSIGN <field>.
ENDLOOP.
hope this helps
ec -
Creating dynamic internal table(Not field symbol table)
Hi Experts,
I am facing problem creating Intarnal table
I have fieldcatalog, I want create dynamic internal table(Not field symbol table).
I have written----
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
i_style_table =
it_fieldcatalog = it_fldcat
it_fieldcatalog = me->gt_fieldcat
i_length_in_byte =
IMPORTING
ep_table = lt_new_table
e_style_fname =
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
ASSIGN lt_new_table->* TO <gt_dyn_repdata>.
CREATE DATA ls_new_line LIKE LINE OF <gt_dyn_repdata>.
ASSIGN ls_new_line->* TO <gs_dyn_repdata>.
above logic creating dynamic field symbol table.... But I want create normal internal table.
Thanks,
RajasekharHi
What do you mean?
It needs to use the field-symbol, this is the price to pay if it wants a dynamic object
Max -
How to build a internal table of field symbols.
Hi,
I want to build a internal table, which consists of several field symbols. Each field symbol points to an entry of other internal tables. All of these tables have different structure definition. How can I implement it. If it is possible, it can save a lot of table query time.
I will be very appreciate for your help.
Best Regards, Junhello jun
i hope the following example give the some idea to build internal table fileds with differen field symbol data types.
FIELD-SYMBOLS:<f1> type any,<f2> TYPE ANY.
data:BEGIN OF itab,
t1 type i value 10,
t2(30) type c value 'john',
t3 type p DECIMALS 3 value '4.7658',
END OF itab.
ASSIGN itab to <f1>.
DO 3 TIMES.
ASSIGN COMPONENT sy-index OF STRUCTURE <f1> TO <f2>.
WRITE <f2>.
ENDDO.
types:begin of it_line,
i1 type i,
t1 type string,
p1 type p DECIMALS 3,
end of it_line.
data:itab1 type table of it_line.
FIELD-SYMBOLS:<f1>.
ASSIGN itab1 to <f1>.
and also u can refer the following links
1-> http://help.sap.com/saphelp_wp/helpdata/en/fc/eb387a358411d1829f0000e829fbfe/content.htm
2--> http://help.sap.com/saphelp_nw70/helpdata/en/fc/eb3923358411d1829f0000e829fbfe/content.htm
Thanks&Regards
sreenivas p -
Internal table to field symbol
hi all,
type-pools : abap.
field-symbols: <dyn_table> type standard table,
<dyn_wa>,
<dyn_field>.
data: dy_table type ref to data,
dy_line type ref to data,
xfc type lvc_s_fcat,
ifc type lvc_t_fcat.
*data : dyn_itab2 type ANY table.
selection-screen begin of block b1 with frame.
parameters: p_table(30) type c.
selection-screen end of block b1.
start-of-selection.
BREAK-POINT.
perform get_structure.
perform create_dynamic_itab.
perform get_data.
PERFORM OUTPUT.
*perform write_out.
form get_structure.
data : idetails type abap_compdescr_tab,
xdetails type abap_compdescr.
data : ref_table_des type ref to cl_abap_structdescr.
Get the structure of the table.
ref_table_des ?=
cl_abap_typedescr=>describe_by_name( p_table ).
idetails = ref_table_des->components.
*idetails] = ref_table_des->components[.
loop at idetails into xdetails.
clear xfc.
xfc-fieldname = xdetails-name .
xfc-datatype = xdetails-type_kind.
xfc-inttype = xdetails-type_kind.
xfc-intlen = xdetails-length.
xfc-decimals = xdetails-decimals.
append xfc to ifc.
endloop.
endform.
form create_dynamic_itab.
Create dynamic internal table and assign to FS
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = ifc
importing
ep_table = dy_table.
here i want to assighn the structure of dy_table to internal atble.
assign dy_table->* to <dyn_table>.
Create dynamic work area and assign to FS
create data dy_line like line of <dyn_table>.
assign dy_line->* to <dyn_wa>.
endform.
form get_data.
Select Data from table.
select * into table <dyN_table> UP TO 10 ROWS
from (p_table).
endform.
Write out data from table.
FORM OUTPUT.
loop at <dyn_table> into <dyn_wa>.
do.
assign component sy-index
of structure <dyn_wa> to <dyn_field>.
if sy-subrc = 0.
exit.
endif.
if sy-index = 1.
write:/ <dyn_field>.
else.
write: <dyn_field>.
endif.
enddo.
endloop.
ENDFORM.
how can i achieve this one.
regards
sivaHi,
Check this Code ...
LOOP AT <dyn_table> INTO <dyn_wa>.
DO.
ASSIGN COMPONENT sy-index
OF STRUCTURE <dyn_wa> TO <fs_field> .
IF sy-subrc NE 0.
EXIT.
ENDIF.
IF sy-index = 1.
WRITE:/ <fs_field>.
ELSE.
WRITE: <fs_field>.
ENDIF.
ENDDO.
ENDLOOP.
For reference check below code
DATA: it_fieldcat TYPE lvc_t_fcat . " Field catalog
DATA: wa_fieldcat LIKE LINE OF it_fieldcat. " Field catalog
DATA: it_dyn_table TYPE REF TO data, " Dynamic table
it_wa_dyn_table TYPE REF TO data. " Dynamic table
* Field sysmbols Begin with <fs> *
FIELD-SYMBOLS: <fs_dyn_table> TYPE STANDARD TABLE, " Dynamic tbale
<fs_dyn_table_temp> TYPE ANY , " Dynamic tbale
<fs_field> TYPE ANY , " Temp field for data assignment
<fs_field_temp> TYPE ANY . " Temp field for data assignment
* Macro *
* Macro Defination
* Building field catalog using macro defination
DEFINE m_fieldcat.
wa_fieldcat-fieldname = &1.
wa_fieldcat-scrtext_l = &2.
wa_fieldcat-coltext = &2.
wa_fieldcat-no_zero = &3.
wa_fieldcat-hotspot = &4.
wa_fieldcat-outputlen = &5.
wa_fieldcat-emphasize = &6.
* Appending workarea to internal table
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
END-OF-DEFINITION.
*& Form f005_prepare_field_catalog
* text
form f005_prepare_field_catalog .
REFRESH: it_fieldcat.
* Build the field catalog
m_fieldcat text-007 text-008 c_blank c_blank c_30 c_blank.
m_fieldcat text-009 text-010 c_blank c_blank c_30 c_blank.
SORT it_final_temp BY equnr point.
SORT it_final BY equnr point psort idate.
w_date1 = so_date-low.
* Loop to generate grid column at run time
* Loop - Till the lower date not equal to higer date
WHILE so_date-high GE w_date1.
* Changing date into actual date format using edit mask
WRITE w_date1 TO w_var4 USING EDIT MASK '__-__-____'.
m_fieldcat w_var4 w_var4 c_flag c_blank c_12 c_blank.
w_date1 = w_date1 + c_count.
CLEAR w_var4.
ENDWHILE.
*& Form f007_create_dynamic_table
* text: Create dynamic table
form f007_create_dynamic_table .
* Call method to create dynamic internal table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = it_dyn_table
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
SORT it_final_temp BY equnr point.
SORT it_final BY equnr point psort idate.
ASSIGN it_dyn_table->* TO <fs_dyn_table>.
CREATE DATA it_wa_dyn_table LIKE LINE OF <fs_dyn_table>.
ASSIGN it_wa_dyn_table->* TO <fs_dyn_table_temp>.
IF it_final_temp IS NOT INITIAL.
LOOP AT it_final_temp INTO wa_final_temp.
* Assign equipment number and it's field data to field symbols (Dynamic table)
* Assign field name to field symbol
ASSIGN text-007 TO <fs_field_temp>.
* Assign component name and it's value to dynamic table
ASSIGN COMPONENT <fs_field_temp> OF STRUCTURE <fs_dyn_table_temp> TO <fs_field>.
* Assign equipment number value to field symbol
<fs_field> = wa_final_temp-equnr.
* Assign Short Description and it's field data to field symbols (Dynamic table)
* Assign field name to field symbol
ASSIGN text-009 TO <fs_field_temp>.
* Assign component name and it's value to dynamic table
ASSIGN COMPONENT <fs_field_temp> OF STRUCTURE <fs_dyn_table_temp> TO <fs_field>.
* Assign short description value to field symbol
<fs_field> = wa_final_temp-psort.
* Loop to assign value of run time generated column.
IF it_final IS NOT INITIAL.
LOOP AT it_final INTO wa_final WHERE equnr = wa_final_temp-equnr
AND point = wa_final_temp-point.
w_date1 = wa_final-idate.
WRITE w_date1 TO w_var4 USING EDIT MASK '__-__-____'.
ASSIGN w_var4 TO <fs_field_temp>.
ASSIGN COMPONENT <fs_field_temp> OF STRUCTURE <fs_dyn_table_temp> TO <fs_field>.
<fs_field> = wa_final-cdiff.
CLEAR: wa_final, w_var4, w_date1.
ENDLOOP.
ENDIF.
CLEAR: wa_final_temp.
* Assign field symbol temporary table to final dynamic table
APPEND <fs_dyn_table_temp> TO <fs_dyn_table>.
CLEAR: <fs_dyn_table_temp>.
ENDLOOP.
ENDIF.
endform. " f007_create_dynamic_table -
Some help needed on dynamic internal tables and field symbols
Hi,
I have a dyn internal table <dyn_table_r>.
One of its fields is kna1-kunnr.
I have another wa <fs>, with only one field alt_kunnr.
now i want to modify the data of <dyn_table_r>-kna1-kunnr from <fs>-alt_kunnr
How should i do it?
Regards ,
Harshit RungtaHarshit Rungta:
You have opened a number of related questions today. I'd like to see the other ones closed before you continue with this one.
I'll lock this but will re-open it once the others are marked as solved.
Rob -
Dynamic internal tables using field symbols
Hello,
Is it possible to create a dynamic table where the no of fields in the internal table can be created dynamically(using field symbols).
Say sometimes internal tables with 10 fields and depending upon the requirement the fields can be dynamically increased or decreased in runtime.
Thanks.Hi,
Go through the following code....
*Data definitions
*** Tables
data: lt_data type ref to data.
data: lt_fieldcatalog type lvc_t_fcat.
*** Structure
data: ls_fieldcatalog type lvc_s_fcat.
*** Data References
data: new_line type ref to data,
fs_data type ref to data.
*** Field Symbols
field-symbols: <fs_data> type ref to data,
<fs_1> type any table,
<fs_2>,
<fs_3>.
*Populating the internal table with fieldnames required for our dynamic
*internal table
ls_fieldcatalog-fieldname = 'MANDT'.
append ls_fieldcatalog to lt_fieldcatalog.
ls_fieldcatalog-fieldname = 'CARRID'. "Fieldname
ls_fieldcatalog-inttype = 'C'. "Internal Type C-> Character
append ls_fieldcatalog to lt_fieldcatalog.
ls_fieldcatalog-fieldname = 'CONNID'.
ls_fieldcatalog-inttype = 'N'.
append ls_fieldcatalog to lt_fieldcatalog.
ls_fieldcatalog-fieldname = 'FLDATE'.
ls_fieldcatalog-inttype = 'D'.
append ls_fieldcatalog to lt_fieldcatalog.
ls_fieldcatalog-fieldname = 'PRICE'.
ls_fieldcatalog-inttype = 'P'.
append ls_fieldcatalog to lt_fieldcatalog.
ls_fieldcatalog-fieldname = 'CURRENCY'.
ls_fieldcatalog-inttype = 'C'.
append ls_fieldcatalog to lt_fieldcatalog.
*Calling the method CREATE_DYNAMIC_TABLE
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = lt_fieldcatalog
importing
ep_table = fs_data
exceptions
generate_subpool_dir_full = 1
others = 2
if sy-subrc <> 0.
endif.
*Assigning Field-Symbol to our dynamic internal table
assign lt_data to <fs_data>.
*Internal Table is ready, now to put data in that table
*** So <FS_1> now points to our dynamic internal table.
assign fs_data->* to <fs_1>.
*** Next step is to create a work area for our dynamic internal table.
create data new_line like line of <fs_1>.
*** A field-symbol to access that work area
assign new_line->* to <fs_2>.
*** And to put the data in the internal table
select
mandt
carrid
connid
fldate
price
currency
from sflight
into corresponding fields of table <fs_1>.
*** Access contents of internal table
loop at <fs_1> assigning <fs_2>.
do 5 times.
assign component sy-index of structure <fs_2> to <fs_3>.
write: <fs_3>.
enddo.
skip 1.
endloop.
top-of-page.
write:/5 'FUJITSU CONSULTING COMPANY' inverse color 6,
50 sy-datum inverse color 6,
70 sy-pagno inverse color 6.
uline.
<REMOVED BY MODERATOR>
Vijay C
Code Formatted by: Alvaro Tejada Galindo on Apr 14, 2008 1:47 PM -
Dynamic Internal table with field symbol
I made the report where the user enters two different tables and two fields that are to be compared.
Eg. If I enter (MARA & NAME1) and (MARC & NAME2) , I wish to compare all the entries of Mara-name1 against all entries in Marc-name2.
<u>The code I need to write is:</u>
DATA:
gdo_data TYPE REF TO data.
DATA:
gdo_data1 TYPE REF TO data.
FIELD-SYMBOLS:
<gt_itab> TYPE table,
<wa> LIKE <gt_itab>, "<gt_itab>,
<gs_entry> TYPE ANY.
FIELD-SYMBOLS:
<gt_itab1> TYPE table,
<wa1> LIKE <gt_itab>, "<gt_itab>,
<gs_entry1> TYPE ANY.
PARAMETERS:
p_table TYPE tabname, " DEFAULT 'KNA1',
p_fld TYPE fieldname. " DEFAULT 'KUNNR'.
PARAMETERS:
p_table1 TYPE tabname, " DEFAULT 'KNA1',
p_fld1 TYPE fieldname.
DATA: var TYPE fieldname.
var = p_fld.
DATA: var1 TYPE fieldname.
var1 = p_fld1.
START-OF-SELECTION.
CREATE DATA gdo_data TYPE TABLE OF (p_table).
ASSIGN gdo_data->* TO <gt_itab>.
CREATE DATA gdo_data1 TYPE TABLE OF (p_table1).
ASSIGN gdo_data1->* TO <gt_itab1>.
SELECT * FROM (p_table) INTO CORRESPONDING FIELDS OF TABLE <gt_itab>.
SELECT * FROM (p_table1) INTO CORRESPONDING FIELDS OF TABLE <gt_itab1>.
<b> LOOP AT <gt_itab> ASSIGNING <gs_entry>.
READ TABLE <gt_itab1> ASSIGNING <gs_entry1>
WITH KEY (var1) = <gt_itab>-(var).
IF sy-subrc EQ 0.
MESSAGE 'Success' TYPE 'S'.
ENDIF.
ENDLOOP.</b>
END-OF-SELECTION.
But the portion in bold is creating error: <b><gt_itab> is a table without a header lineand therefore has no component called "".</b>
please help.Hi Amit
Try like this
LOOP AT <gt_itab> ASSIGNING <gs_entry>.
READ TABLE <gt_itab1> ASSIGNING <gs_entry1>
WITH KEY (var1) = <b><gs_entry></b>-(var).
IF sy-subrc EQ 0.
MESSAGE 'Success' TYPE 'S'.
ENDIF.
ENDLOOP.
Regards,
Atish -
How to create an dynamic internal table with the structure of a ddic table
Hi all,
I want to fill ddic-tables (which I already created) in my abap dictionary with data out of CSV-files (which are located on the CRM-Server). The ddic tables have different amount of fields.
I started with creating a table which contains the name of the tables and the path to the matching CSV-file.
At the beginning I'm filling an internal table with part of this data (the name of the ddic-tables) - after that I am looping at this internal table.
LOOP AT lt_struc ASSIGNING <lfs_struc>.
LOOP AT lv_itab1 INTO lv_wa1 WHERE ztab_name = <lfs_struc>.
lv_feld = lv_wa1-zdat_name.
ENDLOOP.
CONCATENATE 'C:\-tmp\Exportierte Tabellen\' lv_feld INTO lv_pfad.
Do.
OPEN DATASET lv_pfad FOR INPUT IN TEXT MODE ENCODING NON-UNICODE IGNORING CONVERSION ERRORS.
READ DATASET lv_pfad INTO lv_rec.
IF sy-subrc NE 0.
EXIT.
ENDIF.
enddo.
REPLACE ALL OCCURRENCES OF '"' IN lv_rec WITH ''.
SPLIT lv_rec AT ';' INTO TABLE lt_str_values.
INSERT into (<lfs_struc>) values lr_str_value.
CLOSE DATASET lv_pfad.
endloop.
This is not the whole code, but it's working until
SPLIT lv_rec AT ';' INTO TABLE lt_str_values.
I want to split all the data of lv_rec into an internal table which has the structure of the current ddic-table, but I didn't find out how to do give the internal table the structure of the ddic-table. In the code I used an internal tyble type string but I should be the structure of the matching tabel.
If I try to create an internal table by using a fiel symbol, I am told, that the data types are not matching.
Has anyone an idea?Hi Mayari,
though you were successfull with
METHOD cl_alv_table_create=>create_dynamic_table
I must warn you not to use it. The reason is that the number of tables created is limited, the method uses GENERATE SUBROUTINE statement and this triggers an unwanted database commit.
If you know the DDIC structure, it is (starting with ECC6.0) much easier:
field-symbols:
<table> type standard table.
data:
lr_data type ref to data.
Create data lr_data type table of (<DDIC structure>).
assign lr_data->* to <table>.
The split code can be simplified gaining speed loosing complexity not loosing functionality.
field-symbols:<fs_s> type any.
field-symbols:<fs_t> type any.
SPLIT lv_rec AT ';' INTO table it_string.
loop at it_string assigning <fs_s>.
assign component sy-tabix of wa_string to <fs_t>.
if sy-subrc = 0.
<fs_t> = <fs_s>.
endif.
at last.
append <fs_itwa3> to <ft_itab3>.
endat.
endloop.
Though it may work as Keshav.T suggested, there is no need to do that way.
Regards,
Clemens -
How to assign values to dynamic table
Hi All,
I am working with a dynamic table and an internal table. My internal table looks like this.
Projno Cust Opt Status
g1234 kkkkk p1 I001
g1234 kkkkk p2 I004
g1234 kkkkk p3 I001
g1234 kkkkk p5 I002
g1256 lmnvw p1 I003
g1256 lmnvw p3 I004
g1256 lmnvw p5 I005
g1256 lmnvw p7 I001
My Dynamic table struture looks like this
Projno Cust p1 p2 p3 p4 p5 p6 p7
I need data in my dynamic table from my internal table as follows
Projno Cust p1 p2 p3 p4 p5 p6 p7
g1234 kkkkk I001 I004 I001 I002
g1256 lmnvw I003 I004 I005 I001.
The problem is these operations may vary thats why i am using dynamic table. Even i cannot use case statement as the operations may vary.
Is it possible to do using Assign component or some other way.
ThanksThis program creates dynamic internal table
copy and paste in your program and test it .. debug it to know how it is creating dynamic internal table and values into that table.
report z_dynamic.
type-pools : abap.
field-symbols: <dyn_table> type standard table,
<dyn_wa>,
<dyn_field>.
data: dy_table type ref to data,
dy_line type ref to data,
xfc type lvc_s_fcat,
ifc type lvc_t_fcat.
selection-screen begin of block b1 with frame.
parameters: p_table(30) type c default 'T001'.
selection-screen end of block b1.
start-of-selection.
perform get_structure.
perform create_dynamic_itab.
perform get_data.
perform write_out.
form get_structure.
data : idetails type abap_compdescr_tab,
xdetails type abap_compdescr.
data : ref_table_des type ref to cl_abap_structdescr.
Get the structure of the table.
ref_table_des ?=
cl_abap_typedescr=>describe_by_name( p_table ).
idetails[] = ref_table_des->components[].
loop at idetails into xdetails.
clear xfc.
xfc-fieldname = xdetails-name .
xfc-datatype = xdetails-type_kind.
xfc-inttype = xdetails-type_kind.
xfc-intlen = xdetails-length.
xfc-decimals = xdetails-decimals.
append xfc to ifc.
endloop.
endform.
form create_dynamic_itab.
Create dynamic internal table and assign to FS
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = ifc
importing
ep_table = dy_table.
assign dy_table->* to <dyn_table>.
Create dynamic work area and assign to FS
create data dy_line like line of <dyn_table>.
assign dy_line->* to <dyn_wa>.
endform.
form get_data.
Select Data from table.
select * into table <dyn_table>
from (p_table).
endform.
form write_out .
Write out data from table.
loop at <dyn_table> into <dyn_wa>.
do.
assign component sy-index
of structure <dyn_wa> to <dyn_field>.
if sy-subrc <> 0.
exit.
endif.
if sy-index = 1.
write:/ <dyn_field>.
else.
write: <dyn_field>.
endif.
enddo.
endloop.
endform. " write_out -
How to create dynamic nested internal table
Hi Experts,
Pleae tell me or give sample code, how to create dynamic nested internal table ?
I have seen threads saying creation of dynamic internal tables using some table structure only. But now the requirement is to create dynamic nested internal table.
For example the internal table contains two fields viz., one is field1 of dynamic internal table and other is normal field2 and values as shown below:
Nested internal table:
field1 | field2 ...
<table content1> | value2..
<table content1> | value2..
Here the [table content] should also a dynamic internal table.
Let me know if you need any other info.
regards
Saravanan Rsee the complete code..i am currently working in ECC6.0 EHP4. just check which version you are using..
REPORT yst_test_000.
DATA:
lt_comptab TYPE cl_abap_structdescr=>component_table,
ls_comp LIKE LINE OF lt_comptab,
lref_newstr TYPE REF TO cl_abap_structdescr,
lref_tab_type TYPE REF TO cl_abap_tabledescr,
lt_fcat TYPE lvc_t_fcat,
ls_fcat TYPE lvc_s_fcat,
ls_dd03p TYPE dd03p,
lt_data type ref to data.
field-symbols: <fs_table> type standard table.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'SCARR'
CHANGING
ct_fieldcat = lt_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT lt_fcat INTO ls_fcat.
IF ls_fcat-ref_table IS NOT INITIAL.
CLEAR ls_dd03p.
CALL FUNCTION 'BUS_DDFIELD_GET'
EXPORTING
i_tabnm = ls_fcat-ref_table
i_fldnm = ls_fcat-fieldname
IMPORTING
e_dd03p = ls_dd03p
EXCEPTIONS
field_not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0.
ls_comp-name = ls_fcat-fieldname.
ls_comp-type ?= cl_abap_datadescr=>describe_by_name( ls_dd03p-rollname ).
APPEND ls_comp TO lt_comptab.
CLEAR ls_comp.
ENDIF.
ELSE.
ls_comp-name = ls_fcat-fieldname.
ls_comp-type ?= cl_abap_datadescr=>describe_by_name( ls_fcat-rollname ).
APPEND ls_comp TO lt_comptab.
CLEAR ls_comp.
ENDIF.
ENDLOOP.
*Now for the Field which you want deep table then you can do like this
ls_fcat-fieldname = 'NESTED_TABLE'.
ls_fcat-inttype = 'C'.
ls_fcat-intlen = '000006'.
ls_fcat-rollname = 'SFLIGHT_TAB1'. "For SFLIGHT
APPEND ls_fcat TO lt_fcat.
ls_comp-name = ls_fcat-fieldname.
ls_comp-type ?= cl_abap_datadescr=>describe_by_name( ls_fcat-rollname ).
APPEND ls_comp TO lt_comptab.
CLEAR ls_comp.
lref_newstr = cl_abap_structdescr=>create( lt_comptab ).
lref_tab_type = cl_abap_tabledescr=>create( lref_newstr ).
create data lt_data type handle lref_tab_type.
assign lt_data->* to <fs_table>.
break-point.
Edited by: Vijay Babu Dudla on Apr 28, 2009 8:05 AM -
How to LOOP AT dynamic internal tables.
I have an internal table name declared in field I_DYN_TAB with me and I want to loop at this I_DYN_TAB.
( 4 example:
DATA: I_DYN_TAB(10) VALUE 'I_TAB'.
where I_TAB is my internal table with data in it.)
I already tried couple of things.
A. READ TABLE (I_DYN_TAB) WITH KEY I_DYN_TAB-FIELD1
but, it is not allowing me to read it dynamically this way.
B. LOOP AT (I_DYN_TAB). Again this is also not working.
Another option I tried is to create a field symbol for the internal table, which again is not useful or may be I am doing it wrong.
So if anybody can help me in solving this problem, it would be great.
Waiting for reply.
Regards
ArpitU can use
ASSIGN COMPONENT...
Eg:
FIELD-SYMBOLS: <dyn_field>,
<dyn_field1>,
<dyn_field2>,
<dyn_field3> TYPE ANY .
* Test when UOM, 'KMEIN' is '%'
* <b>ASSIGN COMPONENT 'KMEIN' OF STRUCTURE p_line1 TO <dyn_field1>.</b>
* ASSIGN COMPONENT 'KBETR' OF STRUCTURE p_line1 TO <dyn_field2>.
* ASSIGN COMPONENT 'KBETR' OF STRUCTURE p_line1 TO <dyn_field>.
* Test when Curr, 'KONWA' is '%'
ASSIGN COMPONENT 'KONWA' OF STRUCTURE p_line1 TO <dyn_field1>.
ASSIGN COMPONENT 'KBETR' OF STRUCTURE p_line1 TO <dyn_field2>.
ASSIGN COMPONENT 'KBETR' OF STRUCTURE p_line1 TO <dyn_field>.
IF <dyn_field1> = '%'.
<dyn_field> = <dyn_field2> / 10.
ENDIF.
if <dyn_field2> LE -1.
<dyn_field> = <dyn_field> * -1.
endif.
INSERT p_line1 INTO TABLE p_output1.
Hope this helps. -
How to pass the values from internal table to field groups
hi all,
how can i pass the internal table values to field groups?
already field groups are holding some values.. INSERT STATEMENT IS NOT WORKING as it is ovewriting the existing values..
Use full answers will be rewared.
Thanks.
Moderator message - duplicate post locked
Edited by: Rob Burbank on Jun 23, 2009 9:51 AMHi,
You can use INSERT statement to put a work area of an Internal table in Field-group
and use Extract to get info out of it.
Hope it helps,
Raj -
How to send data from internal table to the shared folder in ABAP
Hi experts,
My requirement is to transfer data from a file to shared folder. i just did reading data from a file to a internal table. Now i want to send this internal table data into a shared folder which is "
xxx\y\z....".
I do not have any idea on how to send data from internal table to the shared folder path.
can anybody please help me out how to do this?
Thanks & Regards
Sireesha.Where that folder is located, its on presentation server i.e. desktop or application server.
If its on presentation server, use FM GUI_UPLOAD.
If its on application server, then use DATASET functions. Have a look at below link.
[File Handling in ABAP|http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3ca6358411d1829f0000e829fbfe/frameset.htm]
I hope it helps.
Thanks,
Vibha
Please mark all the useful answers -
*How can we use the internal table in module pool programming? Clarify plz*
If we creating a screen using the table having four fields(for e.g.). The screen has the functions of display, modify, delete, save, exit etc for the fields. The front-end of the screen having I/O fields of the table using internal table. How can we declare the internal table in the screen?
HI,
Create one WA for your Internal table and then map it to your fields.
For Example,
Data : begin of wa,
name(10),
age type i,
end of wa.
data : it like table of wa with header line.
Then in screen create input fields with the name, age and ***.
Then the user entered values are stored in name age and ***.
then you can manipulate with that values using wa.
Thanks.
Maybe you are looking for
-
Each night I delete everything in my inbox. But I still have the email icon indicating that I have 9 emails. How do I get the icon to accurately indicate the correct number (or none at all) of emails?
-
Generating a formatted table of contents
I'm trying to generate a formatted TOC in Frame 8. When I generate it, it's in Times New Roman and not in the format I want. I've tried importing the formats I want from another TOC and manually making the changes, but when I need to update the TOC,
-
I recently bought a N97 and I hale a problem with the time information in SMS messages. I am in turkey a nd mi time zone is set to GMT+2 which is correct for turkey. The problem is that: normally time in SMS messeges ara correct but in some messeges
-
Run-time vs. System errors
Whats the a good way to tell the difference between run-time and system errors.
-
Haqve a error on my screen. Can not turn off phone or use it.
Error message on screen in red Error message,E :ensure_path_unmounted failed to unmount/system