Condividi tramite


Procedura dettagliata: creare un controllo ospitato UII WPF

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Questa procedura dettagliata illustra come creare un controllo ospitato di User Interface Integration (UII) basato su Windows Presentation Foundation (WPF) che interagisce con Unified Service Desk e con le applicazioni esterne (Standalone e Web).

In questa procedura dettagliata vengono eseguite le operazioni indicate di seguito.

  • Creare un controllo ospitato UIIWPF, Esempio di controllo ospitato UII WPF, che visualizza il nome, il cognome, l'indirizzo e l'ID di un contatto quando si esegue una ricerca di contatti, quindi fare clic su un nome contatto per aprirlo in una sessione di Unified Service Desk. Questi valori vengono visualizzati dal contesto Unified Service Desk.

  • Cambiare il nome, il cognome o l'indirizzo in un'applicazione esterna e nell'applicazione Web ospitata in Unified Service Desk dal controllo ospitato UIIWPF che viene creato. L'applicazione esterna e l'applicazione Web sono state create nelle procedure dettagliate precedenti indicate di seguito: Procedura dettagliata: creare un adapter dell'applicazione UII e Procedura dettagliata: creare un adapter dell'applicazione UII Web.

  • Comunicare le modifiche al contesto Unified Service Desk per aggiornare i valori.

In questo argomento

Prerequisiti

Passaggio 1: creare un controllo ospitato UII WPF in Visual Studio

Passaggio 2: definire il controllo ospitato in Unified Service Desk

Passaggio 3: definire le azioni UII per i controlli ospitati dell'applicazione Web e dell'applicazione esterna in Unified Service Desk

Testare il controllo ospitato

Prerequisiti

Passaggio 1: creare un controllo ospitato UII WPF in Visual Studio

  1. Avviare Visual Studio e creare un nuovo progetto.

  2. Nella finestra di dialogo Nuovo progetto:

    1. Nell'elenco dei modelli installati, espandi Visual C# e seleziona Modelli Dynamics 365 SDK > Unified Service Desk > Controllo ospitato UII WPF.

    2. Specificare il nome e il percorso del progetto e scegliere OK per creare un nuovo progetto.

      Creare un controllo ospitato UII WPF

  3. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul file UiiWpfControl.xaml e selezionare Apri per visualizzare la finestra di progettazione XAML.

  4. Nella finestra di progettazione, aggiungere i controlli seguenti dalla casella degli strumenti:

    Tipo di controllo

    Nome

    Testo

    Etichetta

    lblFirstName

    Nome

    Etichetta

    lblLastName

    Cognome

    Etichetta

    lblAddress

    Indirizzo

    Etichetta

    lblID

    ID

    Casella di testo

    txtFirstName

    Casella di testo

    txtLastName

    Casella di testo

    txtAddress

    Casella di testo

    txtID

    Pulsante

    btnUpdate

    Aggiorna valori in applicazioni ospitate

    Pulsante

    btnUpdateContext

    Aggiorna contesto

    Indica in che modo i controlli devono essere disposti nella finestra di progettazione XAML.

    Layout dei controlli nella finestra di progettazione XAML

  5. Fare doppio clic sul pulsante Aggiorna valori in applicazioni ospitate (btnUpdate) per aggiungere il codice dell'evento click per questo pulsante e aggiungere il codice seguente.

    private void btnUpdate_Click(object sender, System.Windows.RoutedEventArgs e)
    {
       // This is how you fire an action to other hosted applications. 
       // The DoAction() code in the other application or application adapter 
       // will be called.
       FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateFirstName", txtFirstName.Text)); // For the external application
       FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateLastName", txtLastName.Text)); // For the external application
       FireRequestAction(new RequestActionEventArgs("QsExternalApp", "UpdateAddress", txtAddress.Text)); // For the external application
    
       FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateFirstName", txtFirstName.Text)); // For the external web application
       FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateLastName", txtLastName.Text)); // For the external web application
       FireRequestAction(new RequestActionEventArgs("QsWebApplication", "UpdateAddress", txtAddress.Text)); // For the external web application
    }
    
  6. Passare alla finestra di progettazione XAML e fare doppio clic sul pulsante Aggiorna contesto (btnUpdateContext) per aggiungere il codice dell'evento click per questo pulsante. Aggiungere il codice seguente.

    private void btnContextChange_Click(object sender, System.Windows.RoutedEventArgs e)
    {
       // Get the current context and create a new context object from it.
       string temp = Context.GetContext();
       Context updatedContext = new Context(temp);
    
       // Update the new context with the changed information.
       updatedContext["firstname"] = txtFirstName.Text;
       updatedContext["lastname"] = txtLastName.Text;
       updatedContext["address1_line1"] = txtAddress.Text;
    
       // Notify Unified Service Desk of this new context information.
       FireChangeContext(new ContextEventArgs(updatedContext));
    
       // Notify this UII hosted control about the change.
       NotifyContextChange(updatedContext);
    }
    
  7. Nello stesso file (UiiWpfControl.xaml.cs), aggiornare la definizione di override del metodo NotifyContextChange come indicato di seguito.

    public override void NotifyContextChange(Context context)
    {
       // Populating text fields from context information.
       txtFirstName.Text = context["firstname"];
       txtLastName.Text = context["lastname"];
       txtAddress.Text = context["address1_line1"];
       txtID.Text = context["CustomerID"];
    
       base.NotifyContextChange(context);
    }
    
  8. Salvare il progetto e compilarlo (Compila > Compila soluzione). Dopo aver compilato il progetto, viene generato un assembly (file .dll) con lo stesso nome del progetto (in questo caso, UIIWPFHostedControl1.dll) nella cartella /bin/debug del progetto.

  9. Copiare il file nella directory di installazione dell'applicazione client Unified Service Desk (in genere C:\Program Files\Microsoft Dynamics CRM USD\USD). Questo file è necessario per eseguire il test ed eventualmente utilizzare il controllo dall'applicazione client.

    Suggerimento

    Notare il nome della classe utilizzata per compilare il controllo ospitato UII nel file UiiWpfControl.xaml.cs. In questo caso, UiiWpfControl. Questa informazione è necessaria per il prossimo passaggio.

Passaggio 2: definire il controllo ospitato in Unified Service Desk

Per ospitare il controllo ospitato UII WPF in Unified Service Desk è necessario definirlo e configurarlo.

  1. Accedere a Microsoft Dynamics 365.

  2. Sulla barra di spostamento, scegliere Microsoft Dynamics 365 > Impostazioni > Unified Service Desk.

  3. Nella pagina Unified Service Desk, scegliere Controlli ospitati.

  4. Nella pagina Controlli ospitati scegliere Nuovo.

  5. Nella pagina Nuovo controllo ospitato specificare i valori seguenti.

    Campo

    Valore

    Nome

    UIIWPFHostedControl

    Nome visualizzato

    Esempio di controllo ospitato UII WPF

    Tipo componente USD

    Applicazione ospitata di CCA

    Applicazione ospitata

    Controllo ospitato

    L'applicazione è globale

    Selezionato

    Gruppo di visualizzazione

    MainPanel

    Adapter

    Non usare alcun adapter

    URI assembly

    UIIWPFHostedControl1

    Tipo di assembly

    UIIWPFHostedControl1.UiiWpfControl

    Nota

    URI assembly è il nome dell'assembly e Tipo assembly è il nome dell'assembly seguito da un punto (.) e dal nome della classe del progetto Visual Studio. In questo esempio il nome dell'assembly è UIIWPFHostedControl1 e il nome della classe è UiiWpfControl, ovvero il nome della classe predefinita quando si crea un controllo ospitato personalizzato UII WPF.

    Definire un nuovo controllo ospitato

  6. Scegliere Salva per creare il controllo ospitato.

Passaggio 3: definire le azioni UII per i controlli ospitati dell'applicazione Web e dell'applicazione esterna in Unified Service Desk

Gli adapter per le applicazioni Web e Standalone esterne espongono le seguenti tre azioni: UpdateFirstName, UpdateLastName e UpdateAddress. Questi adapter e i controlli ospitati per le applicazioni Web e Standalone esterne sono stati creati nelle procedure dettagliate precedenti (Procedura dettagliata: creare un adapter dell'applicazione UII e Procedura dettagliata: creare un adapter dell'applicazione UII Web).

Per aggiornare le informazioni nelle applicazioni esterne direttamente dal controllo ospitato WPF UII, è necessario definire tre azioni UII con lo stesso nome specificato in precedenza negli adapter per ogni applicazione esterna. Nelle procedure dettagliate dell'adapter (Procedura dettagliata: creare un adapter dell'applicazione UII e Procedura dettagliata: creare un adapter dell'applicazione UII Web), sono stati definiti i seguenti due controlli ospitati in Unified Service Desk per visualizzare le applicazioni esterne in Unified Service Desk: QsExternalApp e QsExternalWebApplication. In questo passaggio, vengono aggiunte le tre azioni UII per ogni controllo ospitato.

Importante

Se le azioni UII sono state già aggiunte durante il passaggio 3 in Procedura dettagliata: creare un controllo ospitato Windows Form UII, non è necessario eseguire questa operazione. È possibile procedere alla sezione successiva per testare il controllo ospitato.

  1. Accedere a Microsoft Dynamics 365.

  2. Sulla barra di spostamento, scegliere Microsoft Dynamics 365 > Impostazioni > Unified Service Desk.

  3. Nella pagina Unified Service Desk, scegliere Controlli ospitati.

  4. Nella pagina Controlli ospitati, cercare QSExternalApp e aprirlo per modificarlo.

  5. Nella pagina QSExternalApp, scegliere la freccia in giù accanto al nome del controllo ospitato e scegliere Azioni di UII.

  6. Nella pagina successiva scegliere Aggiungi nuova azione UII.

  7. Nella pagina Nuova azione UII, digitare il nome come UpdateFirstName e scegliere Salva e chiudi. L'azione viene aggiunta alla pagina precedente.

  8. Analogamente, aggiungere le seguenti due azioni: UpdateLastName e UpdateAddress. Tutte e tre le azioni diventano disponibili per il controllo ospitato QSExternalApp.

    Azioni disponibili per UII per un controllo ospitato

  9. Eseguire i passaggi da 4 a 8 per creare tre azioni UII con gli stessi nomi per QSExternalWebApp.

Testare il controllo ospitato

Prima di testare il controllo ospitato UIIWPF, assicurarsi che l'applicazione Web di esempio sia in esecuzione in modo da poter eseguire il rendering in Unified Service Desk.

  1. Eseguire il client Unified Service Desk per connettersi al server Dynamics 365.

  2. All'accesso vengono visualizzati i tre controlli ospitati: Esempio di controllo ospitato UII WPF, Esempio di applicazione Web esterna ed Esempio di applicazione esterna.

    Esempio di controllo ospitato UII WPF disponibile

  3. Scegliere Cerca e quindi selezionare Contatti. Scegliere uno dei contatti per visualizzare i relativi dettagli in una sessione. Viene inoltre visualizzato il nome, il cognome, l'indirizzo e l'ID del record contatto attualmente visualizzato nei tre controlli di esempio.

    Dati visualizzati dal contesto USD nei 3 controlli

  4. Modificare i valori in Esempio di controllo ospitato UII WPF e fare clic su Aggiorna valori in applicazioni ospitate per aggiornare i valori nelle altre due applicazioni esterne.

    Valori aggiornati in applicazioni esterne

  5. In Esempio di controllo ospitato UII WPF, scegliere Aggiorna contesto per aggiornare le informazioni sul contesto in Unified Service Desk.

    Valori aggiornati nel contesto USD

Vedere anche

Integrare con le applicazioni esterne e le applicazioni Web
Utilizzare controlli ospitati UII con Unified Service Desk
Procedura dettagliata: creare un controllo ospitato Windows Form UII
Azioni di UII

Unified Service Desk 2.0

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright