Перейти к содержанию
Меню
EN

Источники данных

Источник данных SQL Server

Как создать источник SQL Server, выбрать таблицу, представление или запрос, настроить поля, отбор, постобработку и безопасно проверить данные.

Источник mssql читает записи из Microsoft SQL Server и передаёт выбранные поля в связанный маршрут печати. Источником может быть таблица, представление или один запрос только для чтения.

В этой статье описан полный путь от подключения до безопасного рабочего запуска. Общие операции каталога и различия между типами источников приведены в статье «Коннекторы и источники данных».

Важно. Настраивайте источник сначала на тестовой базе и без изменяющей постобработки. Команда Запустить является рабочей: если с источником уже связан активный маршрут, она может создать задания печати.

Что подготовить

До открытия формы получите у администратора базы данных:

  • сетевое имя или IP-адрес сервера SQL Server;
  • TCP-порт экземпляра, обычно 1433;
  • отдельную учётную запись SQL Server и пароль;
  • имя базы данных, схему и таблицу либо представление;
  • список полей, которые нужны шаблону;
  • правило отбора новых записей;
  • согласованное действие после успешной или неуспешной обработки.

Приложение использует проверку подлинности SQL Server по имени пользователя и паролю. Встроенная проверка Windows в текущей форме не настраивается. Выдайте учётной записи минимально необходимые права: чтение выбранного объекта, а права изменения — только если согласована соответствующая постобработка.

Не помещайте пароль и полную строку подключения в имя источника, описание, текст запроса, скриншоты или обращения в поддержку.

Открыть редактор

  1. Откройте Источники данных в левом меню.
  2. Нажмите Создать источник.
  3. Введите понятное имя, например Заказы SQL.
  4. В поле Тип источника выберите SQL Server (mssql).

Имя должно объяснять назначение источника, но не раскрывать адрес сервера, учётную запись или название клиента. После выбора типа появляются группы подключения, выбора объекта, полей, отбора и постобработки.

Настроить расписание

В группе Расписание выберите один из режимов:

  • Без расписания — Для первичной настройки, предпросмотра и ручного запуска.
  • Фиксированный интервал — Для регулярного опроса через заданное число секунд, минут или часов. Новый интервал отсчитывается после завершения предыдущего запуска.
  • Календарное (Cron) — Для запуска в заданные моменты по Cron-выражению. Расчёт выполняется в часовом поясе хост-приложения.

На этапе подключения оставьте Без расписания. Включайте автоматический опрос только после проверки полей, маршрута, принтера и постобработки. Интервал должен быть больше обычного времени полного цикла обработки.

Заполнить подключение

В группе настроек SQL Server укажите параметры, выданные администратором.

  • Сервер — DNS-имя или IP-адрес, доступный именно с компьютера, на котором запущена Автоматизация.
  • Порт — TCP-порт экземпляра SQL Server, число от 1 до 65535. Значение по умолчанию — 1433.
  • Пользователь — Имя отдельной учётной записи SQL Server.
  • Пароль — Пароль этой учётной записи. При редактировании сохранённый секрет не показывается открытым текстом.
  • Шифрование — Включает защищённое соединение. Для нового источника параметр включён по умолчанию.
  • Доверять сертификату сервера — Разрешает подключение без полной проверки цепочки доверия сертификата. Для нового источника параметр выключен.

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

При редактировании существующего источника пароль отображается замаскированным. Не заменяйте его без необходимости: новое значение становится новым секретом подключения.

Загрузить базы, схемы и объекты

  1. Заполните сервер, порт, пользователя и пароль.
  2. Нажмите Загрузить доступные базы данных.
  3. В поле База данных выберите нужную базу.
  4. Нажмите Загрузить схемы и объекты.
  5. Выберите режим источника и объект.

В список баз попадают доступные этой учётной записи пользовательские базы. Системные базы не предназначены для источников печати. В список объектов попадают пользовательские таблицы и представления выбранной базы.

Если список не загрузился, не сохраняйте случайные значения. Проверьте адрес, порт, учётные данные, доступность базы, параметры TLS и права пользователя. Точный текст ошибки и время события пригодятся для диагностики.

Выбрать режим источника

Поле Режим источника поддерживает три варианта.

  • Таблица — Схема и таблица. Основной вариант, особенно если после обработки нужно обновлять или удалять исходную запись.
  • Представление — Схема и представление. Когда выборка и объединение данных уже подготовлены администратором базы.
  • Запрос — Один SQL-запрос только для чтения. Когда требуемую выборку нельзя получить готовой таблицей или представлением.

Для таблицы или представления выберите Схему и Объект из загруженных списков. Не меняйте их вручную на объект, которого нет в списке: учётной записи может не хватать прав либо объект может находиться в другой базе.

Правила режима «Запрос»

Запрос должен состоять из одного оператора и начинаться с SELECT или WITH. Разрешена только выборка данных. Изменяющие и административные команды, несколько операторов, хранимые процедуры и динамическое выполнение отклоняются.

Пример безопасной формы запроса:

SELECT
    Id,
    ProductName,
    Barcode,
    Copies
FROM dbo.PrintQueueView
WHERE IsReady = 1;

Не помещайте в запрос пароль, токен или иные секреты. Для сложной логики лучше создать представление в базе, проверить его отдельно и выдать учётной записи право чтения только этого представления.

Обнаружить и настроить поля

После выбора объекта или ввода запроса нажмите Добавить или обновить поля источника. Операция получает схему результата и не предназначена для запуска печати.

Поля распределяются между двумя группами:

  • Используемые поля передаются в шаблон, доступны в условиях отбора и показываются в предпросмотре;
  • Неиспользуемые поля остаются известны источнику, но не передаются дальше.

Оставьте включёнными только поля, необходимые макету, отбору и контролю обработки. Это упрощает привязку и уменьшает риск случайного раскрытия данных.

Карточку можно перенести кнопкой со стрелкой или перетаскиванием. Кнопка настройки открывает свойства конкретного поля.

В окне поля доступны:

  • Имя — имя колонки результата, не редактируется;
  • Тип данных — текст, целое число, десятичное число, логическое значение, дата, дата и время или двоичные данные;
  • По умолчанию — резервное значение по правилам обработки коннектора.

Не меняйте тип только ради визуального форматирования. Значение должно корректно преобразовываться для всех выбранных строк. После изменения схемы, запроса, состава или типа полей повторите предпросмотр и проверьте привязки в шаблоне.

Состояние Отсутствует означает, что ранее настроенное поле больше не найдено в текущей схеме. Такое поле нельзя считать безопасной привязкой: исправьте объект или запрос, обновите поля и перепривяжите элементы шаблона.

Настроить отбор записей

В группе Отбор записей нажмите Добавить условие, выберите используемое поле и задайте значение. Если условий несколько, запись проходит дальше только при выполнении каждого из них.

Типовой вариант — отдельный признак готовности, например IsReady = 1. Используйте поле с однозначным значением и индексом в базе, если выборка большая. Проверяйте соответствие типа: строка 01, число 1 и логическое значение — разные данные.

Если условия отсутствуют, источник может выбрать все доступные записи объекта. Поэтому перед первым рабочим запуском обязательно откройте предпросмотр и оцените количество и состав строк.

Выбрать постобработку

Постобработка выполняется после обработки записи. В SQL Server доступны:

  • Ничего не делать — Безопасный вариант для первичной проверки. Исходная запись не изменяется.
  • Обновить запись — Меняет согласованные поля исходной таблицы. Требует хотя бы одного назначения и надёжного идентификатора строки.
  • Удалить запись — Удаляет обработанную строку. Используйте только при утверждённой политике хранения и наличии восстановления.
  • Команда сервера — Выполняет настроенную серверную команду. Текст команды и параметры должны быть проверены администратором базы.

Прямое обновление и удаление предназначены для режима Таблица. Для представления или произвольного запроса выберите Ничего не делать либо согласованную серверную команду.

Для обновления и удаления таблица должна позволять однозначно найти именно ту строку, которая была прочитана. Практически это означает стабильный первичный или уникальный ключ. Без него постобработка может быть отклонена, а попытка обрабатывать записи порциями не будет надёжной.

Безопасная последовательность внедрения:

  1. Начните с Ничего не делать и Без расписания.
  2. Проверьте предпросмотр на тестовых данных.
  3. Свяжите источник с тестовым маршрутом и тестовым принтером.
  4. Выполните один контролируемый запуск.
  5. Сопоставьте строку базы, задание, фактическую этикетку и запись журнала.
  6. Только после этого включите согласованную постобработку.
  7. Повторите проверку успеха, ошибки и повторного запуска.

Внимание. Не включайте удаление как способ скрыть повторяющиеся записи. Сначала устраните причину повторного отбора и подтвердите фактический результат печати. При неизвестном результате удаление может лишить вас возможности безопасно восстановить обработку.

Сохранить источник

Перед сохранением проверьте:

  • имя, тип и параметры подключения;
  • базу, режим, схему и объект либо текст запроса;
  • состав и типы используемых полей;
  • каждое условие отбора;
  • постобработку;
  • расписание.

Нажмите Сохранить. Редактор закроется, каталог обновится, а приложение покажет сообщение об успешном сохранении.

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

Изменение только расписания может не требовать того же набора действий, однако после сохранения всё равно проверьте состояние источника и следующего запуска.

Выполнить предпросмотр

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

Проверьте:

  1. количество возвращённых записей;
  2. названия и порядок полей;
  3. типовые, пустые и граничные значения;
  4. отсутствие лишних и конфиденциальных колонок;
  5. соответствие условий отбора ожидаемым строкам.

Сообщение Источник не вернул записей само по себе не означает ошибку. Возможные причины: в объекте нет данных, ни одна строка не прошла отбор либо выбрана не та база, схема или таблица. Сначала проверьте эти условия, затем события приложения.

Если предпросмотр сообщает, что не выбраны используемые поля, вернитесь в редактор, включите нужные карточки и сохраните источник.

Связать источник с шаблоном и маршрутом

Создайте или откройте маршрут печати и выберите сохранённый источник, подходящий шаблон и тестовый принтер. Порядок настройки описан в статье «Маршруты печати».

Источник и шаблон должны описывать совместимый набор данных. Если источник маршрута отличается от источника, на котором настраивался шаблон, приложение предлагает заменить источник и предупреждает о необходимости перепривязать поля. После такой замены:

  1. откройте шаблон;
  2. проверьте привязку каждого текста, штрихкода и изображения;
  3. заново назначьте отсутствующие или переименованные поля;
  4. выполните предпросмотр на нескольких характерных строках;
  5. сохраните маршрут и только затем активируйте его.

Не полагайтесь только на совпадение имени поля. Сравните также его тип и смысл, особенно для количества копий, даты, штрихкода и признака готовности.

Запустить обработку

Команда Запустить в каталоге выполняет рабочий запуск источника. При активном связанном маршруте выбранные записи могут перейти в очередь печати. Перед нажатием проверьте маршрут, шаблон, принтер, формат отправки и количество копий.

После запуска контролируйте цепочку:

  1. состояние источника и результат последнего запуска;
  2. созданное задание в Очередях печати;
  3. фактический выход принтера;
  4. запись в Журнале распечатки;
  5. ожидаемую постобработку строки в SQL Server.

Сводные состояния и переходы описаны в статье «Дашборд и контроль состояния». Если результат печати неизвестен, используйте безопасный порядок из статьи «Восстановление печати и устранение ошибок».

Изменить источник без потери привязок

Перед изменением рабочего источника зафиксируйте связанные маршруты и шаблоны. Изменение объекта, запроса, состава или типа полей может нарушить существующие привязки, даже если источник сохранился без ошибки.

После изменения:

  1. обновите поля источника;
  2. устраните поля со статусом Отсутствует;
  3. проверьте условия отбора и постобработку;
  4. выполните предпросмотр;
  5. проверьте привязки всех связанных шаблонов;
  6. сохраните и протестируйте маршруты;
  7. повторно активируйте только проверенную цепочку.

Если форма открылась только для чтения, источник редактируется в другой сессии. Не пытайтесь обходить блокировку: закройте форму, дождитесь завершения другого редактирования и откройте источник заново.

Диагностика

  • Базы данных не загружаются — Доступность сервера с хоста Автоматизации, TCP-порт, SQL-аутентификацию, пароль, TLS и право видеть базу.
  • Ошибка сертификата — Имя сервера в сертификате, срок действия, цепочку доверия и настройку шифрования. Не отключайте проверку сертификата без согласования.
  • Список схем или объектов пуст — Выбранную базу, права SELECT и видимость нужной таблицы или представления для этой учётной записи.
  • Запрос отклонён — Один ли это оператор, начинается ли он с SELECT или WITH, нет ли изменяющих команд или вызова процедуры.
  • Поля не обнаружены — Доступен ли объект, возвращает ли запрос именованные колонки, не изменились ли схема или права.
  • Источник не вернул записей — Наличие строк в объекте, значения всех условий отбора и выбранные базу, схему и объект.
  • Появились повторные задания — Уникальность правила отбора, результат предыдущей печати, постобработку и интервал расписания.
  • Постобработка завершилась ошибкой — Режим источника, права изменения, наличие ключа строки, назначения обновления или текст серверной команды.
  • После изменения пропали данные в этикетке — Состав и типы полей источника, статус Отсутствует и привязки элементов шаблона.
  • Источник сохранён, но не запускается автоматически — Активность источника, режим расписания, время следующего запуска и состояние связанных маршрутов.

Для разбора ошибки откройте Параметры → Системный журнал, найдите событие по времени и сохраните код события, текст ошибки и корреляционный идентификатор. Порядок сбора данных описан в статье «Параметры и системная диагностика».

Передавайте в поддержку только безопасный набор:

  • версию приложения;
  • время и часовой пояс;
  • тип источника mssql;
  • режим источника;
  • состояние и точный текст ошибки;
  • корреляционный идентификатор;
  • обезличенные имена полей и условия воспроизведения.

Не прикладывайте пароль, строку подключения, рабочий SQL с чувствительными литералами, выгрузку клиентских данных или закрытый ключ лицензии.

Контрольный список готовности

  • ☐ Подключение использует отдельную учётную запись с минимальными правами.
  • ☐ Шифрование и проверка сертификата согласованы с администратором.
  • ☐ Выбраны правильные база, режим, схема и объект либо проверенный запрос.
  • ☐ Используются только необходимые поля, их типы проверены.
  • ☐ Условия отбора возвращают ожидаемый ограниченный набор строк.
  • ☐ Предпросмотр выполнен на обычных, пустых и граничных значениях.
  • ☐ Источник совместим с шаблоном, все поля перепривязаны при изменениях.
  • ☐ Тестовый маршрут использует правильный принтер, формат и число копий.
  • ☐ Постобработка проверена отдельно для успеха и ошибки.
  • ☐ Расписание включено только после контролируемого ручного запуска.
  • ☐ Оператор знает, где контролировать очередь, журнал и системные события.

После выполнения списка источник SQL Server готов к включению в рабочий маршрут.