on 02-11-2009 7:00 AM
Hi,
I am trying to check if a particular PSA is existing or not using the function module BDT_CHECK_TABLE_NOT_IN_DDIC
The function module is just checking for the table in another table DD02L.
Now my question is
Why can't i find the PSA table when i give the name like /BIC/B0004162 ?
Based on some inputs my freind i came to know that i should check for
/BIC/B0004162000 and /BIC/B0004162001 instead of /BIC/B0004162
what are these tables /BIC/B0004162000 and /BIC/B0004162001 ?
will the system creates a sequence of tables for each PSA or will it create only two tables like this?
What is the funda behind this ?
Please help me in understanding this...
Thanks in advance.
Regards,
Raghu
Hi,
Check in RSTSODS table.
In the above table give PSA = your DataSource name and * and execute it.
Eg: 0MATERIAL*
Thanks
Reddy
Edited by: Surendra Reddy on Feb 11, 2009 8:04 AM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Surendra,
In that table , in the field ODSNAME_TECH i gave /BIC/B0000413* and it gave me /BIC/B0000413000
only one record.
But this didn't answered my question
I have a piece of code
comment -> **** code starts********
concatenate PSA_Name '000' into db_syntax.
comment -> * Check for the PSA Table in the Data Dictionary
i_table-TABNM = DB_SYNTAX.
APPEND i_table TO ddic_table.
CALL FUNCTION 'BDT_CHECK_TABLE_NOT_IN_DDIC'
TABLES
IT_TBZ1H = ddic_table
ET_RETURN = ret_table.
.
if not ret_table is initial.
raise PSA_Doesnot_Exist.
endif.
comment -> * Select the contents of the PSA into an itab.
select * from (db_syntax) into corresponding fields of table psa_table
where REQUEST = req_no.
if psa_Table is initial.
comment -> *If the PSA table ending with '000' is not the active table, look for the
comment -> * next incremental numbered PSA table.
concatenate PSA_Name '001' into db_syntax.
comment -> * Check for the PSA Table in the Data Dictionary
i_table-TABNM = DB_SYNTAX.
APPEND i_table TO ddic_table.
CALL FUNCTION 'BDT_CHECK_TABLE_NOT_IN_DDIC'
TABLES
IT_TBZ1H = ddic_table
ET_RETURN = ret_table.
.
if not ret_table is initial.
raise PSA_Doesnot_Exist.
endif.
select * from (db_syntax) into corresponding fields of table psa_table
where REQUEST = req_no.
endif.
comment -> ****** code ends********
can you please tell me why we are checking only for the PSA_name appended by 000 and 001.
Any inputs?
Thanks,
Raghu
Edited by: Raghu tej harish reddy on Feb 11, 2009 8:43 AM
the name of the PSA table is a generic one created by the system on the moment that you activate the datasource in BI. the first time you'll get indeed /BIC/B0004162000 (so ending with '000'). Whenever you change something in the datasource, you replicate and activate again, the structure of the PSA table changed and therefor the system will generate a new table with a new name e.g. /BIC/B0004162001. so every time you change and reactivate a new PSA table is created.
as explained before you can check table RSTSODS to see which one is currently valid for your datasource
M.
Hi ,
Thanks for the reply.
If i understand correctly,
The system will keep on incrementing the PSA table name evey time we change the datasource structure and keeps the latest one in the active status and rest all in inactive status i.e. in Modified version. Right?
And i can see the number of tables created in RSTSODS table right?
Regards,
Raghu
Thanks surendra & Mti.
I have checked what you said and it is perfectly matching.
1.I have loaded some data into PSA.
2.changed the structure of data source.
3.Tried loading the request in PSA to a target.
4.Load sucessful with zero records.
5. when i check the details, in messages it is has been explained clearly
Message
Request REQU_4CT6ZC530RW31Y4ULTEMIHS5T not extracted; request is in obsolete version of DataSource
Message no. RSDS198
Diagnosis
The request REQU_4CT6ZC530RW31Y4ULTEMIHS5T was loaded into the PSA table when the DataSource had a different structure to the current one. Incompatible changes have been made to the DataSource since then and the request cannot be extracted with the DTP anymore.
System Response
The request is in PSA /BIC/B0006743, version 001. The current PSA version is 002. An extraction would lead to a short dump because of field incompatibilities.
Procedure
If you no longer require the data, you do not need to take any further action.
If you do still require the data, you can just extract it by creating a generic DataSource in the Myself source system in PSA /BIC/B0006743, version 001. You can find the technical name of the PSA table in the table RSTSODS with the specified PSA name and version. Convert the data using a separate transformation into the new target format.
Hi,
As per the inputs i have changed the program and working fine.
now i have one more question in the code.
coment-> 1.read the psa name based on the data source name.
select single psa from rsdsseg into temp_psa_name where objvers = 'A' and datasource = 'YQOP_FOODS'.
if temp_psa_name is initial.
raise psa_doesnot_exist.
endif.
coment-> 2.finding the latest version of psa.
select single ODSNAME_TECH into db_psa_name from RSTSODS where ODSNAME = temp_psa_name
and version = ( select max( version ) from RSTSODS where ODSNAME = temp_psa_name ).
coment-> 3.checking if the psa table new version is in Data dictionary.
IF ddic_table IS NOT INITIAL.
delete TABLE ddic_table.
ENDIF.
*BREAK-POINT.
append temp_db_psa to ddic_table.
call function 'BDT_CHECK_TABLE_NOT_IN_DDIC'
TABLES
IT_TBZ1H = ddic_table
ET_RETURN = ret_table.
*BREAK-POINT.
if ret_table is initial.
raise psa_doesnot_exist.
endif.
My question is what diffrence will it make by checking a table if it is in Data dictionary or not??
Do i need to use this function module and check?
Please let me know...
I am actually modifying code written by some one for my requirement so want to know if this is written to handle any exception?
Also if i use the statement
raise psa_doesnot_exist.
when it is called an ABAP dump is getting displayed . Have searched in documentation but didn't find an example to define non-class-based EXCEPTIONS.
Thanks,
Raghu
Edited by: Raghu tej harish reddy on Feb 18, 2009 6:37 AM
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.