Текущий рабочий каталог для SXPG_COMMAND_EXECUTE?

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

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

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


person Jagger    schedule 09.09.2014    source источник


Ответы (3)


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

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

person mjturner    schedule 03.07.2015

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

person Praveen Singh    schedule 16.04.2017

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

cd /d %~dp0

Этот вопрос Stackoverflow на самом деле очень помог.

person Jagger    schedule 04.10.2017