Запуск подпроцесса
Задача
При импорте справочников различными процессами отправлять стандартное электронное письмо с результатом импорта.
Исходные данные
Решение задачи будем рассматривать на примере заполнения справочника данными из файла формата Excel Товары.xlsx
. После загрузки данных необходимо будет запустить стандартную процедуру отправки электронного письма с результатами импорта.
Перед тем как приступить к решению задачи, ознакомимся с имеющимся файлом Товары.xlsx
.
Сценарий решения задачи
Решение задачи будет включать в себя два этапа:
- Этап №1 — создание вспомогательного процесса (подпроцесса), выполняющего отправку входящего файла по электронной почте, будет включать шаги:
- Создание параметра процесса типа "Файл".
- Создание параметра процесса, через который будет передано название импортируемого справочника.
- Получение данных об адресате письма из базы Колибри.
- Формирование темы и сообщения письма.
- Формирование вложения на основе входящего файла.
- Отправка письма.
- Этап №2 — создание основного процесса по импорту данных в справочник будет включать шаги:
- Получение файла Excel.
- Преобразование входящего файла из Excel в табличные данные.
- Загрузка данных в Колибри.
- Формирование исходящего файла формата CSV, содержащего результат импорта.
- Передача исходящего файла в подпроцесс по отправке почты.
Из основного процесса в подпроцесс по отправке почты будет передан файл с результатом импорта, который будет являться вложением к письму.
Замечание
Для передачи из основного процесса в подпроцесс любых данных, в том числе файла, в подпроцессе должен быть создан параметр процесса соответствующего типа.
Используемые узлы
Получить строки Колибри
Проекция
Отправка почты
Прочитать файл
Преобразовать из Excel
Вставка строк Колибри
Преобразовать в CSV
Подпроцесс
Формула
В процессе будет использован параметр процесса типа "Файл" и параметры процесса в формулах других узлов.
Построение и настройка процессов
Этап №1. Создание вспомогательного процесса по отправке электронной почты
- Создадим и сохраним новый процесс.
- Создадим параметр процесса типа "Файл", который далее будет являться вложением отправляемого письма.
- Создадим параметр процесса "Импортируемый справочник", который будет использоваться для формирования темы и сообщения электронного письма.
- Для получения данных об адресате письма добавим узел Получить строки Колибри, установим название "Менеджеры" и настроим свойства.
- Тема и сообщение электронного письма будем формировать с помощью добавления вычисляемой колонки к выходным данным узла "Менеджеры", посредством узла Проекция.
Для этого добавим узел "Проекция" и соединим его входной порт с выходным портом "Менеджеры".
- У узла Проекция укажем название "Проекция. Формирование темы, сообщения" и добавим две вычисляемые колонки, "Тема" и "Сообщение", в формулах которых сформируем соответствующие значения, с использованием параметра процесса "Импортируемый справочник".
- Выполним проверку процесса, при наличии ошибок исправим их.
- Для отправки электронного письма добавим узел Отправка почты и соединим его входной порт с выходным узлом "Проекция. Формирование темы, сообщения", из которого будут взяты адресаты, тема и текст сообщения.
- Настроим свойства "Отправка почты" и добавим одно вложение, указав для него номер входного порта и название файла
import_result.csv
.
- Для передачи во вложение электронного письма входящего файла присоединим параметр "Входящий CSV" к входящему порту
import_result.csv
узла "Отправка почты".
- Выполним проверку процесса, при наличии ошибок исправим их.
- Созданный вспомогательный процесс может быть вызван из любых процессов по импорту различных справочников.
Этап №2. Создание основного процесса по импорту данных, вызывающего вспомогательный процесс
- Создадим и сохраним новый процесс.
- Для импорта данных из файла Excel получим его, для этого добавим узел Прочитать файл.
Укажем название узла "Файл Товары.xlsx" и настроим свойства, указав сетевой путь до файла MS Excel.
- Для преобразования выходных данных узла "Файл Товары.xlsx" из потока байт в табличные данные добавим узел Преобразовать из Excel и соединим его входной порт с выходным портом узла "Файл Товары.xlsx".
- Настроим свойства узла Преобразовать из Excel.
- Для загрузки данных в Колибри добавим узел Вставка строк Колибри и соединим его входной порт с выходным портом узла "Преобразовать из Excel".
- Настроим свойства узла "Вставка строк Колибри".
- Выполним проверку процесса, при наличии ошибок исправим их.
- Запустим процесс в отладке для просмотра результатов узла "Вставка строк в Колибри".
- Для передачи в подпроцесс, выполняющий отправку электронных писем, файла с результатом импорта преобразуем выходные данные узла "Вставка строк Колибри" в формат CSV.
Для этого добавим узел Преобразовать в CSV и соединим его входной порт с выходным портом узла "Вставка строк в Колибри".
- Настроим свойства узла "Преобразовать в CSV".
- Для запуска подпроцесса, созданного на этапе №1, добавим узел Подпроцесс.
- У узла Подпроцесс укажем название "Подпроцесс "Отправка почты" и настроим свойства, выбрав из списка процессов созданный ранее вспомогательный процесс.
- После указания подпроцесса, который содержит параметры, у узла "Подпроцесс "Отправка почты" автоматически были добавлены входные порты, на которые необходимо подать соответствующие данные.
- Для передачи в подпроцесс файла с результатом импорта на входной порт №1 узла "Подпроцесс "Отправка почты" подадим выходные данные узла "Преобразовать в CSV".
- Названия импортируемого справочника передадим в подпроцесс с помощью узла Формула. Добавим его, укажем название "Формула: название импортируемого справочника" и соединим его выходной порт с входным портом №2 узла "Подпроцесс "Отправка почты".
- У узла "Формула: название импортируемого справочника" в тексте формулы укажем название импортируемого справочника,
'Товары'
.
- Выполним проверку процесса, при наличии ошибок исправим их.
- Запустим процесс с сохранением. В журнале отмечен запуск подпроцесса.
- Строки были вставлены к Колибри. Письмо о результате импорта было отправлено.