Автоматическое изменение срока исполнения заданий

Данный раздел содержит описание примера серверного расширения. Пример демонстрирует реализацию автоматических изменений данных связанных карточек.

Ссылка на пример на GitHub: ShiftTasksEndDate.

После сохранения карточки Документа ищутся все его связанные задания, и срок исполнения для отправленных на исполнение заданий переносится на 3 дня вперед.

Пример рассчитан на версию Web-клиента 6.1 или выше.

Перечень необходимых инструментов:

Сборка и установка

  1. Откройте /Samples.sln.

  2. Соберите проект ServerExtensions > ShiftTasksEndDate > ShiftTasksEndDateServerExtension.

  3. Откройте консоль в папке ServerExtensions > ShiftTasksEndDate > ShiftTasksEndDateWebExtension и выполнить команду npm install, затем npm update и в конце npm run build:prod.

  4. Скопируйте каталог SamplesOutput\Extensions\ShiftTasksEndDateServerExtension в каталог Путь к сайту Web-клиента\Extensions.

  5. Скопируйте файл SamplesOutput\Extensions\ru\ShiftTasksEndDateServerExtension.resources.dll в каталог “Путь к сайту Web-клиента\Extensions\ru”.

  6. Скопируйте файл SamplesOutput\Extensions\uk\ShiftTasksEndDateServerExtension.resources.dll в каталог Путь к сайту Web-клиента\Extensions\uk.

  7. Скопируйте каталог`SamplesOutput\Content\Modules\ShiftTasksEndDateWebExtension` в каталог Путь к сайту Web-клиента\Content\Modules.

  8. Перезапустите dvwebclient.

Проверка примера

  1. Запустите конструктор разметок.

  2. Скопируйте любую разметку редактирования.

  3. Выберите условия использования этой разметки.

  4. В разметке редактирования на событие OnCardSaved элемента root прикрепляем обработчик с названием shiftTasksEndDate.

  5. Сохраните разметку.

  6. Перезапустите dvwebclient.

  7. Создайте карточку документа.

  8. Добавьте дочерние задания (не группы заданий), отправить на исполнение.

  9. Нажмите на редактирование карточки, изменить что-нибудь, сохранить.

  10. Срок исполнения для отправленных на исполнение заданий сдвинулся на 3 дня.

Проект "ShiftTasksEndDateServerExtension"

Проект-расширение для Web-клиента. Содержит бизнес-логику изменения данных связанных карточек. Демонстрирует расширение функционала с помощью добавления новых сервисов, контроллеров. Реализован контроллер AdvancedDocumentController с методом ShiftTasksEndDate, который вызывает сервис IShiftTasksEndDateService.

Проект "ShiftTasksEndDateWebExtension"

Проект-расширение клиентской части Web-клиента. Содержит клиентский скрипт функции shiftTasksEndDate, которая вызывается на событие OnCardSaved. С помощью requestManager.post отправляем запрос на сервер для изменения даты.