Connecting 2 ODS's
Hi,
I need to report on data held in 2 ODS's.
One ODS has a key of Employee and contains a number of Key Figures that I need. Each Employee has one record per day they are employed.
The second ODS contains various other non-Key Figure information such as start date, end date, profit centre etc. The key for this ODS is Employee, Start Date & End Date (The employee can have multiple start/end dates).
How can I link all the data together?
Can I create another ODS or Cube to receive the info? If so, how do you do this so you combine all the info from both ODS's? For example, for each employee/start date/end date in ODS2, I need to add the corresponding daily information from ODS1.
Any ideas?
HI,
Lookup table nothing but the custom code, Ex: ODS1 data is loaded while loading the data into ODS2 you can write the code iniiating that before loading the data into target you put the validations that you can check the ODS1 data as per your requirement then you can load the data into ODS2.
Regards,
Chandra.
Similar Messages
-
Problem with statement.cancel()
Hi,
I am using Oracle 10g with the 10.2.0.3 jdbc (OCI) drivers. Though my statement.quertTimeout() works fine, the statement.cancel() does not seem to do anything.
Could you please guide me as to the cause of this kind of action, since I have read that internally queryTimeout() depends on cancel() to stop qurery execution.
Thanks in advanceHi,
I am using Oracle 10g with the 10.2.0.3 jdbc (OCI)
drivers. Though my statement.quertTimeout() works
fine, the statement.cancel() does not seem to do
anything.
Could you please guide me as to the cause of this
kind of action, since I have read that internally
queryTimeout() depends on cancel() to stop qurery
execution.
Thanks in advanceThe code I am using is:
package test;
import java.sql.*;
import oracle.jdbc.pool.OracleDataSource;
import oracle.jdbc.driver.*;
public class OracleQueryTimeout
public static void main(String[] args)
long timetaken; // Holds the execution time
int numFetchedRows = 0;
// Create a OracleDataSource instance
OracleDataSource ods;
try {
ods = new OracleDataSource();
//Sets the driver type
ods.setDriverType("oci");
// Sets the database server name
ods.setServerName("<my machine name>");
// Sets the database name
ods.setDatabaseName("orcl");
// Sets the port number
ods.setPortNumber(1521);
// Sets the user name
ods.setUser("<username>");
// Sets the password
ods.setPassword("<password>");
// Create a connection object
Connection connection;
connection = ods.getConnection();
// Sets the auto-commit property for the connection to be false.
connection.setAutoCommit(false);
Statement stmt = null;
String query = "Select * from USER_CATEGORY,MV_SUBSCRIBER_ATTRIBS";
stmt=connection.createStatement();
stmt.setQueryTimeout(0);
// Get time at start of query
long initialTime = System.currentTimeMillis();
// Execute the Query in query
ResultSet rst = stmt.executeQuery(query);
long finalTime = System.currentTimeMillis();
timetaken = finalTime - initialTime;
if(timetaken>0003)
stmt.cancel();
System.out.println("Statement Cancelled");
//Populate the ResultSet object
while ( rst.next() )
numFetchedRows++;
rst.getObject(1);
System.out.println("Time taken for query: " + timetaken);
System.out.println("Number of rows fetched: " + numFetchedRows);
System.out.println(rst);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
The program hangs when it comes to retrieving the >resultset
The program gives the following output If I do not go through the resultset:
Statement Cancelled
Time taken for query: 50782
Number of rows fetched: 0
oracle.jdbc.driver.OracleResultSetImpl@1a85d38Here the cancel method was invoked but to no visible action. -
Callable statement: out parameter type issue
Hello again.
My question is:
how can I register the out parameter of a callable statement so that it may contain an oracle Cursor?
Whether I register it to Types.OTHER (Types from the java.sql package) or OracleTypes.CURSOR (OracleTypes from the oracle.jdbc.driver package) it still says :
PLS-00382: expression is of wrong type
when trying to execute a statement that returns a cursor.
I am using the com.sap.portals.jdbc.oracle package for the driver and such.
If I change to use the oracle.jdbc.driver.OracleDriver and register the out parameter to OracleTypes.CURSOR, then it works.
Thanks in advance,
Silviu Lipovan Oanca
Message was edited by: Silviu Lipovan Oancamore detailed
1) i have write some java code using as usual my IDE:
public class P141_JAVABridge
public static void execute()
String databaseDriver = "oracle.jdbc.driver.OracleDriver";
String databaseUrl = "jdbc:oracle:thin:@xxx:1521:orcl";
String databaseUsername = "xxx";
String databasePassword = "xxx";
ods.setDriverType(databaseDriver);
ods.setURL(databaseUrl);
ods.setUser(databaseUsername);
ods.setPassword(databasePassword);
connection = ods.getConnection();
.... some code
map.put("custom_T",Custom_T_SQLData.class);
CallableStatement call = connection.prepareCall("call P141(?,?)");
call.setObject(1,inputObjectReference);
call.registerOutParameter(2,OracleTypes.STRUCT,"custom_T");
call.execute();
.... some code
2) i run this code - wooha! it works
3) i have changed
connection = ods.getConnection();
to
connection = DriverManager.getConnection("jdbc:default:connection:");
4) compile and load class into oracle
5) i have linked P141_JAVABridge.execute() with P141_JB
create or replace PROCEDURE P141_JB () IS LANGUAGE JAVA NAME 'x.y.z.P141_JAVABridge.execute()';
6) then i executed P141_JB
SET SERVEROUTPUT ON;
BEGIN
...some code
P141_JB();
...some code
END;
and got NullPointerException at
((Custom_T_SQLData)call.getObject(2)).responseStatus -
OracleConnectionCacheImpl setter values for instance properties
Hi!
I'm using OracleConnectionCacheImpl to cache my connections to the Oracle 8i (8.1.7.4)
The JDBC driver that I'm using is 9.2.x
I've read through the SQLJ/JDBC documentation and learned that it is possible to use certain properties for controlling the behaviour of connection cache.
Only thing is that the documentation does not specify whether the values for the properties should be milliseconds, seconds, minutes or something else. The long type of the parameter value would indicate milliseconds but according my minimal testing at least some of the values propably are not milliseconds. Help is greatly appreciated. Below is the list of the properties I'm interested in:
// Controls how often cache thread check whether a physical connection has become available
/*ods.setThreadWakeUpInterval(threadWakeUpInterval);
// How long the logical connection can be used before forced back to the cache pool and all
// resources are freed.
ods.setCacheTimeToLiveTimeout(cacheTimeToLiveTimeout);
// How long the physical connection can be unused before it is closed and all the resources are freed.
ods.setCacheInactivityTimeout(cacheInactivityTimeout);
// How long the connection request will be waiting before EOJ_FIXED_WAIT_TIMEOUT is thrown.
ods.setCacheFixedWaitTimeout(cacheFixedWaitTimeout);
// How long the cache waits before polling for an available connection
ods.setCacheFixedWaitIdleTime(cacheFixedWaitIdleTime); */
Best Regards:
Aapo RomuHello Radhakrishna D S,
The note you provided did not fit our problem. The bootstrap.maxheapsize in the instance.properties file is already 128MB. Thanks anyway! -
Strange behaviour when accessing Oracle 8i table from servlet
Hi there,
First a little background, I've got a 2 column table in an Oracle 8i DB that holds a very simple code to word map. There are no strange characters. Both columns are varchar.
From my desktop machine, when I execute the the following:
<SNIP>
OracleDataSource ods = new OracleDataSource();
ods.setDriverType("thin");
ods.setServerName("DBserver.db");
ods.setDatabaseName("DB");
ods.setPortNumber(1527);
ods.setUser("user");
ods.setPassword("password");
Connection connection = ods.getConnection();
Statement stmt = connection.createStatement();
ResultSet res = stmt.executeQuery(SQL);
CachedRowSet crs = new CachedRowSetImpl();
crs.populate(res);
while (crs.next()) {
System.out.println("ID: " + crs.getString(1) +
", Name: " + crs.getString(2));
}<SNIP>
Everything works fine, and I get the results I expect (both return values for getString(1) and getString(2) are exactly as they are stored in the table)
HOWEVER:
When I execute the same exact code in a servlet sitting on a Tomcat server (I'm using a simple applet servlet model to access the table and return a response to the applet), crs.getString(int) returns strings like: 0x53, 0x54, 0x4E and so on.
I am unsure what this means, and would be grateful for any assistance. I am wondering where to start to troubleshoot the problem.I suggest you use the name of the field in your getString() so you can be sure what field its getting.
Example:
from:
crs.getString(1)
to:
crs.getString("first_name");
Also, I suggest you get a connection, use it, and close it (along with closing the resultSet and statement) all within a try/catch/finally block. You have to close the connection when you are done with it or you may run out of connections.
Also, I suggest replacing this:
CachedRowSet crs = new CachedRowSetImpl();
crs.populate(res);
while (crs.next()) {
System.out.println("ID: " + crs.getString(1) +
", Name: " + crs.getString(2));
with something like this:
while(resultSet.next()){
System.out.println("ID"
System.out.println("ID: " + resultSet.getString("first_name") +
", Name: " + resultSet.getString("last_name"));
} -
I am new to JNDI ,I'm trying to connect to 10g using JDeveloper 10.1.3.2
Here is the code
String user="hr";
String password="xx";
// 1-Intialize Connecton Properties
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:@127.0.0.1:1521:oracle");
ods.setUser(user);
ods.setPassword(password);
///2-Register DataSource
Context ctx=new InitialContext();
ctx.bind("jdbc/hr",ods);
//3-Open Connection
ods=(OracleDataSource)ctx.lookup("jdbc/hr");
Connection conn = ods.getConnection();
I always get the following error:
Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
Thanks for helpKuassi,
Actually microomran did post a JNDI_datasource in JDeveloper10.1.3.2 in the JDeveloper forum.
microomran,
Your URL looks incorrect to me.
And your mixing different methods.
Use either one or the other, but not both.
Once you create an instance of class "OracleDataSource" and set its properties, you don't need to use JNDI.
Please refer to the JDBC User's Guide and Reference which is part of the Oracle documentation and available from:
http://www.oracle.com/technology/documentation/index.html
Good Luck,
Avi. -
JNDI_datasource in JDeveloper10.1.3.2
hi;
I am new to JNDI ,I'm trying to connect to 10g using JDeveloper 10.1.3.2 via JDBC/datasource
Here is the code:
String user="hr";
String password="xx";
// 1-Intialize Connecton Properties
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:@127.0.0.1:1521:oracle");
ods.setUser(user);
ods.setPassword(password);
///2-Register DataSource
Context ctx=new InitialContext();
ctx.bind("jdbc/hr",ods);
//3-Open Connection
ods=(OracleDataSource)ctx.lookup("jdbc/hr");
Connection conn = ods.getConnection();
I always get the following error:
Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
How can that code work?
Thanks for helpHi,
You may have choosen "Make row names unique".
Thanks and Regards,
sinem aybal -
No data load into ODS although sourcesystem connection is ok
Hello experts,
although everthing is ok with my sourcesystem connection, SAP BW loads no data into ODS and Cube. In the ODS-administration-view the requests are registrated, QM-Satus is green but ODS-id is zero.
Everything worked fine when running the process chain, but suddenly it stops when activating the data in the ods because there are no data in it.
Any suggestions?
thanx
AxelHi Axel,
well the error message you specified is only poosible if the datasource is not installed.I m a bit confused.
Check if you are able to see this datasource in rsa6 in the source system.
Also,try replicating the source system on the BW side,then check your respective infosource,whether they are available..?
hope it helps,
regards,
Parth. -
Transfer ODS with Transport Connection
Hi all:
In Data Warehousing Workbench,i want to use Transport Connection to transfer ODS from DEV
to QAS; When i drag the ODS ZCH_DV01 into the Collected Objects,there is a error "Object '4C22YS5Z07BT88EVNXAO5S7YP'(ROUT) of type 'Routine' is not available 'A' ".
But although with the error,the ODS also can generates the Request ID.
I want to kown when i transfer the Request ID to QAS,whether i can use the ODS correctly in QAS and how the mistake take place.
Best RegardsHi Ajeet
Thanks reply!
I want to transport update rules , transformation as well the DSO to QAS.
I check the table RSUPDROUT,but i can not find the routine item "4C22YS5Z07BT88EVNXAO5S7YP"
in D or A OBJVERS. Wether i need to add the routine item into the table RSUPDROUT.
Then i drag the DSO into the Collected Objects again, finding that the error not same as the first time;for example there is no "4C22YS5Z07BT88EVNXAO5S7YP" !
Best Regards! -
Query based on ODS showing connection time out
Hi,
I have a query based on an ODS. The selection criteria for the query is Country which is a navigational attribute of the ODS. When i exceute the query using a country with lesser volume of data the query runs fine. But when i choose a country that has more number of records the query shows 500 connection timeout error sometimes and sometimes it runs fine for the same country.
I tried to execute the report using country as input variable - First i executed the report using a country with lesser volume of data it worked fine as usual and then i added another country with larger volume of data in the filter criteria and the old problem cropped up.
Could you please suggest a solution?
Appreciate your response.
Thanks
AshokHi,
Its not recommneded to have a query on DSO which gives huge amount of data as output.
For small amount it should not be a problem.
Shift your queries to a multicube as recommended by SAP and build the multicube over the cube which loads from the DSO.
SAP recommends to create queries only on multiproviders.
If not possible then you can try to create indexes on DSO on the characteristics field which are used in filter and global selections in the query.This can improve the query performace.
But this will create performance issue while loading data to the DSO.
So you need to do a trade off.
Thanks
Ajeet -
AOP5 get no Connection to ODS Server
Hi,
we are using Diadem and the AOP5 Plugin to connect to different ODS servers. We have a tool from the toolprovider "HighQSoft" called ASAM-Commander. With this tool we get connetion to all our ODS servers.
But when connecting via AOP5 the most local server in the network works sometimes, the connection to the Server in another subnet does not work. Diadem shows the following Message:
I checked the CORBA Ports with NETSTAT and got connected after this try.
The Logile doesn't show more infomation:
162 Der gewünschte Datenbestand "TestODS" konnte nicht geöffnet werden.
(187): Error while initializing interface
163 19.03.2014 07:13:29 Fehler:Fehler bei dem Öffnen der Datenquelle "TestODS" vom Typ "AOP5".
Is it possible that there is something that blocks the connection in Diadem?
Solved!
Go to Solution.Hi AndreasK,
I'm using this plugin version. Thanks for the Hint with the extended Logging.
But there abut not so much Informations with the Error.
AOP5: Info(00): Try to receive Asam ODS Api 5.x AoFactory!
AOP5: Info(00): Try to connect session with parameter string 'user=hq_admin,password=*************'
AOP5: ERROR: Exception: AO_CONNECT_REFUSED (5): AO_CONNECT_REFUSED The connection is refused.
Parameter:
File .\AoFactory.c, line 331
AOP5: ERROR: Exception in Initialize: Status(60=eInterfaceNoConnectionDa, 'AO_CONNECT_REFUSED: AO_CONNECT_REFUSED The connection is refused.
Parameter:
File .\AoFactory.c, line 331')
Is the AoFactory.c a part of the AOP5 or of the Server? -
Hi all,
i have the following errors turning up while activating ods.
1. creation of export data source failed
2. rfc connection to source system b3tclnt800 is damaged - no meta data upload
3. error when activating ods object
Can anyone let me know how to rectify it.
regds
hariHi,
The problem is with ur Source Sys connection..
Above problems will be solved by restoring Source System Connection... Ask your Basis team to restore SS.
Thanks -
Error While Activating ODS in BW
Hai Experts
While Activating the ODS the following errors are occurs
The creation of the export DataSource failed
RFC connection to source system B3TCLNT800 is damaged ==> no Metadata upload
Error when creating the export DataSource and dependent Objects
I am using IDES BW 3.1C.
Kindly suggest me a solution.
Balaji VK
09342501065
Error when activating ODS Object SALEODShi,
also take a look this
Re: "RFC connection to source system [our R3 TEST system] is damaged ==> no Met -
Hi All,
I´m building a scenario in SAP BO Data Federator where we connect to a table in BW (ODS) and with a jdbc connector we get the data to build a universe in UniDesigner.
The problem is that the data returned by data federator doesnt match the data in BW, we always get less records in Data Federator when we perfom the query in data federator query tool.
Can anyone give a clue whats happening and where to start looking? we already did a trace in BW (ST05) and the SQL statement seems to be right.
thanks,
PedroHi,
I had the same ODS error when generating the databasis.
This error we have been solved now.
But do you know how to correct the following error:
For Goodwill Data two indices are created which are completely identical. This leads to an error. How to solve this problem?
Thanks for brief feedback. -
Error reading 'ods' passwd from wallet!!!!!
I did:
c:\>oidmon connect=hahldap start
(No errors).
C:\>oidctl connect=hahldap server=oidldapd host=192.168.1.100 instance=1 start
gsluwpwaGetWalletPasswd: Opening 2 file failed with error 11005
[gslusw]:Error reading 'ods' passwd from wallet
[gsdsiConnect]:Error reading 'ods' passwd from wallet
Could not connect to the Database.
What could be the reason??? I am running on WinXP Is it the problem?
Installation went fine for both Metadata repository and for the Oracle Internet Directory.
Note: I couldn't find the service OracleDirectoryService_xxx at all, does that mean the installation is incorrect?
thanks.Any resolution here :
My listener is up
My DB is up and accessible, but when issuing the following command I get following error .
Any chance you can offer some advice ?
oidmon start
2006/03/01:12:58:32 * gsluwpwaGetWalletPasswd: Opening 3 file failed with error 11005
2006/03/01:12:58:32 * [gslusw]:Error reading 'ods' passwd from wallet
2006/03/01:12:58:32 * [gsdsiConnect]:Error reading 'ods' passwd from wallet
2006/03/01:12:58:32 * [oidmon]: Unable to connect to database,
will retry again after 20 sec
Im on Unix
Maybe you are looking for
-
Generate bar codes in smartforms
Hi, I wonder to know how can I add bar codes to a smartform. Bar codes should be generated in a automatic sequence and its number should be printed too. Thanks a lot, Nuno Moreira
-
Error while distributing customer model
hi, i am getting the following error when i am trying to send data between two R/3 systems using distribution model i am unable to distribute the model to the other system Error: "Target system is an external System. It does not support this function
-
Import Documents via Powershell from CSV
Hey guys, I have a CSV, managing metadata of documents, with following columns: WEB, DocLib, DocPath DocPath is the file location of the corresponding documents. Web+DocLib the target destination on Sharepoint. How can I import these documents to th
-
Add columns to ME2L...
Hi Experts, I have A requirement which i have TO add two more columns to the standard tcode ME2L OUTPUT those are Mat Doc Number(BELNR) and Total Amount in Currency(WRBTR). I am new to Enhancements, can any help me to meet my requirement in best way
-
Has anyone worked on dockable frameworks?
Hi i am stuck with the requiremnt where i need to implement dockable framewors.Has anyone earlier have worked on it. Please provide me the pinters for sample codes. Thanks in Advance :) Naxy