我在Pentaho 9.1中构建了一个包含许多转换的工作。我的所有.kjb和.ktr文件都在本地文件存储库中,并已导出到服务器上的企业存储库。通过登录到服务器并将作业添加到pentaho用户控制台中的调度器,以及通过连接到本地PDI客户机中的存储库并选择服务器的运行配置,我可以在服务器上执行作业,而不会出现任何问题。但是,当我试图通过API中的runJob/
端点执行作业时,作业中断了。起初,作业开始时看起来很好,但是当它进行第一次转换时,我得到了这个错误:
Opening transformation: [null] in directory [<directory>]
ERROR : Unable to run job <jobName>. The transformation has an error. The transformation path <path to transformation> is invalid, and will not run successfully.
ERROR : org.pentaho.di.core.exception.KettleXMLException
这个转换的路径只有导致一个问题,当我试图通过pentaho API执行的工作。在服务器上运行作业的其他方法不会产生此结果。我尝试为转换创建一个新的运行配置以及配置企业存储库,但还没有成功。企业存储库目前是按照默认设置配置的。有人遇到过这个问题吗?对于我正在工作的项目,我需要能够通过API运行工作,我不确定该尝试什么或真正在哪里找到关于该主题的良好文档。
您可以使用环境变量${Internal.Job.Filename.Directory}
或${Internal.Transformation.Filename.Directory}
获取当前作业或转换目录。
例如,使用${Internal.Job.Filename.Directory}/your_transformation.ktr
获得一个转换查看内部变量文档,了解更多可能有用的变量。
您也可以使用Shell作业条目或获取系统信息步骤来运行命令行参数并获取目录数据。