Академический Документы
Профессиональный Документы
Культура Документы
Версия 1 от 31.03.2023
Оглавление
Оглавление
Оглавление .................................................................................................................. 2
Введение ..................................................................................................................... 7
1.2. Приложение..................................................................................................... 13
Введение
Современный мир требует от компаний высокой скорости работы и гибкости в
адаптации к изменениям рынка. Важно, чтобы автоматизация была быстрой и
эффективной, а внедрение изменений — максимально оперативным.
для различных отраслей. Книга содержит пошаговое руководство для создания low-
code решения, которое легко понять даже новичку. Однако содержание этой книги не
ограничивается техническими инструкциями. Мы поделимся лучшими практиками по
проектированию и документированию решений, рассмотрим практические кейсы и
разберём принципы разработки хороших решений. Эта книга будет полезна для всех,
кто хочет оптимизировать свои бизнес-процессы и использовать современные
технологии в своей работе.
1.1. Раздел
Для начала создадим новый раздел Отпуска, в котором организуем работу
пользователей.
Раздел размещается в левом меню системы и объединяет в себе функции для обеспечения
работы одного подразделения или одной бизнес-задачи.
Создание раздела
Создание раздела
Новый раздел
1.2. Приложение
В созданном разделе Отпуска создадим приложение Отпуск, в котором будем
хранить информацию обо всех отпусках за свой счёт в компании.
Контекст — это описание структуры хранения. Он определяет, какие именно данные могут
храниться в приложении. Например, Дата начала, Дата окончания отпуска и Сотрудник,
который идёт в отпуск. Контекст приложения задаётся в типизированном виде, то есть для
каждого поля в контексте приложения указывается тип данных. От типа данных зависит
доступный пользователю способ заполнения и формат хранения в базе данных. Например, когда
мы говорим о вводе даты, мы представляем её выбор в календаре, а не ручной ввод с
клавиатуры. Поэтому для полей Дата начала и Дата окончания мы будем использовать тип
данных Дата/время.
Формы — это представления данных. Форма определяет, как именно данные будут
отображаться у пользователя. Например, форма, которая открывается при создании отпуска,
должна содержать период отпуска.
Создание приложения
Создание приложения
2) дату начала — это дата и время начала отпуска за свой счёт. Время здесь
необходимо на случай, если отпуск нужен на несколько часов в течение
одного дня;
3) дату окончания — аналогично дате начала;
4) причину — текстовое описание с причиной для информирования
руководителя;
5) руководителя — это пользователь системы, который согласует отпуск
сотрудника.
Добавим необходимые поля в контекст приложения. Каждое свойство,
размещённое в области слева, — это поле на форме. Используя технологию Drag-
and-Drop, перетаскивайте свойства с боковой панели, чтобы добавить нужные поля.
Выберем нужные нам типы данных на боковой панели:
Боковая панель
Заголовок элемента — это его название, которое мы заполнили при создании. Чтобы открыть
форму просмотра элемента приложения, нажмите на его название. Чтобы изменить его, нажмите
кнопку Редактировать. Кнопка видна только пользователям с правами доступа на
редактирование.
На форме создания:
На форме просмотра:
Администрирование системы
Отдел продаж;
Отдел поддержки;
Отдел закупок;
Отдел кадров.
Внутри отделов добавим начальников, а под ними группу сотрудников отдела.
Такой структуры будет достаточно для нашего примера.
1.4. Бизнес-процесс
Настроим бизнес-процесс согласования отпуска.
Процессы можно описать и при помощи должностных инструкций, но лучше использовать для
этого специальные нотации. В системе за основу мы взяли нотацию BPMN 2.0. Она позволяет
не только описать последовательность действий в процессе, но и определить его участников.
Это, несомненно, одно из главных преимуществ нотации BPMN. Подробнее с нотацией можно
познакомиться на сайте.
Бизнес-процесс в BPMN — это схема, на которой каждый участник представлен в виде Зоны
ответственности. Внутри зоны ответственности располагаются события и задачи, за которые
отвечает участник процесса.
Вот, например, как будет выглядеть простой процесс покупки техники, описанный в ELMA365:
Пример бизнес-процесса
Создание бизнес-процесса
Дизайнер бизнес-процессов
Задача — это один из инструментов для организации работы внутри компании. Задачи могут
ставиться автоматически в рамках бизнес-процесса или вручную сотрудниками. Все задачи
отображаются в одноимённом разделе.
Задачи пользователя
Каналы — это инструмент для общения внутри команд и отделов. В них легко
синхронизировать работу сотрудников, поделиться новостями компании, предупредить коллег о
командировке или отпуске, поздравить с важным событием, рассказать о новых сотрудниках.
Лента пользователя
В настройках задачи:
Обратите внимание, что в этой задаче, в отличие от предыдущей, появилась ещё одна
настройка — Множественное исполнение.
Настройка оповещения
По умолчанию все новые приложения доступны группе Все пользователи. Но доступ можно
ограничить:
На уровне приложения — при выборе этой опции настройки доступа будут применяться ко
всем элементам данного приложения.
Если нужно добавить больше пользователей, можно увеличить цифру, например «+2». Или
явно указать роль пользователя, например example+chief@elma365.ru.
Приложение «Отпуск»
Оформим отпуск:
Например, для приложения Счёт на оплату можно настроить такие статусы, как
На согласовании, Согласован, Не согласован и Оплачен. Это помогает отслеживать, на
каком этапе работы находится тот или иной счёт.
Управление статусом
Схема бизнес-процесса
Нумератор
Настройки нумератора
Настройки страницы
Виджеты для внешнего портала помогают организовать его интерфейс для внешних
пользователей: вывести доступные на портале страницы или заголовок с логотипом
и информацией о пользователе;
Другие виджеты.
Виджет «Колонки»
Виджет «Колонки»
Главная страница
Заголовок страницы;
Содержимое страницы;
Текст.
Создание кнопки
Главная страница
Оформление отпуска
Создание приложения
Настройки формы
Пример разделителя
Создание разделителя
Создание разделителя
Виды отпуска
контекст. Чтобы в одном из полей приложения Отпуск можно было выбрать вид
отпуска, добавим свойство типа Приложение и выберем приложение Вид отпуска
из списка.
Виды отпуска
Выбор приложения
Настройки формы
Создание формы
Создание формы
Сценарий — это код, который описывает поведение виджета в тех или иных условиях.
Как правило, сценарии для виджетов не требуют больших мощностей для реализации, и мы
рекомендуем писать их на стороне Клиента.
Создание сценария
Сценарий «onInit»
Добавление инструкции
Добавим инструкцию для пользователя, которая будет загружаться из описания
Вида отпуска. Для этого откроем в дизайнере интерфейсов форму создания и
добавим свойство Описание в контекст формы.
Создание сценария
Сценарий
Форма создания
Настройки приложения
Настройки приложения
Название;
Дата начала;
Дата окончания;
Статус.
Настройка таблицы
Настройка таблицы
Табличное отображение
Шлюзы представляют собой точки принятия решения в процессе. Они используются для
того, чтобы направить процесс по той или иной ветке в зависимости от определённых условий.
Как только процесс достигнет шлюза, система проверит заданные условия и выберет тот
переход, для которого условие выполнилось. Порядок проверки задаётся в настройках шлюза,
на вкладке Переходы.
Контекст бизнес-процесса
Настройки перехода
элементе Таймер до даты окончания отпуска. Как только она наступит, бизнес-
процесс двинется дальше по схеме.
Настройки таймера
Схема бизнес-процесса
Для решения такой задачи используются Группы и роли на уровне раздела или
приложения. Создадим группу Сотрудники отдела кадров в нашем разделе.
Настройки раздела
Настройка групп
3.1. Раздел
Раздел размещается в левом меню системы и объединяет в себе приложения,
страницы, контракты и бизнес-процессы. Раздел реализует функционал для
обеспечения работы одного подразделения или реализации бизнес-задачи.
Подробнее о разделе и работе с ним читайте в справке.
Заявки на вакансии;
Кандидаты;
Собеседования.
Этим разделом будут пользоваться специалисты по подбору персонала, их
руководитель, HR-директор, а также руководители организации, которые являются
заказчиками вакансий.
Раздел «Рекрутинг»
3.2. Приложение
Приложение помогает организовать хранение данных и работу с ними.
Приложение бывает нескольких типов:
Стандартное;
Событие;
Документ.
Тип приложения влияет на форму его отображения и стандартный набор полей.
Подробнее о приложении читайте в справке.
Приложение «Регионы»
Контекст — это описание структуры хранения. Он определяет, какие именно данные могут
храниться в приложении. Например, Дата начала, Дата окончания отпуска и Сотрудник,
который идёт в отпуск. Контекст приложения задаётся в типизированном виде, то есть для
каждого поля в контексте приложения указывается тип данных. От типа данных зависит
доступный пользователю способ заполнения и формат хранения в базе данных. Например, когда
мы говорим о вводе даты, мы представляем её выбор в календаре, а не ручной ввод с
клавиатуры. Поэтому для полей Дата начала и Дата окончания мы будем использовать тип
данных Дата/время.
По умолчанию, все новые приложения доступны группе Все пользователи. Но доступ можно
ограничить:
На уровне приложения — при выборе этой опции настройки доступа будут применяться ко
всем элементам данного приложения.
трудоустройство;
все кадровые документы;
переводы;
увольнение.
Информации очень много, поэтому форма требует тщательной проработки и
распределения информации по разным вкладкам. Кроме самой формы, добавляются
действия с сотрудником, которые могут совершить специалисты кадровой службы:
3.2.2. Событие
Приложение типа Событие имеет дополнительный способ отображения в виде
календаря и используется для хранения информации о событиях. У События есть
дополнительные системные поля:
Дата начала;
Дата завершения;
Участники.
Это позволяет использовать такой тип приложений, как события в календаре,
дополняя их необходимой информацией.
3.2.3. Документ
Приложение типа Документ используется для работы с документами. По
умолчанию в нём есть поле типа Файл, которое позволяет:
загружать документы;
хранить версии документов;
согласовывать их;
подписывать документы в электронном виде.
Например, документами будут Трудовой договор и Дополнительное
соглашение к нему.
3.3. Интерфейс
Интерфейс предназначен для создания:
3.3.1. Страница
Страница предназначена для создания ролевых интерфейсов, на ней можно
разместить быстрые действия и необходимую для роли информацию. Страницу
можно поместить в меню системы или в меню раздела. Страница создаётся из
виджетов.
3.3.2. Виджет
Виджет используется для отображения информации. В системе есть
предустановленные виджеты, а также реализована возможность создавать
пользовательские виджеты.
Виджеты для внешнего портала помогают организовать его интерфейс для внешних
пользователей: вывести доступные на портале страницы или заголовок с логотипом
и информацией о пользователе;
Другие виджеты.
3.4. Бизнес-процесс
Бизнес-процесс как элемент конфигурации позволяет смоделировать
исполняемый процесс. Бизнес-процессы помогают выстраивать взаимосвязанные
цепочки автоматических и пользовательских операций. Подробнее о бизнес-
процессах читайте в справке.
вручную пользователем;
по таймеру;
из другого процесса с помощью элемента Подпроцесс;
из внешней системы через автоматически сгенерированное API;
после создания элемента приложения.
У бизнес-процесса есть:
3.6. Нумераторы
Нумераторы позволяют генерировать последовательные номера для элементов
приложения по заданным правилам. Их обычно используют для формирования
названия элемента приложения по шаблону с указанием порядкового номера, а также
для получения регистрационного номера документа. Подробнее о нумераторах
читайте в справке.
3.7. Контракт
Контракт в определённом смысле реализует принцип наследования и позволяет
объединить несколько приложений в единый интерфейс. Используя контракт, можно
настраивать общую для приложений функциональность. Подробнее о контрактах
читайте в справке. У контракта есть:
Шаблон договора
3.10. Портал
Портал позволяет реализовать интерфейс взаимодействия с системой для
внешних пользователей. Подробнее о портале читайте в справке.
Портал КЭДО
3.11. Модуль
Модуль позволяет расширить функциональность системы:
Для элемента приложения можно настроить свою форму для каждого вида
действия:
Страницы
Страницы можно использовать как ролевой интерфейс для сотрудников.
Например, можно создать страницу для сотрудников отдела подбора персонала. На
неё вывести план по подбору персонала и текущее состояние.
Размер суточных пока постоянный, но есть вероятность, что его могут изменить.
Чтобы администратор в дальнейшем мог менять его через интерфейс, не используйте
константу внутри сценария бизнес-процесса, а создайте дополнительный параметр
для его хранения.
4.2.3. Приложение
Если настройки необходимо хранить списком в разрезе каких-то элементов,
используйте приложение. В его контексте вы можете связать элементы другого
приложения с набором необходимых параметров.
4.3. Интеграция
Для интеграции с другими системами используйте модули.
Модуль позволяет:
Создавать свой сервис нужно тогда, когда без него нельзя решить задачу.
Сценарии использования сервиса:
контекст приложения;
интерфейсы на уровне приложения — формы и виджеты;
настройки приложения, например, настройка названия элемента
приложения;
бизнес-процессы;
нумераторы;
дополнительные параметры;
шаблоны;
веб-формы;
группы и роли.
Изоляция на уровне приложения при решении бизнес-задач чаще всего не
используется, так как одного приложения для решения задачи обычно недостаточно.
Но изоляция на уровне приложения используется «под капотом», когда вы
экспортируете решение, в составе которого есть приложение из системного раздела.
Приложение из системного раздела включается в состав решения на этом уровне
изоляции.
5.6. Примеры
1. Счета;
2. Контрагенты;
3. Назначения платежей;
4. Мои юридические лица.
Из указанных приложений два есть в системе всегда: CRM — Компании,
Системные справочники — Мои юридические лица. Для начала можно
использовать эти приложения, потому что на них можно ссылаться, не нарушая
изоляцию.
Решение в этом случае будет гибким, так как не исключено, что в будущем
понадобится интеграция с учётной системой, нужно будет создать свой модуль,
который можно будет добавить в состав решения.
Не имеет значения, где внутри решения будут созданы эти группы. Они также
могут использоваться, например, в оповещениях в бизнес-процессах, поэтому важно
использовать группы на нужном уровне изоляции.
5.8.1. Зависимости
При разработке решений вам может потребоваться приложение или бизнес-
процесс из другого раздела, но это нарушит изоляцию на уровне раздела. Чтобы
сохранить изоляцию, но использовать приложение, создайте два решения и добавьте
в него по одному разделу.
Пример
Необходимо разработать функционал для HR-отдела: от подбора персонала и
найма до адаптации, обучения и увольнения. Запуск контуров будет
последовательный, но сроки сжатые, поэтому требуется вести разработку
параллельно.
<a href="./(p:item/kedo/letter_of_resignation)">Оформить</a>
где:
5.9.1. Пример
Вы создали решение Управление договорами в среде разработки и перенесли
его в продакшн. В обеих средах есть идентичные решения.
раздел Договоры:
o приложение Договор;
o приложение ДС к договору;
o бизнес-процесс Согласование договорных документов;
модуль Интеграция с ЮЗДО:
o действие в БП Отправка документа;
o действие в БП Получение документа;
o бизнес-процесс Синхронизация статусов.
Рассмотрим разные варианты изменений и результат обновления со среды
разработки на продакшн:
При создании таких решений важно сохранить их полноту, чтобы они целиком
покрывали требования заказчика и функции подразделений. Также важно не
допустить избыточности, т. е. создания функций, которыми не будут использоваться.
Цели:
6.1.1. Роли
Всех пользователей решения опишем в виде ролей. Роль — это, например,
Согласующий, Бухгалтер или Менеджер по продажам. Ролью будет:
6.1.2. Мотивы
Для каждой роли определим её мотивы. Почему инициатор будет что-то делать?
И будет ли? Ответы на эти вопросы дадут понимание мотивов. Они помогут
реализовать такой интерфейс для взаимодействия с решением, который будет
достаточным и будет использоваться.
Для роли Согласующий необходимо показать только то, что находится в его зоне
ответственности. Например, когда за разные пункты договора отвечают разные
подразделения, согласующему не нужно видеть весь текст договора, только часть, за
которую он отвечает. Кроме этого, ему нужна возможность получить экспертное
мнение от своего коллеги.
Сотрудник:
o ознакомиться с документами приёма и подписать их;
o взять отпуск;
o посмотреть, согласован ли отпуск, и сумму отпускных;
o запросить пособие;
o узнать, сколько и когда начислят.
Руководитель:
o согласовать отпуск;
o видеть отпуска сотрудников;
o знать, куда отправить сотрудника по кадровому вопросу.
Кадровый делопроизводитель:
o трудоустроить сотрудника;
o контролировать этапы подготовки кадровых документов;
o найти документы по сотруднику;
o выгрузить документы сотрудника в архив.
Подписант:
o подписать документ;
o найти нужный документ на подпись;
o подписать несколько документов.
Технические контуры:
o Личный кабинет сотрудника;
o Модуль интеграции с 1С;
o Модуль электронного подписания.
Приём, перевод, увольнение;
Отпуска;
Справки;
ЛНА.
После разбивки решения на контуры необходимо детализировать сценарии
взаимодействия ролей по контурам. Детализируем сценарии для контура Отпуска:
Сотрудник:
o запланировать отпуск на год;
o перенести отпуск;
o посмотреть, когда очередной отпуск;
o посмотреть, когда был отпуск в прошлом году;
o узнать, сколько дней отпуска осталось;
Руководитель:
o согласовать график отпусков;
o видеть все пересечения в графике и иметь возможность внести
изменения;
Кадровый делопроизводитель:
o контролировать этапы подготовки графика отпусков;
o видеть сотрудников, которые не ознакомились с графиком отпусков;
Подписант:
o подписать документ;
o найти нужный документ на подпись;
o подписать несколько документов.
Этот контур будет включать в себя основной интерфейс для сотрудника со всеми
кадровыми сервисами.
1. Приложение Сотрудники;
2. Приложения для штатного расписания: Организация, Подразделение,
Должность;
3. Интерфейс Штатное расписание;
4. Приложения для справочных данных: Страна, Регион, Город и т. д.;
5. Контракт Кадровые документы;
6. Портал для сотрудников.
Уровень изоляции для контура: раздел в составе решения, так как от него будут
зависеть другие контуры.
Модуль интеграции с 1С
Это готовый модуль, который уже есть в платформе, его не нужно разрабатывать,
мы просто используем его. При этом не нужно включать его в состав решения, т. к. он
входит в состав ELMA365 ECM. При этом наше решение будет зависеть от ELMA365
ECM.
Состав контура:
Отпуска
Состав контура:
1. Приложение Отпуск;
2. Приложения типа Документ для отпусков: Приказ на отпуск, График
отпусков и т.п.;
3. Виджет График отпусков;
4. Бизнес-процессы для работы с отпусками.
Уровень изоляции для контура: Решение, так как требуется установить
зависимость от Решения с техническими контурами.
Справки и ЛНА
7.2.1. Человек-оркестр
Разработкой решения может заниматься один человек, если:
Плюсы подхода:
Плюсы подхода:
7.3.1. Человек-оркестр
Если разработку ведёт один человек, то в практике встречается:
Пользователи решения;
Сотрудники поддержки, которые помогают пользователям работать с
решением;
Администраторы, которые обеспечивают его доступность;
Разработчики, которые его создали и развивают.
У каждого потребителя документации свои запросы. Например:
Бывает так, что документацию начинают писать в самом конце, когда решение уже
разработано и готовится к запуску в production-среде. Такой подход может создать не
мало проблем ещё в процессе разработки. Например, если один из участников
команды заболеет или уволится, важная информация о решении может быть
упущена. Поэтому рекомендуется своевременно формировать и обновлять
документацию, чтобы она не устаревала. Чем больше времени проходит от
изменения до документирования — тем больше трудозатрат потребуется на
актуализацию.
1. Краткое описание решения: для чего оно и какие задачи решает. Такое
описание поможет любому потребителю быстро понять суть решения;
2. Настройка решения: как правильно настроить решение в начале и на что
влияют эти настройки;
3. Описание инфраструктуры: какие мощности используются для решения, как
контролировать его доступность и обслуживать сервера;
4. Инструкции по ролям — описание интерфейсов и сценариев
взаимодействия с решением для каждой роли;
5. Архитектура решения:
a. Состав решения — что в себя включает решение;
b. Взаимодействие элементов решения — как они взаимодействуют
между собой;
c. Возможности расширения решения — как правильно использовать
заложенные возможности расширения и дорабатывать
функциональность.
9.1.1. В интерфейсах
Воспользуйтесь вкладкой Network в инструментах разработчика в браузере и
обратите внимание на:
9.1.2. В сценариях
Измерьте время выполнения сценария с помощью фиксации времени начала и
окончания.
9.2. Рекомендации
Пользователь взаимодействует с интерфейсом в режиме реального времени,
поэтому неоптимальная реализация заметнее именно здесь.
10.2. 5 принципов
Ниже описаны ключевые принципы, которыми стоит руководствоваться при
создании решения.
«Зачем знать первичную проблему, если кто-то уже нашёл решение и спустился
на уровень задач?» — спросите вы. Чтобы выбрать оптимальный путь решения
задачи, который приведёт к достижению цели.