Profit Margin (ejemplo)

Actualizado: 17 de julio de 2006

El ejemplo Profit Margin es una aplicación de Microsoft SQL Server Notification Services controlada por eventos que produce notificaciones sobre márgenes de beneficios para empleados individuales y envía estos datos a usuarios suscritos. Este ejemplo usa el proveedor de eventos de SSAS para consultar una base de datos de SSAS y devolver los resultados como eventos a la aplicación Notification Services.

[!NOTA] No puede ejecutar este ejemplo en servidores basados en Itanium porque Business Intelligence Development Studio no está instalado.

Escenario

Una empresa tiene una base de datos de SSAS que se usa para analizar el rendimiento de las ventas. Los empleados del departamento de ventas pueden suscribirse a la aplicación Profit Margin para recibir una notificación cuando cualquiera de sus distribuidores haya superado su objetivo de margen de beneficios.

De acuerdo con un programa especificado en la aplicación, el proveedor de eventos de SSAS ejecuta una consulta MDX para recopilar eventos. Cuando se ejecuta el generador, estos eventos se agregan a una crónica. A continuación, cuando se cumplen las condiciones siguientes, el generador produce notificaciones a partir de la crónica de eventos:

  • El nombre del suscriptor coincide con el nombre del empleado en el evento.
  • El margen de beneficios bruto del distribuidor es mayor que el objetivo de margen de beneficios bruto del distribuidor.

Se aplica formato a la notificación resultante mediante una transformación XSL y se envía a un archivo.

Lenguajes

XML, XSD, XSLT y Microsoft Visual C# o Microsoft Visual Basic.

Características

El ejemplo de SSAS utiliza las características Notification Services que se indican a continuación:

Área de aplicación Características

Clase de evento

Cola de eventos básica y una crónica.

Clase de suscripción

Una clase de suscripción controlada por eventos.

Clase de notificación

Una clase de notificación, sin entrega de resumen ni entrega de multidifusión.

Proveedores de eventos

Dos proveedores de eventos de SSAS, uno estático y otro dinámico.

Formateadores de contenido

Formateador de contenido XSLT.

Protocolos de entrega

Protocolos de entrega File y SMTP.

Requisitos previos

Antes de ejecutar este ejemplo, asegúrese de que esté instalado el siguiente software:

Generar el ejemplo

Para generar el ejemplo, deberá hacer lo siguiente:

  • Implemente la base de datos de SSAS.
  • Cree la instancia de Notification Services.
  • Registrar la instancia de Notification Services.
  • Conceda permisos de bases de datos y de SQL Server.

Los siguientes procedimientos muestran cómo realizar cada una de estas tareas para el ejemplo Profit Margin.

Paso 1: implementar la base de datos OLAP Adventure Works DW

  1. Abra SQL Server Business Intelligence Development Studio, haga clic en Archivo, seleccione Abrir y, a continuación, haga clic en Proyecto o solución.

  2. Desplácese a C:\Archivos de programa\Microsoft SQL Server\90\Tools\Samples\AdventureWorks Analysis Services Project, seleccione el archivo Adventure Works DW.dwproj y, a continuación, haga clic en Abrir.

  3. En el Explorador de soluciones, haga clic con el botón secundario en Adventure Works DW y seleccione Implementar.

Paso 2: crear la instancia de Notification Services

  1. Abra SQL Server Management Studio y conéctese a una instancia de SQL Server.

  2. En el Explorador de objetos, haga clic con el botón secundario en la carpeta Notification Services y seleccione Nueva instancia de Notification Services.

  3. En el cuadro de diálogo Nueva instancia de Notification Services, haga clic en Examinar y seleccione el archivo InstanceConfig.xml en la carpeta raíz del ejemplo Profit Margin.

  4. En el cuadro Parámetros, escriba valores para los tres parámetros:

    • SampleDirectory es la ruta de acceso a la carpeta raíz del ejemplo Profit Margin. La ruta de acceso predeterminada es C:\Archivos de programa\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin.
    • NotificationServicesHost es el nombre del servidor local.
    • SQLServer es el nombre de la instancia de SQL Server.
  5. Active la casilla de verificación Habilitar la instancia una vez creada.

  6. Haga clic en Aceptar..

  7. Cuando Notification Services haya terminado de crear la instancia, haga clic en Cerrar.

[!NOTA] Si está implementando un ejemplo de Notification Services con una cuenta de propietario de la base de datos o de administrador del sistema, no tiene que conceder permisos de SQL Server a la cuenta. Conceder estos permisos puede generar un error, que se puede omitir. Al implementar sus propias aplicaciones, debe utilizar cuentas con un menor número de privilegios para mejorar la seguridad.

Paso 3: registrar la instancia de Notification Services

  1. En SQL Server Management Studio, abra el nodo de Notification Services, haga clic con el botón secundario en ProfitMarginInstance, seleccione Tareas y, a continuación, seleccione Registrar.

  2. En el cuadro de diálogo Registrar, active la casilla de verificación Crear servicio de Windows.

    El servicio de Windows ejecuta la instancia de Notification Services en este equipo.

  3. En Inicio de sesión de servicio, escriba una cuenta de Windows y una contraseña. Ésta es la cuenta de Windows con la cual se ejecutará el servicio. Si usa autenticación de Windows para obtener acceso a SQL Server, el servicio de Windows también usará esta cuenta para conectarse a SQL Server.

  4. Si debe usar la autenticación de SQL Server para obtener acceso a SQL Server, seleccione Autenticación de SQL Server en Autenticación y, a continuación, escriba un nombre de inicio de sesión y la contraseña de SQL Server.

    Se recomienda usar la autenticación de Windows.

  5. Haga clic en Aceptar..

  6. Cuando Notification Services haya terminado de registrar la instancia, haga clic en Cerrar.

Paso 4: conceder permisos de SQL Server y base de datos

  1. En el Explorador de objetos, expanda el nodo Seguridad.

  2. Si debe crear una cuenta de inicio de sesión de base de datos para el servicio de Windows, haga clic con el botón secundario en Inicios de sesión, seleccione Nuevo inicio de sesión y cree la cuenta de inicio de sesión:

    • Para usar la autenticación de Windows, seleccione Autenticación de Windows y escriba la misma cuenta de Windows que especificó al registrar la instancia.
    • Si debe usar la autenticación de SQL Server, seleccione Autenticación de SQL Server y escriba el mismo nombre de inicio de sesión y la misma contraseña de SQL Server que especificó al registrar la instancia.
  3. Si el inicio de sesión utilizado por el servicio de Windows ya tiene acceso a SQL Server, haga clic con el botón secundario en el inicio de sesión y seleccione Propiedades.

  4. En el panel izquierdo del cuadro de diálogo Inicio de sesión, seleccione Asignación de usuarios.

  5. Conceda permisos para la base de datos ProfitMarginInstanceNSMain:

    1. En el cuadro Usuarios asignados a este inicio de sesión, seleccione el cuadro situado junto a la base de datos ProfitMarginInstanceNSMain.
    2. En el cuadro Miembros de la función de base de datos para: ProfitMarginInstanceNSMain, seleccione NSRunService.
  6. Conceda permisos para la base de datos ProfitMarginInstanceProfitMargin:

    1. En el cuadro Usuarios asignados a este inicio de sesión, seleccione el cuadro situado junto a la base de datos ProfitMarginInstanceProfitMargin.
    2. En el cuadro Miembros de la función de base de datos para: ProfitMarginInstanceProfitMargin, seleccione NSRunService.
  7. Haga clic en Aceptar para aplicar los permisos de SQL Server.

  8. Conceda permisos para la base de datos Adventure Works DW:

    1. En SQL Server Management Studio, conéctese a SSAS.
    2. Expanda la carpeta Database de SSAS y, después, Adventure Works DW.
    3. Haga clic con el botón secundario en Funciones y seleccione Nueva función.
    4. En el cuadro Nombre de función, escriba ProfitMarginNS.
    5. En el panel izquierdo, haga clic en Pertenencia y agregue la cuenta que se usará para ejecutar el servicio de Windows de Notification Services de este ejemplo.
    6. En el panel izquierdo, seleccione Cubos.
    7. Para el cubo de AdventureWorks, haga clic en el campo Acceso y seleccione Leer.
    8. Haga clic en Aceptar para aplicar los permisos del cubo.
  9. Configure la seguridad para la carpeta Events:

    1. En el Explorador de Windows, busque la carpeta Events del ejemplo Profit Margin.
    2. Haga clic con el botón secundario en la carpeta Events, seleccione Compartir y seguridad y, a continuación, haga clic en la ficha Seguridad.
    3. Haga clic en Agregar y agregue la cuenta que usará el servicio de Windows.
    4. En el cuadro Nombres de grupos o usuarios, seleccione la cuenta que acaba de agregar.
    5. En el cuadro Permisos para, seleccione los permisos Leer y Modificar.
    6. Haga clic en Aceptar para aplicar los cambios.
  10. Configure la seguridad para la carpeta Notifications:

    1. Busque la carpeta Notifications del ejemplo Profit Margin.
    2. Haga clic con el botón secundario en la carpeta Notifications, seleccione Compartir y seguridad y, a continuación, haga clic en la ficha Seguridad.
    3. Haga clic en Agregar y agregue la cuenta que usará el servicio de Windows.
    4. En el cuadro Nombres de grupos o usuarios, seleccione la cuenta que acaba de agregar.
    5. En el cuadro Permisos para, seleccione Escribir.
    6. Haga clic en Aceptar para aplicar los cambios.

Generar un archivo de clave de nombre seguro

Si aún no ha creado un archivo de clave de nombre seguro, genere este archivo mediante las siguientes instrucciones.

Para generar un archivo de clave de nombre seguro

  1. Abra un símbolo del sistema de Microsoft Visual Studio 2005. Haga clic en Inicio, seleccione Todos los programas, Microsoft .NET Framework SDK 2.0 y, a continuación, haga clic en Símbolo del sistema de SDK.

    -- O bien --

    Abra un símbolo del sistema de Microsoft .NET Framework. Haga clic en Inicio, seleccione Todos los programas, Microsoft .NET Framework SDK 2.0 y, a continuación, haga clic en Símbolo del sistema de SDK.

  2. Use el comando de cambio de directorio (CD) para cambiar el directorio actual a la carpeta donde están instalados los ejemplos.

    [!NOTA] para determinar la carpeta donde se encuentran los ejemplos, haga clic en el botón Inicio, seleccione Todos los programas, Microsoft SQL Server, Documentación y tutoriales y, a continuación, haga clic en el directorio Ejemplos. Si se usó la ubicación de instalación predeterminada, los ejemplos se encontrarán en <unidadDeSistema>:\Archivos de programa\Microsoft SQL Server\100\Ejemplos.

  3. En el símbolo del sistema, ejecute el comando siguiente para generar el archivo de clave:

    sn -k SampleKey.snk

    ms160923.note(es-es,SQL.90).gifImportante:
    Para obtener más información acerca del par de claves de nombre seguro, vea el apartado sobre informes de seguridad de nombres seguros y seguridad en .NET Framework en el centro de desarrollo de .NET de MSDN.

Ejecutar el ejemplo

Para ejecutar el ejemplo, deberá hacer lo siguiente:

  • Iniciar la instancia.
  • Agregar suscriptores y suscripciones.
  • Agregar un evento al almacenamiento de datos de SSAS.

Los siguientes procedimientos indican cómo realizar estas tareas y cómo ver las notificaciones obtenidas como resultado.

Paso 1: iniciar la instancia

  1. En el Explorador de objetos, abra la carpeta Notification Services.

  2. Haga clic con el botón secundario en ProfitMarginInstance y, a continuación, seleccione Inicio.

Paso 2: agregar suscriptores y suscripciones

  1. Generar la solución de Visual Studio ProfitMargin o ProfitMargin_VB

    Si está usando el SDK de .NET Framework, haga lo siguiente:

    1. En el menú Inicio, seleccione Todos los programas\Microsoft .NET Framework SDK v2.0 y, a continuación, haga clic en SDK Command Prompt.
    2. Busque la carpeta raíz del ejemplo Profit Margin. Escriba el siguiente comando para la ubicación predeterminada:
      cd \Archivos de programa\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin
    3. Escriba lo siguiente para generar la solución
      [C#]
      msbuild ProfitMargin.sln
      [Visual Basic] 
      msbuild ProfitMargin_VB.sln

    Si está usando Visual Studio 2005, haga lo siguiente:

    1. Abra el archivo de solución que prefiera (ProfitMargin.sln o ProfitMargin_VB.sln).
    2. Presione F6 para generar la solución.
  2. Ejecute AddSubscribers.exe.

    La ubicación predeterminada de este archivo es C:\Archivos de programa\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscribers\lenguaje\AddSubscribers\bin\Debug.

  3. Ejecute AddSubscriptions.exe.

    C:\Archivos de programa\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscriptions\lenguaje\AddSubscriptions\bin\Debug.

[!NOTA] En el caso de aplicaciones de producción o si está ejecutando esta aplicación en una cuenta restringida, agregue el inicio de sesión de SQL Server de la aplicación a la función de base de datos NSSubscriberAdmin en las bases de datos de instancia y de aplicación.

Paso 3: agregar un evento al almacenamiento de datos de Analysis Services

  1. Abra una ventana Nueva consulta de SQL Server en SQL Server Management Studio.

  2. Abra el archivo TriggerEvent.sql de la carpeta ProfitMargin/SQL Scripts para agregar datos al almacenamiento de datos de AdventureWorks. Estos datos generarán un evento.

    [!NOTA] Si vuelve a ejecutar esta secuencia de comandos, debe cambiar SalesOrderNumber modificando el valor de carácter SELECT @SalesOrderNumber y la adición de un nuevo pedido de venta.

  3. Vuelva a procesar el cubo:

    1. En el Explorador de objetos de SQL Server Management Studio, haga clic en Conectar y, a continuación, seleccione Analysis Server.
    2. En el cuadro de diálogo Conectar al servidor, escriba el nombre del servidor que aloja el cubo AdventureWorksDW en el cuadro Nombre del servidor y haga clic en Conectar.
    3. En el Explorador de objetos, abra el nodo Analysis Server, abra la carpeta Databases y busque Adventure Works DW/Cubes/Adventure Works/Measure Groups/Reseller Sales.
    4. Haga clic con el botón secundario en Reseller Sales y, a continuación, seleccione Procesar.
    5. Haga clic en Aceptar para volver a procesar el cubo Reseller Sales.

Paso 4: ver notificaciones

  1. Espere aproximadamente un minuto para que Notification Services produzca notificaciones.

  2. En el Explorador de Windows, busque la carpeta Notifications del ejemplo Profit Margin. Debe encontrar un archivo denominado FileNotifications.txt, que es el archivo que contiene las notificaciones.

  3. Busque la carpeta donde se colocan los mensajes de correo electrónico. Normalmente es una de las carpetas de C:\Inetpub\mailroot. Según el estado del servidor SMTP, las notificaciones deben estar en la carpeta Pickup o Queue. Si el servicio SMTP se está ejecutando, los mensajes se pueden mover a la carpeta Badmail.

Eliminar el ejemplo

Utilice el procedimiento siguiente para eliminar el ejemplo Profit Margin.

Para eliminar el ejemplo ProfitMargin

  1. En el panel Explorador de objetos, abra la carpeta Notification Services.

  2. Haga clic con el botón secundario en ProfitMarginInstance y, a continuación, seleccione Detener.

  3. Haga clic con el botón secundario en ProfitMarginInstance, seleccione Tareas y, a continuación, haga clic en Eliminar del Registro.

  4. Haga clic con el botón secundario en ProfitMarginInstance, seleccione Tareas y, a continuación, haga clic en Eliminar.

Vea también

Otros recursos

Ejemplos de SQL Server Notification Services
Proteger Notification Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

14 de abril de 2006

Contenido agregado:
  • Se agregó una nota acerca de la ejecución de ejemplos mediante permisos de propietario de base de datos.
  • Se agregó una nota que indica que Business Intelligence Development Studio no se instala en servidores basados en Itanium.

5 de diciembre de 2005

Contenido modificado:
  • Se cambiaron las instrucciones para generar un archivo de clave, incluidos el nombre y la ubicación del archivo.
  • Se agregaron instrucciones para conceder permisos a un cubo de AdventureWorks DW.
  • Se actualizaron las instrucciones para implementar el cubo.