2014-09-09 6 views
1

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

Я не вижу никаких параметров, которые позволили бы мне это сделать либо путем определения команды в транзакции SM69, либо в списке IMPORTING параметров в SE37.

Похоже, что по умолчанию такие команды запускаются в DIR_HOME, которые могут быть просмотрены по транзакции AL11. У меня есть контроль над этим?

ответ

1

К сожалению, с помощью `SM69 'нет способа сделать это. Я думаю, что единственным решением является создание сценария и вызов этого.

Я собирался предложить обертывание операторов в команде SM69, определяемой как вызов sh с параметрами -c 'cd <dir> && /path/to/command', но, к сожалению, это не работает. В соответствии с примечанием 401095 подстановочные знаки запрещены. Когда я тестировал, && был переведен в один &, в результате чего команда завершилась неудачей.

0

Было бы хорошо, если вы получите доступ к этой информации с помощью FM FILE_GET_NAME_USING_PATH (экспортируйте имя сценария, для которого вы хотите найти физический каталог). Путь приема может использоваться в SXPG_COMMAND_EXECUTE.

0

Поскольку внешние команды, которые я вызывал, были фактически .bat файлами, я решил это, поставив следующее выражение в начале каждого из них.

cd /d %~dp0 

This Вопрос о стоп-кадре очень помог.