我是 Pentaho Kettle 的新手,我想知道它Internal.Job.Filename.Directory
是什么?
- 是我的
SPoon.bat
文件夹,还是我创建的 job/xfrm 文件夹? - 有没有办法可以将其更改为指向特定文件夹?
我spoon.bat
在 Windows XP 中运行。
Internal.Job.Filename.Directory
仅在您不使用存储库时设置,并且会自动设置。您不能手动设置它。
如何不使用存储库?
当您启动 Spoon 时,您会看到一个对话框,要求您提供存储库。只需使用取消关闭此对话框,就可以了!
我花了一段时间才找到这个:我想知道为什么Internal.Job.Filename.Directory
总是空的。存储库是原因。
它记录在这里:http: //jira.pentaho.com/browse/PDI-7434
Internal.Job.Filename.Directory 是一个始终可用的内部变量。它指向作业所在的目录。
您可以在此处找到更多信息。
现在在版本 7 和更新版本中不推荐使用此变量。您应该使用 Internal.Entry.Current.Directory 并且无论是否存储库都可以使用,因此您可以构建更多可移植的代码。
这是您当前工作所在文件夹的变量。如果您不使用存储库,那么您需要指定转换的位置。
为了使其更灵活,您可以将作业和转换放在同一个文件夹中,然后您可以使用 Internal.Job.Filename.Directory。
因此,如果您的转换被称为:my.ktr,那么要在作业中调用它,您可以通过 {Internal.Job.Filename.Directory}/my.ktr 指向它
您可以在我的课程中了解更多信息:pentaho 教程
Internal.Job.Filename.Directory 是kettle 环境变量,它指向磁盘上作业的位置。
要将值设置为变量 Internal.Job.Filename.Directory,您需要以这种方式启动 Job:
String filename="path_filename";
KettleEnvironment.init();
JobMeta jobMeta = new JobMeta(filename, null);
Job job = new Job(null, jobMeta);
job.start();
job.waitUntilFinished();