Need help in OBIEE BMM layer logic implementation
Hi All,
I have a requirement in my RPD development.
I have two tables account and site.
Table_Name:*Account*
Column_Name:
AccountID Store_Name Site Data_1_Name Site_Data_2_Name Site_Data_3_Name
264364 Wegmans_ Food_Markets GSF Floor_Type BSC
999999 Walmart Floor_Type BSC
999998 Walgreens BSC Avg_Cust_Count GSF
Table_Name:*Site*
Column_Name:
Site_ID Store_Name Account_ID Account_Name Site_Name Site Data_1_Value Site Data_2_Value Site Data_3_Value
264367 Wegmans_Food_Markets 264364 Wegmans_Food_Markets Alberta_Drive_#82 96114 Vinyl Kellermeyer
264368 Wegmans_Food_Markets 264364 Wegmans_Food_Markets Alberta_Drive_#83 96109 Poly_Vinly ABC
123 Walmart 999999 Walmart Alberta_Drive#1000 Vinly XYZ
1678 Walgreens 999998 Walgreens Calgary_ Drive#9009 ABC 10000 56565
Site Logical/ Presentation Table in OBIEE
Site_ID Store_Name Account_ID Account_Name Site_Name GSF Floor_Type BSC
264367 Wegmans_Food_Markets 264364 Wegmans_Food_Markets Alberta_Drive_#82 96114 Vinyl Kellermeyer
264368 Wegmans_Food_Markets 264364 Wegmans_Food_Markets Alberta_Drive_#83 96109 Poly Vinly ABC
123 Walmart 999999 Walmart Alberta_Drive#1000 Vinly XYZ
1678 Walgreens 999998 Walgreens Calgary_ Drive#9009 56565 ABC
for account table we have the Site Data_1_Name ..Site Data_3_Name columns values which is the column name for the values in Site table(i.e the values in the columns "Site Data_1_Value..Site Data_1_Value") . this values change dynamically based on the column name(Site Data_1_Name ..Site Data_3_Name ) in Account Table . how do i map this column values in RPD level ? or do we have any logic to implement this. PLEASE HELP ME TO SOLVE THIS ...
Thanks in advance ,
Mohan Mano
HI mohan the information you provided holding some sensitive data please delete some of them otherwise you might be in trouble.
Make join between the account_ID and the SITE_ID based on the inner join columns which match in both tables will retrieved in the report. If you want to see the null values as well you can use outer join.
Thanks,
chak
Similar Messages
-
In the OBIEE repository, if you create FKs in the physical layer between tables, you shouldn’t have to create them in the business model, correct? It is crazy that the FKs that exist in the physical layer don’t even show in the business model and the consistency check fails. Any ideas ?
Hi user,
IF u developed the repository in offline mode and which u had given the mappings in physical layer and moved the tables to bmm.After u made this as the current repository(ie online mode).At this time the logical joins will be created automatically.Once this is in online mode if u had given any mappings in physical diagram then it wont affect in the business diagram.So here u need to give the logical join in business diagram in bmm layer for those mappings created in physical diagram. -
I need help with a textArea which wont implement a JScrollpane
I have created a text area, but when the words get to the bottom there is no scrollbar. I tried implementing the scrollpane to the text area, but it doesnt work. I added it to a panel, then the panel to the frame.
(Here are the snippits of coding that I have)
public class RPS extends JFrame implements ActionListener, ItemListener
JTextArea textDisplay = new JTextArea(50,30);
JScrollPane jscrollpane = new JScrollPane(textDisplay);
//constructor?
public RPS()
///various menu items in here and buttons with action listeners
public void createPanel()
JPanel outputPanel = new JPanel();
outputPanel.setLayout(new GridLayout(1,1));
outputPanel.setBorder(BorderFactory.createTitledBorder("TEXT IN HERE"));
outputPanel.add(textDisplay);
//further down
JPanel rightPanel = new JPanel(new GridLayout(3,1));
JPanel leftPanel = new JPanel(new GridLayout(1,1));
leftPanel.add(outputPanel);
add(leftPanel);
add(rightPanel);
public static void main(String[] args)
JFrame frame = new RPS();
frame.setLayout(new GridLayout(1,2));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}So what I have is a frame, with two panels. One on the left and one on the right. The textDisplay (text area) is displayed on the outputPanel, which is then added to the left panel, then added to the frame. The right panel is for all the buttons which I left out to keep this simple.
Can anyone help me please? All the other irrelevant coding has been left out.
Need help asap please :( I was sure everything is correct.you add the textArea to the scrollPane
JScrollPane jscrollpane = new JScrollPane(textDisplay);but then you add (only) the textArea to the panel
outputPanel.add(textDisplay);whereas you should be adding the scrollpane to the panel
outputPanel.add(jscrollpane); -
Left outer join usage in obiee BMM layer
Hi All,
We lately started using left outer join in our bmm layer , to meet the requirement expectation .
problem : We have two tables Fact A , Dim B . There is an join int_id column to join them . Problem is... in table Dim B , we have 3 millions rows of Int_id and in fact table it is loaded for only data available(1 million rows).
Due to this we are dropping rows in the report ..as it is only getting data where fact.int_id = dim.int_id. So we used left outer join to solve to one particular report .(we know we can do ETl to load dummy int_id and make it null , but it is huge effort ..so we did left outer join)
These days , same kind of reports are in requirement . if i keep on doing same left outer join to meet the requirement in BMM layer ? is there any disadvantages due to this ? any performance degrade due to this ? please throw few lines on left outer join and its usage ?
Thanks,
SriRemodel your tables that might be a partition or any other way and follow in BI as per your new model.
Simply: Go for ETL kind of solution -
HI there, need help in thinking of a logic.
Good Day!
I'm having trouble thinking of the logic in this simple (but tediously hard for me) problem.
I've got two internal tables, say table A and table B. I need to output records from table A that do not match records from table B. and vice versa.
The thing is, before I can output them, there are 3 primary keys for each table. let's say, ID, Document, and date. I need to match 3 of them to the other table, and if they don't match I would have to print them out.
What I did was.
Loop at TABLEA.
Loop at TABLEB.
IF TABLEA-ID NE TABLEB-ID AND ...
WRITE TABLEA-ID ...
ENDIF.
ENDLOOP.
ENDLOOP.
The problem is, let's say table a has
ID: 0
Doc:1
Date: 1
ID:1:
DOC:1
DATE:1
table b has
ID:1
DOC:1
DATE:1
and so on..
the loop will first compare table a with b and if it doesn't match well.. it prints it out immediately. Maybe the 1st record of table A is in the 20th record of table B. So I get multiple unmatches. So now I'm turning to the experts here, hope you guys can help.
I'm not sure if there was a faster way to do this. Any suggestions would be appreciated.
Edited by: Katrina Dy on Jul 2, 2008 8:56 AMHello
sort tablea by ID Document date.
sort tableb by ID Document date.
loop at tablea.
read tableb with key ID = tablea-ID
Document = tablea-Document
date = tablea-date
binary search.
if sy-subrc NE 0.
write: tablea-ID, ...
endif.
endloop.
loop at tableb.
read tablea with key ID = tableb-ID
Document = tableb-Document
date = tableb-date
binary search.
if sy-subrc NE 0.
write: tableb-ID, ...
endif.
endloop. -
NEED HELP!!!! Logical Standby and RMAN.
Hello,
I have a Data Guard env setup on win 2000 with 9.2.0.4.
I now have primary and standby. I was wondering if I create a logical standby to achieve transparent application failover. What I am saying is if the primary node dies, then in tnsnames I want to point to the logical standby, since it is an open database, the users can still perform without knowing the db went down. Then if we indeed need a failover we can failover to the physical standby. This would ensure availability without having to implement RAC or AQ, Right? Also, I read that you should create rman schema (recovery catalog) on standby db. Any thoughts?Were you able to figure this one out?
I have a similar configuration as you - the same motherboard and an eVga Geforce 3 6600 fanless. With the latest BIOS (3.8) and this video card, the system will not go into Standby completely. I hear the HDD head park and the video goes black, but the LEDs on the front of the PC chassis and the case/PS fans do not stop. Pressing the button to bring the PC out of Standby, rather, whatever state it is in, works. -
Join issue OBIEE (BMM Layer)
Hi All -
1. I have following tables:
D1 - Dimension Table
D2 - Dimension Table
D3 - Dimension Table
F1 - Fact Table
We have join between - D1 - F1, D2, F1 & D3 - F1
2. We have some more tables :
D4 - dimension Table
F2 - Fact Table
We have join between - D4 - F2
3. We have some more tables :
D5 - Dimension Table
F3 - Fact Table
We have join between - D5 - F3
Now the scenario is we need to enable joins between all these tables in the logical layer. i created dimensional hierarchies and assigned at the total level for the fact tables. but it is not working.
can anybody please lookinto this issue?
ThanksI noticed that if you create the FK in the physical layer BEFORE moving the columns into the Business Model layer it will keep them when you bring them over, but if you create the columns in the BM layer then made the physical joins you have to go back and join in the BM layer.
Unfortunately if you'll lose anything in the Presentation or Business Model layer if you remove it from the BM and want to re-join. -
Need help on OBIEE 11g. RPD or Analytics
Hello,
I have a requirement.. for which the data in columns(in database) needs to get counted based on conditions and should be displayed in Rows in the reports.
Example below
The data in the table is as shown below.. in columns
Eng_code Math_code Read_code
1 2 1
1 2 2
2 3 3
U 2 U
3 1 U
In the report the data should be displayed as below...
Total
Eng xxx
Math xxx
Read xxx
I dont have this Eng, Math, Read flags in the table and I have to derive them based on the columns. I'm trying to get this using a case like
case when Eng_code in ('1','2','3','U') then 'Eng'
when Math_code in ('1','2','3','U') then 'Math'
when Read_code in ('1','2','3','U') then 'Read'
But I'm getting only 'Eng' as the result. Any help would be greatly appreciatedHi User,
It seems to be you need a Count( Engg_Code), Count(Math_code), Count(Read_code) and show all of them Under same Column Total.
Create Logical column in Rpd to calculate those counts.
Logical column 1 -> Name it as 'Total Eng Codes' -> Count(Engg_code)
Logical Column 2 -> Name it as 'Total Math codes' -> Count(Math_code)
Similarily even for Read_code.
This shows count of those values like 200, 400, 600 individual.
But, if you want to show Like Eng 200, Math 400, Read 600.....
Then cast the same column using this one Concatenate (Eng ||Total Eng Code)
similarily, all the three.
Take a column Conc(Eng || Total Eng Code) custom name : Total.
Now, using union by similar request or else, by writing case statement read other two values.
Using similar request- Take intially, one column. (Apply union - click on combine similar request)
- Now take second column.
Similarly add as many number of columns as required -
Need help - install OBIEE in Linux box
i need a document for OBIEE 11gr1 installation document
i already downloaded the document from oracle website ...i need except that any useful blogs links and URL to install
OBIEE 11R1 in Linux box(OEL4U5)hi saichand,
Already i have posted my issue in this forum( OUI Seesion failed - OBIEE installation ---- Sep 13, 2010 9:33 PM Last Post By: HMS) before one week.
but i didn't get the reply to solve that issue. thats why i m posting a new thread for OBIEE installation document
and links, to solve the installation errors myself.
kindly share your ideas to solve the OBIEE installation error which i was posted earlier.
thanks...
Edited by: HMS on Sep 13, 2010 9:58 PM
Edited by: HMS on Sep 13, 2010 10:00 PM -
Need help in correlated sub query logic
Hi ,
I have one procedure with cursor. I have given small part of the cursor as shown below .
SELECT
A.DAY_DATE,
A.COUNTRY_CODE,
A.INST_CODE,
a.bra_code,
a.cus_num,
a.cur_code,
a.led_code,
a.sub_acct_code,
(tra_amt * SPOT_RATE) pre_day_crnt_bal,
t.mat_date,
t.NEW_INT_RATE int_rate,
t.DEB_CRE_IND int_chg_pai_ind,
a.ACCT_TYPE,
(SELECT COUNT (
DISTINCT TO_CHAR (day_date, 'mm')
FROM PIO_TIMES
WHERE day_date BETWEEN a.day_date
AND NVL ( T.MAT_DATE,A.DAY_DATE)
AND TO_CHAR (day_date, 'dd') = '31') Test
Here how can I build the logic for inside select statement.
I tried to build the separate stream for the inside select statement but I am confusing how to handle the count in the inside the query.
Please help me how to build the logic for the inside query statement .
Thanks & Regards,
Ramana.Hi Balakrishna,
Thanks for your support
I have applied but I am not getting the column in the output columns from the custom sql function.
As per the procedure we are using the all conditions like between and month or date conditions to find the count of distinct months.
If we use partial conditional in the custom SQL and partial conditionals in the lookup condition clause is it give the same result?
How can we get the field of custom sql in the output field.
Thanks & Regards,
Ramana. -
Need Help regarding separate GUI and logic class
Hi,
I was given this assignment and I'm stuck big time.
Basically I have a GUI class for a stopwatch interface.
public class WatchGui implements Gui{
JButton b1, b2;
JLabel minutes, symbol1, seconds, symbol2, hundredths;
StopWatch stopwatch;
public WatchGui(){
stopwatch = new StopWatch();
b1 = new JButton("RUN");
minutes = new JLabel("00");
ActionListener al = new MyActionListener(stopwatch);
b1.addActionListener(al);
// Called to connect a watch to the GUI
public void connect(Watch w) {
public void setDisplay(String mm) {
minutes.setText(mm);
public void addComponentsToPane(Container pane) {
pane.setLayout(null);
pane.add(b1);
pane.add(b2);
pane.add(minutes);
Insets insets = pane.getInsets();
public void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("XXX");
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Set up the content pane.
WatchGui Pane = new WatchGui();
Pane.addComponentsToPane(frame.getContentPane());
//Size and display the window.
Insets insets = frame.getInsets();
frame.setVisible(true);
}I have a watch class which function as the engine for the stop watch
import java.awt.event.*;
import javax.swing.*;
class StopWatch implements Watch {
WatchGui watchgui;
public StopWatch() {
running = false;
count = 0;
public void connect(Gui g) {
watchgui = (WatchGui) g;
watchgui.createAndShowGUI();
public void runStop() {
mm = String.valueOf("100");
watchgui.setDisplay(mm);
class MyActionListener implements ActionListener {
StopWatch stopwatch;
public MyActionListener(StopWatch stopwatch) {
this.stopwatch = stopwatch;
public void actionPerformed (ActionEvent e) {
stopwatch.runStop();
}To get the StopWatch to work, I have this driver class
import java.lang.reflect.Constructor;
public class Driver
public static void main(String[] args)
throws Exception
if( args.length!=1 ){
System.err.println("Usage: Driver WATCHNAME");
System.exit(1);
return;
String watchName= args[0];
Class cl= Class.forName(watchName,true,Thread.currentThread().getContextClassLoader());
Constructor c[]= cl.getConstructors();
if( c.length==0 ){
System.err.println("There is NO constructor in your watch class");
System.exit(1);
return;
if( c.length>1 ){
System.err.println( "There is more than one constructor in your class");
System.exit(1);
//Construct the components
Watch w=(Watch)c[0].newInstance(new Object[0]);
Gui g= new WatchGui();
//Connect them to each other
g.connect(w);
w.connect(g);
//Reset the components()
g.reset();
w.reset();
//And away we go...
try{
for(;;){
Thread.sleep(10); //milliseconds
w.tick();
}catch(InterruptedException ie){
System.exit(1);
}My currently problem is that when i click on the button in the GUI, it will go to MyActionListener class and call the runStop method.
public void runStop() {
mm = String.valueOf("100");
watchgui.setDisplay(mm);
The problem is that when watchgui.setDisplay(mm) is called, exception is thrown instead. I'm suspecting it has something to do with the initialization of watchgui. Can anyone advice?import java.awt.*;
import java.awt.event.ActionListener;
import javax.swing.*;
public class WatchGui implements Gui{
JButton b1, b2;
JLabel minutes, symbol1, seconds, symbol2, hundredths;
StopWatch stopwatch;
public WatchGui(){
stopwatch = new StopWatch();
b1 = new JButton("RUN/STOP");
b2 = new JButton(" RESET ");
minutes = new JLabel("00");
symbol1 = new JLabel(":");
seconds = new JLabel("00");
symbol2 = new JLabel(".");
hundredths = new JLabel("00");
minutes.setFont(new Font("Arial", Font.BOLD, 40));
symbol1.setFont(new Font("Arial", Font.BOLD, 40));
seconds.setFont(new Font("Arial", Font.BOLD, 40));
symbol2.setFont(new Font("Arial", Font.BOLD, 20));
hundredths.setFont(new Font("Arial", Font.BOLD, 20));
ActionListener al = new MyActionListener(stopwatch);
b1.addActionListener(al);
// Called to connect a watch to the GUI
public void connect(Watch w) {
//Called to reset the GUI
public void reset() {
minutes.setText("00");
seconds.setText("00");
hundredths.setText("00");
//Called whenever the value displayed by the watch changes
public void setDisplay(String mm, String ss, String hh) {
minutes.setText(mm);
seconds.setText(ss);
hundredths.setText(hh);
public void addComponentsToPane(Container pane) {
pane.setLayout(null);
pane.add(b1);
pane.add(b2);
pane.add(minutes);
pane.add(symbol1);
pane.add(seconds);
pane.add(symbol2);
pane.add(hundredths);
Insets insets = pane.getInsets();
Dimension size = b1.getPreferredSize();
b1.setBounds(50 + insets.left, 20 + insets.top,
size.width, size.height);
size = b2.getPreferredSize();
b2.setBounds(150 + insets.left, 20 + insets.top,
size.width, size.height);
size = minutes.getPreferredSize();
minutes.setBounds(75 + insets.left, 70 + insets.top,
size.width, size.height);
size = symbol1.getPreferredSize();
symbol1.setBounds(120 + insets.left, 70 + insets.top,
size.width, size.height);
size = seconds.getPreferredSize();
seconds.setBounds(135 + insets.left, 70 + insets.top,
size.width, size.height);
size = symbol2.getPreferredSize();
symbol2.setBounds(182 + insets.left, 87 + insets.top,
size.width, size.height);
size = hundredths.getPreferredSize();
hundredths.setBounds(190 + insets.left, 87 + insets.top,
size.width, size.height);
public void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("StopWatch");
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Set up the content pane.
WatchGui Pane = new WatchGui();
Pane.addComponentsToPane(frame.getContentPane());
//Size and display the window.
Insets insets = frame.getInsets();
frame.setSize(300 + insets.left + insets.right,
150 + insets.top + insets.bottom);
frame.setVisible(true);
import java.awt.event.*;
import javax.swing.*;
class StopWatch implements Watch {
WatchGui watchgui;
long startTime;
boolean running;
javax.swing.Timer timer;
String mm, ss, hh;
int count, tmp;
public StopWatch() {
running = false;
count = 0;
timer = new javax.swing.Timer(1000, new ActionListener()
public void actionPerformed(ActionEvent e)
count++;
mm = String.valueOf(count);
ss = String.valueOf(count);
hh = String.valueOf(count);
watchgui.setDisplay(mm, ss, hh);
//Called to connect the GUI to watch
public void connect(Gui g) {
watchgui = (WatchGui) g;
watchgui.createAndShowGUI();
//watchgui.setDisplay(mm, ss, hh);
//Called to initialise the watch
public void reset() {
watchgui.reset();
//Called to deliver a TICK to the watch
public void tick() {
//Called whenever the run/stop button is pressed
public void runStop() {
int a = 33;
mm = "" + a;
ss = "" + a;
hh = "" + a;
watchgui.setDisplay(mm, ss, hh);
if (running == false) {
count = 0;
timer.start();
running = true;
}else {
timer.stop();
running = false;
//Called whenever the lap/reset button is pressed
public void lapReset() {}
class MyActionListener implements ActionListener {
StopWatch stopwatch;
public MyActionListener(StopWatch stopwatch) {
this.stopwatch = stopwatch;
public void actionPerformed (ActionEvent e) {
stopwatch.runStop();
import java.lang.reflect.Constructor;
public class Driver
public static void main(String[] args)
throws Exception
if( args.length!=1 ){
System.err.println("Usage: Driver WATCHNAME");
System.exit(1);
return;
String watchName= args[0];
Class cl= Class.forName(watchName,true,Thread.currentThread().getContextClassLoader());
Constructor c[]= cl.getConstructors();
if( c.length==0 ){
System.err.println("There is NO constructor in your watch class");
System.exit(1);
return;
if( c.length>1 ){
System.err.println( "There is more than one constructor in your class");
System.exit(1);
//Construct the components
Watch w=(Watch)c[0].newInstance(new Object[0]);
Gui g= new WatchGui();
//Connect them to each other
g.connect(w);
w.connect(g);
//Reset the components()
g.reset();
w.reset();
//And away we go...
try{
for(;;){
Thread.sleep(10); //milliseconds
w.tick();
}catch(InterruptedException ie){
System.exit(1);
public interface Gui
//Called to connect a watch to the GUI
public void connect(Watch w);
//Called to reset the GUI
public void reset();
//Called whenever the value displayed by the watch changes
public void setDisplay(String mm, String ss, String hh);
interface Watch
//Called to connect the GUI to watch
public void connect(Gui g);
//Called to initialise the watch
public void reset();
//Called to deliver a TICK to the watch
public void tick();
//Called whenever the run/stop button is pressed
public void runStop();
//Called whenever the lap/reset button is pressed
public void lapReset();
} -
Need Help, setup OBIEE 11g user password expiration
Hi,
Any one know how to setup OBIEE user password expiration?
Requirement: create demo user in OBIEE and the demo user password should expired weekly.
Thanks,
allanHello Allan,
In 10 version we can do that,Am not sure we can do it in 11 version.Please wait for OTHER guru's response.
Thanks,
Sasi Nagireddy.. -
Need help with OBIEE installation
Im trying to install OBIEE but its asking for the location path of the licence.I searched the C drive where oracle bi stuff is saved.
The license.xml file must be located at the same directory where you are running the setup file.
-
Hi All,
we had requirement the users want to see the menu screen and column names in different languages.
one more requirement is to find the avg sales.
avgsales=sales/diff days
diff days= To_date-From_date(but these dates are user giving dates)
Please guide me how to achieve the above requirements.
Regards,
Rajkumar.HI mohan the information you provided holding some sensitive data please delete some of them otherwise you might be in trouble.
Make join between the account_ID and the SITE_ID based on the inner join columns which match in both tables will retrieved in the report. If you want to see the null values as well you can use outer join.
Thanks,
chak -
Count on a column In BMM Layer of Obiee
Hi All,
How to implement below SQL in OBIEE BMM layer
SELECT COUNT ( * )
FROM dept, emp
WHERE emp.origrecordid = dept.depno
AND emp.empname = 'xyz'
Please help me on thiscreate a metric with expression
count(employee_id)
the value for this metric will vary based on columns selection on Answers
~ http://cool-bi.com
Maybe you are looking for
-
The trade in program for the Iphone 6 seems to be one of the biggest scams I have ever seen from Verizon. This is not only coming from personal experience, but from multiple sources of research. I sent in a PERFECT condition iphone 4S (8GB). I had
-
Very weird audio glitch! Any ideas?
When I command-click to draw blank recording space, if it's too close to the beginning of the timeline it shifts every other pre-recorded layer over one measure but keeps the audio only in the same place. So the result is the playback sound does not
-
Dear All! I ahve following requirement for approving the invoice! User 1 Park the Invoice , Then he will forward to another user 2. User 2 must have three option ( Forward, Revert and Reject ) after forwarding to User 3, He must have only one opti
-
hi all, id like to ask if you have any known user exit that could answer my problem i have a routine here that updates message control upon changing of the field werks in the line item. however, there are instances when output message is not updated.
-
I CAN NOT OPEN DVD FILMS FROM ENTERTAINMENT MODE (X-FI PLATINI
Hello?;?I have Creative X-fi platinium sound blaster , I want to watch DVD film that use entertainment mode.But I can not open it when I push to start button - Video - film.Because there is a mistake for media player. I don't know how should I do for