Источники данных
Источник данных MySQL
Как подключить MySQL, выбрать таблицу, представление или запрос, настроить поля, отбор, постобработку и безопасно проверить данные.
Источник mysql читает записи из базы MySQL и передаёт выбранные поля в связанный маршрут печати. Данные можно получать из таблицы, представления или одного запроса только для чтения.
Статья описывает настройку MySQL от подключения до контролируемого запуска. Общие операции каталога и состояния источников приведены в статье «Коннекторы и источники данных».
Важно. Первую настройку выполняйте на тестовой базе, без расписания и с постобработкой Ничего не делать. Команда Запустить является рабочей: при наличии активного маршрута она может создать задания печати.
Что подготовить
Получите у администратора MySQL:
- DNS-имя или IP-адрес сервера;
- TCP-порт, обычно
3306; - отдельного пользователя MySQL и пароль;
- имя базы данных;
- таблицу либо представление;
- перечень полей, необходимых шаблону;
- правило отбора записей для обработки;
- согласованное действие после результата.
Приложение подключается по имени пользователя и паролю MySQL. Используйте отдельную учётную запись с минимальными правами. Для начальной настройки ей достаточно чтения нужной базы и объектов. Права UPDATE, DELETE или выполнения серверной команды добавляйте только для утверждённой постобработки.
Не размещайте пароль или полную строку подключения в имени источника, запросе, скриншоте и обращении в поддержку.
Создать источник
- Откройте раздел Источники данных.
- Нажмите Создать источник.
- Укажите понятное назначение, например
Каталог товаров MySQL. - В поле Тип источника выберите MySQL (
mysql).
После выбора типа появляются группы подключения, расписания, отбора, постобработки и полей. Имя источника должно быть понятно оператору, но не должно содержать адрес сервера, логин или название клиента.
Настроить расписание
В группе Расписание доступны:
- Без расписания — ручная настройка и проверка. Это рекомендуемый начальный режим.
- Фиксированный интервал — повторный запуск через заданный период после завершения предыдущего запуска.
- Календарное (Cron) — запуск по Cron-выражению в часовом поясе хост-приложения.
Не задавайте короткий интервал до измерения времени полного цикла: чтения, создания заданий, печати и постобработки. Новый запуск не должен конкурировать с ещё не завершившейся обработкой того же набора данных.
Заполнить подключение
Введите параметры, выданные администратором базы.
- Сервер — имя или IP-адрес, доступный с компьютера Автоматизации.
localhostозначает сам этот компьютер. - Порт — TCP-порт MySQL от 1 до 65535. По умолчанию используется
3306. - Пользователь — имя отдельной учётной записи MySQL.
- Пароль — пароль этой учётной записи. Сохранённый секрет при редактировании отображается замаскированным.
- Шифрование — включает TLS для соединения. Для нового источника включено по умолчанию.
- Доверять сертификату сервера — требует шифрование, но не выполняет полную проверку сертификата сервера. Для нового источника выключено.
Для рабочего контура оставляйте Шифрование включённым, а доверие сертификата обеспечьте средствами операционной системы и инфраструктуры. Вариант с включённым Доверять сертификату сервера шифрует трафик, но не подтверждает подлинность сервера полностью; применяйте его только как согласованное исключение.
При выключенном шифровании TLS не используется. Не отключайте его только ради устранения ошибки подключения: сначала проверьте имя сервера, сертификат, цепочку доверия и настройки MySQL.
Загрузить базы и объекты
- Заполните сервер, порт, пользователя и пароль.
- Нажмите Загрузить доступные базы данных.
- Выберите Базу данных.
- Нажмите Загрузить схемы и объекты.
- Выберите режим и объект.
Системные схемы information_schema, mysql, performance_schema и sys в рабочий список не включаются. Отображаются пользовательские базы, доступные указанной учётной записи.
В MySQL база одновременно является схемой объектов, поэтому значения полей База данных и Схема обычно совпадают. Выбирайте их из загруженного списка. Регистр имён таблиц может зависеть от конфигурации и операционной системы сервера, поэтому не набирайте имя объекта заново без необходимости.
Если списки не загрузились, проверьте доступность сервера и порта, логин, пароль, TLS и права пользователя. Не сохраняйте случайные или непроверенные значения.
Выбрать режим источника
Поле Режим источника поддерживает три варианта.
- Таблица — база, схема и таблица. Основной вариант, особенно для обновления или удаления строки после обработки.
- Представление — база, схема и представление. Для подготовленной администратором выборки с объединениями и вычислениями.
- Запрос — один запрос только для чтения. Используется, когда подходящей таблицы или представления нет.
В режиме таблицы или представления выберите Схему и Таблицу или представление. Загруженный список разделяет базовые таблицы и представления и показывает только объекты, доступные учётной записи.
Правила режима «Запрос»
Запрос должен состоять из одного оператора и начинаться с SELECT или WITH. Команды изменения данных или схемы, вызовы процедур, динамическое выполнение и несколько SQL-операторов отклоняются.
Пример запроса только для чтения:
SELECT
Id,
Sku,
Name,
Barcode,
Price
FROM print_products
WHERE IsActive = 1;
Для сложной выборки предпочтительно создать представление, проверить его в MySQL и выдать пользователю источника право чтения только этого объекта. Запрос не должен содержать пароли, токены или чувствительные литералы.
Обнаружить поля
После выбора объекта или ввода запроса нажмите Добавить или обновить поля источника. Приложение получает схему результата без рабочего запуска маршрута.
Карточки распределяются между группами:
- Используемые поля передаются в шаблон, доступны для отбора и выводятся в предпросмотре;
- Неиспользуемые поля не передаются дальше.
Перемещайте поле стрелкой или перетаскиванием. Оставляйте включёнными только данные, необходимые для шаблона, отбора и контроля обработки. Так проще обнаружить изменение схемы и меньше риск случайно вывести лишние данные.
Нажмите кнопку настройки на карточке, чтобы проверить тип и значение по умолчанию.
В окне доступны:
- Имя — имя колонки, не редактируется;
- Тип данных — текст, целое число, десятичное число, логическое значение, дата, дата и время или двоичные данные;
- По умолчанию — резервное значение по правилам коннектора.
Основные соответствия типов MySQL:
TINYINT(1),BIT(1),BOOL,BOOLEAN— логическое значение.INT,BIGINT,SMALLINT,MEDIUMINT,YEAR— целое число.DECIMAL,NUMERIC,DOUBLE,FLOAT,REAL— десятичное число.DATE— дата.DATETIME,TIMESTAMP— дата и время.BINARY,VARBINARY, семействоBLOB— двоичные данные.- Остальные типы — текст.
Проверьте особенно внимательно:
TINYINT(1): он интерпретируется как логическое значение;BIT(n)приn > 1: это целое число, а не набор отдельных флагов;DECIMAL: масштаб и десятичный разделитель должны сохраняться до форматирования в шаблоне;TIMESTAMPиDATETIME: часовой пояс и смысл значения должны быть согласованы с системой-источником;NULL: пустое значение и значение по умолчанию не должны менять смысл этикетки.
Состояние Отсутствует означает, что настроенная ранее колонка больше не обнаружена. Исправьте объект или запрос, обновите поля и перепривяжите элементы шаблона до активации маршрута.
Настроить отбор
В группе Отбор записей нажмите Добавить условие, выберите используемое поле и задайте ожидаемое значение. При нескольких условиях запись выбирается, только если выполнены все условия.
Типовой вариант — отдельный индексированный признак готовности, например IsActive = 1. Сравниваемое значение должно соответствовать типу поля. Строка 01, целое число 1 и логическое значение — не взаимозаменяемые варианты.
Если условий нет, источник обрабатывает все доступные записи. Перед первым рабочим запуском оцените выборку через предпросмотр и убедитесь, что она не содержит исторические или уже обработанные строки.
Настроить постобработку
В MySQL доступны четыре действия:
- Ничего не делать — исходная запись не изменяется. Используйте при настройке и первом тесте.
- Обновить запись — записывает согласованные значения в выбранные поля таблицы. Требуется хотя бы одно назначение.
- Удалить запись — удаляет обработанную строку. Нужны утверждённая политика хранения и возможность восстановления.
- Команда сервера — выполняет настроенную команду с параметрами. Требует проверки администратором MySQL.
Прямые операции Обновить запись и Удалить запись доступны для режима Таблица. Для представления или запроса используйте Ничего не делать либо согласованную серверную команду.
Для надёжной обработки порциями и последующего изменения записи таблица должна иметь стабильный первичный или уникальный ключ. Предпочтителен простой ключ из одной колонки. Без однозначной идентификации строки постобработка может быть отклонена или стать небезопасной.
Порядок ввода постобработки:
- Оставьте Ничего не делать и Без расписания.
- Проверьте выборку в предпросмотре.
- Выполните один запуск через тестовый маршрут и принтер.
- Сопоставьте запись MySQL, задание, этикетку и журнал.
- Включите согласованное обновление, удаление или команду.
- Отдельно проверьте успешный результат, ошибку и повторный запуск.
Внимание. Не используйте удаление для маскировки повторной обработки. Сначала подтвердите фактический результат печати и исправьте правило отбора. При неизвестном результате удалённая строка может сделать безопасное восстановление невозможным.
Сохранить источник
Перед сохранением проверьте:
- имя и тип
mysql; - сервер, порт, пользователя и параметры TLS;
- базу, схему, режим и объект либо запрос;
- состав и типы полей;
- все условия отбора;
- постобработку;
- расписание.
Нажмите Сохранить. Редактор закроется, каталог обновится, и приложение покажет сообщение об успешном сохранении.
Если источник участвует в активной цепочке, изменение значимых настроек может потребовать деактивации источника, расписания и связанных маршрутов. Просмотрите перечисленные зависимости и продолжайте через Деактивировать и сохранить только в согласованное окно обслуживания.
Проверить предпросмотр
В каталоге откройте действия сохранённого источника и нажмите Предпросмотр. Эта операция читает и показывает данные, но не должна запускать маршрут и печать.
Проверьте:
- ожидаемое количество строк;
- названия, типы и порядок полей;
- цены, количество, даты и логические признаки;
- отображение
NULLи значений по умолчанию; - отсутствие лишних и конфиденциальных данных;
- результат всех условий отбора.
Сообщение Источник не вернул записей не всегда является ошибкой. Возможно, таблица пуста, ни одна строка не прошла условия либо выбраны другая база, схема или таблица. Проверьте эти причины до изменения подключения.
Если не выбраны используемые поля, вернитесь в редактор, включите нужные карточки и сохраните источник.
Связать с шаблоном и маршрутом
Откройте маршрут печати, выберите сохранённый источник, совместимый шаблон и тестовый принтер. Подробный порядок приведён в статье «Маршруты печати».
Если шаблон настраивался с другим источником, приложение предлагает заменить источник и предупреждает о перепривязке полей. После замены:
- откройте шаблон;
- проверьте каждый текст, штрихкод и изображение;
- заново назначьте отсутствующие или переименованные поля;
- сравните не только имя, но также тип и смысл поля;
- выполните предпросмотр на нескольких характерных строках;
- сохраните маршрут и только затем активируйте его.
Особенно тщательно проверяйте поля цены, количества копий, штрихкода, даты и признака готовности.
Выполнить контролируемый запуск
Команда Запустить является рабочей. Если с источником связан активный маршрут, строки могут перейти в очередь печати. Перед нажатием проверьте шаблон, принтер, формат отправки и количество копий.
После запуска сопоставьте:
- состояние источника и результат последнего запуска;
- задание в Очередях печати;
- фактически напечатанные этикетки;
- запись в Журнале распечатки;
- ожидаемое состояние исходной строки MySQL.
Сводные показатели описаны в статье «Дашборд и контроль состояния». При неизвестном результате не повторяйте запуск вслепую — используйте статью «Восстановление печати и устранение ошибок».
Изменить источник
Перед изменением рабочего источника зафиксируйте связанные шаблоны и маршруты. Смена таблицы, запроса, состава или типа полей может нарушить привязки без явной ошибки сохранения.
После изменения:
- повторно загрузите поля;
- устраните карточки со статусом Отсутствует;
- проверьте отбор и постобработку;
- выполните предпросмотр;
- проверьте привязки шаблонов;
- протестируйте маршруты;
- активируйте только проверенную цепочку.
Если редактор открылся только для чтения, источник занят другой сессией. Закройте форму, дождитесь окончания редактирования и откройте источник снова. Не пытайтесь обходить блокировку параллельным сохранением.
Диагностика
- Базы не загружаются — проверьте доступность сервера с хоста Автоматизации, порт
3306или назначенный порт, логин, пароль, TLS и права пользователя. - Ошибка TLS или сертификата — проверьте имя сервера, срок действия сертификата, цепочку доверия и параметры шифрования. Не отключайте проверку без согласования.
- Нужная база отсутствует — проверьте права пользователя и убедитесь, что это не системная схема.
- Список объектов пуст — проверьте выбранную базу или схему, права
SELECTи регистр имени объекта. - Запрос отклонён — проверьте, что это один оператор, начинающийся с
SELECTилиWITH, без изменяющих команд и вызовов процедур. - Поля не обнаружены — проверьте существование объекта, права, именованные колонки результата и актуальность запроса.
- Тип поля определён неожиданно — проверьте фактический тип MySQL, особенно
TINYINT(1),BIT(n),DECIMAL,TIMESTAMPи двоичные поля. - Источник не вернул записей — проверьте наличие строк, условия отбора, выбранные базу, схему и объект.
- Повторяются задания — проверьте признак готовности, результат прошлой печати, постобработку и интервал расписания.
- Постобработка завершилась ошибкой — проверьте режим Таблица, права изменения, первичный или уникальный ключ, назначения обновления либо серверную команду.
- После изменения пустые элементы этикетки — проверьте состав и типы полей, статус Отсутствует и привязки элементов шаблона.
- Нет автоматического запуска — проверьте активность источника, расписание, время следующего запуска и активность маршрута.
Для подробного разбора откройте Параметры → Системный журнал и найдите событие по времени. Сохраните код события, текст ошибки и корреляционный идентификатор. Инструкция приведена в статье «Параметры и системная диагностика».
В обращение в поддержку можно включить:
- версию приложения;
- время и часовой пояс;
- тип источника
mysql; - выбранный режим;
- состояние и точный текст ошибки;
- корреляционный идентификатор;
- обезличенные имена полей и последовательность воспроизведения.
Не передавайте пароль, строку подключения, рабочий запрос с чувствительными значениями, выгрузку клиентских данных или закрытый ключ лицензии.
Контрольный список готовности
- ☐ Используется отдельная учётная запись с минимальными правами.
- ☐ Порт, TLS и проверка сертификата согласованы с администратором.
- ☐ Выбраны правильные база, схема, режим и объект либо безопасный запрос.
- ☐ Используются только необходимые поля, их типы и
NULLпроверены. - ☐ Условия отбора возвращают ограниченный ожидаемый набор строк.
- ☐ Предпросмотр выполнен на обычных и граничных значениях.
- ☐ Источник совместим с шаблоном, изменённые поля перепривязаны.
- ☐ Тестовый маршрут использует правильный принтер, формат и число копий.
- ☐ Постобработка проверена отдельно для успеха, ошибки и повтора.
- ☐ Расписание включено только после контролируемого ручного запуска.
- ☐ Оператор знает, где контролировать очередь, журнал и системные события.
После выполнения контрольного списка источник MySQL готов к включению в рабочий маршрут.