09-09-2008 9:34 PM
Is there a reliable way to identify which table is used to populate a given field in a structure? (The only way that I am familiar with is to trace through the programs that use the structure until I find out, but I was wondering if there was a simpler way.) I am trying to find out what file the KOSTL field in the P0001 structure is populated from.
09-10-2008 4:22 AM
Hello Bob
Based on my experience there is no straighforward way to link structures and corresponding DB tables. As you mentioned tracing is an option.
However, in case of structure P0001 the situation should be easier because this structure belongs to HR.
For all structures Pnnnn there should be a corresponding PXnnnn table, .e.g.:
PA0001 HR Master Record: Infotype 0001 (Org. Assignment)
PB0001 HR Master Record: Infotype 0001 (Org. Assignment)
Since the descriptions of structure and tables are identical it is more than likely that P0001 is feed by either of these two tables.
Regards
Uwe
09-10-2008 8:52 AM
Hi Bob,
Welcome to SDN.
The structure generally starts with PXXXX are related to HR.. and the XXXX is the infotype.... so for each infotype there will be related tables.. and they start with PAXXXX and PBXXXX..
u2022 PAnnnn for transparent tables in Personnel Administration
u2022 PBnnnn for transparent tables in Recruitment
u2022 HRPnnnn for transparent tables in Personnel Planning
I think there is only one way which you had mentioned... which would be from either of PA0001 or PB0001 tables
But KOSTL field value will be using the Value table values which are in CSKS --> Cost Center Master Data..
If needed check the Value table mentioned in Value Range tab of DOMAIN (KOSTL) of Data Element KOSTL
Hope this would help you.
Good luck
Narin
09-10-2008 9:00 AM
I don't know HR specifically, but I successfully used these general approaches before:
- check where the data element of the structure field is used in DB tables
- perform an SQL trace (ST05) of the transaction and analyse which DB tables are being hit
- search for the field name within the main program and all subobjects, check whether there are SELECT statements
Thomas