on 03-25-2008 1:19 PM
Hi,
I am trying to use Java API to retrieve data from SAP MDM.
I am able to connect to the MDM Repository and login to the User Session, but I am not able to retrieve the records, as Java API's requires the Table Id to retrieve the records from the server.
Can any one please let me know, how to retrieve the TableId, when Table Name is given as input to the program.
I am using MDM Version 5.5 SP5 (5.5.40.83).
Thanks in advance.
Hi venkat,
Please check it once
// create connection pool to a MDM server
String tag = "LOCALHOST";
ConnectionPool connections = null;
try {
connections = ConnectionPoolFactory.getInstance(tag);
} catch (ConnectionException e) {
e.printStackTrace();
return;
}
// specify the repository to use
// alternatively, a repository identifier can be obtain from the GetMountedRepositoryListCommand
String repositoryName = "TestRepos";
String dbmsName = "LOCALHOST";
RepositoryIdentifier reposId = new RepositoryIdentifier(repositoryName, dbmsName, DBMSType.MS_SQL);
// create a repository session
CreateRepositorySessionCommand sessionCommand = new CreateRepositorySessionCommand(connections);
sessionCommand.setRepositoryIdentifier(reposId );
try {
sessionCommand.execute();
} catch (CommandException e) {
e.printStackTrace();
return;
}
String sessionId = sessionCommand.getRepositorySession();
// authenticate the repository session
String userName = "Admin";
String userPassword = "";
AuthenticateRepositorySessionCommand authCommand = new AuthenticateRepositorySessionCommand(connections);
authCommand.setSession(sessionId);
authCommand.setUserName(userName);
authCommand.setUserPassword(userPassword);
try {
authCommand.execute();
} catch (CommandException e) {
e.printStackTrace();
return;
}
// retrieve the list of tables and pick the main table
GetTableListCommand tableListCommand = new GetTableListCommand(connections);
tableListCommand.setSession(sessionId);
try {
tableListCommand.execute();
} catch (CommandException e) {
e.printStackTrace();
return;
}
TableProperties mainTable = null;
TableProperties[] tables = tableListCommand.getTables();
for (int i = 0; i < tables.length; i++) {
if (tables<i>.getType() == TableProperties.MAIN)
mainTable = tables<i>;
}
// retrieve the list of fields from the main table
// this is useful for resolving conflicting field names the new field might create
GetFieldListCommand getFieldListCommand = new GetFieldListCommand(connections);
getFieldListCommand.setSession(sessionId);
getFieldListCommand.setTableId(mainTable.getId());
try {
getFieldListCommand.execute();
} catch (CommandException e) {
e.printStackTrace();
return;
}
Please follow these code
I think it may help u.
Regards
Hari
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Here is one solution:
Use the GetRepositorySchemaCommand() to get a RepositorySchema object, and store it at application scope. Now you can use the
getTableId(java.lang.String tableCode) and getFieldId(java.lang.String tableCode, java.lang.String fieldCode) functions to lookup table and field ID's for other commands that require them.
Walter
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
24 | |
11 | |
9 | |
7 | |
6 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.