Condividi tramite


Esempio di margine di profitto

Data aggiornamento: 17 luglio 2006

L'esempio Profit Margin è un'applicazione di Microsoft SQL Server Notification Services guidata dagli eventi che genera notifiche relative ai margini di profitto relativi ai singoli dipendenti e invia tali dati ai sottoscrittori. Questo esempio utilizza il provider di eventi di SSAS per eseguire query su un database di SSAS e restituire i risultati come eventi all'applicazione di Notification Services.

[!NOTA] Non è possibile eseguire questo esempio su server con processore Itanium poiché Business Intelligence Development Studio non è installato.

Scenario

Una società dispone di un database di SSAS utilizzato per analizzare i risultati delle vendite. I dipendenti del reparto vendite possono sottoscrivere l'applicazione Profit Margin per ricevere una notifica quando i relativi rivenditori superano l'obiettivo di margine di profitto prefissato.

In base alla pianificazione specificata nell'applicazione, il provider di eventi di SSAS esegue una query MDX per raccogliere gli eventi. Quando viene eseguito il generatore, questi eventi vengono aggiunti alla cronologia. Il generatore produce quindi notifiche dalla cronologia degli eventi quando vengono soddisfatte le condizioni seguenti:

  • Il nome del sottoscrittore corrisponde al nome del dipendente nell'evento.
  • Il margine di profitto lordo del rivenditore è superiore all'obiettivo di margine di profitto lordo del rivenditore.

La notifica risultante viene formattata mediante una trasformazione XSL e quindi inviata a un file.

Linguaggi

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

Funzionalità

Nell'esempio di SSAS vengono utilizzate le funzionalità seguenti di Notification Services:

Area di applicazione Funzionalità

Classe di evento

Coda degli eventi di base e una cronologia.

Classe di sottoscrizione

Una classe di sottoscrizione guidata dagli eventi.

Classe di notifica

Una classe di notifica, senza recapito digest o multicast.

Provider di eventi

Due provider di eventi di SSAS, uno statico e uno dinamico.

Formattatori del contenuto

Formattatore del contenuto XSLT.

Protocolli di recapito

Protocolli di recapito File e SMTP.

Prerequisiti

Prima di eseguire l'esempio, verificare che siano installati i prodotti software seguenti:

  • Microsoft SQL Server 2005, con i componenti seguenti:

Generazione dell'esempio

Per generare l'esempio, è necessario eseguire le operazioni seguenti:

  • Distribuire il database di SSAS.
  • Creare l'istanza di Notification Services.
  • Registrare l'istanza di Notification Services.
  • Concedere le autorizzazioni per il database e SQL Server.

Di seguito è illustrato come eseguire queste operazioni per l'esempio Profit Margin.

Passaggio 1: distribuire il database OLAP Adventure Works DW

  1. Aprire SQL Server Business Intelligence Development Studio, scegliere Apri dal menu File e quindi fare clic su Progetto/Soluzione.

  2. Individuare la cartella C:\Programmi\Microsoft SQL Server\90\Tools\Samples\AdventureWorks Analysis Services Project, selezionare il file Adventure Works DW.dwproj e quindi fare clic su Apri.

  3. In Esplora soluzioni fare clic con il pulsante destro del mouse su Adventure Works DW e scegliere Distribuisci.

Passaggio 2: creazione dell'istanza di Notification Services

  1. Aprire SQL Server Management Studio e connettersi a un'istanza di SQL Server.

  2. In Esplora oggetti fare clic con il pulsante destro del mouse sulla cartella Notification Services e scegliere Nuova istanza di Notification Services.

  3. Nella finestra di dialogo Nuova istanza di Notification Services fare clic su Sfoglia e selezionare il file InstanceConfig.xml nella cartella principale dell'esempio Profit Margin.

  4. In Parametri specificare i valori per i tre parametri:

    • SampleDirectory è il percorso della cartella principale dell'esempio Profit Margin. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin.
    • NotificationServicesHost è il nome del server locale.
    • SQLServer è il nome dell'istanza di SQL Server.
  5. Selezionare la casella di controllo Attiva istanza dopo la creazione.

  6. Scegliere OK..

  7. Al termine della creazione dell'istanza da parte di Notification Services, fare clic su Chiudi.

[!NOTA] Se si distribuisce un esempio di Notification Services utilizzando l'account del proprietario del database o di un amministratore del sistema, non sarà necessario concedere autorizzazioni per SQL Server a tale account. Se si concedono tali autorizzazioni verrà visualizzato un errore, che può essere ignorato. Quando si distribuiscono applicazioni personalizzate, per migliorare la protezione è consigliabile utilizzare account con privilegi inferiori.

Passaggio 3: registrazione dell'istanza di Notification Services

  1. In SQL Server Management Studio aprire il nodo Notification Services, fare clic con il pulsante destro del mouse su ProfitMarginInstance, scegliere Attività e quindi Registra.

  2. Nella finestra di dialogo Registra istanza selezionare la casella di controllo Crea servizio Windows.

    Il servizio Windows esegue l'istanza di Notification Services sul computer in uso.

  3. In Accesso al servizio immettere l'account e la password di Windows. Si tratta dell'account di Windows in cui viene eseguito il servizio. Se si utilizza l'autenticazione di Windows per accedere a SQL Server, il servizio Windows utilizza questo account per connettersi a SQL Server.

  4. Per accedere a SQL Server è necessario utilizzare l'autenticazione di SQL Server. Selezionare Autenticazione di SQL Server in Autenticazione e quindi immettere un account di accesso a SQL Server e una password.

    È consigliabile utilizzare l'autenticazione di Windows.

  5. Scegliere OK..

  6. Al termine della registrazione dell'istanza da parte di Notification Services, fare clic su Chiudi.

Passaggio 4: concessione delle autorizzazioni per SQL Server e per il database

  1. In Esplora oggetti espandere il nodo Protezione.

  2. Se è necessario creare un nuovo account di accesso al database per il servizio Windows, fare clic con il pulsante destro del mouse su Account di accesso, scegliere Nuovo account di accesso e quindi creare l'account:

    • Per utilizzare l'autenticazione di Windows, selezionare Autenticazione di Windows e immettere lo stesso account di Windows specificato durante la registrazione dell'istanza.
    • Se è necessario utilizzare l'autenticazione di SQL Server, selezionare Autenticazione di SQL Server e quindi immettere lo stesso account di accesso e la stessa password di SQL Server specificati durante la registrazione dell'istanza.
  3. Se l'account di accesso utilizzato dal servizio Windows dispone già dell'accesso a SQL Server, fare clic con il pulsante destro del mouse e scegliere Proprietà.

  4. Nel riquadro sinistro della finestra di dialogo Proprietà account di accesso selezionare Mapping utenti.

  5. Concedere le autorizzazioni per il database ProfitMarginInstanceNSMain:

    1. In Utenti mappati all'account di accesso seguente selezionare la casella accanto al database ProfitMarginInstanceNSMain.
    2. In Appartenenza a ruoli del database per: ProfitMarginInstanceNSMain selezionare NSRunService.
  6. Concedere le autorizzazioni per il database ProfitMarginInstanceProfitMargin:

    1. In Utenti mappati all'account di accesso seguente selezionare la casella accanto al database ProfitMarginInstanceProfitMargin.
    2. In Appartenenza a ruoli del database per: ProfitMarginInstanceProfitMargin selezionare NSRunService.
  7. Fare clic su OK per concedere le autorizzazioni di SQL Server.

  8. Concedere le autorizzazioni per il database Adventure Works DW:

    1. In SQL Server Management Studio connettersi a SSAS.
    2. Espandere la cartella Database di SSAS e quindi espandere Adventure Works DW.
    3. Fare clic con il pulsante destro del mouse su Ruoli e selezionare Nuovo ruolo.
    4. Nella casella Nome ruolo immettere ProfitMarginNS.
    5. Nel riquadro sinistro fare clic su Appartenenze e aggiungere l'account utilizzato per eseguire il servizio Windows di Notification Services di questo esempio.
    6. Nel riquadro sinistro selezionare Cubi.
    7. Per il cubo AdventureWorks, fare clic nel campo Accesso e selezionare Lettura.
    8. Fare clic su OK per applicare le autorizzazioni per il cubo.
  9. Configurare la protezione per la cartella Events:

    1. In Esplora risorse passare alla cartella Events dell'esempio Profit Margin.
    2. Fare clic con il pulsante destro del mouse sulla cartella Events, scegliere Condivisione e protezione e quindi selezionare la scheda Protezione.
    3. Fare clic su Aggiungi e aggiungere l'account utilizzato dal servizio Windows.
    4. In Utenti e gruppi selezionare l'account aggiunto.
    5. In Autorizzazioni per selezionare le autorizzazioni Lettura e Modifica.
    6. Fare clic su OK per rendere effettive le modifiche.
  10. Configurare la protezione per la cartella Notifications:

    1. Individuare la cartella Notifications dell'esempio Profit Margin.
    2. Fare clic con il pulsante destro del mouse sulla cartella Notifications, scegliere Condivisione e protezione e quindi selezionare la scheda Protezione.
    3. Fare clic su Aggiungi e aggiungere l'account utilizzato dal servizio Windows.
    4. In Utenti e gruppi selezionare l'account aggiunto.
    5. In Autorizzazioni per selezionare Scrittura.
    6. Fare clic su OK per rendere effettive le modifiche.

Generazione di un file di chiave con nome sicuro

Se non è stato ancora creato un file di chiave con nome sicuro, generare il file di chiave seguendo le istruzioni seguenti.

Per generare un file di chiave con nome sicuro

  1. Aprire il prompt dei comandi di Microsoft Visual Studio 2005. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK 2.0, quindi SDK Command Prompt.

    -- oppure --

    Aprire il prompt dei comandi di Microsoft .NET Framework. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK 2.0, quindi SDK Command Prompt.

  2. Utilizzare il comando CD (change directory) per passare dalla directory corrente della finestra del prompt dei comandi alla cartella in cui sono stati installati gli esempi.

    [!NOTA] Per determinare la cartella in cui si trovano gli esempi, fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft SQL Server 2005, Documentazione ed esercitazioni, quindi Samples. Se è stato utilizzato il percorso di installazione predefinito, gli esempi si troveranno in <unità_sistema>:\Programmi\Microsoft SQL Server\100\Samples.

  3. Al prompt dei comandi digitare il comando seguente per generare il file di chiave:

    sn -k SampleKey.snk

    ms160923.note(it-it,SQL.90).gifImportante:
    Per ulteriori informazioni sulla coppia di chiavi con nome sicuro, vedere l'argomento relativo ai nomi sicuri e alla protezione in .NET Framework nel centro per sviluppatori di .NET su MSDN.

Esecuzione dell'esempio

Per eseguire questo esempio, procedere come segue:

  • Avviare l'istanza.
  • Aggiungere sottoscrittori e sottoscrizioni.
  • Aggiungere un evento al data warehouse di SSAS.

Nelle procedure seguenti viene illustrato come eseguire tali operazioni e come visualizzare le notifiche risultanti.

Passaggio 1: avvio dell'istanza

  1. In Esplora oggetti aprire la cartella Notification Services.

  2. Fare clic con il pulsante destro del mouse su ProfitMarginInstance e scegliere Avvia.

Passaggio 2: aggiunta di sottoscrittori e sottoscrizioni

  1. Generare la soluzione Visual Studio ProfitMargin o ProfitMargin_VB

    Se si utilizza .NET Framework SDK, eseguire le operazioni seguenti:

    1. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK v2.0 e quindi SDK Command Prompt.
    2. Passare alla cartella principale dell'esempio Profit Margin. Digitare il comando seguente per il percorso predefinito:
      cd \Programmi\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin
    3. Digitare la sintassi seguente per generare la soluzione:
      [C#] 
      msbuild ProfitMargin.sln
      [Visual Basic] 
      msbuild ProfitMargin_VB.sln

    Se si utilizza Visual Studio 2005, eseguire le operazioni seguenti:

    1. Aprire il file della soluzione desiderato (ProfitMargin.sln o ProfitMargin_VB.sln).
    2. Premere F6 per generare la soluzione.
  2. Eseguire AddSubscribers.exe.

    Il percorso predefinito del file è C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscribers\linguaggio\AddSubscribers\bin\Debug.

  3. Eseguire AddSubscriptions.exe.

    C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscriptions\linguaggio\AddSubscriptions\bin\Debug.

[!NOTA] Per le applicazioni di produzione, o se si esegue l'applicazione con un account con limitazioni, aggiungere l'account di accesso di SQL Server dell'applicazione al ruolo del database NSSubscriberAdmin nei database dell'istanza e dell'applicazione.

Passaggio 3: aggiunta di un evento al data warehouse di Analysis Services

  1. Aprire una nuova finestra dell'editor di query in SQL Server Management Studio.

  2. Aprire il file TriggerEvent.sql nella cartella ProfitMargin/SQL Scripts per aggiungere dati al data warehouse AdventureWorks. Questi dati genereranno un evento.

    [!NOTA] Se si esegue di nuovo lo script, è necessario modificare SalesOrderNumber cambiando il valore di tipo carattere di SELECT @SalesOrderNumber in modo da aggiungere un nuovo ordine di vendita.

  3. Rielaborare il cubo:

    1. In Esplora oggetti di SQL Server Management Studio fare clic su Connetti e quindi su Analysis Server.
    2. Nella finestra di dialogo Connetti al server, nella casella Nome server immettere il nome del server che ospita il cubo AdventureWorksDW e quindi fare clic su Connetti.
    3. In Esplora oggetti espandere il nodo Analysis Server, aprire la cartella Database e quindi passare a Adventure Works DW/Cubi/Adventure Works/Gruppi di misure/Reseller Sales.
    4. Fare clic con il pulsante destro del mouse su Reseller Sales e scegliere Elabora.
    5. Fare clic su OK per rielaborare il cubo Reseller Sales.

Passaggio 4: visualizzazione delle notifiche

  1. Attendere circa un minuto affinché Notification Services generi le notifiche.

  2. In Esplora risorse passare alla cartella Notifications dell'esempio Profit Margin. La cartella contiene un file denominato FileNotifications.txt che include le notifiche.

  3. Passare alla cartella in cui vengono spostati i messaggi di posta elettronica. Si tratta in genere di una delle cartelle in C:\Inetpub\mailroot. Le notifiche dovrebbero essere contenute nella cartella Pickup o nella cartella Queue, in base allo stato del server SMTP. Se il servizio SMTP è in esecuzione, i messaggi potrebbero essere spostati nella cartella Badmail.

Rimozione dell'esempio

Eseguire la procedura seguente per rimuovere l'esempio Profit Margin.

Per rimuovere l'esempio ProfitMargin

  1. Nel riquadro Esplora oggetti aprire la cartella Notification Services.

  2. Fare clic con il pulsante destro del mouse su ProfitMarginInstance e scegliere Interrompi.

  3. Fare clic con il pulsante destro del mouse su ProfitMarginInstance, scegliere Attività e quindi Annulla registrazione.

  4. Fare clic con il pulsante destro del mouse su ProfitMarginInstance, scegliere Attività e quindi Elimina.

Vedere anche

Altre risorse

Esempi di SQL Server Notification Services
Protezione di Notification Services

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

14 aprile 2006

Contenuto aggiunto:
  • Aggiunta di una nota sull'esecuzione degli esempi utilizzando le autorizzazioni del proprietario del database.
  • Aggiunta di una nota per specificare che Business Intelligence Development Studio non viene installato su server con processore Itanium.

5 dicembre 2005

Contenuto modificato:
  • Modifica delle istruzioni per la generazione di un file di chiave, inclusi il nome e il percorso del file di chiave.
  • Aggiunta di istruzioni per concedere le autorizzazioni a un cubo AdventureWorks DW.
  • Aggiornamento delle istruzioni per la distribuzione del cubo.