Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server в Управляемом экземпляре SQL Windows
Azure
Это важно
Службы Master Data Services (MDS) удаляются в SQL Server 2025 (17.x). Мы продолжаем поддерживать MDS в SQL Server 2022 (16.x) и более ранних версиях.
Службы Master Data Services используют бизнес-правила для создания основных решений рабочих процессов, таких как автоматическое обновление и проверка данных и отправка уведомлений по электронной почте в зависимости от указанных условий. Когда требуется более сложная обработка, чем та, которую обеспечивают действия встроенного рабочего процесса, используйте пользовательский рабочий процесс. Пользовательский рабочий процесс ― это создаваемая вами сборка .NET. При вызове вашей сборки рабочего процесса код может выполнять любые действия, которые требуются в данной ситуации. Например, если для рабочего процесса требуется сложная обработка событий, например многоуровневые утверждения или сложные деревья принятия решений, можно настроить службы Master Data Services для запуска пользовательского рабочего процесса, который анализирует данные и определяет, куда отправить его для утверждения.
Как обрабатываются пользовательские рабочие процессы
Существует три основных компонента для обработки пользовательских рабочих процессов: веб-приложение Master Data Manager, служба интеграции рабочих процессов SQL Server MDS и сборка обработчика рабочих процессов. Эти компоненты обрабатывают пользовательский рабочий процесс следующим образом:
Для проверки сущности, запускающей рабочий процесс, используется диспетчер master Data Manager.
Master Data Manager отправляет участников, которые соответствуют условиям бизнес-правила в очередь Service Broker в базе данных Master Data Services.
Через регулярные интервалы служба интеграции рабочих процессов SQL Server MDS вызывает хранимую процедуру в базе данных Master Data Services.
Когда хранимая процедура находит записи в очереди компонента Service Broker, она возвращает их службе SQL Server MDS Workflow Integration Service.
Служба SQL Server Службы Integration Services MDS направляет данные в сборку обработчика рабочих процессов.
Примечание.
Примечание. Служба SQL Server MDS Workflow Integration Service предназначена для запуска простых процессов. Если пользовательскому коду требуется сложная обработка, ее следует выполнить либо в отдельном потоке, либо за пределами обработки рабочего процесса.
Настройка служб Master Data Services для пользовательских рабочих процессов
Для создания пользовательского рабочего процесса требуется написание пользовательского кода и настройка служб Master Data Services для передачи данных рабочего процесса обработчику рабочего процесса. Выполните следующие действия, чтобы включить обработку пользовательских рабочих процессов.
Создайте сборку .NET, реализующую Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.
Настройте службу интеграции рабочих процессов SQL Server MDS для подключения к базе данных Master Data Services и связывания тега с обработчиком рабочего процесса.
Запустите службу SQL Server MDS Workflow Integration Service.
Создайте бизнес-правило в Master Data Manager, который запускает рабочий процесс, помеченный именем обработчика рабочего процесса.
Примените бизнес-правило к элементу, который запускает пользовательский рабочий процесс.
Создание сборки обработчика рабочих процессов
Настраиваемый рабочий процесс — это сборка библиотеки классов .NET, реализующая интерфейс Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender . Служба интеграции рабочих процессов SQL Server MDS вызывает метод Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* , чтобы запустить код. Пример кода, реализующего Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* , см. пример пользовательского рабочего процесса (службы Master Data Services).
Выполните следующие действия, чтобы создать с помощью Visual Studio 2010 сборку, которую сможет вызывать служба SQL Server MDS Workflow Integration Service для обработки пользовательского рабочего процесса:
В Visual Studio 2010 создайте проект Библиотека классов, в котором используется язык по вашему выбору. Чтобы создать библиотеку классов C#, выберите типы проектов Visual C#\Windows и шаблон Библиотека классов. Введите имя проекта, например MDSWorkflowTest, и нажмите кнопку ОК.
Добавьте ссылку на файл Microsoft.MasterDataServices.WorkflowTypeExtender.dll. Эта сборка находится в <папке> установки\Master Data Services\WebApplication\bin.
Добавьте строку "using Microsoft.MasterDataServices.Core.Workflow;" в файл с кодом C#.
Наследуется от Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender в объявлении класса. Объявление класса должно выглядеть примерно так: public class WorkflowTester : IWorkflowTypeExtender.
Реализуйте интерфейс Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender. Метод Microsoft.MasterDataServices.WorkflowTypeExtender.IWorkflowTypeExtender.StartWorkflow* вызывается службой интеграции рабочих процессов MDS SQL Server для запуска рабочего процесса.
Скопируйте сборку в расположение исполняемого файла sql Server MDS Workflow Integration Service с именем Microsoft.MasterDataServices.Workflow.exe в <папке> установки\Master Data Services\WebApplication\bin.
Настройка службы Configure SQL Server MDS Workflow Integration Service
Измените файл конфигурации Master Data Services, чтобы включить сведения о подключении к базе данных Master Data Services и связать тег с сборкой обработчика рабочего процесса, выполнив следующие действия:
Найдите Microsoft.MasterDataServices.Workflow.exe.config в <папке> установки\Master Data Services\WebApplication\bin.
Добавьте сведения о подключении базы данных Master Data Services к параметру ConnectionString. Если в установке SQL Server используется параметры сортировки с учетом регистра, имя базы данных должно быть введено в том же случае, что и в базе данных. Например, полный тег параметра может выглядеть следующим образом:
<setting name="ConnectionString" serializeAs="String"> <value>Server=myServer;Database=myDatabase;Integrated Security=True</value> </setting>Под параметром ConnectionString добавьте параметр WorkflowTypeExtenders, чтобы связать имя тега с используемой сборкой обработчика рабочих процессов. Например:
<setting name="WorkflowTypeExtenders" serializeAs="String"> <value>TEST=MDSWorkflowTestLib.WorkflowTester, MDSWorkflowTestLib</value> </setting>Внутренний текст <тега значения> находится в виде <имени>< типа рабочего процесса с указанием типа> рабочего процесса с указанием сборки. <Тег> рабочего процесса — это имя, используемое для идентификации сборки обработчика рабочего процесса при создании бизнес-правила в Master Data Manager. <Имя> типа рабочего процесса с указанием сборки — это имя класса рабочего процесса, за которым следует запятая, а затем отображаемое имя сборки. Если сборка имеет строгое имя, то также необходимо указать данные о версии и ее PublicKeyToken. Можно включить несколько тегов параметров<, если вы создали несколько >обработчиков рабочих процессов для различных типов рабочих процессов.
Примечание.
В зависимости от конфигурации сервера при попытке сохранить файл Microsoft.MasterDataServices.Workflow.exe.config на экране может появиться сообщение об ошибке "В доступе отказано". В этом случае временно отключите контроль учетных записей на сервере. Для этого откройте панель управления и выберите пункт Система и безопасность. В разделе Центр уведомлений щелкните Изменить параметры контроля учетных записей. В диалоговом окне Параметры контроля учетных записей передвиньте ползунок в самый низ, чтобы не получать никаких уведомлений. Перезагрузите компьютер и повторите описанные ранее действия для изменения файла конфигурации. После сохранения файла, сбросьте параметры контроля учетных записей пользователей на значения по умолчанию.
Запуск службы SQL Server MDS Workflow Integration Service
По умолчанию служба SQL Server MDS Workflow Integration Service не установлена. Чтобы использовать эту службу, ее сначала необходимо установить. Для обеспечения наибольшей безопасности создайте локального пользователя для этой службы и предоставьте этому пользователю только те разрешения, которые необходимы для выполнения операций рабочего процесса. Чтобы создать пользователя, установите службу, запустите ее и выполните следующие действия.
С помощью диспетчера локальных пользователей и групп создайте локального пользователя с именем, например, mds_workflow_service.
С помощью среды SQL Server Management Studio предоставьте пользователю mds_workflow_service разрешение на выполнение хранимой процедуры [mdm].[udpExternalActionsGet]. Для этого создайте новое имя входа для учетной записи mds_workflow_service, создайте нового пользователя в базе данных Master Data Services, сопоставите этого пользователя с именем входа mds_workflow_service и предоставьте пользователю разрешение EXECUTE на [mdm]. Хранимая процедура [udpExternalActionsGet].
Предоставьте пользователю mds_workflow_service разрешение на выполнение сборки обработчика рабочих процессов. Для этого добавьте пользователя mds_workflow_service на вкладку Безопасность диалогового окна Свойства сборки обработчика рабочих процессов и предоставьте пользователю службы mds_workflow_service разрешение READ и EXECUTE.
Предоставьте пользователю службы mds_workflow_service разрешение на выполнение исполняемого файла службы SQL Server MDS Workflow Integration Service. Для этого добавьте пользователя mds_workflow_service на вкладку "Безопасность" свойств Microsoft.MasterDataServices.Workflow.exe в <папке> установки\Master Data Services\WebApplication\bin и предоставьте пользователю mds_workflow_service разрешение READ и EXECUTE.
Установите службу SQL Server MDS Workflow Integration Service с помощью программы установки .NET с именем InstallUtil.exe. InstallUtil.exe можно найти в папке установки .NET, например C:\Windows\Microsoft.NET\Framework\v4.0.30319\. Установите службу SQL Server MDS Workflow Integration Service, введя в командной строке следующую команду:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil Microsoft.MasterDataServices.Workflow.exeПри запросе во время установки укажите пользователя mds_workflow_service.
Запустите службу SQL Server MDS Workflow Integration Service с помощью оснастки «Службы». Для этого найдите службу SQL Server MDS Workflow Integration Service в оснастке "Службы", выделите ее и щелкните ссылку Запустить.
Создание бизнес-правила рабочего процесса
Используйте Master Data Manager для создания и публикации бизнес-правила, которое запустит рабочий процесс при применении. Бизнес-правило должно содержать действия, которые изменяют значения атрибутов таким образом, чтобы после его применения правило не могло быть применено еще раз. Например, критерии бизнес-правила должны быть соблюдены, когда значение атрибута «Price» больше 500, а значение атрибута «Approved» не задано. В этом случае правило должно включать два действия: задание значения «Pending» атрибуту «Approved» и запуск рабочего процесса. Также можно создать правило, в котором будет использоваться условие "изменилось", и добавить атрибуты в группы отслеживания изменений. Дополнительные сведения о бизнес-правилах см. в разделе "Бизнес-правила" (службы Master Data Services).
Создайте бизнес-правило, которое запускает настраиваемый рабочий процесс в Master Data Manager, выполнив следующие действия.
В редакторе бизнес-правил диспетчера master Data Manager после указания условий бизнес-правила перетащите действие "Запуск рабочего процесса" из списка внешних действий в метку действия области "Действие ТО".
На панели Изменение действия в поле Тип рабочего процесса введите тег, который обозначает сборку обработчика рабочего процесса. Это тег, который был задан в файле конфигурации сборки, например, TEST.
При необходимости установите флажок Включить данные элемента. Этот параметр устанавливается для того, чтобы включать имена атрибутов и значения из XML-файла, который передается обработчику рабочего процесса.
В поле Сайт рабочего процесса введите имя веб-сайта. Для пользовательского рабочего процесса это может и не применяться, но может быть использовано для формирования дополнительного контекста.
В поле Имя рабочего процесса введите имя рабочего процесса, которое указано в Visual Studio. Для пользовательского рабочего процесса это может и не применяться, но может быть использовано для формирования дополнительного контекста.
Сохраните и опубликуйте бизнес-правило.
Применение бизнес-правила к запуску рабочего процесса
Примените бизнес-правило к данным, чтобы запустить рабочий процесс. Для этого используйте диспетчер master Data Manager для изменения сущности, содержащей элементы, которые необходимо проверить. Нажмите кнопку Применить бизнес-правила. В ответ на бизнес-правило диспетчер Master Data Manager заполняет очередь Service Broker базы данных Master Data Services. Когда служба SQL Server MDS Workflow Integration Service проверяет очередь, она отправляет данные указанной сборке обработчика рабочего процесса и очищает очередь. Сборка обработчика рабочего процесса выполняет те действия, которые были запрограммированы.
Устранение неполадок пользовательских рабочих процессов
Если сборка обработчика рабочего процесса не получает данные, можно попробовать выполнить отладку службы SQL Server MDS Workflow Integration Service или просмотреть очередь компонента Service Broker.
Отладка службы SQL Server MDS Workflow Integration Service
Для отладки службы SQL Server Workflow Integration Service выполните следующие действия.
С помощью оснастки «Службы» остановите службу.
Откройте командную строку, перейдите в каталог, в котором находится служба и запустите службу в пультовом режиме, введя следующую команду: Microsoft.MasterDataServices.Workflow.exe -console.
В Master Data Manager обновите члена и снова примените бизнес-правила. В окне консоли будут отображены подробные записи журнала.
Просмотр очереди компонента Service Broker
Очередь компонента Service Broker, в которой содержатся основные данные, переданные в рамках рабочего процесса, находится по адресу mdm.microsoft/mdm/queue/externalaction. Очереди можно найти в обозреватель объектов SQL Management Studio в узле Service Broker базы данных Master Data Services. Имейте в виду, что если служба должным образом очистила очередь, она будет пуста.
См. также
Пример пользовательского рабочего процесса (службы Master Data Services)
Описание XML пользовательского рабочего процесса (службы Master Data Services)