05-04-2006 7:36 PM
table location for fields within structures
I have posted a question similar to this before and I can't seem to understand this . I was told "
The Data Dictionary (transaction SE11) is the usual place to start. This tool has a "Where Used" feature that can help you find if a field seen in a structure is used elsewhere in a database table. This is the usual way of tracing down the source of data in fields, but it doesn't work 100% of the time because data can be copied between fields of different names.
If the relationship between a structure field and database field is not fairly obvious from context, you must trace code."
So, with that being said - I am looking at fbl3n and the purchasing document number field is blank. fbl3n uses structure RFPOSXEXT and the field is EBELN. BA is saying that for this field in BSEG table there is a value so I am thinking the this structure is not getting the EBELN data from this table.
I did the "Where Used" feature on the EBELN and it came back with 141 hits. how am I to know what table the structure is pulling the EBELN field from?
is there anything that will tell me that for the field EBELN in the structure RFPOSXEXT, the data comes from the table XXXXX. is there anything within SAP that tells how the structure was defined? are there any specs that document this structure and what data from what tables are being used in this structure.
also
If the relationship between a structure field and database field is not fairly obvious from context, you must trace code." I am assuming that I would be tracing the code for fbl3n. wouldn't this show that for the purchasing document number field, the program would get the data from the field EBELN from the the structure RFPOSXEXT? Does the trace show what table the data actually comes from?
If anyone could please clear this up for me, that would be great. I see that I could possibly get more requests like this from the BA's and I would like to know how to start finding data relating to structures.
05-04-2006 8:01 PM
There is no exact rule how to find a structure filled in.
I located the place from where this value is coming for FBL3N,the internal table it_pos defined in RFITEM_DEF.
If you can trace how this internal table filled you can identity how ebeln is populated.
Put a break point in program RFITEMGL following FM and check the value of internal table it_pos.
call function 'FI_ITEMS_DISPLAY'
exporting
caller_repid = c_repid_gl
acctype = c_koart_gl
x_opvw = x_gl_opvw
x_change = x_change
i_u_save = gd_alvsave
is_u_variant = gs_variant
it_u_fieldcat = gt_fieldcat[]
it_kontab = it_accts[]
it_slbtab = it_comps[]
it_t001 = it_h_t001[]
it_skat = it_h_skat[]
it_skb1 = it_h_skb1[]
x_grid = x_grid
x_inet = pa_inet
tables
it_items = it_pos.
About locating values how it filled,
Several ways exist to do this.
(1) F1 & F9 gives the field name then search where used list in se11.
(2) Using SQL trace u can i identify how a structure filled in but its a complex process.
Hope this helps,
Thanks,
vamshi tallada
05-04-2006 7:52 PM
Hi Timothy,
Irritating it may be for many an abapper, there is not so straight forward appraoch to trace down the source table and field for a particular field in a transaction.
Some times it would be asa simple as a f1 followed by f9(Or TEchnical info button).
Some times it can get as complicated as doing a ST05(SQL Trace) for the transaction and finding the list if all tables that are read/updated/modified.
Another way is to go to se80 with the main program name and look in the Dictionary structures node.
And sometimes a combination of all these methods.
A Debug in the pai section of the previous screen or the pbo section of the current screen would also tell you where the screen fields are being populated.
Above all these, experience would take the front seat in most occasions...
Till then you have to go through the labor of tracing out....
Regards,
Ravi
05-04-2006 8:01 PM
There is no exact rule how to find a structure filled in.
I located the place from where this value is coming for FBL3N,the internal table it_pos defined in RFITEM_DEF.
If you can trace how this internal table filled you can identity how ebeln is populated.
Put a break point in program RFITEMGL following FM and check the value of internal table it_pos.
call function 'FI_ITEMS_DISPLAY'
exporting
caller_repid = c_repid_gl
acctype = c_koart_gl
x_opvw = x_gl_opvw
x_change = x_change
i_u_save = gd_alvsave
is_u_variant = gs_variant
it_u_fieldcat = gt_fieldcat[]
it_kontab = it_accts[]
it_slbtab = it_comps[]
it_t001 = it_h_t001[]
it_skat = it_h_skat[]
it_skb1 = it_h_skb1[]
x_grid = x_grid
x_inet = pa_inet
tables
it_items = it_pos.
About locating values how it filled,
Several ways exist to do this.
(1) F1 & F9 gives the field name then search where used list in se11.
(2) Using SQL trace u can i identify how a structure filled in but its a complex process.
Hope this helps,
Thanks,
vamshi tallada