Join conditions in Multiprovider and Infoset
Hi experts,
1. I am using the multiprovider 0IC_MC01 which contains the cube 0IC_C03 and 0MATERIAL.
I want to know the join conditions between these two infoproviders in the Multiprovider. How and where to get this info?
2. Similarly, I've a Infoset(custom created) which contains 2 DSOs. I want to know the join conditions between these 2 DSOs in the Infoset.
Please give a hint on this.
Hi,
pls go through the following steps and u can get the required info form the links provided...
1. Create an InfoArea to which you want to assign the new MultiProvider.
Choose Modeling ® InfoProvider.
2. In the context menu of the InfoArea, choose Create MultiProvider.
3. Enter a technical name and a description.
4. Choose Create.
5. Select the InfoProvider that you want to form the MultiProvider. Choose Continue. The MultiProvider screen appears.
6. Use drag and drop to transfer the required InfoObjects into your MultiProvider. You can also transfer entire dimensions.
7. Use Identify Characteristics and Select Key Figures to make InfoObject assignments between MultiProviders and InfoProviders.
http://help.sap.com/saphelp_nw70/helpdata/EN/cf/bc734190ba137de10000000a155106/frameset.htm
for infoset u can hav the deatils from below
http://help.sap.com/saphelp_nw70/helpdata/EN/d2/cb466d455611d189710000e8322d00/frameset.htm
regards,
rudra.
Assign points if useful
Similar Messages
-
Steps to create Multiprovider and infosets..
Hi gurus,
Can anyone post me steps to create multiprovider and infosets..
Points will be awarded.
Thanks in advance,
VenkateshA MultiProvider is a type of InfoProvider that combines data from a number of InfoProviders and makes it available for analysis purposes.
The MultiProviders itself does not contain any data. Its data comes entirely from the InfoProviders on which it is based. MultiProviders only exist as a logical definition. These InfoProviders are connected to one another by a union operation.
One can combine InfoCube, ODS objects, InfoObjects and InfoSets in a MultiProvider.
A union operation is used to combine the data from these objects into a MultiProvider.
Here, the system constructs the union set of the data sets involved. In other words, all values of these data sets are combined.
InfoSets allows reporting on several InfoProviders by using combinations of InfoObjects (master data-bearing characteristics) and ODS objects via a join condition.
An InfoSet can have following join conditions
Inner Join
Left Outer Join
Inner join and left outer join are only different in the situation where one of the involved tables does not contain any suitable record which meets the join conditions.
steps for creatin multiprovider.
Step1: Enter Transaction RSA1. Right Click on Infoarea and select u2018Create MultiProvideru2019. Provide technical name and description for the MultiProvider.
Step2: Select Data Targets (InfoCube, ODS and InfoObject or Infosets) on which MultiProvider should be based.
Step3: Select the Characteristics which should be part of the MultiProvider design.
Step4: Select Time Characteristics and Key figures.
Step5: Create dimensions and assign the characteristics to the dimensions.
Step6: Identify the characteristics, time characteristics and key figures in u2018Identificationu2019 tab.
Step7: Save and Activate the MultiProvider.
steps for creating infoset.
Step1: Enter Transaction RSA1. Right Click on InfoArea and select u2018Create InfoSetu2019. Provide technical name and description for the InfoSet.
Step2: Choose ODS or InfoObject on which you want to build InfoSet.
Step3: Select the characteristics/key figures required in InfoSet design and join the common characteristics via Inner or Left Outer Join.
Step 4: Save and Activate InfoSet.
hope this helps you in creating them... -
Join condition between PO_REQUISITION_HEADERS_ALL and WF_NOTIFICATIONS
Hi,
Could anyone tell me what is the join condition between PO_REQUISITION_HEADERS_ALL and WF_NOTIFICATIONS?
I joined these two tables by WF_NOTIFICATIONS.ITEM_KEY = PO_REQUISITION_HEADERS_ALL .WF_ITEM_KEY.But I cannot found some approved requisitions item key in WF_NOTIFICATIONS table.
Please help.
I paste my query below:
SELECT PRH.ORG_ID ORG_ID,
WF.ITEM_KEY,
WF.FROM_ROLE,
PRH.WF_ITEM_KEY,
WF.RECIPIENT_ROLE APPROVERS_NAME,
TRUNC(NVL(PRH.APPROVED_DATE, '')) DATE_APPROVED,
WF.SUBJECT SUBJECT,
PRH.DESCRIPTION REQ_DESC,
PRH.SEGMENT1,
(SUM(NVL(PRL.AMOUNT, 0)) +
SUM(NVL(PRL.UNIT_PRICE, 0) * NVL(PRL.QUANTITY, 0))) REQ_AMT,
GL.SEGMENT1 || '.' || GL.SEGMENT2 || '.' || GL.SEGMENT3 || '.' ||
GL.SEGMENT4 || '.' || GL.SEGMENT5 || '.' || GL.SEGMENT6 || '.' ||
GL.SEGMENT7 || '.' || GL.SEGMENT8 CHARGE_ACCT
FROM APPS.WF_NOTIFICATIONS WF,
APPS.PO_REQUISITION_HEADERS_ALL PRH,
APPS.PO_REQUISITION_LINES_ALL PRL,
APPS.PO_REQ_DISTRIBUTIONS_ALL PRD,
APPS.GL_CODE_COMBINATIONS GL
WHERE WF.FROM_ROLE IN ('GHAWKINS', 'GHALVERSON', 'NCERNOTTA', 'DCOLLOPY', 'RHAY')
AND BEGIN_DATE > SYSDATE - 60
AND WF.MESSAGE_TYPE = 'REQAPPRV'
AND WF.ITEM_KEY = PRH.WF_ITEM_KEY --added
AND PRH.AUTHORIZATION_STATUS = 'APPROVED'
AND PRL.REQUISITION_HEADER_ID = PRH.REQUISITION_HEADER_ID
AND PRD.REQUISITION_LINE_ID = PRL.REQUISITION_LINE_ID
AND PRD.CODE_COMBINATION_ID = GL.CODE_COMBINATION_ID
GROUP BY PRH.ORG_ID,
WF.ITEM_KEY,
WF.FROM_ROLE,
PRH.WF_ITEM_KEY,
WF.BEGIN_DATE,
WF.SUBJECT,
WF.RECIPIENT_ROLE,
PRH.APPROVED_DATE,
PRH.DESCRIPTION,
PRH.SEGMENT1,
PRL.REQUISITION_HEADER_ID,
GL.SEGMENT1 || '.' || GL.SEGMENT2 || '.' || GL.SEGMENT3 || '.' ||
GL.SEGMENT4 || '.' || GL.SEGMENT5 || '.' || GL.SEGMENT6 || '.' ||
GL.SEGMENT7 || '.' || GL.SEGMENT8Pl see if these MOS Docs can help -
603232.1 - How to Diagnose Purchasing Document Approval Routing
579522.1 - Forward Document Form FAQ
431767.1 - How To View Requisition From The Email Notifications For Which Workflow Data Is Purged
HTH
Srini -
Hi,
What is the Join condition between mtl_system_items_b and mtl_onhand_quantities_detail?
Thanks & Regards,
Hari BabuPlease see the query in (Consolidate Onhand Quantity /Sum Quantity Zero in MTL_ONHAND_QUANTITIES_DETAIL (MOQD) / Concurrent Program Consolidate Inventory Onhand Quantities / Datafix for 0 Quantity Displayed For Finished Goods (Doc ID 353345.1)), is shows how to join those 2 tables.
http://etrm.oracle.com
Thanks,
Hussein -
Difference between join conditions using NVL and not using NVL
Hi,
I have a join condition in one of the applications as follows.
NVL(RQ.out_mesg_id,0) = NVL(RS.out_mesg_id,0)How is it different without using NVL function. What is the internal execution difference.
RQ.out_mesg_id = RS.out_mesg_idWill there be any difference in Performance and also in the query output.
Regards,
PaboluPabolu wrote:
Hi,
I have a join condition in one of the applications as follows.
NVL(RQ.out_mesg_id,0) = NVL(RS.out_mesg_id,0)How is it different without using NVL function. What is the internal execution difference.
RQ.out_mesg_id = RS.out_mesg_idWill there be any difference in Performance and also in the query output.
Regards,
PaboluI suppose that's a bit of a trick question (or could be).
If the column is allowed to be NULL, then your 2 queries are NOT equivalent, so comparing isn't useful since presumably you can only have one correct result :)
However, if RQ and RS (no idea what the table names are) are both defined as having a NOT NULL constraint on the column out_mesg_id (ignoring the possibility of column level masking possible with the use of VPD here) then the optimizer could do better if you rewrote the query without the use of NVL (this would of course depend on your tables, indexes, etc ... i am merely showing you that it COULD make a difference).
SQL> select * from v$version;
BANNER
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL>
SQL> create table t1 as
2 select level as col1, case when mod(level, 10) = 0 then null else mod(level, 10) end as col2
3 from dual connect by level <= 1000;
Table created.
SQL>
SQL> alter table t1 add constraint t1_pk primary key (col1);
Table altered.
SQL>
SQL> create index t1_i_001 on t1 (col2);
Index created.
SQL>
SQL> exec dbms_stats.gather_table_stats(user, 'T1', cascade => true);
PL/SQL procedure successfully completed.
SQL>
SQL> create table t2 as
2 select level as col1, case when mod(level, 100) = 0 then null else mod(level, 100) end as col2
3 from dual connect by level <= 1000;
Table created.
SQL>
SQL> alter table t2 add constraint t2_pk primary key (col1);
Table altered.
SQL>
SQL> create index t2_i_001 on t2 (col2);
Index created.
SQL>
SQL> exec dbms_stats.gather_table_stats(user, 'T2', cascade => true);
PL/SQL procedure successfully completed.
SQL>
SQL> --query using NVL
SQL> explain plan for
2 select count(*)
3 from t1, t2
4 where nvl(t1.col1, 0) = nvl(t2.col1, 0)
5 /
Explained.
SQL>
SQL> SELECT * FROM table(DBMS_XPLAN.DISPLAY);
PLAN_TABLE_OUTPUT
Plan hash value: 663667122
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 8 | 5 (20)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 8 | | |
|* 2 | HASH JOIN | | 1000 | 8000 | 5 (20)| 00:00:01 |
| 3 | INDEX FAST FULL SCAN| T1_PK | 1000 | 4000 | 2 (0)| 00:00:01 |
| 4 | INDEX FAST FULL SCAN| T2_PK | 1000 | 4000 | 2 (0)| 00:00:01 |
PLAN_TABLE_OUTPUT
Predicate Information (identified by operation id):
2 - access(NVL("T1"."COL1",0)=NVL("T2"."COL1",0))
16 rows selected.
SQL>
SQL> --verbose version of NVL
SQL> explain plan for
2 select count(*)
3 from t1, t2
4 where t1.col1 = t2.col1
5 or ( (t1.col1 is null and t2.col1 = 0) or (t2.col1 is null and t1.col1 = 0) or (t1.col1 is null and t2.col1 is null) )
6 /
Explained.
SQL>
SQL> SELECT * FROM table(DBMS_XPLAN.DISPLAY);
PLAN_TABLE_OUTPUT
Plan hash value: 1043818223
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 8 | 2 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 8 | | |
| 2 | NESTED LOOPS | | 1000 | 8000 | 2 (0)| 00:00:01 |
| 3 | INDEX FAST FULL SCAN| T1_PK | 1000 | 4000 | 2 (0)| 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | T2_PK | 1 | 4 | 0 (0)| 00:00:01 |
PLAN_TABLE_OUTPUT
Predicate Information (identified by operation id):
4 - access("T1"."COL1"="T2"."COL1")
16 rows selected.So if we compare the 'verbose' version of the query, in the "predicate information" section of the explain you can see that the optimizer was able to completely ignore the
or ( (t1.col1 is null and t2.col1 = 0) or (t2.col1 is null and t1.col1 = 0) or (t1.col1 is null and t2.col1 is null) ) condition since it knows that neither t1.col1 NOR t2.col1 columns can be null (by definition), and because of this we get a slightly different index access choice. -
whats the difference between a multiprovider and an infoset.
can anyone explain to me....
regards
abhiThis topic has been widely discussed and you can find numerous threads relating to the same. please check the forums before you post a thread, that helps everyone
In what case would we use Multi-Provider? -
Infoset Join condition on Key feilds and data fields
Hi Guys,
I have a requirement to biuld the Info set with join conditon on two DSO's the info objects which i am using in the JOin condition are defined as data fieds in one DSO and defined as key fields in another DSO, is it possible to define join condition on key fields and data fields.
The two info objects are
0AC_DOC_NO
0ITEM_NUM
These two info objects are defined as data fields in DSO : 0LIV_DS1 Invocie verificaion
key fields in DSO: 0FIAP_0o3 FI AP Line Item
Please suggest me is it possible to define join the condtion on the data fields and key feilds.
Thanks
Best regards
SGHi
yes you can create join, you will get any issue in reporting level.
example: Say i want to create Info Set on 0MATERIAL and Sales DSO.
In 0MATERIAL Info Object it is key filed, but in my DSO 0MATERIAL is data field.Still we can create
Creation of join is dependent on fields common in your source objects.
check out the below document
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/2f5aa43f-0c01-0010-a990-9641d3d4eef7?QuickLink=index&overridelayout=true
Regards,
Venkatesh
Edited by: Venkateswarlu Nandimandalam on Sep 27, 2011 2:26 AM -
Using records that satisfy and do not satisfy join condition
Hi,
My requirement is to use the records which satisfy and do not satisfy the join conditions in ODI.
Can any one explain how to achieve this?
Thanks in advance.
Regards,
SRKHi Katukota,
Thanks for the suggestion. When i tried to implement the same with an OUTER JOIN to capture the records that satisfied and not satisfied the join condition, the SQL statement is not getting created properly and as given below
"from DEPT [empty] EMP where (1=1) And (DEPT.DEPTNO=EMP.DEPT(+))"
THere is no ',' operator between the two tables in the FROM Clause. When it is corrected in the ODI operator, the task is executed successfully.
Can you please suggest the way forward to avoid this error?
Thanks in advance.
Regards,
SRK
Edited by: user6416145 on 04-May-2009 14:13 -
Multiprovider-links with infoobjects and infosets
Hi Gurus,
Advance thanks to all.
Can any of tell me how can seen the multiprovider is link up with the infoobject and infosets in seen t.code or etc,the link with the infoobject etc will happen in backend is it correct ?
waiting for your points.
regards
sanjeev kumarHi,
at RSA1 --> info provider,,find and click your multiprovider on next screen there are tabs(infoset/info cubes/info objects/dso), check each tab. thru tshat you will know the objects which are connected to your multi provider.
On each tab if any object name maintained and selected then that is connected to your multiprovider.
Thanks -
Identify join condition between any two table.
Hi,
I have set of tables. I don't know whether these tables are interlinked or not. I need to identify the underlying join condition in. As per my knowledge if my datasource is based upon infoset query , then I can go to SQ02 and find the underlying join condition. But in this case, I have only table names. How do i find whether they are interlinked or not.
Thanks in advance
Regards
SnehasishHi ,
Go to SE11 t-code
select VIEW radio button
give view name start with Z.select create button
select databseview radiobutton. select copy button.
it opens a view creation window.
give table names in leftside .
select RELATIONSHIP button. -
Hi all,
Is it possible to propose a join condition (using SQ02) between two fields of two tables other than what is proposed by the system?
Thanks
SandeepHi Sandeep,
You can very much match other fields of two tables in SQ02.
1. Goto SQ02
2. Give the infoset name
3. Goto change mode
4. Press the Join button, it will display the join conditions between the two tables.
5. Press Join Conditions, it will propose the system generated join conditions
with key fields
6. If you want to match your own fields other than the key fields you can just
point the mouse pointer on the field of the first table and just drag it to the field
of the second table. It will create a join condition.
7. Save the infoset.
Regards,
Jayaram... -
More than one join condition for 2 tables in obiee
Hello,
I am using obiee 11g.
There are 2 tables tableA and tableB where the join condition is like (tableA.col1=tableB.col1) or (tableA.col1 is null and tableB.col1 is null)
where should i do these type of joins.
I tried putting in physcial layer->f(x) but giving error like here only columns an d opertaors are allowed.
Thanksok here it goes.
I have a tableA with columns col1(pk),col2 and other columns
I have tableB with columns col1(pk),col2..Only these 2 columns.
Now distinct tableA.col2 values are put in tableB.col2. For those distinct values i have put the tableB.col1 values.
Now tableA.col2 as well as tableB.col2 can be null beacuse there may be null values in tableA.col2.
Now in tableB i have added one more row which has col1 as value and col2 as null.
Now when in physical layer when i do tableA.col2=tableB.col2 i dont get the null values.
What i want is whenever the tableA.col2 and tableB.col2 is null then take tableB.col1 for those vales.
So when i query i do
select * from tableA,tableB where
((tableA.col2=tableB.col2) or (tableA.col2 is null and tableB.col2 is null))
What i want is when i do a join i should be able to give this OR condition in rpd thats it.
because when i do in where clause of content tab it goes like a AND condition and not OR.
Thanks
Edited by: user123 on Jul 5, 2011 1:57 PM -
Hello Experts,
Infocubes?ODS?Multiprovider?Infoset?
In our design stage we had no problem creating ODS and Cube's but as our requirements kept changing we had to create Infosets rather than Multicubes as we were not having common fields between Cube and ODS. Secondly we couldn't have cubes as Infosets are built between ODS and Infoobjects.
Can someone throw some light on the performance issues based on our current design were we have ODS and Infosets built. What are the pros and cons between
1) InfoCubes and ODS
2) MultiCubes and Infosets
Any kind of thoughts would be of great help in our analysis.
Thanks,
Priya
Guys anyone who faced difficulty in analyzing such issues please do post your views.We has the same requirements ...and had to build a lot of info sets ....
Reporting on any of the Navigational Attributes is NOT possible on an Info Set.
Go to RSRT and look on what fields on which the query is doing a Sequential read...if required try to build indexes on that fields.
In some cases we cannot restrict the queries ...if you are queering on yearly reports ...running against InfoSet's is not at all recommended......
For better performance of your queries try to build secondary indexes and as far as possible try to avoid InfoSet ....BW 3.5 has ADP try to workout something on that if u are on 3.5.
For performance try to compress your request in your cubes on your BP.
Let me know
Message was edited by: Suresh Kaudi
Message was edited by: Suresh Kaudi -
Multiprovider and Authorizations
Multiprovider and Authorizations:
The challenge is to ensure you do not have more access trough the multiprovider then you have trough the sourcecubes.
example:
Multiprovider, Joining sourcecube 1 + 2 ( Heterogeneous MP combining data from different infoareas)
Sourcecube 1: Authorizations for company code X+Y
Sourcecube 2: Authorizations for company code Y+Z
What company codes in which source cubes will you have access to report on trough the multiprovider?
1) XYZ from both cubes ?
2) X from cube 1 , Y from cube 1+2, Z from cube 1
3) only the common Y from cube 1 +2
The expected results is scenario 2. Basically the same access/restriction you would get, if reporting directly on the sourcecube's.
This can of course be tested with a test user with limited authorizations. The obstacle here though is that the authorization setup is defined with roles and a business unit hierarchy authorization object (consisting of several company codes) that is not fully in place yet. Hence the test will not give you a 100 % liable verification.
Has anyone else faced the same question, or can verify the expected results? I have not found any good documentation on authorization and multiprovider .
(PS, With Support package 2 for BW 3.0B a new authorization object is available used to define authorizations on a Multiprovider level. S_RS_MPRO - Multiprovider. This gives more flexibility , but is not the answer to the general question)
Best regards Per RoarIt depends. When you create an authorization object you decide on which InfoProviders the authorization object is valid. So if it's valid on Cube 1 it doesn't say anything about authorization on the Multiprov.
Best regards
Dirk -
Join is not working for NULL values on join condition
HI ,
I have the following problem .
SQL> select *from a;
X Y
1
2
3
4
SQL> select *from b;
B Y
1
2
SQL> select f.x,f.y,s.b from a f,b s
2 where f.x=s.b(+);
X Y B
1 1
2 2
4
3
SQL> select f.x,f.y,s.b from a f,b s
2 where f.x=s.b(+)
3 and f.y=s.y;
no rows selected
So now if i include one more join condition where in null = null situation arises , it is now working.
Simply saying its not treating ( 1 and null ) and ( 1 and null ) are same.
What is the solution.Is this a expected behaviour.
Thanks
Pramod GarreHI
I want something like this
SQL> select f.x,f.y,s.b from a f,b s
2 where f.x=s.b(+);
X Y B
1 1
2 2
4
3
SQL> select f.x,f.y,s.b from a f,b s
2 where f.x=s.b(+)
3 and f.y=s.y;
Instead of "now Rows " i have to get
X Y B
1 1
2 2
4
3
Is there is any way to do this.
Thanks
Pramod
Maybe you are looking for
-
DOCMAS Error while checking in and storing
HI Gurus, i need to send Documents from one system to an other System. I use BDA5 Both system are using different File Systems and the DMS Archive is also different. I can send the DOCMAS without errors. When i Try to process the Documents i can not
-
IPod Touch 4G and iTunes 10.2.2 sync issues on mac?
Hey, I recently purchased an iPod Touch 4G 32GB as a replacement for my iPod Touch 2G 8GB, I plugged it into iTunes on the first boot up of the iPod, like normal, and expected to be presented with the usual set of prompts about how I would like to se
-
Automate/batch photoshop shuts down
Using windows xp sp3, CS5, whenever I click on automate/ batch,, I get the message Adobe Photoshop CS5 has encountered a problem and needs to close. we are sorry for the inconvenience. What it says is the problem is AppName; photoshop.exe AppVer.
-
AE 2220 - USB Devices Not Working
My AE 2220 will not properly mount and access USB devices in any of the USB ports. I've unsuccessfully tried to use three different thumb drives and a Sony camcorder and experimented with every available USB port. The AE 2220 is running the factory
-
How to set Statistical wbs element?
hi,everyone. i'm a green hand in PS. i know Statistical wbs element is different from normal wbs element from you guys. but i don't know how to set a Statistical wbs element, i mean how to make a normal wbs element become a Statistical wbs element?