2. SDP (Документооборот) - Алгоритмы отработки и отката этапов ДО;
3. STP (Шаблоны форм ИС):
3.1. Алгоритмы редактирования (инициализация, добавление, изменение, перемещение, копирование и удаление записей);
3.2. Алгоритмы пользовательских действий;
3.3. Алгоритмы триггеров (на добавление, изменение и удаление записей бизнес-объектов);
3.4. Алгоритмы sql-запросов секций данных;
4. STO (Шаблоны веб-страниц):
4.1. Алгоритмы формирования кеш-данных веб-компонентов
4.2. Алгоритмы инициализации веб-компонентов при загрузке веб-страницы
4.3. Алгоритмы обработки ajax-запросов;
4.4. Алгоритмы вывода экземпляра веб-компонента на страницу.
Для доступа к метаданным из функции seaMain используются специальные объекты:
1. Объект $_MSF - текущие модуль, раздел, форма, секция данных и бизнес-объект. Свойства и методы объекта:
1.1. getFKID – ИД верхней секции данных (например, папки);
1.2. getPKeyID/setPKeyID() – ИД текущей обрабатываемой записи бизнес-объекта;
1.3. getParentID – ИД родительской папки в секции с деревом папок;
1.4. getFKeys – Перечень ИД верхних секций, если их несколько;
1.5. getLRID – ИД секции данных;
1.6. getLRCode – Код СД;
1.7. getLRClass – Тип СД (grid, tree, record);
1.8. getLRTreeTbl – Название таблицы для дерева папок;
1.9. getFrmID – ИД формы;
1.10. getFrmCode – Код формы;
1.11. getFrmClass – Класс формы (Section, Editing, Browser);
1.12. getSctID – ИД раздела;
1.13. getSctCode – Код раздела;
1.14. getModID – ИД модуля;
1.15. getModCode – Код модуля;
1.16. getTmpDir – Путь к ?;
1.17. getClassID – ИД бизнес-объекта;
1.18. getClassCode – Код бизнес-объекта;
1.19. withAttachments – Признак – с вложениями/без вложений;
1.20. getRootID – ИД корневой папки раздела;
1.21. function addMsg($msg) – Добавить очередное сообщение;
2. Объект
$_SEA - параметры текущей операции. Свойства и методы объекта:
2.1. records – массив ИД записей;
2.2. uaID – ИД пользовательского действия;
2.3. uaCode – код пользовательского действия;
2.4. destLRID – ИД приёмной секции данных;
2.5. destRecID – ИД записи для её копирования;
2.6. isDelAction – признак – операция удаления/другая операция;
2.7. isLastRec – признак – последняя запись/нет;
2.8. prepUCCData - ?;
3. Объект $_USER. Свойства и методы объекта:
3.1. id – ИД текущего пользователя;
3.2. group_id – ИД текущей группы пользователя;
3.3. ...
Набор стандартных функций и классов, которые могут быть использованы в алгоритмах:
1. Function jxErr($msg) – Сгенерировать ошибку и прервать выполнение алгоритма. В аудите работы с ИС фиксируется текст ошибки;
2. Function jxMsg($msg) – Вывести сообщение;
3. Function jxDebugObj($o) – Вывести структуру объекта (при отладке);
4. Function rightOnObject($objcode) – проверяет права доступа текущей группы на пользовательский объект, например, тип веб-компонента.
5. Function runSeaMainUAction($ua, $PKEY_ID, $_SEA = null, $_MSF = null, $_USER = null, $msgErr = null) – Запускает пользовательское действие из алгоритма. $ua – ИД или код ПД, $msgErr – сообщение, выводящееся при отсутствии прав доступа на ПД.
6. Function getBObjectValues($table, $fname, $cond = '', $flag = '') – Вывести перечень значений записей бизнес-объекта. $flag – Для пустого первого пункта = 0 (опустить), иначе = 1;
7. Function addEvent($class_id, $rec_id, $evt, $evtdet, $key_id = null, $comment = null) – Зарегистрировать событие в системе;
...
Диалоги используются для того, что бы в процессе выполнения алгоритма вывести в браузере пользователя форму с возможностью ввода/вывода данных. Например, при выполнении пользовательских действий можно запросить какие-нибудь параметры, используя стандартный диалоговый класс TDialog и предварительно сформировав список элементов ввода-вывода данных. При отработке этапа ДО можно вывести экранную форму редактирования создаваемого документа (или другого бизнес-объекта) для возможности изменить данные в полях (класс TEditEntity). При выводе формы диалога система будет ожидать ввода данных пользователем. На техническом уровне выполнение PHP-скрипта будет приостановлено до тех пор пока не поступит команда подтверждения ввода или отмены операции, либо не истечёт время ожидания команды (до 60 минут).