Можно ли закинуть какой-нибудь настраиваемый код ошибки на java из чайника.
Дизайн:
KJB вызывается из Java-приложения.
с помощью приведенного ниже кода мы решаем, что задание было успешным или неудачным.
if (job.getErrors () <1) { результат = XXX;
}
Я должен был выдать какой-то код ошибки, например, «30» для отсутствия имени файла, «45» для отсутствия входного параметра и т. д.
Как передать этот код в java-приложение от KJB.
Заранее спасибо.
Не могли бы вы предоставить фрагмент кода, что вы сделали?
Версия Pentaho 8.1. Расширение вакансии Pentaho - kjb. Вы правы, мы интегрируем чайник pentaho в приложение Java.
JobMeta jobmeta = new JobMeta (pentahoJobLocation + Имя файла + plateWFDTestProtocolInst r.getFileDefinition () .getReportTemplateN ame (), репозиторий); Работа job = new Job (репозиторий, мета вакансии); log.info ("Запуск вызова файла pentaho."); job.start (); job.waitUntilFinished (); log.info ("Вызов файла Pentaho завершен."); если (job.getErrors () <1) {результат = getFileResult (updatedRun, FilePath, fileName, Instr, updatedll.getlist (). get (0), RunDTO); }
Я считаю, что это нетривиально. Работа - это своего рода контейнер для внутренних операций (преобразований и заданий). Может произойти много ошибок, некоторые из них игнорируются, некоторые обрабатываются, а некоторые прерывают выполнение. Более того, могут возникать ошибки разного типа. Почему бы не использовать предоставленные чайником шаги для проверки существования файла и проверки входных параметров?
Как хорошая практика Java, исключения времени выполнения не должны перехватываться! : D
В качестве быстрого обходного пути решение не идеально. Добавьте в файл задания шаги проверки существования и проверки, запишите эти ошибки и просмотрите журналы после.
https://help.pentaho.com/Documentation/8.1/Developer_Center/PDI/Embed#Obtain_Logging_Information
Какая это версия? Что означает вызов kjb? Начать работу вместо службы отдыха, предоставляемой сервером карт, или у вас есть встроенный движок чайника в Java-приложение?