最近需要用到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到资源库