我目前正在使用Java API连接到Pentaho Repository。我想知道如果特定的Pentaho文件是Job或Transformation类型,我们是否有任何方法。 我正在使用如下的samle代码。如果你看到我手动创建Jobmeta或Transmeta。 是否有任何API来获取pentao工作类型。
Repository repository = new PentahoContext().initialize(repositoryName,
userName, password);
RepositoryDirectoryInterface directoryPublic = repository
.loadRepositoryDirectoryTree();
RepositoryDirectoryInterface directoryPublic1 = directoryPublic
.findDirectory(“/home");
JobMeta jobMeta = repository.loadJob(jobName, directoryPublic1, null,
null);
答案 0 :(得分:1)
我认为您不能查询单个文件,但可以使用Repository.getJobAndTransformationObjects()或RepositoryDirectoryInterface.getRepositoryObjects()返回指定目录中的对象列表。然后,您可以遍历该列表,查找具有该名称的对象,然后调用getObjectType()以查看它是否等于RepositoryObjectType.TRANSFORMATION或RepositoryObjectType.JOB:
// pseudo-Java code
repositoryObjects = repository.getJobAndTransformationObjects( directoryPublic1.getObjectId(), false );
for (RepositoryElementMetaInterface object : repositoryObjects) {
if(object.getName().equals("myFile")) {
if(object.getObjectType().equals(RepositoryObjectType.TRANSFORMATION) {
TransMeta transMeta = repository.loadTransformation(...);
}
else if(object.getObjectType().equals(RepositoryObjectType.JOB) {
JobMeta jobMeta = repository.loadJob(...);
}
}
}