ODI SNP tables
Which of the SNP tables do hold data for the filters applied on the Source Datastore? If possible please mention the column names too.
Which of the SNP tables do hold data for the column expressions(e.g. case when/decode etc.) for the target datastore ? If possible please mention the column names too.
Rashmik wrote:
Which of the SNP tables do hold data for the filters applied on the Source Datastore? If possible please mention the column names too.
select txt from odi_work.snp_txt where i_txt in
(select i_txt_sql from odi_work.SNP_POP_CLAUSE where i_pop=<your interface id> and clause_type=3);
Which of the SNP tables do hold data for the column expressions(e.g. case when/decode etc.) for the target datastore ? If possible please mention the column names too.select txt from odi_work.snp_txt where i_txt in
(select i_txt_map from odi_work.SNP_POP_Col where i_pop==<your interface id> )
Similar Messages
-
ODI SNP_EXP_TXT table empty
Hello,
I am using ODI 11.1.1.6.3_GENERIC_120508.0956, with Oracle DB, Oracle Database 11g Enterprise Edition Release 11.2.0.3.0.
I am trying to get the error messages in my database, and from what I read from documentation and the Web, the best way is to use metadata ODI SNP tables.
Specifically, to get the error message, the SNP_EXP_TXT table.
Now, I am running my package from the Production environment, and when it finishes, the SNP_EXP_TXT table is empty.
However, the SNP_SESSION, SNP_STEP_LOG, SNP_SESS_TASK and others similar are all full.
Also, I noticed that all tables containing TXT in the name are empty, besides SNP_EXP_TXT_HEADER.
Does anyone have any idea why the SNP_EXP_TXT table is empty? Is there any good documentation on these tables I can find answer in?
Thanks!I have overcome this issue by using the SNP_STEP_LOG table, which has the error message in the ERROR MESSAGE (CLOB) column, by using a dbms substring function.
But I would still like to know why the SNP_EXP_TXT is not populated.
If anyone has any insight, it would be much appreciated. -
To Find out Source datastore in ODI interfaces using SNP tables
Hi,
Could you please let me know how to find out Source datastore(s) in ODI interfaces using SNP tables ?
Regards,
RashmikPlease use below query...Just pass the interface name..
SELECT C.TABLE_NAME AS "Target Table Name",
A.COL_NAME AS "Target Field Name",
Wm_Concat(G.SOURCE_DT) AS "Target Data Type",
Wm_Concat(G.LONGC) AS "Target Data Length",
Wm_Concat(TXT) AS "Transformation Rule",
Wm_Concat(DISTINCT F.TABLE_NAME) AS "Source Table Name",
Wm_Concat(D.COL_NAME) AS "Source Field Name",
Wm_Concat(D.SOURCE_DT) AS "Source Data Type",
Wm_Concat(D.LONGC) AS "Source Data Length"
FROM
SNP_POP_COL A JOIN SNP_TXT_CROSSR B ON A.I_TXT_MAP=B.I_TXT
JOIN SNP_POP C ON A.I_POP=C.I_POP
JOIN SNP_TXT E ON A.I_TXT_MAP=E.I_TXT AND B.I_TXT=E.I_TXT
LEFT OUTER JOIN SNP_COL D ON B.I_COL=D.I_COL
LEFT OUTER JOIN SNP_TABLE F ON F.I_TABLE= D.I_TABLE
LEFT JOIN SNP_COL G ON A.I_COL=G.I_COL
WHERE POP_NAME = 'XXXXXXX'
GROUP BY C.TABLE_NAME,A.COL_NAME ORDER BY 1
Edited by: KaushikPatel on Apr 18, 2013 6:52 AM -
Number of SNP tables created during master and work repository creation
Hi All,
I would like to know how many SNP tables are created during Master and work repository creation in
10.1.3.5 v as I remember it was around 147 in earlier version .
Any help will be appreciated
regards,
Palash ChatterjeeHi Palash ,
ODI master repository have 58 SNP tables
where as work repository have 88 SNP tables
So in total 146 SNP tables are created during Master and work repository creation in
10.1.3.5 .
Thanks,
Sutirtha -
hii
I have done some reverse engineering ,in the work/master repository "SNP_REV_FOR_TABLE" contains the list of tables reverse engineered.What does "IND_REV" column in that table mean??
My all other "SNP_REV%" tables are empty.
What information gets populated into them
Is there any document ,which gives information on SNP tables,as to what gets stored in them??Hello,
I think this is not possible since this temporary interface can be the source of several interface, so it can't be dropped : http://askankit.blogspot.com/2011/04/when-temporary-is-not-temporary.html
But you can call a procedure at the end of your package execution to drop all temporary tables.
Alternatively, you can use temporary interfaces as Derived table (sub-select). See second part of this article : http://www.rittmanmead.com/2011/06/odi-11g-new-mapping-and-interface-features-part-1 .
Regards -
Hi all,
I need to know following things
1) I have created open few tools and if business validation fails it throws OpenToolExecutionException with some error code now I want to check in which SNP_ table it goes and how cud I track my error info.
2)
In other way where these error messages are stored when any scenario execution fails.
snp_sess_task_log and SNP_STEP_LOG and SNP_SESS_STEP all are having
one entry I_TXT_TASK_MESS in which table these messages are present
3)
Please let me know the names of scenario execution error tracking tables so that I can used them for notification purpose when any scenario fails.
3)
I want to know how operator showing this error code as I have inserted
oracle.odi.sdk.opentools.OpenToolExecutionException: 5000
at com.nucleus.acom.odi.opentool.tool.OdiProductTransferOpenTool.callOracleSP(OdiProductTransferOpenTool.java:240)
at com.nucleus.acom.odi.opentool.tool.OdiProductTransferOpenTool.execute(OdiProductTransferOpenTool.java:124)
at com.sunopsis.dwg.function.SnpsOpenToolFunction.actionExecute(SnpsOpenToolFunction.java)
at com.sunopsis.dwg.function.SnpsOpenToolFunction.execute(SnpsOpenToolFunction.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.h.y(h.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Thread.java:595)Hi Santos,
Is it possible to use the same in OpenTool as I am invoking these steps one by one using invocation API.
So in that case I wrote a java class as a controller and few Open Tool .
* Condition is like we are executing steps one by one from that controller class .
if the previous step caused exception then I use to stop all the other steps those are the successor of the same.
* Open tool may throw some OpenToolExecutionException which depends on some businees validation and also some common java exception .
how to use this API odiRef.getPrevStepLog() in my java code and where.
could you please send me code for that one
regards,
palash Chatterjee -
hi,
is it compulsory to have a primary key constraint in the target table in odi.
Can we have a target table without any primary key constraint?Hi,
Yes u can have target table without PK.
Only for IKM Incremental Update u need to define Update key (which may not be persist in back end). For IKM Control append u no need to have PK defined.
Thanks,
Guru -
Hi All,
Suppose in production any support person need to digging in ODI problems.
E$ tables provided by ODI which will show error records.
How we can grant the E$ table access to production support.
As soon as table will be created by ODI grnrates public access for the tables.
Will this requires KM changes.
Plz suggest.
Thanks a lot for your help.
SandeepIam working on it
I will let you know after i finished it
Thanks guru
Ram Kumar Lanke
www.odiguru.com -
ODI: Using Table Name in Dynamic filters
We have a requirement, where the filters have to be dynamically generated and applied on the source system data stores.
The requirement can be best explained by the below example.
I have EMPLOYEE and DEPARTMENT table as the source datastores and EMP_DEPT (flat table) as the target datastore.
The filter condition will be updated now and then by the admin in a table. They would like to run the integration interface with the condition mentioned in the table.
Metadata table and sample data: (DY_FILTERS)
TABLE_NAME | INTERFACE_NAME | CONDITION
EMPLOYEE | EMP_DEPT | EMPLOYEE.EMPLOYEE_NAME LIKE 'A%'
DEPARTMENT | EMP_DEPT | DEPARTMENT.DEPARTMENT_ID = 10
So now the interface has to run with the conditions 'EMPLOYEE.EMPLOYEE_NAME LIKE 'A%' and DEPARTMENT.DEPARTMENT_ID = 10.
To achieve, the best possible solution I can think of is, I have defined a variable for the dynamic filter and under the refresh section and I am planning to use the following query:
SELECT CONDITION FROM DY_FILTERS WHERE INTERFACE_NAME = <%=odiRef.getPop("POP_NAME")%> AND
TABLE_NAME = ***************.
I was able to pick the interface that is currently involved by using getPop() method where as I dont have clue for getting the table name.
Please share with me, if you have answer. Also if you have any other way to achieve this, please share the same.
Note: The actual scenario is more complex than the example given above. But the crux of the requirement is very well covered in the example.
Edited by: 986046 on Feb 14, 2013 2:06 PMHi,
If you've only one source datastore in your interface, you can retrieve it's name with <%=odiRef.getSrcTablesList("[RES_NAME]", "")%>.
If you have more than one source it will list all you sources.
However I can't see when you plan to refresh your variable. getSrcTablesList won't work before/after the interface execution.
Regards,
JeromeFr -
ODI Error Table and Error Message (Oracle CKM) & Max number of errors
Greetings,
i am two questions that i hope you can give me some hints.
-> Within an ODI Interface, while on tab 'verifications' i choose 100% of maximum allowed errors (pressing checbox % and typing 100), this does not allows errors at all, Instead, i see in Operator that the Interface failed because it reached the maximum allowed errors.
-> The tricky one: I was looking in Oracle CKM, and i cannot find any information about where odiref.getFK("MESS") is contructed. Is the output of this method call changeable? Where this Error Message is build and how can i customize it?
Thanks for your help,
Best regardsHi avin,
-> Within an ODI Interface, while on tab 'verifications' i choose 100% of maximum allowed errors (pressing checbox % and typing 100), this does not allows errors at all, Instead, i see in Operator that the Interface failed because it reached the maximum allowed errors.
Ans: Problem is with interface execution got error out but not for reached the maximum allowed errors, for your clarification can you please delete old session error from operator and try to execute interface, (Expected result may be error out session in operator but not for reached maximum allowed errors)
-> The tricky one: I was looking in Oracle CKM, and i cannot find any information about where odiref.getFK("MESS") is contructed. Is the output of this method call changeable? Where this Error Message is build and how can i customize it?
Ans: http://gerardnico.com/doc/odi/webhelp/en/ref_api/getfk.html --> will give detail info on odiref.getFK()
Note: For more details, please go thru the URL: http://www.groenenberg.nu/Oracle_Doc/AS_11.1.1.5/integrate.1111/e12645.pdf :)
Regards,
Phanikanth -
Hi,
I'm having trouble with the scheduler, when I schedule the import of the metadata into the hyperion interface tables the scheduler brings in only one record. But when I execute manually it imports all the record.
Is there anything I'm missing?
Any help will be verymuch appreciated.
ThanksHere's an SQL query to display the list of INTERFACES that are in a PACKAGE, with the target datastore and its logical schema :
Replace odi_work by your own work schema :
select
projet.project_code as Projet_Code,
dossier.folder_name as Folder,
pack.pack_name as Package,
etape.nno as Step_Number,
interf.pop_name as Interface ,
interf.lschema_name as Target_Logical_Schema,
target.res_name as Target_Table
FROM
odi_work.SNP_PACKAGE Pack
inner join odi_work.SNP_FOLDER dossier on dossier.i_folder = pack.i_folder
inner join odi_work.SNP_PROJECT projet on projet.i_project = dossier.i_project
inner join odi_work.SNP_STEP etape on etape.i_package = pack.i_package
inner join odi_work.snp_pop interf on interf.i_pop = etape.i_pop
inner join odi_work.snp_table target on target.i_table = interf.i_table
Where 1=1
and pack.pack_name = 'name of package'
order by
projet.project_code,dossier.folder_name,pack.pack_name , etape.nno -
I've to query when I save my loadPlan for and scenario within it along with information how those scenario execute either parallel or serial.
Fetch information even before they start.
Also can Two scenario or LoadPlan have same name in single work repository.You can get the information from repository documentation on oracle support - https://support.oracle.com/epmos/faces/DocumentDisplay?id=1903225
Names must be unique for load plans, same for scenarios although they can be versioned. -
Table changes in database are not captured in ODI model level
Hi All,
Can any one help me how to fix the bug in ODI.
Table changes in database are not captured in ODI model level.
Thanks in advanceI created the interface which is running successfully.
Now i did some changes in target table(data base level).
I reversed the updated table in model section. Till here its ok
The table which is updated in the model section is not automatically updated in the interface.
I have to drop the existed datastore in the interface and and re do the entire process of bringing the updated datastore, mapping,etc..
Please tell the any alternate way.
Regards
suresh -
How to convert microsoft excel to odi table
I have data in Microsoft excel file and i want that data in odi in table format. how can i get it?
Refer
http://bhabaniranjan.com/microsoft-excel-as-a-source-and-a-target-as-oracle-in-odi-11-1-1-6/
Thanks -
How to avoid Sequence Gapping in ODI Interface
I have an employee table and a job map table in oracle based on the employee type/group and job type/group I need to pick up the sequence, generate id
and update employee id of employee table using ODI
employee table job table
name type group id type group sequencename seqmin seqmax
pat 1 1 1 1 seq1 1 10
dan 1 2 1 2 seq2 30 40
john 1 3 1 3 seq3 20 100
when I select the sequence using if condition or case statement or decode and call the sequence <%=snpRef.getObjectName( "L" , "My_SEQ" , "D" )%>.nextval
the sequences are creating gaps for every call.as the sequence is incrementing internally for every wrong mapping. How should I get rid of these gaps.
In oracle database we call functions in the case condition.These functions consists of the seq.nextval code and the unwanted incremental gapping is avoided.
But in the case of ODI how can we get this.
Thanks,
VikramI am facing this issue when I execute on the source or staging area.When I try toexecute on the target,the ODI
doesn't allow me to execute and gives the following warning
"A mapping executed on the target cannot reference source columns. Move this mapping on the source or the staging area. Target Column Employeeid"
In my case I am using IKM Oracle Incremental update
the source datastore is employee table, job table and target is copy of employee table(as i need to update the employee id column with sequence numbers by picking the right sequence from job table,sequence name column)
Maybe you are looking for
-
We are working on a capacity planning project for one of our customers and we need an estimate on the maximum number of PVCs supported in the following situations: a)Cisco BPX 8620 and 8680 chassis with BCC-4V 128MB DRAM and 4 MB BRAM ? b)Maximum num
-
IMac to PC iTunes sharing?
I just downloaded iTunes on my PC laptop. How do I play music from my iMac on my laptop?
-
my mac is slowing down. how do i speed it up?
-
I see no way to adjust the volume... am I missing something?
-
Best way to add additional parent child attribute values.
I have a parent Child attribute in my dimension. I am currently displaying the correct ID value as the business wants. So now they can see the rollup of the ID(intOrgNodeID values.They would also like to see the same rollup of the Name (vcharOrgNod