Вызов команды оболочки из peoplecode
Я получаю сообщение об ошибке при вызове команды ОС для Peoplecode с использованием функции EXEC. Вызов такой
CommitWork();
&ShellCommand = "/path/mytest.sh param1 param2";
&ReturnCode = Exec(&ShellCommand, %Exec_Synchronous + %FilePath_Absolute);
&ShellCommand создается с использованием пути, исполняемого файла и передаваемых параметров, как показано выше. Эта команда прекрасно работает, когда выполняется независимо.
Я продолжаю получать ошибку 255. Есть ли что-нибудь о синтаксисе? У кого-нибудь есть проверенный или рабочий пример или какие-либо предложения?
3 ответа
Спасибо, ребята, что ответили. Команда работала нормально из сценариев оболочки, но не из Peoplesoft. Оказалось, что текущая папка на сервере приложений была неправильной. Поэтому я добавил команду CD в качестве первой строки в сценарии оболочки, чтобы изменить текущую папку на правильную папку. Это сработало. Еще раз спасибо.
Синтаксис выглядит правильно. Я использую подобный код для вызова файлов Bat.
Exec("C:\windows\system32\cmd.exe /c C:\Test\mybat.bat param1 param2", %Exec_Synchronous+%FilePath_Absolute);
Вы пробовали с абсолютным путем вместо относительного пути?
Код ошибки 255, по-видимому, находится за пределами допустимого диапазона.
см. http://tldp.org/LDP/abs/html/exitcodes.html
Я бы проверил предположения, которые вы делаете. То же имя пользователя, на котором выполняется сценарий оболочки, ваше имя пользователя и имя пользователя сервера приложений? Правильно ли настроена среда для имени пользователя сервера приложений и вашего имени пользователя? права доступа к файлу