понял это. Было две проблемы: 1) MAXL.bat завершает текущий процесс по завершении пакета - для этого требуется открыть новое окно терминала 2) У моего пароля был зарезервированный символ, который сводил меня с ума. Повторение помогает, но иногда вам нужно заключать переменную в "" при передаче в maxl
. StartMAXL.bat используется для Oracle загрузки / перекомпоновки данных Essbase / et c. .Bat обычно на 7 папок вниз.
Чтобы запустить MAXL, вы указываете полный путь к StartMAXL.bat, а затем передаете список команд в файле .m sh, за которым следуют переменные / параметры.
Сохраните это как файл Essbase_Rebuild.cmd. Это базовый c вызов линии MAXL Cmd
SET $1=[Essbase Username]
SET $2=[Essbase Password]
SET $3=localhost REM /*This is performed on the essbase server*/
SET $4=[Target Application Name]
SET $5=[Target App Cube Name]
SET $6=[source app]
SET $7=[source cube]
SET $8=[SQL Username]
SET "$9=[SQL password]" REM if you have special characters they might error in MAXL
D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Essbase_Code_File.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
Теперь для вашего файла Essbase_Code_File.m sh или списка вещей Essbase, которые вы
login $1 identified by $2 on $3;
spool on to 'D:\\Logs\\Essbase_Code_File.log';
/* do your MAXL commands */
spool off;
logout;
exit;
Вышеупомянутый метод работает для простых методов. Иногда вам может потребоваться заключить переменные% 9% в "% 9%", чтобы MAXL правильно интерпретировал переменную. Выведите вашу переменную в .m sh, чтобы просмотреть ее в командной строке, добавив shell echo "$ 1"; на ваш .m sh до входа в систему.
Более элегантная версия, для выяснения которой потребовалось 3 месяца. Назовите ее Essbase_Code_File.cmd
REM Parameters
SET $1=[Essbase Username]
-- repeat for your variables
CALL :SUB_A
CALL :SUB_B
CALL :SUB_C
GOTO :EOF
:SUB_A
ECHO Starting the Rebuild - Started @ %time% on %date% >D:\Logs\Rebuild_Start.log
EXIT /B
:SUB_B
ECHO STARTING REBUILD
START "ESSBASE_EXAMPLE" /W CMD /C D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Essbase_Code_File.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
EXIT /B
:SUB_C
ECHO Ending the Rebuild - Ending @ %time% on %date% >D:\Logs\Rebuild_End.log
EXIT /B
:EOF
Мне нравится этот метод, потому что командная строка не переименовывается - есть запись для запуска / время окончания, перестроение происходит в новом окне и затем закрывается, когда закончится,