Образец Profit Margin

Изменения: 17 июля 2006 г.

Образец «Profit Margin» является событийным приложением служб Microsoft SQL Server Notification Services, которое формирует уведомления об уровне прибыли с разбивкой по сотрудникам и отсылает их подписанным пользователям. Этот образец пользуется поставщиком событий служб SSAS для запросов к базе данных служб SSAS, а результаты возвращает в виде событий приложению служб Notification Services.

ms160923.note(ru-ru,SQL.90).gifПримечание.
Этот образец не может работать на серверах на базе процессора Itanium, так как там не установлена среда Business Intelligence Development Studio.

Сценарий

В компании имеется база данных служб SSAS, применяемая для анализа результатов продаж. Сотрудники в отделе продаж могут подписаться на приложение Profit Margin, чтобы получать уведомление, когда какой-либо из торговых посредников превысил свой целевой уровень прибыли.

По расписанию, указанному в приложении, поставщик событий служб SSAS выполняет запрос многомерных выражений для сбора событий. В ходе работы генератора эти события добавляются в хронику. Затем генератор выдает уведомления из хроники событий, если удовлетворены следующие условия.

  • Имя подписчика соответствует имени сотрудника в событии.
  • Коэффициент валовой прибыли торгового посредника больше, чем целевой коэффициент валовой прибыли торгового посредника.

Полученное в результате уведомление форматируется при помощи преобразования XSL и сохраняется в файле.

Языки

XML, XSD, XSLT и Microsoft Visual C# или Microsoft Visual Basic.

Возможности

Образец служб SSAS пользуется следующими функциями служб Notification Services.

Часть образца Возможности.

Класс событий

Базовая очередь событий, одна хроника.

Класс подписки

Один класс управляемой событиями подписки.

Класс уведомления

Один класс уведомления без сводной или многоадресной доставки.

Поставщики событий

Два поставщика событий служб SSAS: один статический и один динамический.

Модули форматирования данных

Модуль форматирования данных XSLT.

Протоколы доставки

Протокол доставки файлов и протокол доставки SMTP.

Предварительные требования

Перед запуском этого образца убедитесь в том, что установлено следующее программное обеспечение.

Построение образца

Для построения образца необходимо сделать следующее:

  • разверните базу данных служб SSAS;
  • создайте экземпляр служб Notification Services;
  • зарегистрируйте экземпляр служб Notification Services;
  • предоставьте разрешения на SQL Server и базу данных.

Следующие процедуры показывают, как выполнить каждую из этих задач для образца Profit Margin.

Шаг 1. Разверните базу данных Adventure Works DW OLAP

  1. В среде SQL Server Business Intelligence Development Studio выберите в меню Файл пункт Открыть и выберите Проект или Решение.

  2. Перейдите в папку «C:\Program Files\Microsoft SQL Server\90\Tools\Samples\AdventureWorks Analysis Services Project», выберите файл Adventure Works DW.dwproj и нажмите кнопку Открыть.

  3. В обозревателе решений щелкните правой кнопкой мыши Adventure Works DW и выберите команду Развернуть.

Шаг 2. Создайте экземпляр служб Notification Services

  1. В среде SQL Server Management Studio подключитесь к экземпляру SQL Server.

  2. В обозревателе объектов щелкните правой кнопкой мыши папку служб Notification Services, а затем выберите Создать экземпляр служб Notification Services.

  3. В диалоговом окне Создание экземпляра служб Notification Services нажмите кнопку Обзор и выберите файл InstanceConfig.xml в корневой папке образца «Profit Margin».

  4. В окне Параметры введите значения для трех параметров.

    • SampleDirectory — это путь к корневой папке образца «Profit Margin». Путь по умолчанию — «C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin».
    • NotificationServicesHost — имя локального сервера.
    • SQLServer — имя экземпляра SQL Server.
  5. Установите флажок Включить экземпляр после его создания.

  6. Нажмите кнопку ОК..

  7. После того, как службы Notification Services закончат создание экземпляра, нажмите кнопку Закрыть.

ms160923.note(ru-ru,SQL.90).gifПримечание.
Если образец служб Notification Services развертывается от учетной записи владельца базы данных или системного администратора, разрешения SQL Server ей предоставлять не нужно. Предоставление этих разрешений завершится ошибкой, на которую можно не обращать внимания. Для обеспечения безопасности при развертывании приложений необходимо использовать учетные записи с наименьшими правами доступа.

Шаг 3. Зарегистрируйте экземпляр служб Notification Services

  1. В среде SQL Server Management Studio откройте узел служб Notification Services, правой кнопкой мыши щелкните ProfitMarginInstance, укажите Задачи и выберите пункт Зарегистрировать.

  2. В диалоговом окне Регистрация установите флажок Создать службу Windows.

    Служба Windows запустит экземпляр служб Notification Services на этом компьютере.

  3. В поле Вход в службу введите учетную запись Windows и пароль. Это учетная запись Windows, под которой будет выполняться служба. Если для доступа к SQL Server используется проверка подлинности Windows, служба Windows будет также пользоваться этой учетной записью для подключения к SQL Server.

  4. Если для доступа к SQL Server необходимо пользоваться проверкой подлинности SQL Server, в поле Проверка подлинности выберите Проверка подлинности SQL Server и введите имя входа и пароль SQL Server.

    Рекомендуется использовать проверку подлинности Windows.

  5. Нажмите кнопку ОК.

  6. После того, как службы Notification Services закончат регистрацию экземпляра, нажмите кнопку Закрыть.

Шаг 4. Предоставьте разрешения на SQL Server и базу данных

  1. В обозревателе объектов разверните узел Безопасность.

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

    • Для использования проверки подлинности Windows выберите пункт Проверка подлинности Windows и введите учетную запись Windows, которая указывалась при регистрации экземпляра.
    • Для использования проверки подлинности SQL Server выберите пункт Проверка подлинности SQL Server и введите имя входа SQL Server и пароль, которые указывались при регистрации экземпляра.
  3. Если имя входа, используемое службой Windows, уже имеет доступ к SQL Server, щелкните имя входа правой кнопкой мыши и выберите пункт Свойства.

  4. В левой области диалогового окна Имя входа выберите пункт Сопоставление пользователей.

  5. Предоставьте разрешения для базы данных ProfitMarginInstanceNSMain следующим образом.

    1. В поле Пользователи, сопоставленные с этим именем входа выберите поле рядом с базой данных ProfitMarginInstanceNSMain.
    2. В поле Членство в роли базы данных для: ProfitMarginInstanceNSMain выберите пункт NSRunService.
  6. Предоставьте разрешения для базы данных ProfitMarginInstanceProfitMargin следующим образом.

    1. В поле Пользователи, сопоставленные с этим именем входа выберите поле рядом с базой данных ProfitMarginInstanceProfitMargin.
    2. В поле Членство в роли базы данных для: ProfitMarginInstanceProfitMargin выберите пункт NSRunService.
  7. Нажмите кнопку ОК, чтобы применить разрешения SQL Server.

  8. Предоставьте разрешения на доступ к базе данных Adventure Works DW, выполнив следующие действия.

    1. В среде SQL Server Management Studio подключитесь к службам SSAS.
    2. Раскройте папку База данных служб SSAS, а затем раскройте Adventure Works DW.
    3. Щелкните правой кнопкой мыши Роли и выберите пункт Создать роль.
    4. В поле Имя роли введите ProfitMarginNS.
    5. В левой области нажмите Членство и добавьте учетную запись для запуска Windows-службы Notification Services этого образца.
    6. В левой области выберите пункт Кубы.
    7. Для куба AdventureWorks щелкните Доступ и выберите Чтение.
    8. Нажмите кнопку ОК, чтобы применить разрешения для куба.
  9. Настройка безопасности для папки Events.

    1. В проводнике Windows найдите папку Events образца «Profit Margin».
    2. Щелкните правой кнопкой мыши папку Events, выберите пункт Общий доступ и безопасность и перейдите на вкладку Безопасность.
    3. Нажмите кнопку Добавить и добавьте учетную запись для службы Windows.
    4. В окне Имена групп или пользователей выберите вновь добавленную учетную запись.
    5. В поле Разрешения выберите разрешения Чтение и Изменение.
    6. Нажмите кнопку ОК, чтобы применить изменения.
  10. Настройте безопасность для папки Notifications.

    1. Найдите папку Notifications образца «Profit Margin».
    2. Щелкните ее правой кнопкой мыши папку, выберите пункт Общий доступ и безопасность, а затем перейдите на вкладку Безопасность.
    3. Нажмите кнопку Добавить и добавьте учетную запись для службы Windows.
    4. В окне Имена групп или пользователей выберите вновь добавленную учетную запись.
    5. В поле Разрешения выберите Запись.
    6. Нажмите кнопку ОК, чтобы применить изменения.

Создание файла ключа для строгого имени

Если файл ключа для строгого имени еще не создавался, создайте его следующим образом.

To generate a strong name key file

  1. Откройте командную строку Microsoft Visual Studio 2005. Нажмите кнопку Пуск, укажите пункты Все программы, Microsoft .NET Framework SDK v2.0 и выберите пункт Командная строка пакета SDK.

    -- или --

    Откройте командную строку Microsoft .NET Framework. Нажмите кнопку Пуск, укажите пункты Все программы, Microsoft .NET Framework SDK v2.0 и выберите пункт Командная строка пакета SDK.

  2. Используйте команду CD, чтобы сменить текущий каталог командной строки и перейти в каталог, в котором установлены образцы.

    ms160923.note(ru-ru,SQL.90).gifПримечание.
    Чтобы определить каталог, в котором установлены образцы, нажмите кнопку Пуск, укажите пункты Все программы, Microsoft SQL Server, Документация и учебные материалы, а затем выберите пункт Каталог образцов. Если использовался каталог установки по умолчанию, то образцы расположены в каталоге «<системный_диск>:\Program Files\Microsoft SQL Server\100\Samples».
  3. В командной строке выполните следующую команду, чтобы создать файл ключа:

    sn -k SampleKey.snk

    ms160923.note(ru-ru,SQL.90).gifВажно!
    Дополнительные сведения о паре ключей для строгого имени см. в статье по строгим именам и безопасности для платформы .NET Framework в центре разработчиков .NET в MSDN.

Выполнение образца

Для запуска образца выполните следующее.

  • Запустите экземпляр.
  • Добавьте подписчиков и подписки.
  • Добавьте событие в хранилище данных служб SSAS.

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

Шаг 1. Запустите экземпляр

  1. В обозревателе объектов откройте папку служб Notification Services.

  2. Щелкните правой кнопкой мыши пункт ProfitMarginInstance и выберите Пуск.

Шаг 2. Добавьте подписчиков и подписки

  1. Постройте решение ProfitMargin или ProfitMargin_VB в среде Visual Studio.

    Если используется пакет .NET Framework SDK, выполните следующее.

    1. В меню Пуск выберите пункт Все программы, затем выберите пункт Microsoft .NET Framework SDK v2.0 и выберите Командная строка пакета SDK.
    2. Перейдите к корневой папке образца «Profit Margin». Введите следующую команду для размещения по умолчанию:
      cd \Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin
    3. Чтобы построить решение, введите следующую команду:
      [C#]
      msbuild ProfitMargin.sln
      [Visual Basic]
      msbuild ProfitMargin_VB.sln

    Если используется Visual Studio 2005, сделайте следующее.

    1. Откройте файл решения по выбору (ProfitMargin.sln или ProfitMargin_VB.sln).
    2. Нажмите клавишу F6, чтобы построить решение.
  2. Запустите файл AddSubscribers.exe.

    Место по умолчанию для этого файла — «C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscribers\язык\AddSubscribers\bin\Debug».

  3. Запустите файл AddSubscriptions.exe.

    C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscriptions\язык\AddSubscriptions\bin\Debug.

ms160923.note(ru-ru,SQL.90).gifПримечание.
Для приложений рабочей среды или при выполнении приложения от учетной записи с ограниченными правами доступа в базах данных экземпляра и приложения добавьте имя входа SQL Server для приложения к роли базы данных NSSubscriberAdmin.

Шаг 3. Добавьте событие в хранилище данных служб Analysis Services

  1. В среде SQL Server Management Studio откройте окно Создать запрос к SQL Server.

  2. Откройте файл TriggerEvent.sql в папке ProfitMargin/SQL Scripts, чтобы добавить данные в хранилище данных AdventureWorks. Эти данные сформируют событие.

    ms160923.note(ru-ru,SQL.90).gifПримечание.
    Чтобы добавить новый заказ, при повторном запуске этого сценария в запросе SELECT необходимо указать другое значение @SalesOrderNumber.
  3. Повторно обработайте куб.

    1. В обозревателе объектов среды SQL Server Management Studio нажмите кнопку Подключиться, а затем нажмите Сервер анализа данных.
    2. В диалоговом окне Подключение к серверу в поле Имя сервера введите имя сервера, на котором расположен куб AdventureWorksDW и нажмите кнопку Подключиться.
    3. В обозревателе объектов откройте узел Сервер анализа данных, откройте папку «Базы данных» и перейдите в папку «Adventure Works DW/Cubes/Adventure Works/Measure Groups/Reseller Sales».
    4. Щелкните правой кнопкой мыши пункт Товарооборот посредников и выберите пункт Обработка.
    5. Нажмите кнопку ОК, чтобы повторно обработать куб «Товарооборот посредников».

Шаг 4. Просмотрите уведомления

  1. Подождите примерно минуту, пока службы Notification Services создадут уведомления.

  2. В проводнике Windows перейдите в папку Notifications образца «Profit Margin». Нужно найти файл с именем FileNotifications.txt, который содержит уведомления.

  3. Перейдите в папку, куда помещаются сообщения электронной почты. Обычно это одна из папок в каталоге «C:\Inetpub\mailroot». В зависимости от состояния SMTP-сервера уведомления должны находиться в папке Pickup или в папке Queue. Если запущена служба SMTP, сообщения могут быть перемещены в папку Badmail.

Удаление образца

Используйте следующую процедуру для удаления образца Profit Margin.

Удаление образца ProfitMargin

  1. В Обозревателе объектов откройте папку служб Notification Services.

  2. Щелкните правой кнопкой мыши пункт ProfitMarginInstance и выберите пункт Остановить.

  3. Щелкните правой кнопкой мыши пункт ProfitMarginInstance, укажите Задачи, а затем выберите Отменить регистрацию.

  4. Щелкните правой кнопкой мыши пункт ProfitMarginInstance, укажите Задачи, а затем выберите Удалить.

См. также

Другие ресурсы

Образцы служб SQL Server Notification Services
Обеспечение безопасности служб Notification Services

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Добавленное содержимое
  • Добавлено замечание о запуске образцов с разрешениями владельца базы данных.
  • Добавлено замечание о том, что среда Business Intelligence Development Studio не устанавливается на серверах на базе процессора Itanium.

5 декабря 2005 г.

Измененное содержимое
  • Изменены инструкции по созданию файла ключа, в том числе его имя и расположение.
  • Добавлены инструкции по предоставлению разрешений кубу AdventureWorks DW.
  • Обновлены инструкции по развертыванию куба.