Class to find the components of a field-symbol
Hi,
Can anyone tell any class/function module to get the components of a field-symbol which is like an internal table.
Thanks.
Hi,
I assume your field symbol is generic, it means was declared like
field-symbols: <fs_tab> type any table.
Later you assined some intrernal table to it and now you want to get components of structure of that table, right?
You can use RTTS for this:
"first create work area for that table
data: wa_table type ref to data.
field-symbols: <fs_wa> type any.
create data wa_table like line of <fs_tab>.
assign wa_table->* to <fs_wa>. "<fs_wa> now work like work area for table <fs_tab>
"now you get the components via RTTS classes
type-pools: abap.
data: r_struct type ref to cl_abap_structdescr,
gt_components type abap_component_tab with header line.
r_struct ?= cl_abap_typedescr=>DESCRIBE_BY_DATA( <fs_wa> ).
gt_components = r_struct->GET_COMPONENTS( ). "here gt_components holds components of that table/structure
Regards
Marcin
Similar Messages
-
HOw to find the text for PERSK field in infotype 0001
hi all
HOw to find the text for PERSK field in infotype 0001Hi
T503T : contained the similar informative text for PERSK . read this for T503T-PTEXT.
..lakhan -
How to find the Ranges for a field ?
Hello All,
Can anyone tell me how to find the ranges for a field.
<b>1</b>, i.e say I want the Ranges Structure for the field LIFNR.
The ranges structure for this is "<b>RANGE_LIFNR</b>".
This I used in my Program since I know it previously.
But now I want the ranges structure for the field <b>VBELN (Delivery Document).</b>
I don't know what is it !!!!!
<b>2</b>, Is there any procedure to know the ranges structure for a particular field ?
Regards,
Deepu.KHi Deepu,
Using 'Where used list' you can able to find out RANGES tables.
For VEBLN range table is --> CRM_AC_ASSIGN_VBELN
If you using a program defined as shown below.
DATA: r_vbeln type ranges of vbeln.
The above statement also creates ranges structure in Runtime.
Procedure finding range table structures
go to SE37 -> Enter domain or dataelement value
Go to where used list --> search for 'Structures'
After getting all structure --> Click 'SEARCH' butoon in tool bar --> Search for 'RANGES' word
You can get all ranges tables in the search window
If helps plz reward points.
Regards
Bhupal Reddy -
Number of components in a field symbol
I have a field symbol but i don't know the number of components. How i can know it?
I need copy the data from field symbol to another field symbol with same struct and another more fields.
Ex:
<f1> is filled
<f2> some components are filled (x,y,z) And we need to fill the others components (we don't know how many) with the f1 components (same number but we don't know either)
In other words:
<f1> (a,b,c)
<f2> (x,y,z,a,b,c) We don't know if we have a,b,c or a,b or a,b,c,d,e.....
Thx in advanceHi
see the doc
Field Symbols
Field symbols are placeholders or symbolic names for other fields. They do not physically reserve space for a field, but point to its contents. A field symbol cam point to any data object. The data object to which a field symbol points is assigned to it after it has been declared in the program.
Whenever you address a field symbol in a program, you are addressing the field that is assigned to the field symbol. After successful assignment, there is no difference in ABAP whether you reference the field symbol or the field itself. You must assign a field to each field symbol before you can address the latter in programs.
Field symbols are similar to dereferenced pointers in C (that is, pointers to which the content operator * is applied). However, the only real equivalent of pointers in ABAP, that is, variables that contain a memory address (reference) and that can be used without the contents operator, are reference variables in ABAP Objects.
All operations programmed with field symbols are applied to the field assigned to it. For example, a MOVE statement between two field symbols moves the contents of the field assigned to the first field symbol to the field assigned to the second field symbol. The field symbols themselves point to the same fields after the MOVE statement as they did before.
You can create field symbols either without or with type specifications. If you do not specify a type, the field symbol inherits all of the technical attributes of the field assigned to it. If you do specify a type, the system checks the compatibility of the field symbol and the field you are assigning to it during the ASSIGN statement.
Field symbols provide greater flexibility when you address data objects:
If you want to process sections of fields, you can specify the offset and length of the field dynamically.
You can assign one field symbol to another, which allows you to address parts of fields.
Assignments to field symbols may extend beyond field boundaries. This allows you to address regular sequences of fields in memory efficiently.
You can also force a field symbol to take different technical attributes from those of the field assigned to it.
The flexibility of field symbols provides elegant solutions to certain problems. On the other hand, it does mean that errors can easily occur. Since fields are not assigned to field symbols until runtime, the effectiveness of syntax and security checks is very limited for operations involving field symbols. This can lead to runtime errors or incorrect data assignments.
While runtime errors indicate an obvious problem, incorrect data assignments are dangerous because they can be very difficult to detect. For this reason, you should only use field symbols if you cannot achieve the same result using other ABAP statements.
For example, you may want to process part of a string where the offset and length depend on the contents of the field. You could use field symbols in this case. However, since the MOVE statement also supports variable offset and length specifications, you should use it instead. The MOVE statement (with your own auxiliary variables if required) is much safer than using field symbols, since it cannot address memory beyond the boundary of a field. However, field symbols may improve performance in some cases.
check the below links u will get the answers for your questions
http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3860358411d1829f0000e829fbfe/content.htm
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/field_sy.htm
http://searchsap.techtarget.com/tip/1,289483,sid21_gci920484,00.html
Syntax Diagram
FIELD-SYMBOLS
Basic form
FIELD-SYMBOLS <fs>.
Extras:
1. ... TYPE type
2. ... TYPE REF TO cif
3. ... TYPE REF TO DATA
4. ... TYPE LINE OF type
5. ... LIKE s
6. ... LIKE LINE OF s
7. ... TYPE tabkind
8. ... STRUCTURE s DEFAULT wa
The syntax check performed in an ABAP Objects context is stricter than in other ABAP areas. See Cannot Use Untyped Field Symbols ad Cannot Use Field Symbols as Components of Classes.
Effect
This statement declares a symbolic field called <fs>. At runtime, you can assign a concrete field to the field symbol using ASSIGN. All operations performed with the field symbol then directly affect the field assigned to it.
You can only use one of the additions.
Example
Output aircraft type from the table SFLIGHT using a field symbol:
FIELD-SYMBOLS <PT> TYPE ANY.
DATA SFLIGHT_WA TYPE SFLIGHT.
ASSIGN SFLIGHT_WA-PLANETYPE TO <PT>.
WRITE <PT>.
Addition 1
... TYPE type
Addition 2
... TYPE REF TO cif
Addition 3
... TYPE REF TO DATA
Addition 4
... TYPE LINE OF type
Addition 5
... LIKE s
Addition 6
... LIKE LINE OF s
Addition 7
... TYPE tabkind
Effect
You can define the type of the field symbol using additions 2 to 7 (just as you can for FORM parameters (compare Defining the Type of Subroutine Parameters). When you use the ASSIGN statement, the system carries out the same type checks as for USING parameters of FORMs.
This addition is not allowed in an ABAP Objects context. See Cannot Use Obsolete Casting for FIELD SYMBOLS.
In some cases, the syntax rules that apply to Unicode programs are different than those for non-Unicode programs. See Defining Types Using STRUCTURE.
Effect
Assigns any (internal) field string or structure to the field symbol from the ABAP Dictionary (s). All fields of the structure can be addressed by name: <fs>-fieldname. The structured field symbol points initially to the work area wa specified after DEFAULT.
The work area wa must be at least as long as the structure s. If s contains fields of the type I or F, wa should have the structure s or at least begin in that way, since otherwise alignment problems may occur.
Example
Address components of the flight bookings table SBOOK using a field symbol:
DATA SBOOK_WA LIKE SBOOK.
FIELD-SYMBOLS <SB> STRUCTURE SBOOK
DEFAULT SBOOK_WA.
WRITE: <SB>-BOOKID, <SB>-FLDATE.
Related
ASSIGN, DATA
Additional help
Declaring Field Symbols
Reward points for useful Answers
Regards
Anji -
What r the benefit of using field symbols
hi all
what is the benefit of using field symbols and when is recommended to use it?
regardsIt Just assign the values directly to fieldsymbol and no need to used append.
It increases the performance of the program.
also check this
http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3860358411d1829f0000e829fbfe/frameset.htm
Reward points if useful
Regards,
Vimal -
How can i write the bellow code using field symbols
data : it_mara type table of mara.
select * from mara
into it_mara.
delete it_mara where matnr = '100-100'
and meins = 'KG'.
if i do the same by using field symbols
i am getting data into <it_mara>
but
delete <it_mara> where matnr = '100-100'
and meins = 'KG'.
is showing syntax error
how to correct the error ?I think, DELETE does not allows to dynamically define the logical expression for the WHERE clausule.
Have you tried by filtering data in SELECT statement??
Something like:
if dataBase = 'MARA'.
append 'MATNR <> '100-100'' to Itab_Where[].
append 'AND MEINS <> 'KG'' to Itab_Where[].
endIf.
select * from (dataBase) where (Itab_Where) into table <my_table>.
this is possible, but I don't know if this fits your requirements. -
How can i find the tablename for that field and suggest the report logic
Hi experts
The concept of BOM for finished components are defined in terms of semi finished goods. Hence, routing of a component from raw materials can not be seen directly in system through standard report.
But users need to have the details of a routing of a component from raw material in one report. To provide the details in single report, development is required.
With this report users can see the routing from raw material till component in one single report.
Assumption
BOM is maintained for a component with all related semi finished components till raw material properly.
Material Number: MARA MATNR - Multiple selection option should be there (Mandatory)
Plant: AFRU WERKS - Single selection parameter (Mandatory)
If procurement type is E or X, system has to check the routing through CA03.
If procurement type if F, leave this field as blank
1.operator
2.material
3.material description
4.workcenter
5.vendor
6.operation description
7.uom
8.qty
9.uom
10.setuptime
11.processingtime
12.deliverytime
using cs12,cs13
here i have seen the details of finished goods components like semifinished goods,rawmaterils,i tried se11 to find the the table for relevent field,
i cant get, if possible to suggest me the logic and how to find the relevent table for
that field
Regards
dsfor exploding the bom if you know header material use
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'PP01'
DATUV = SY-DATUM
MEHRS = 'X'
MTNRV = P_MATNR
WERKS = P_WERKS
TABLES
STB = I_BOM
EXCEPTIONS
ALT_NOT_FOUND = 1
CALL_INVALID = 2
MATERIAL_NOT_FOUND = 3
MISSING_AUTHORIZATION = 4
NO_BOM_FOUND = 5
NO_PLANT_DATA = 6
NO_SUITABLE_BOM_FOUND = 7
CONVERSION_ERROR = 8
OTHERS = 9.
now check PLPO & PLKO table for routing or AFVC and AFVV for routing.
if production order created you have to check in afvc and afvv else check in plpo and plko.
for checking with plpo and plko you have to check MAPL table.
for bom and material link
MAST,STPO,STKO.
stlnr is the common field
regards
shiba dutta -
FM/Class to find the class and characterstics for a given material
Hi All,
Is there any Class/FM to find the class and characterstics for a given material.I tried some BAPI_OBJCL* BAPI's but lot of the BAPI's need classnum as input parameter. But i need a BAPI or tables or class which can give the class and its characterstic values for a given material.Hi Ben
Try ..
BAPI_OBJCL_GETCLASSES
BAPI_OBJCL_CREATE -
How to find the size of a field
Can somebody tell how to find the sie of a varchar2 field?
Thanks.SQL> desc global_name
Name Null? Type
GLOBAL_NAME VARCHAR2(4000)
SQL> select global_name from global_name;
GLOBAL_NAME
ITFD.XXXXX.CO.XX
1* select vsize(global_name) from global_name
SQL> /
VSIZE(GLOBAL_NAME)
16 -
How to find the difference of 2 fields in template?
Hi,
I am building an rtf template, I have two fields in the template which come from XML extract.
I need to add one more column to the template which is the differecnce of the 2 columns (column1-column2).
I don't have this column in the XML extract, I need to calculate this in the template.
I am quiet new to using XML Publisher.
Could somebody please tell me, how can I achieve this?
Thanks in Advance,
ThiruHi,
I am able to find the difference by <?(column1tag)-(column2tag)?>.
But now I want to have the sum of this field at different levels
<?sum((column1tag)-(column2tag))?> is not working giving some error.
Could somebody please help me out, how can I achieve sum for this?
Thanks in Advance,
Thiru -
How do i find the total number of fields within all tables in one of my databases
I'm in the process of creating some "gee whiz" metrics for one of my applications and want to find the total number of columns contained in its database. Is there a stored procedure to get this information that would save me the effort
of opening each of my 66 tables and counting the columns? I also have the same question for my 138 views. Thank you for any ideas you care to offer...............Phil Hoop
Phil HoopHi Phil,
Assumes SQL 2005 or higher
Let 's try simple one ....
SELECT COUNT(col.column_name), col.table_name
FROM information_schema.columns col
JOIN information_schema.tables tbl
ON tbl.table_name = col.table_name
AND tbl.table_schema = col.table_schema
AND tbl.table_catalog = col.table_catalog
AND tbl.table_type = 'VIEW'
GROUP BY col.table_name
Let me know if this will help you.
If you think my suggestion is useful, please rate it as helpful.
If it has helped you to resolve the problem, please Mark it as Answer.
Varinder Sandhu www.varindersandhu.in -
I have some videos from youtube to be used in the classroom. I downloaded them from my pc but I cannot see them in the mac because I get messages saying that I need some quicktime components. Is there any way of seiing AVI files? Or do you know the components I need?
Thanks
ELenaThis little thing will open your .avi files. It's free, and you do not need Quick Time.
http://www.videolan.org/vlc/index.html -
Determining the type of a field-symbol
Hi!
I want to create a logical expression that determines the type of field-symbol that was passed in to a function.
i want to do something like this:
IF imported_fieldsymbol IS OF TYPE some_type
ENDIF
how do you create such an expression in ABAP?
regardsHi,
You can use the RTTS - Run Time Type Service.
Try the sample code
TYPES my_type TYPE i.
DATA: my_data TYPE my_type,
descr_ref TYPE ref to cl_abap_typedescr.
START-OF-SELECTION.
descr_ref = cl_abap_typedescr=>describe_by_data( my_data ).
The hierarchy of RTTS classes are as follows,
CL_ABAP_TYPEDESCR
|
|--CL_ABAP_DATADESCR
| |
| |-- CL_ABAP_ELEMDESCR
| |--CL_ABAP_REFDESCR
| |--CL_ABAP_COMPLEXDESCR
| |
| |--CL_ABAP_STRUCTDESCR
| |--CL_ABAP_TABLEDESCR
|
|--CL_ABAP_OBJECTDESCR
|
|--CL_ABAP_CLASSDESCR
|--CL_ABAP_INTFDESCR
Regards,
Mustajab -
How to copy the structure of a Field Symbol?
Hi,
I have a requirement where in a dynamic Internal table is supposed to be created. I have created that dynamic table using the class method cl_alv_table_create=>create_dynamic_table. Here I have a structure in the field symbol. My requirement is how do I create a internal table with the structure that is there in the field symbol?...
and i'm unable to refer to the field that is dynamically created in the field symbol.
Like,
<gfs_tab>-pernr = itab-pernr.
in the above stmt the field pernr is created in the field symbol dynamically.
Thanks,
Deepak.Hi Matt,
my objective is to create an internal table with structure that i have obtained in <gfs_tab> .
other than the pernr, there are many fields dynamically generated.
say if I have generated the following structure in <gfs_tab> :
pernr ename1 day1 day2 day3
then I want to create an internal table with the above structure so that my internal table will have fields:
1) pernr
2) ename1
3) day1
4) day2
5) day3
for each execution of the report there will be different structure generated in <gfs_tab> depending upon the inputs that I give.
Thanks,
Deepak. -
How to update the value inside a field symbol ?
ASSIGN COMPONENT 'MENGE' OF STRUCTURE <fs_line> TO <fs_field>.
<fs_field> = itab_stpo-menge.
COLLECT <fs_line> INTO <fs_table>.
.processing some code......
ASSIGN COMPONENT 'MENGE' OF STRUCTURE <fs_line> TO <fs_field>.
<fs_field> = ( itab_stpo-menge * itab_plpo-vgw03 ).
COLLECT <fs_line> INTO <fs_table>.
Hi, guys,
May i know is there a way to update the value in inside a field symbol?
I feel hard to figure out the way to solve this situation. Kindly give me some help or perhaos tell me other altenative way to do it also can.
Thanks in advance.
Edited by: Jiansi Lim on Apr 25, 2008 8:09 PMhi check this...
For a structured data object s, you can use the statement
ASSIGN COMPONENT comp OF STRUCTURE s TO FS.
Here the comp is the component name or its index number in the structure.
Find the following sample code -
DATA: BEGIN OF LINE,
COL1 TYPE I VALUE '11',
COL2 TYPE I VALUE '22',
COL3 TYPE I VALUE '33',
END OF LINE.
DATA COMP(5) VALUE 'COL3'.
FIELD-SYMBOLS: <F1>, <F2>, <F3>.
ASSIGN LINE TO <F1>.
ASSIGN COMP TO <F2>.
DO 3 TIMES.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE <F1> TO <F3>.
WRITE <F3>.
ENDDO.
ASSIGN COMPONENT <F2> OF STRUCTURE <F1> TO <F3>.
WRITE / <F3>.
The output is:
11 22 33
33
I need to update one field in Internal table
regards,
venkat
Maybe you are looking for
-
Error in Custom generated IDOC message type for XIF
Hi all, I had generated a custom message type under interface function module crmxif_partner_save for enhanced fields. While generating from BDFG it popups inconsistency sap notes which is already in crm 2007. so i just ignaore them. idocs are gener
-
Setting listener password in oracle 8i
i have some very old windows databases that are 8.1.0.7. I am not able to upgrade these. I am trying to set a password. 1. go to command line 2. lsnrctl 3. set password <password> LSNRCTL> set password l1stener1$ The command completed successfully LS
-
Error in client: domain was null
I'm getting the following exception now that I've deployed one of the applications on another OC4J instance on a separate machine. I can connect fine and get the expected response when running out of my Intellij IDE or command line. Problem is I get
-
N95 with more ca[acity memory cards?
Iam a user of N95-1 which after the new firmware V.20 is better but still has some bugs in the keypad sometimes, but with a good general performance including battery life. I need more space, all of us who experience the satisfaction of having comple
-
When I am trying to run the Currency Conversion I am getting the following error. I maintained the dimension as GLOBAL as the rate entity in the Rate Model. "RUN_LOGIC: Rate entity not found in application Consolidation model: Consolidation. Package