Pentaho java api工作

时间:2015-08-10 16:05:11

标签: java pentaho

我目前正在使用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);

1 个答案:

答案 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(...);
    }
  }
}