В основном все завязано на переменных. Причем после заведения их в диалоге работы с переменными их удобно вставлять в диалоге работы с условиями с помощью правой клавиши мыши, которая вызывает все доступные переменные. В закомментированном виде уже присутствуют шаблонные условия, операторы. Пройдусь кратко по этим шаблонам:
- Код: выделить все
//IF %ClB%==10 THEN GOTO UN=6;
//IF %ClB%=="ACE" THEN GOTO UN=7;
//IF %ClB%==10 THEN GOTO UN=6; ELSE ReplayNode(2);
//IF %ClB%=="Success" THEN %VaR_File=D:\Arch\tmp_.txt:F_% = %DaTe% + " успешно\n";
//IF %sysdate% < TO_DATE("2009.12.24 19:00:15", "YYYY.MM.DD HH24:MI:SS") THEN STOP;
//IF 1==1 THEN ReplayAip("D:\aips\tmp.aip");
Первая строка: если в буфере обмена текст "10", то выполняется оператор идущий после THEN, в качестве оператора сравнения могут быть <, <=, >, >=, ==
В качестве исполняемых операторов могут быть как манипуляции с переменными, так и манипуляции с Воспроизведением. А именно:
GOTO UN=x; - переход на Воспроизведение, начиная с действия с уникальным номером x (НЕ совпадает с номером действия!!!), этот номер можно подсмотреть в свойствах действия, кликнув на нем дважды в Таблице Действий.
ReplayNode(x); - ДОПОЛНИТЕЛЬНОЕ воспроизведение ветви x. После воспроизведения этой ветви Воспроизведение продолжится со следующего действия. Это важно понимать, что GOTO переходит к Воспроизведению в произвольное место скрипта и уже не возвращается на прежнее место, ReplayNode вставляет в текущее место отдельную ветвь Воспроизведения.
STOP; - останавливает Воспроизведение.
ReplayAip("D:\aips\tmp.aip"); - Воспроизведение другой записи, указанной в скобках в кавычках. Воспроизведение НЕ ВОЗВРАЩАЕТСЯ на текущую Запись.
По поводу переменных:
Переменные можно сохранять в файл и считывать оттуда же. (подробнее в документации)
Добавлена новая глобальная переменная %sysdate% - количество секунд со средних веков (не помню точно какого ), путем сохранения в файл и загрузки, можно вставлять условия воспроизведения отдельных ветвей раз в 2 часа или любое другое произвольное время. Приблизительно так "IF %sysdate% >= %VaR_next_actual_% THEN ReplayNode(2);" где %VaR_next_actual_% - переменная которая считала из файла время последнего Воспроизведения ветви и прибавила 7200 сек. Очень полезная функция, когда какие-то более важные моменты Записи должны выполняться более регулярно, а какие-то более редко, что значительно уменьшает время работы скрипта.
TO_DATE("2009.12.24 19:00:15", "YYYY.MM.DD HH24:MI:SS") - для более сложных манипулящий со временем предназначена эта функция, нагло подсмотренная мной из PL/SQL.
Важный момент: условий может быть перечислено несколько в диалоге, но при Выполнении оператора, который управляет воспроизведением, все нижеследующие условия игнорируются.
Еще в новой версии сделаны некоторые поправки:
- устранено срабатывание Планировщика при Воспроизведении, что раньше приводило к зависанию программы.
- некоторые баги работы с переменными (все время забываю их записывать, а потом думаю, что ж я исправлял, ведь точно помню что исправлял ).