MiniM Database Server может быть использован для выполнения скриптов
автоматизации сохраненных в текстовых файлах на диске. Опишем процедуру, как
сделать скрипты на языке MUMPS.
Для вызова из оболочки Windows скрипта сохраненного в файле нужно зарегистрировать расширение файла и назначить ему обработчик. Для скриптов на языке MUMPS будем использовать файлы с расширением .mumps. В качестве обработчика назначим командный файл mshell.cmd, который сохраним в рабочем подкаталоге MiniM \bin.
Далее в примере приводятся файлы как если бы MiniM Database Server был установлен в каталог w:\MiniM\
Для ассоциирования расширения файла с обработчиком надо внести дополнительные записи в реестр Windows. Пример как это можно сделать, в нотации файлов реестра:
В самом скриптовом файле на языке MUMPS можем использовать макросы, подпрограммы и точечный синтаксис, как если бы это была обычная рутина MiniM Database Server.
Выполнение .mumps скрипта начинается с его первой строки и продолжается либо до команды выхода quit либо до команды halt. Скрипт может использовать все возможности сервера MiniM Database Server. Процесс запускается в базе данных указанной в конфигурационном файле сервера minim.ini как база для процессов по умолчанию, секция [Process], ключ Namespace.
При работе скрипта он получает параметры командной строки, которые при исполнении скрипта доступны как индексированная локальная переменная %param. Например, при запуске скрипта
Загрузить инсталлятор MiniM Shell Scripts (exe, 290 Kb)
Для вызова из оболочки Windows скрипта сохраненного в файле нужно зарегистрировать расширение файла и назначить ему обработчик. Для скриптов на языке MUMPS будем использовать файлы с расширением .mumps. В качестве обработчика назначим командный файл mshell.cmd, который сохраним в рабочем подкаталоге MiniM \bin.
Далее в примере приводятся файлы как если бы MiniM Database Server был установлен в каталог w:\MiniM\
Для ассоциирования расширения файла с обработчиком надо внести дополнительные записи в реестр Windows. Пример как это можно сделать, в нотации файлов реестра:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.mumps] @="MUMPS Script" [HKEY_CLASSES_ROOT\MUMPS Script\DefaultIcon] @="W:\\MiniM\\bin\\minim.exe,0" [HKEY_CLASSES_ROOT\MUMPS Script\Shell\Open\Command] @="\"w:\\MiniM\\bin\\mshell.cmd\" \"%1\" %*"Файл обработчик должен передать параметры процессу MiniM:
@echo off
w:\minim\bin\minim.exe -x
"d RUN^%%MSHELL(\"%1\",\"%2\",\"%3\",\"%4\",\"%5\",
\"%6\",\"%7\",\"%8\",\"%9\")" -h
Здесь вызывается специальная устанавливаемая нами рутина ^%MSHELL, которая
должна выполнить действия:
- Указанный в параметре файл прочитать и создать на его основе временную рутину MiniM
- Временная рутина должна иметь имя производное от служебного префикса и иметь суффикс производный от номера процесса, чтобы одновременное выполнение двух и более скриптов не мешало друг другу
- Временная рутина должна быть скомпилирована в исполняемый байткод
- Полученный временный байткод должен быть выполнен как рутина
- По окончании работы временная рутина и ее байткод должны быть удалены
%MSHELL
%MSHELL ; MiniM MUMPS Shell scripts
q
RUN(%fname,%param...)
n %rname="MSHELL"_$j,%n,%line
n %dev="|FILE|"_%fname,%eof=$v("proc",5,0)
k ^rMAC(%rname)
o %dev:("rt") u %dev
s %n=1 f r %line q:$zeof d
. s ^rMAC(%rname,%n)=%line
. s %n=%n+1
u 0 c %dev
i $v("proc",5,%eof)
i '$$COMP^%MPP(%rname) g err
i $v("rou","c",%rname) g err
d @("^"_%rname)
k ^rMAC(%rname),^ROUTINE(%rname),^rOBJ(%rname)
q
err
w !,"Failed to compile script file",!,%fname,!
r "Press any key to remove this routine and terminate.",!,*%n
k ^rMAC(%rname),^ROUTINE(%rname),^rOBJ(%rname)
q
В результате полной настройки мы можем создавать текстовые файлы в любом
каталоге с расширением .mumps и запускать их так же как командные или другие
скриптовые файлы.
В самом скриптовом файле на языке MUMPS можем использовать макросы, подпрограммы и точечный синтаксис, как если бы это была обычная рутина MiniM Database Server.
Выполнение .mumps скрипта начинается с его первой строки и продолжается либо до команды выхода quit либо до команды halt. Скрипт может использовать все возможности сервера MiniM Database Server. Процесс запускается в базе данных указанной в конфигурационном файле сервера minim.ini как база для процессов по умолчанию, секция [Process], ключ Namespace.
При работе скрипта он получает параметры командной строки, которые при исполнении скрипта доступны как индексированная локальная переменная %param. Например, при запуске скрипта
run.mumps option1 option2локальная переменная %param получает значения:
%param=8 %param(1)="option1" %param(2)="option2" %param(3)="" %param(4)="" %param(5)="" %param(6)="" %param(7)="" %param(8)=""Загрузить архив с исходными текстами MiniM Shell Scripts (zip, 3Kb)
Загрузить инсталлятор MiniM Shell Scripts (exe, 290 Kb)
Комментариев нет:
Отправить комментарий