Коллеги, добрый день. Недавно начал изучать платформу. Собственно создал тестовый процесс обработки заявок. Есть необходимость заявкам задавать номера 1,2,3 ... и т.д. Создал контекстную переенную думал есть возможность как-то через нее это сделать. То есть хранить значение внутри и каждый раз при запуске процесса делать +1. Но, не получается, я так понимаю каждый раз, когда запускаю процесс создается новый контекст и все значения внем сразу по нулям. Может кто такое уже делал. Или подскажет в какую сторону смотреть.
Во первых хотелось бы поинтересоваться зачем вам именно порядковый номер процесса? Может быть вам подойдет ID (он целочисленный и сквозной на все процессы, сам увеличивается при запуске любого процесса). К нему можно обращаться в скриптах и выводить например в наименование экземпляра процесса). Если все таки непременно нужен порядковый номер отдельно в контексте процесса, то такое можно реализовать скриптом, запускающимся сразу после запуска вашего процесса. Сам скрипт получится не простой, вам необходимо будет найти последний экземпляр ранее запущенного процесса (то есть не текущий, а тот который был перед ним) и обратиться к контексту этого процесса, там посмотреть значение номера процесса и прибавить к нему 1 и записать в контекст текущего процесса. Само поле необходимо будет сделать для всех нередактируемым. Готовая генерация порядковых номеров тоже есть, но у документов. Там есть специальная сущность нумератор, может быть можно использовать ее и для процессов, но тут нужно попробовать, я точно не знаю. Опять же обращаться к нумератору придется скриптом.
Ещё (как костыль) можно завести новый справочник, в нём хранить порядковые номера заявок и прочих документов. При старте процесса скриптом вынимать значение из нужной ячейки справочника и значение в справочнике увеличивать на 1. При необходимости можно будет откатывать значение порядкового номера.
Коллеги, спасибо за ответы. Но проблему решил через сценарии. Создал маленькую сборку, реализовал что-то вроде синглтона, с набором методов. Подцепил сборку в проект. При старте процесса запускаю метод который делает +1, записываю это значение в переменную контекста которая отображается в наименовании.
Коллеги, спасибо за ответы. Но проблему решил через сценарии. Создал маленькую сборку, реализовал что-то вроде синглтона, с набором методов. Подцепил сборку в проект. При старте процесса запускаю метод который делает +1, записываю это значение в переменную контекста которая отображается в наименовании.
Алексей, благодарю за подсказку! Правда не сразу понял, что имелось в виду. Напишу, возможно, кому-то пригодится. Задача была как и у zazimko - вывести в название экземпляра процесса целочисленные коды (например, "Заявка № 12"). Желательно без лишних трудностей, т.к. я новичок в Элма и на си-шарпе и дотнет не писал - пока только разбираюсь. Первоначально, я удивился, что нет возможности выдернуть ID на отдельный созданный процесс (хотя в таблице в базе он есть) Из совета Алексея сделал вывод,что речь шла об ID всех процессов (т.е. {$Instance.Id} взятый из таблицы WorkflowInstance). Нумератор есть только в коммерческой версии Элмы. В итоге обнаружил, что у контекста каждого процесса все-таки есть свойство ID, соответственно, можно его вставить в заголовок экземпляра конкретного процесса путем {$Context.Id} и решить задачу. В самом списке переменных, которые выбираешь из интерфейса, идентификатора не нашел. P.S. У нас установлена версия ELMA Community - 3.10.10.32624. С уважением, Константин.