最近需要用到Java代码API来根据数据源规则,动态的创建trans,网上看了好多都是直接生成文件ktr的,
保存到数据库资源库的方式也很简单,前提是初始化环境并登陆资源库,然后保存到资源库指定目录就行
//当前trans
TransMeta transMeta;
// 初始化环境
if (!KettleEnvironment.isInitialized()) {
try {
KettleEnvironment.init();
} catch (KettleException e) {
e.printStackTrace();
}
}
this.databaseMeta = new DatabaseMeta(connectionName, dbType, access, host, dbName, port, username, password);
this.repository = new KettleDatabaseRepository();
this.repositoryMeta = new KettleDatabaseRepositoryMeta(repositoryName, repositoryName, repositoryName,
this.databaseMeta);
this.repository.init(this.repositoryMeta);
//登陆repository
this.repository.connect(user, pawd);
//java代码创建trans元素信息
//**......*/
RepositoryDirectoryInterface directory = repository.findDirectory("/demo");// 获取要保存的目录
transMeta.setRepositoryDirectory(directory);// 设置目录
repository.save(transMeta, "save_from_java_code");// 保存transformation到资源库