Monday, November 15, 2010

Access Informatica with JAVA API's

I am going to start this blog because i want to share something with you guys. I am a lazy guy and working on informatica make me more lazy bcoz it is on network and waiting to create a new object takes lots of time.

So thinking of doing something different like accessing INFORMATICA objects with java but didn't succeeded much. Only got one example from Internet to get a list of workflows or folders in the repository.

package com.informatica.powercenter.sdk.mapfwk.samples;
import java.util.Iterator;
import java.util.Vector;
import com.informatica.powercenter.sdk.mapfwk.core.ConnectionInfo;
import com.informatica.powercenter.sdk.mapfwk.core.Field;
import com.informatica.powercenter.sdk.mapfwk.core.Folder;
import com.informatica.powercenter.sdk.mapfwk.core.RepoProperties;
import com.informatica.powercenter.sdk.mapfwk.core.RepoPropsConstant;
import com.informatica.powercenter.sdk.mapfwk.core.Repository;
import com.informatica.powercenter.sdk.mapfwk.core.Source;
import com.informatica.powercenter.sdk.mapfwk.core.SourceTargetTypes;
import com.informatica.powercenter.sdk.mapfwk.core.Target;
import com.informatica.powercenter.sdk.mapfwk.reputils.CachedRepositoryConnectionManager;
import com.informatica.powercenter.sdk.mapfwk.util.pmrepwrap.PmrepRepositoryConnectionManager;
public class RepoConnect {
Repository rep;
Folder folder;
protected void initializeRepository(String PC_CLIENT_INSTALL_PATH, String TARGET_REPO_NAME, String REPO_SERVER_HOST, String REPO_SERVER_PORT, String ADMIN_USERNAME, String ADMIN_PASSWORD)
{
rep = new Repository("test_rep", "test_rep", "This is test_rep");
folder = new Folder("Test_Folder", "Test_Folder", " This is Test_Folder");
rep.addFolder(folder);
CachedRepositoryConnectionManager rpMgr = new CachedRepositoryConnectionManager(new PmrepRepositoryConnectionManager());
RepoProperties repoProp = new RepoProperties();
repoProp.setProperty(RepoPropsConstant.PC_CLIENT_INSTALL_PATH, PC_CLIENT_INSTALL_PATH);
repoProp.setProperty(RepoPropsConstant.TARGET_REPO_NAME, TARGET_REPO_NAME);
repoProp.setProperty(RepoPropsConstant.REPO_SERVER_HOST, REPO_SERVER_HOST);
repoProp.setProperty(RepoPropsConstant.REPO_SERVER_PORT, REPO_SERVER_PORT);
repoProp.setProperty(RepoPropsConstant.ADMIN_USERNAME, ADMIN_USERNAME);
repoProp.setProperty(RepoPropsConstant.ADMIN_PASSWORD, ADMIN_PASSWORD);
rep.setProperties(repoProp);
rep.setRepositoryConnectionManager(rpMgr);
}
public Vector fetchRepositoryFolders(){
Vector fetchedFolders = new Vector();
System.out.println("Repository Properties set");
Vector folders = new Vector();
folders = (Vector)rep.getFolder();
for(int i=1 ; i < folders.size(); i++){
Folder t_folder = new Folder();
System.out.println((((Folder)folders.get(i)).getName()));
}
return folders;
}

public static void main(String[] args) {
RepoConnect f = new RepoConnect ();
f.initializeRepository("C:\\Informatica\\PowerCenter8.6.0\\client\\bin", "REPOSITORY_NAME", "HOST_NAME", "6001", "USER_NAME", "PASSWORD");
Vector rep_FetchedFolders = f.fetchRepositoryFolders();
}
}

However we can do the same with the PMREP command but doing with java API will be different for me.

But really i want to create the mapping and workflow with java API's but still didn't get succeeded in that. so thinking of sharing this with you guys so that some one can help me in creating the mapping and workflow with the same.