Workflow
Общие рекомендации
- После того, как основные шаблоны процессов в соответствии с требованиями вашего предприятия разработаны, можно добавить наиболее часто используемые шаблоны в меню для быстрого запуска всеми пользователями. Данный список шаблонов процессов всегда будет отображаться в подменю "Запустить процесс". Для настройки запустите "Редактор шаблонов процессов" (wfeditor.exe) под SYSDBA и используйте команду в меню "Вид" - "Настройки" - "Меню быстрого запуска процессов".
- При проектировании условий при помощи множественно-условного перехода рекомендуется использовать переход по ИНАЧЕ, в целях предотвращения "зависания" процесса, если ни одно из условий не выполнится.
- При задании пользовательской формы на действии "Утверждение", учтите, что такие действия выполняются автоматически, если прикрепленные документы уже подписаны (или, например, ни одного документа не прикреплено). В случае, если на форме нет полей, обязательных для заполнения, она будет пропущена.
- При возникновении вопросов с процессом иногда целесообразно делать экспорт процесса (для отправки по почте), а не шаблона. В таком случае в файле экспорта будет записана вся история выполнения этого процесса, значения переменных на каждом шаге и т.д.
Сценарии маршрутизатора
Примеры сценариев маршрутизатора
Основная информация и примеры сценариев маршрутизатора находится в разделе Примеры сценариев маршрутизатора. Также могут быть полезны Типовые сценарии отдела внедрения.
Показ окна запуска процесса
Пример показа окна запуска процесса через Search API (vbScript), S4App - интерфейс ITS4App:
'Пример показа окна "Запуск процесса" с уже прикрепленными документами 'function LaunchProcess(SchemeID: Integer; Attachs: OleVariant): Integer; safecall; 'SchemeID - идентификатор шаблона, 0, если требуется выбор пользователя 'Attachs - массив массивов (variant array) с информацией о вложениях 'возвращает идентификатор процесса 'информация о вложении = Array(Kind,ID,VersionID), 'где Kind: 0 - раб.копия, 1 - архивная копия, 4 - изделие 'VersionID требуется только для прикрепления раб. копий Doc1 = Array(1,56) 'архивная копия, DocID=56 Doc2 = Array(0,92,0) 'рабочая копия, DocID=92, VersionID=0 Attachs = Array(Doc1, Doc2) SchemeID = 0 'идентификатор шаблона S4App.LaunchProcess SchemeID, Attachs
Запуск процесса без диалога с пользователем
Данный сценарий VBScript запускает процесс по заданному шаблону, прикрепляет к нему архивную копию заданного документа. Для успешного выполнения примера в шаблоне должна быть определена переменная типа список пользователей "Получатель", Search должен быть запущен до выполнения сценария.
schemeid = 123 'идентификатор шаблона процесса docid = 30 'идентификатор документа, который нужно прикрепить Set s4Ap = CreateObject("S4.TS4App") s4Ap.Login 'Search должен быть запущен! set router = S4Ap.GetSbServer.GetRouter set process = router.CreateProcess(schemeid) process.StartActivity.Attachments.AddLink(docid) 'ищем переменную типа список пользователей и записываем в значение идентификатор "Системного администратора" '(к переменным с названием латиницей можно обращаться по имени: Uservar.AsString) set userVar = process.StartActivity.Variables.GetVariableByName("Получатель") 'Формат переменных типа список пользователей: всё хранится в виде 'строки, в формате: в каждой строке (если значений несколько, разделяются переводом каретки #13#10) 'записываются пары чисел через '=' : 'ID=Kind, где ID идентификатор пользователя или группы, 'Kind : 0, если это пользователь, 1 - если это группа. 'Т.е. -1=0 - это Системный администратор. userVar.asString = "-1=0" process.Start process.Name = "Test process name" msgbox "Процесс запущен (PID=" & process.ID & ")"
Tips & Tricks
- Если вам нужно, чтобы после сценария выполнение вернулось назад, присвойте
Activity.ExecResult = -1
- Прикрепить к процессу документ можно при помощи следующих функций интерфейса IAttachmentList (Activity.Attachments):
- Прикрепить рабочую копию документа - function AddDocumentVersion(aDocID: Integer; aVersionID: Integer): Integer; safecall;
- Прикрепить архивную (актуальную) копию - function AddLink(aDocID: Integer): Integer; safecall;
- Эти функции возвращают индекс добавленного вложения в списке, или -1, если неудачно (например, документ уже прикреплен).
- Можно изменить глобальные значения по умолчанию "Запрашивать подтверждение при возврате назад" / "Запрашивать подтверждение при отправке дальше" (могут быть перекрыты пользовательской настройкой) Для этого в Search4.ini нужно записать 0/1 в секции:
[Common] WFDefConfirmSendBack=1 WFDefConfirmSendNext=1
- Макроподстановки
В полях "Описание" и "Текст сообщения" действий процесса возможно использование макроподстановок вида %ИмяПеременной%. Соответственно, во время выполнения процесса макроподстановка будет заменена значением переменной.