我目前正在使用 Java API 连接到 Pentaho 存储库。我想知道如果特定的 Pentaho 文件属于作业或转换类型,我们是否有任何方法。 我使用的示例代码如下。如果您看到我正在手动创建 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);
最佳答案
我认为您不能查询单个文件,但您可以使用 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(...);
}
}
}
关于java - Pentaho java api 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31924227/