Näidisprotseduur: UII veebirakenduse adaptri loomine

Saate luua veebirakenduse adaptri, kui soovite täiustada ja muuta veebirakendusi, mille puhul teil puudub juurdepääs lähtekoodile või puuduvad õigused muutmiseks hallatavat koodi kasutades. Microsoft Dynamics CRM pakub Microsoft Visual Studio malli veebirakenduse adaptri loomiseks. Mall pakub põhilist koodi kommentaaridena, et aidata teil veebirakenduse adaptri loomisega alustada.

Selles näidisprotseduuris koostate välise veebirakenduse nimega QsWebApplication ja majutate selle asukohta Unified Service Desk. Seejärel saate luua ja konfigureerida veebirakenduse adaptri nimega MyWebApplicationAdapter, et väline veebirakendus saaks Unified Service Deskiga suhelda. Veebirakendusel on neli silti, üks kliendi eesnime, perekonnanime, aadressi ja ID jaoks ja neli vastavat tekstivälja, millel kuvatakse Unified Service Deski väärtused.

Selle teema sisu

Eeltingimused

1. samm: näidis-veebirakenduse koostamine

2. samm: veebirakenduse konfigureerimine Dynamics CRM-is

3. samm: veebirakenduse testimine

4. samm: veebirakenduse adaptri loomine

5. samm: veebirakenduse adaptri konfigureerimine Dynamics CRM-is

6. samm: veebirakenduse adaptri testimine

Eeltingimused

  • Microsoft .NET Framework 4.5.2

  • Unified Service Deski klientrakendus, mis on vajalik hostitud juhtelemendi testimiseks.

  • Microsoft Visual Studio 2012 või Visual Studio 2013

  • NuGet Package Manager rakendusele Visual Studio 2012 või Visual Studio 2013

  • Microsoft Dynamics CRM SDK mallid Visual Studiole, mis sisaldab UII hostitud juhtelemendi projekti malli. Võite selle hankida ühel järgmistest viisidest.

1. samm: näidis-veebirakenduse koostamine

  1. Laadige alla UII SDK pakett (.exe)

  2. Topeltklõpsake paketifaili sisu ekstraktimiseks.

  3. Minge kausta <ExtractedFolder>\UII\SampleCode\UII\AIF\ QsWebApplication ja avage fail Microsoft.Uii.QuickStarts.QsWebApplication.csproj rakenduses Visual Studio.

  4. Vajutage klahvi F5 või valige Silu > Alusta silumist näidis-veebirakenduse kohalikuks majutamiseks oma arvutisse. Rakendus majutatakse asukohta https://localhost:2627/.

2. samm: veebirakenduse konfigureerimine Dynamics CRM-is

  1. Logige sisse rakendusse Microsoft Dynamics CRM.

  2. Minge jaotisse Sätted > Unified Service Desk. (Kuidas ma sinna saan?)

  3. Valige Hostitud juhtelemendid.

  4. Valige Uus.

  5. Määrake lehel Uus hostitud juhtelement järgmised väärtused.

    Väli Väärtus

    Nimi

    QsWebApplication

    USD komponendi tüüp

    CCA majutatud rakendus

    Majutatud rakendus

    Veebis majutatud rakendus

    Rakendus on globaalne

    Kontrollitud

    Kuva rühm

    MainPanel

    Adapter

    Ära kasuta adaptrit

    Rakendus on dünaamiline

    Ei

    Rakenduse majutamine

    Kasuta SetParentit

    URL

    Määrake asukoht, kus teie veebirakendus on majutatud. Praegusel juhul on see https://localhost:2627/

  6. Valige Salvesta.

3. samm: veebirakenduse testimine

  1. Veenduge, et 1. sammus koostatud veebirakendus endiselt töötab.

  2. Käivitage Unified Service Deski klient oma Microsoft Dynamics CRM-i serveriga ühenduse loomiseks.

  3. Sisselogimise õnnestumisel näete töölaual välist näidis-veebirakendust.

  4. Klõpsake vahekaarti Väline näidis-veebirakendus, et näha oma Unified Service Deskis majutatud veebirakendust.

Märkus

Sel hetkel on väljad tühjad, sest majutate Unified Service Deskis ainult välist veebirakendust. Nende täitmiseks Unified Service Deski väärtustega tuleb luua veebirakenduse adapter, nagu on illustreeritud järgmises sammus.

4. samm: veebirakenduse adaptri loomine

  1. Käivitage Microsoft Visual Studio ja looge uus projekt.

  2. Tehke dialoogiboksis Uus projekt järgmist.

    1. Laiendage vasakul asuvas installitud mallide loendis jaotist Visual C# ja valige CRM-i SDK mallid > Unified Service Desk > UII veebirakenduse adapter.

    2. Määrake projekti nimi ja asukoht ning klõpsake uue projekti loomiseks OK.

    3. Valige WebAppAdapter.cs ja värskendage definitsiooni NotifyContextChange järgmise koodiga, et lisada tekstiväljadele kontekstiteave. Lisateave: NotifyContextChange

      public override bool NotifyContextChange(Context context)
              {
                  // Populating text fields from context information.
      
                  HTMLDocument htmlDoc = Browser.Document as HTMLDocument;
                  if (htmlDoc != null)
                  {
                      IHTMLElementCollection htmlElementCollection = htmlDoc.all;
                      IHTMLElement htmlFirstName = htmlElementCollection.item("txtFirstName", 0) as IHTMLElement;
                      htmlFirstName.setAttribute("value", context["firstname"], 0);
                      IHTMLElement htmlLastName = htmlElementCollection.item("txtLastName", 0) as IHTMLElement;
                      htmlLastName.setAttribute("value", context["lastname"], 0);
                      IHTMLElement htmlAddress = htmlElementCollection.item("txtAddress", 0) as IHTMLElement;
                      htmlAddress.setAttribute("value", context["address1_line1"], 0);
                      IHTMLElement htmlID = htmlElementCollection.item("txtID", 0) as IHTMLElement;
                      htmlID.setAttribute("value", context["CustomerID"], 0);
                  }
                  return base.NotifyContextChange(context);
              }
      
    4. Lisage järgmine kood alistamisdefinitsioonile DoAction rakenduse värskendamiseks Unified Service Deski väärtustega

      public override bool DoAction(HostedWebApplication.WebAction action, ref string data)
              {
                  Trace.WriteLine(string.Format("{0}>>>>> RECEIVED (WebAction) Action : {1} ", this.Name, action.Name));
      
                  // Check to see if the browser is working on something before allowing the system to do 'normal' behavior.
                  if (Browser.WebBrowser.ReadyState != tagREADYSTATE.READYSTATE_COMPLETE)
                  {
                      // Browser is not in a state to process this request,  Queue it for when the browser is ready to handle it. 
                      Trace.WriteLine(string.Format("{0}>>>>> Browser Busy,({2}) Queuing Action : {1} ", this.Name, action.Name, Browser.WebBrowser.ReadyState.ToString()));
                      qReqActionList.Enqueue(new BrowserActionData(action, data));
                      return false;
                  }
                Trace.WriteLine(string.Format("{0}>>>>>>>>>>> Action:Name={1} Action:Url={2} Action:Query={3} Action:Init={4}", this.Name, action.Name, action.Url, action.QueryString, action.Initialization));
      
                  // Get browser DOM and element collection.
                  // Create an XML Document to load the passed in data to.
                  HTMLDocument htmlDoc = Browser.Document as HTMLDocument;
                  IHTMLElementCollection htmlElementCollection = htmlDoc.all;
      
                  // Check action name for something we know how to process.
                  switch (action.Name)
                  {
                      case "UpdateFirstName":
                          IHTMLElement htmlFirstName = htmlElementCollection.item("txtFirstName", 0) as IHTMLElement;
                          htmlFirstName.setAttribute("value", data, 0);
                          break;
                      case "UpdateLastName":
                          IHTMLElement htmlLastName = htmlElementCollection.item("txtLastName", 0) as IHTMLElement;
                          htmlLastName.setAttribute("value", data, 0);
                          break;
                      case "UpdateAddress":
                          IHTMLElement htmlAddress = htmlElementCollection.item("txtAddress", 0) as IHTMLElement;
                          htmlAddress.setAttribute("value", data, 0);
                          break;
                      case "UpdateID":
                          IHTMLElement htmlID = htmlElementCollection.item("txtID", 0) as IHTMLElement;
                          htmlID.setAttribute("value", data, 0);
                          break;
                  }
                  return false;
              }
      
    5. Salvestage oma projekt ja koostage see (Koosta > Koosta lahendus). Pärast projekti edukat koostamist luuakse assembler (MyWebApplicationAdapter.dll) teie projektikausta kaustas \bin\debug. Seda assemblerit on teil hiljem vaja veebirakenduse adaptri testimiseks ja kasutamiseks.

5. samm: veebirakenduse adaptri konfigureerimine Dynamics CRM-is

  1. Logige sisse rakendusse Microsoft Dynamics CRM.

  2. Valige navigeerimisribalt Microsoft Dynamics CRM ja valige siis Sätted.

  3. Valige Sätted > Unified Service Desk > Hostitud juhtelemendid.

  4. Valige hostitud juhtelementide loendist hostitud juhtelement QsWebApplication.

  5. Määrake jaotises Adaptri konfiguratsioon järgmised väärtused.

    Väli Väärtus

    Adapter

    Kasuta adaptrit

    URI

    MyWebApplicationAdapter

    Tüüp

    MyWebApplicationAdapter.WebAppAdapter

    Märkus

    URI on teie assembleri nimi ja Tüüp on teie assembleri nimi (dll), millele järgneb punkt (.) ja seejärel klassi nimi teie Visual Studio projektis. Selles näites on assembleri nimi MyWebApplicationAdapter ja klassi nimi on WebAdapter, mis on klassi vaikenimi veebirakenduse adaptri loomisel.

  6. Muudatuste salvestamiseks valige Salvesta.

6. samm: veebirakenduse adaptri testimine

  1. Kopeerige veebirakenduse adaptri definitsiooni sisaldav assembler oma Visual Studio projekti väljundkaustast (<ProjectFolder>\bin\debug) Unified Service Deski rakenduse kausta. Praegusel juhul kopeerite faili MyWebApplicationAdapter.dll kataloogi c:\Program Files\Microsoft Dynamics CRM USD\USD.

  2. Käivitage Unified Service Deski klient oma Microsoft Dynamics CRM-i serveriga ühenduse loomiseks.

  3. Sisselogimise õnnestumisel näete töölaual välise näidis-veebirakenduse nuppu.

  4. Valige Otsing, seejärel Kontaktid ja valige kontakt. Praegusel juhul valige Patrick Sands.

  5. Klõpsake Väline näidis-veebirakendus ja näete kliendi eesnime, perekonnanime, aadressi ja ID-d.

Märkus

See näidisprotseduur näitas, kuidas lugeda või kuvada Unified Service Deski andmeid välises veebirakenduses. Andmete värskendamiseks Unified Service Deskis välise veebirakenduse kaudu ja vastupidi vt jaotist Näidisprotseduur: UII Windowsi vormide hostitud juhtelemendi loomine

Vt ka

Mõisted

Use UII adapters to interact with external and web applications

Unified Service Desk
Send comments about this topic to Microsoft.
© 2015 Microsoft. All rights reserved.