Проблемы с EXEC pplcd из PeopleSoft Application Engine

На сервере Unix я запускаю движок приложений через планировщик процессов. В нем я пытаюсь использовать команду "zip" Unix из функции "Exec" pplcode.

Тем не менее, я получаю только ошибку

PS_Exec(P): Ошибка выполнения пакетной команды с указанием причины: такого файла или каталога нет (2) Я пробовал это несколькими способами. Самым логичным подходом, который я думал, было изменение каталога обратно в корень, а затем переход в указанный каталог, чтобы я мог легко использовать команду zip, такую ​​как следующее...

Exec("cd / && cd /opt/psfin/pt850/dat/PSFIN1/PYMNT && zip INVREND INVREND.XML");


1643 12.20.34 0.000048 72: Exec("cd /opt/psfin/pt850/dat/PSFIN1/PYMNT");
1644 12.20.34 0.001343 PS_Exec(P): Error executing batch command with reason: No such file or directory (2)

Я даже попробовал следующее.... просто чтобы посмотреть, работает ли что-нибудь изнутри Exec...

Exec("ls");

Конечно же, он дал ту же ошибку.

Теперь некоторые из вас могут задаться вопросом, имеет ли учетная запись, связанная с планировщиком процессов, действительно полномочия на этот конкретный путь к каталогу на сервере? Ну, я смог создать XML-файл, указанный в предыдущей команде, без проблем.

Я просто не могу изменить его с помощью выдачи команд Unix Unix. Мне интересно, является ли это ошибкой прав и разрешений от сервера unix в отношении идентификатора оператора, с которого запускается планировщик процесса. Однако, учитывая, что он может создавать и записывать туда файлы, я не могу понять, почему команда Exec встретит какое-либо сопротивление.... Просто мой инстинкт выстрелил в темноте...

Любая помощь будет с благодарностью!

Спасибо, Флинн

1 ответ

Не уверен, если у вас все еще есть проблема, но в вашем коде Exec добавление необязательного %FilePath_Absolute константа должна помочь. Когда эта константа отключена, PS автоматически префиксирует все команды <PS_HOME>, Вы должны будете указать абсолютные пути с этим флагом, хотя. Я изменил команду на то, что должно работать.

Exec("zip /opt/psfin/pt850/dat/PSFIN1/PYMNT/INVREND /opt/psfin/pt850/dat/PSFIN1/PYMNT/INVREND.XML", %FilePath_Absolute);

Документация на PeopleBooks иногда немного сбивает с толку, но в этом случае она довольно хорошо объясняет. Вы всегда можете сохранить абсолютное местоположение в переменной и добавить префикс к своим командам, чтобы вам не приходилось печатать /opt/psfin/pt850/dat/PSFIN1/PYMNT/,

Другие вопросы по тегам