Megosztás a következőn keresztül:


Példa: A Universal Resource Scheduling kibővítése egyéni nyelvi korlátozással

Ez a lépésenkénti útmutató kiegészíti az Erőforrás-egyeztetés megértése és testreszabása az Universal Resource Scheduling esetében útmutatót

Ebben a lépésenkénti útmutatóban bővítjük az Universal Resource Scheduling erőforrásokkal egy Language megszorítással. Tegyük fel, hogy egy szervezet szeretne erőforrásokat szűrni a nyelv alapján, amit beszélnek. A feladat elvégzéséhez szükséges nyelvet is rögzíteni szeretnék a Requirement rekordban. Ez a korlátozás a beépített Territory korlátozáshoz hasonló felépítésű. Az új Language fő entitás tárolja az erőforrás által beszélt különböző nyelveket. Egy Resource bejegyzés számos Languages bejegyzéshez lehet társítva sok-a-sokhoz kapcsolat entitáson keresztül. A Requirement entitáson modellezzük ezt úgy, hogy két új keresési attribútumot hozunk létre: Primary Language és Secondary Language. Rendelkezésre álló erőforrások keresésekor egy követelményhez, csak a Primary Language vagy a Secondary Language társítású erőforrások jelennek meg.

Új entitások és kapcsolatok létrehozása

Ebben a szakaszban új sémát hozunk létre a fő Language entitáshoz, és frissítjük a Resource és Requirement entitásokat a megfelelő kapcsolatokkal az új Language entitáshoz.

Új Közzétevő létrehozása

  1. A Dynamics 365 rendszerben a Testreszabások részen hozzon létre új kiadót

  2. Töltse ki az Új közzétevő űrlapot az alábbi információkkal:

    Mező Value
    Megjelenítendő név Language
    Név nyelv
    Előtag nyelv
  3. Kattintson a Mentés és bezárás gombra.

Új Megoldás létrehozása

  1. A Dynamics 365 rendszerben a Testreszabások részen hozzon létre új megoldást

  2. Töltse ki az Új megoldás űrlapot az alábbi információkkal:

    Mező Value
    Megjelenítendő név Language
    Név Language
    Közzétevő Language
    Verzió 1.0.0.0
  3. Kattintson a Mentés gombra

A Nyelv entitást létrehozása

  1. A Nyelv megoldásban hozzon létre egy új entitást

  2. Töltse ki az Új entitás űrlapot az alábbi információkkal:

    Mező Value
    Megjelenítendő név Language
    Többes számú név Nyelvek
    Adatfolyam neve lang_language (A lang_ előtag automatikusan kitöltött, és csak olvasható)
  3. Kattintson a Mentés gombra

A sok-a-sokhoz kapcsolat létrehozása az Erőforrás entitásból Nyelvi entitáshoz

  1. A Nyelvi entitásban hozzon létre egy új sok-a-sokhoz kapcsolatot

  2. Töltse ki az Új kapcsolat űrlapot az alábbi információkkal:

    Mező Value
    Aktuális entitás
    Megjelenítési beállítás Többes számú név használata
    Egyéb entitás
    Entitás neve Lefoglalható erőforrás
  3. Kattintson a Mentés és bezárás gombra.

  4. Zárja be a Nyelvi entitás űrlapot

A kapcsolatok létrehozása a Követelmény entitásból Nyelvi entitáshoz

  1. A Nyelv megoldásban adja hozzá a meglévő erőforrás-követelmények entitást a megoldáshoz (Ha a Szükséges összetevők hiányoznak párbeszéd jelenik meg, válassza a Nem adom hozzá a szükséges összetevőket lehetőséget.)

  2. Az Erőforrás-követelmény entitásban hozzon létre új mezőt

  3. Töltse ki az Új mező űrlapot az alábbi információkkal:

    Mező Value
    Megjelenítendő név Elsődleges nyelv
    Adattípus Keresés
    Célbejegyzés típusa Language
  4. Kattintson a Mentés és bezárás gombra.

  5. Az Erőforrás-követelmény entitásban hozzon létre új mezőt

  6. Töltse ki az Új mező űrlapot az alábbi információkkal:

    Mező Value
    Megjelenítendő név Másodlagos nyelv
    Adattípus Keresés
    Célbejegyzés típusa Language
  7. Kattintson a Mentés és bezárás gombra.

A követelmény fő űrlapjának frissítése

  1. Az Erőforráskövetelmény entitásban adja hozzá a meglévő információs űrlapot az entitás alösszetevőihez (Ha a Szükséges összetevők hiányoznak párbeszéd jelenik meg, válassza a Nem adom hozzá a szükséges összetevőket lehetőséget.)
  2. AzInformáció űrlapon a Mezőkezelő segítségével vegyen fel két új attribútumot, az Elsődleges és Másodlagos nyelvet az űrlapra, így a felhasználók megadhatják ezt az információt, amikor követelményeket hoznak létre
  3. Kattintson a Mentés gombra
  4. Kattintson a Közzététel lehetőségre
  5. Bezárhatja az űrlapszerkesztőt

Összefoglalás

A fenti lépésekben az új Nyelv entitás hoztunk létre. Ezután új kapcsolatokat adtunk hozzá az Erőforrás és Követelmény és entitásokkal. Erőforrások több nyelvhez is kapcsolódhatnak óta hiszen több a többhöz kapcsolatokat adtunk hozzá a Nyelv és az Erőforrás közé. Követelmények is kapcsolódhat két nyelvhez, mivel két, az új Nyelvi entitásra mutató keresési attribútumot adtunk a Követelmény entitáshoz.

Adatok hozzáadása

Irányított keresés használata új rekordok hozzáadásához a Nyelv entitáshoz. Ezt követően új Erőforrásrekordokat társíthat az Új Nyelv rekordokhoz, ehhez nyissa meg az Erőforrás rekordot, és navigáljon a Nyelv kapcsolathoz a navigációs sávon. A Követelmény rekordokhoz kitöltheti az új nyelvi Elsődleges nyelv és Másodlagos nyelv mezőket a Követelmény űrlapon.

Az Ütemezési tábla testreszabása

Az erőforrások szűréséhez az Ütemezési táblán az Új Nyelv korlátozás használatával frissítjük az erőforrások lekérése lekérdezést és a Szűrőelrendezés konfigurációs bejegyzéseket.

Szűrőelrendezés beállítása

Tipp

A az alábbi lépésekhez érdemes szintaxiskiemelést támogató szövegszerkesztőt használnia, amellyel kiemelheti a módosításokat majd illessze be a módosításokat vissza az Universal Resource Scheduling szerkesztőjébe.

A Szűrőelrendezés beállítás egy XML-elrendezés definíció, a Szűrőpanel elrendezésének testreszabására.

Hinweis

Ebben a gyakorlatban egyszerűen eltávolítjuk a Szűrőpanelről az Universal Resource Scheduling minden gyári alapértelmezett szűrőjét, a Nyelvet adjuk hozzá az egyetlen elérhető szűrőként.

<control type="combo" source="entity" key="Languages" inactive-state="1" label-id="Languages" entity="lang_language" multi="true" />

A control elem egy új vezérlőelemet vesz fel a Szűrőpanelen. Itt találja az egyes attribútumok leírását:

Név Leírás
type A szűrővezérlő típusa. A combo vezérlő megjelenít egy legördülő listát választható értékekkel
source Az értékek forrása a legördülő lista vezérlője. Egy entity forrás entitásbejegyzéseket jelenít meg a legördülő listában
key Fontos a kiválasztott értékek tárolása a korlátozás tulajdonságcsomagban
inactive-state Az inaktív statecode ehhez az entitáshoz. Ennek feladata az inaktív bejegyzések kizárása a legördülő listából
label-id A honosított címke a vezérlő használatához
entity Az entitás bejegyzései lesznek láthatók a legördülő listában
multi Konfigurálja a legördülő listát, hogy egy bejegyzés vagy több bejegyzés kiválasztását engedélyezze

Szűrőelrendezés:

<?xml version="1.0" encoding="utf-8" ?>
<filter>
  <controls>
    <control type="combo" source="entity" key="Languages" inactive-state="1" label-id="Languages" entity="lang_language" multi="true" />
  </controls>
</filter>

Új Nyelvek tábla létrehozása

Annak érdekében, hogy ezek a változtatások elszigeteltek legyenek, létrehozunk egy vadonatúj, külön az Ütemezési táblát és a módosításokat végrehajtjuk, de bármikor elvégezheti ezeket a változtatásokaz alapértelmezett Ütemezési táblán, hogy más Ütemezési táblák automatikusan örökölhessék a változtatásokat.

  1. A Dynamics 365 rendszer felső navigációs sávján lépjen az Erőforrás-ütemezés > Ütemezési tábla részre
  2. Kattintson a jobb felső sarokban a + jelre egy új tábla létrehozásához
  3. Adja a Nyelv nevet az új táblának
  4. A párbeszédpanel alján kattintson a Hozzáadás gombra. Az új tábla létrejön.

Az Ütemezési tábla szürőelrendezésének frissítése

Következő lépésként hozunk létre egy új konfigurációs bejegyzést,amely tárolja a szűrőelrendezéseket és lekérdezéseket, amelyeket au Ütemezési tábla tárol, és összekapcsoljuk az újonnan létrehozott Ütemezési táblát az új konfigurációs bejegyzéssel. Ennek több módja van de itt találja a leggyorsabbat:

  1. A jobb felső sarokban kattintson duplán a Nyelv lapra
  2. Görgessen le az Általános beállítások > Egyéb beállítások lehetőséghez
  3. Keresse meg a Szűrőelrendezés mezőt, kattintson a gombra a jobb oldalon a szerkesztő megnyitásához
  4. Frissítse az Érték mezőt a fenti Szűrőelrendezés kóddal, és kattintson a Mentés másként lehetőségre.
  5. A Név mezőben adja meg a „Nyelvi szűrő elrendezés” elemet, és kattintson a Mentés gombra. Ezzel létrehoz egy új konfigurációs bejegyzést és hozzákapcsolja ezt az Ütemezési táblát a bejegyzéshez.
  6. A párbeszédpanel alján kattintson az Alkalmaz gombra.

A tábla újra betöltődik és megjelenik a Szűrőpanel a bal oldalon az új elrendezéssel; csak Nyelvek szűrő lesz elérhető. Szűrés még nem működik, az új szűrő előnyeinek kihasználása érdekében a beolvasásához Erőforrások-beszerzési lekérdezést frissíteni kell.

Erőforrás-beszerzési lekérdezés konfigurálása

Tipp

A az alábbi lépésekhez érdemes szintaxiskiemelést támogató szövegszerkesztőt használnia, amellyel kiemelheti a módosításokat majd illessze be a módosításokat vissza az Universal Resource Scheduling szerkesztőjébe.

Az Erőforrás-beszerzési lekérdezés konfiguráció egy UFX lekérdezés, amelyet az Erőforrás egyező API használ. A Szűrés panelen megadott értékeket használja, és dinamikusan létrehozza a megfelelő FetchXML-t az egyező erőforrások kereséséhez.

Az alábbi láthatók az új kódrészletek, amelyek hozzá lettek adva az Erőforrás-beszerzési lekérdezéshez, hogy egyeztessék és rendezzék az erőforrás nyelveit.

A illesztések hozzáadása bookableresource elemből a lang_language elembe

<link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_primary" link-type="outer" ufx:if="$input/Languages/bag[1]">
  <attribute name="lang_languageid" alias="lang_primary" groupby="true" />

  <filter>
    <condition attribute="lang_languageid" operator="eq">
      <ufx:value select="$input/Languages/bag[1]/@ufx-id" attribute="value" />
    </condition>          
  </filter>
</link-entity>

<link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_secondary" link-type="outer" ufx:if="$input/Languages/bag[2]">
  <attribute name="lang_languageid" alias="lang_secondary" groupby="true" />

  <filter>
    <condition attribute="lang_languageid" operator="eq">
      <ufx:value select="$input/Languages/bag[2]/@ufx-id" attribute="value" />
    </condition>          
  </filter>
</link-entity>

<link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_others" link-type="outer" ufx:if="$input/Languages/bag[position() > 2]">

  <filter>
    <condition attribute="lang_languageid" operator="in">
      <ufx:apply select="$input/Languages/bag[position() > 2]">
        <value>
          <ufx:value select="@ufx-id" />
        </value>
      </ufx:apply>
    </condition>            
  </filter>
</link-entity>        

<filter type="or">
  <condition entityname="lang_primary" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[1]" />
  <condition entityname="lang_secondary" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[2]" />
  <condition entityname="lang_others" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[position() > 2]" />          
</filter>

A Szűrés panelen kiválasztott értékeket a rendszer továbbítja bemenetként a lekérdezéshez és elérhetők az XPath $input változóban

A Erőforrás-beszerzési lekérdezés a FetchXML-t használja a Resource (bookableresource) entitás lekérdezéséhez. A FetchXML link-entity elemet használjuk arra, hogy csak aSzűrés panelen kijelölt nyelvi bejegyzéshez társított erőforrásokat küldjük vissza. A megfelelő nyelvek megjelenítése és az elsődleges és másodlagos nyelv rendelés támogatásához, amelyek leírása később, az Erőforráscella-sablon fejezetben találhatók több link-entity illesztést használunk.

Itt találja az egyes element és attribute értékek leírását:

Név Leírás
link-entity Illesztés létrehozása a sok-a-sokhoz kapcsolathoz az Erőforrás entitás és Nyelvi entitás között
ufx:if Csak ezen FetchXML elem létrehozása (link-entity) Ha ebben az attribútumban XPath kifejezés értéket ad vissza
attribute Az egyeztett elsődleges vagy másodlagos nyelv visszaküldése
filter és condition A több-a-többhöz kapcsolatbejegyzések szűrése,csak azokram amelyek megfelelnek a megadott nyelvi azonosítóknak
ufx:value és select A XPath kifejezés eredményét adja ki a select attribútumban
ufx:apply és select Az alárendelt FetchXML elemek kiadása az XPath kifejezéstől a select attribútumban visszaküldött egyes eredményekből
value Tartalmazza egy Nyelv bejegyzés azonosítóját

Az erőforrás rendezési sorrendjének meghatározása

A megfelelő erőforrások lekérést követően az egyes erőforrásokhoz hozzárendelt nyelv alapján, hozzárendeljük új lang_order tulajdonságot a rendezési sorrend meghatározásához.

<bag>
  <lang_order ufx:select="iif(lang_primary and lang_secondary, 1, iif(lang_primary, 2, iif(lang_secondary, 3, 4)))" />
</bag>

Itt találja az egyes element és attribute értékek leírását:

Név Leírás
lang_order Új tulajdonság létrehozása a lang_order nevű FetchXML lekérdezésben visszaadott egyes erőforrásokban
ufx:select A XPath kifejezés eredményét rendelje hozzá ebben az attribútumban a lang_order tulajdonsághoz. A lang_primary és lang_secondary tulajdonságok, amelyeket korábban a lekérdezés lekért az XPath iif függvénnyel együtt használatosak az erőforrásillesztés rendezésének meghatározásához.

Eredmények rendezése

<Resources ufx:select="order(Resources, 'lang_order')" />

Az UFX lekérdezések feldolgozása sorrendben történik. Az erőforrások lekérését követően a FetchXML-en keresztül az eredmények hozzá lesznek rendelve a Resources tulajdonsághoz. Az eredményeket a korábban hozzáadott lang_order tulajdonság alapján rendezzük, és a rendezett eredményeket ismét hozzárendeljük a Resources tulajdonsághoz.

Itt találja az egyes element és attribute értékek leírását:

Adatfolyam neve Ismertetés
Resources A Resources tulajdonság ismételt hozzárendelése
ufx:select A XPath kifejezés eredményét rendelje hozzá ebben az attribútumban a Resources tulajdonsághoz. Az XPath order függvény feladata a Resources listája rendezése a lang_order tulajdonságán.

Hinweis

Az alapértelmezett Erőforrás-beszerzési lekérdezés, amely az Universal Resource Scheduling része egy nagy lekérdezés, amely a Universal Resource Scheduling-hez tartozó összes erőforráskorlátozást tartalmazza. Ebben a gyakorlatban az alapértelmezett lekérdezésnek csak egy részhalmazát használjuk, és a Nyelveket adjuk hozzá egyetlen szűrőként.

<?xml version="1.0" encoding="utf-8" ?>
<bag xmlns:ufx="https://schemas.microsoft.com/dynamics/2017/universalfetchxml">
  <Resources ufx:source="fetch">
    <fetch mapping="logical" aggregate="true">
      <entity name="bookableresource">
        <attribute name="bookableresourceid" alias="bookableresourceid" groupby="true"/>
        <attribute name="name" alias="name" groupby="true"/>
        <attribute name="calendarid" alias="calendarid" groupby="true"/>
        <attribute name="resourcetype" alias="resourcetype" groupby="true"/>
        <attribute name="msdyn_startlocation" alias="startlocation" groupby="true"/>

        <!-- Language join -->
        <link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_primary" link-type="outer" ufx:if="$input/Languages/bag[1]">
          <attribute name="lang_languageid" alias="lang_primary" groupby="true" />
          
          <filter>
            <condition attribute="lang_languageid" operator="eq">
              <ufx:value select="$input/Languages/bag[1]/@ufx-id" attribute="value" />
            </condition>          
          </filter>
        </link-entity>

        <link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_secondary" link-type="outer" ufx:if="$input/Languages/bag[2]">
          <attribute name="lang_languageid" alias="lang_secondary" groupby="true" />
          
          <filter>
            <condition attribute="lang_languageid" operator="eq">
              <ufx:value select="$input/Languages/bag[2]/@ufx-id" attribute="value" />
            </condition>          
          </filter>
        </link-entity>
        
        <link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_others" link-type="outer" ufx:if="$input/Languages/bag[position() > 2]">
          
          <filter>
            <condition attribute="lang_languageid" operator="in">
              <ufx:apply select="$input/Languages/bag[position() > 2]">
                <value>
                  <ufx:value select="@ufx-id" />
                </value>
              </ufx:apply>
            </condition>            
          </filter>
        </link-entity>        
        
        <filter type="or">
          <condition entityname="lang_primary" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[1]" />
          <condition entityname="lang_secondary" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[2]" />
          <condition entityname="lang_others" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[position() > 2]" />          
        </filter>
        
        <link-entity name="systemuser" from="systemuserid" to="userid" link-type="outer">
          <attribute name="systemuserid" alias="systemuserid" groupby="true" />
          <attribute name="entityimage_url" alias="userimagepath" groupby="true"/>
        </link-entity>

        <link-entity name="contact" from="contactid" to="contactid" link-type="outer">
          <attribute name="contactid" alias="contactid" groupby="true"/>
          <attribute name="entityimage_url" alias="contactimagepath" groupby="true"/>
        </link-entity>
        
        <link-entity name="account" from="accountid" to="accountid" link-type="outer">
          <attribute name="accountid" alias="accountid" groupby="true"/>
          <attribute name="entityimage_url" alias="accountimagepath" groupby="true"/>
        </link-entity>
      </entity>
    </fetch>

    <bag>
      <imagepath ufx:select="accountimagepath | contactimagepath | userimagepath" />

      <accountimagepath ufx:select="$null" />
      <contactimagepath ufx:select="$null" />
      <userimagepath ufx:select="$null" />
      
      <lang_order ufx:select="iif(lang_primary and lang_secondary, 1, iif(lang_primary, 2, iif(lang_secondary, 3, 4)))" />
    </bag>
  </Resources>

  <Resources ufx:select="order(Resources, 'lang_order')" />
</bag>

Erőforrás-beszerzési lekérdezés frissítése

  1. A jobb felső sarokban kattintson duplán a Nyelv lapra
  2. Görgessen le az Általános beállítások > Egyéb beállítások lehetőséghez
  3. Keresse meg a Erőforrás-beszerzési lekérdezés mezőt, kattintson a gombra a jobb oldalon a szerkesztő megnyitásához
  4. Frissítse az Érték mezőt a fenti Erőforrás-beszerzési lekérdezés kóddal, és kattintson a Mentés másként lehetőségre.
  5. A Név mezőben adja meg a „Nyelvi elrendezés lekérdezése” elemet, és kattintson a Mentés gombra. Ezzel létrehoz egy új konfigurációs bejegyzést és hozzákapcsolja ezt az Ütemezési táblát a bejegyzéshez.
  6. A párbeszédpanel alján kattintson az Alkalmaz gombra.

A tábla újra betölt a frissített konfigurációval. A szűrés immár működik. Ha létrehozott nyelvi bejegyzéseket és társította őket az Erőforrások rekordokkal, most már képes az erőforrások szűrésére a társított nyelvek alapján.

Összesítés

A fenti lépésekben módosítottuk a Szűrőpanelt, hogy szűrő vezérlő jelenítsen meg a nyelvi entitáshoz. Módosítottuk a Erőforrás-beszerzési lekérdezést is, hogy egyeztesse a kiválasztott Nyelv rekordokhoz társított erőforrásokkal. Ha a felhasználó kiválasztja a szűrő vezérlőelembenaz értékeket, és a Keresés elemre kattint, az értékek továbbítva lesznek a lekérdezésnek, és a FetchXML lekérdezés csak az egyeztetett erőforrásokat jeleníti meg.

Az Ütemezési asszisztens testreszabása

Testre kell szabni az Ütemezési segéd Szürőelrendezés és kKorlátozások lekérdezésének beszerzése konfigurációt, hogy használják az Ütemezési segéd új nyelvi korlátozásait.

Az Ütemezési tábla testreszabásoktól eltérően az Ütemezési asszisztens testreszabások minden táblára hatással vannak, ahol az Ütemezési segéd használják. Az Ütemezési segéd testreszabások vonatkozhatnak egy ütemezési típusra vagy az összesre. Ebben a példában azt az Ütemezési segédet minden típushoz szabjuk testre.

Ütemezési segéd szűrőelrendezésének konfigurálása

Tipp

A az alábbi lépésekhez érdemes szintaxiskiemelést támogató szövegszerkesztőt használnia, amellyel kiemelheti a módosításokat majd illessze be a módosításokat vissza az Universal Resource Scheduling szerkesztőjébe.

Az Ütemezési segéd Szűrőelrendezés konfigurációja, hasonlóan az Ütemezési tábla szűrő elrendezéséhez,a vezérlőelemek elrendezését definiálja a Szűrőpanelen. Mivel az Ütemezési segéd az Ütemezési táblánál több szűrőt használ, például Kezdési idő, Záró időpont, időtartam, stb, eltérő elrendezés van használva

Hinweis

Ebben a gyakorlatban a Universal Resource Scheduling alapértelmezett szűrőinek részhalmazát használjuk fel az Ütemezési segéd Szűrőelrendezés konfigurációjából, és a Nyelv legördülő menüt adjuk hozzá egyetlen elérhető szűrőként.

A szűrő, amelyet hozzáadunk az elrendezéshez megegyezik a fenti Szűrőkelrendezés beállítással. Az egyéb vezérlőkreaz Ütemezési segéd keresési paramétereinek módosításához van szükség.

A teljes Ütemezési segéd szűrőelrendezés

<?xml version="1.0" encoding="utf-8" ?>
<filter>
  <controls>
    <control type="twocolumn">
      <control type="combo" source="optionset" key="Requirement/msdyn_worklocation" label-id="ScheduleAssistant.West.settingsform.WorkLocation" entity="msdyn_resourcerequirement" attribute="msdyn_worklocation">
        <bind property="disabled" to="Requirement/InitialWorkLocation" operator="eq" value="690970002" />
        <data>
          <value id="690970000" />
          <value id="690970001" />
          <value id="690970002" />
        </data>
      </control>
      <control type="duration" key="Requirement/msdyn_remainingduration" label-id="ScheduleAssistant.West.settingsform.AvailableDuration" />
    </control>
    <control type="distance" key="Requirement/Radius" label-id="ScheduleAssistant.West.settingsform.Radius" min="1">
      <bind property="disabled" to="Requirement/msdyn_worklocation" operator="eq" value="690970002" />
    </control>
    <control type="datetime" key="Requirement/msdyn_fromdate" label-id="ScheduleAssistant.West.settingsform.StartDay">
      <bind property="disabled" to="Requirement/RealTimeMode" operator="eq" value="true" />
      <bind property="max" to="Requirement/msdyn_todate" operator="eq" />
    </control>
    <control type="datetime" key="Requirement/msdyn_todate" label-id="ScheduleAssistant.West.settingsform.EndDay">
      <bind property="min" to="Requirement/msdyn_fromdate" operator="eq" />
    </control>
    <control type="combo" source="entity" key="Languages" inactive-state="1" label-id="Languages" entity="lang_language" multi="true" />
  </controls>
</filter>

Ütemezési segéd szűrőjelrendezésének frissítése

  1. A jobb felső sarokban kattintson duplán a Nyelv lapra
  2. A jobb felső sarokban kattintson az Alapértelmezett beállítások megnyitása lehetőségre
  3. Az ütemezési típusok szakaszhoz görgessen, és jelölje ki a bal oldali listában a Nincs lehetőséget
  4. Keresse meg az Ütemezési segéd szűrőelrendezés mezőt, kattintson a gombra a jobb oldalon a szerkesztő megnyitásához
  5. Frissítse az Érték mezőt a fentiaz Ütemezési segéd Szűrőelrendezés kóddal, és kattintson a Mentés másként lehetőségre.
  6. A Név mezőben adja meg a „Nyelv Ütemezési segéd szűrő elrendezés” elemet, és kattintson a Mentés gombra. Ezzel létrehoz egy új konfigurációs bejegyzést és hozzákapcsolja ezt az Ütemezési táblát a bejegyzéshez.
  7. A párbeszédpanel alján kattintson az Alkalmaz gombra.

A tábla újratölt. Következő lépésként módosítani kell a Korlátozások lekérdezésének beszerzése elemet ahhoz, hogy használható az Ütemezési segéd az új nyelvi korlátozásokkal, hogy a Követelményben beállított nyelvek részei legyenek az Ütemezési segéd keresésének.

Korlátozások lekérdezésének konfigurációjának beszerzése

Tipp

A az alábbi lépésekhez érdemes szintaxiskiemelést támogató szövegszerkesztőt használnia, amellyel kiemelheti a módosításokat majd illessze be a módosításokat vissza az Universal Resource Scheduling szerkesztőjébe.

Az Korlátozások lekérdezésének beszerzése konfiguráció egy UFX lekérdezés, amelyet az Követelmény korlátozásainak lekérése API használ. Egy követelményrekord azonosítóját veszi bemenetnek (kijelölve a felhasználói felületen), és visszaadja a követelmény bejegyzést és alárendelt bejegyzéseit.

Hinweis

Az alapértelmezett Erőforrás-korlátozások lekérdezés, amely a Universal Resource Scheduling része, egy nagy lekérdezés, amely a Universal Resource Scheduling-hez tartozó összes követelménykorlátozást tartalmazza. Ebben a gyakorlatban az alapértelmezett lekérdezésnek csak egy részhalmazát használjuk, és a Nyelveket adjuk hozzá egyetlen szűrőként.

<Languages ufx:select="lookup-to-list(Requirement/lang_primarylanguage, Requirement/lang_secondarylanguage)" />

Az UFX lekérdezések feldolgozása sorrendben történik. A Korlátozásbeszerzési lekérdezés FetchXML-t használ a Requirement (msdyn_resourcerequirement) entitás lekérdezéséhez és a hozzárendeli az eredményt, egy Követelményrekordot a Requirement tulajdonsághoz. A korlátozástulajdonságok csomagjához tulajdonságot, a Languages tulajdonságot adjuk hozzá, amely egyesíti mindkét attribútumot, az elsődleges nyelvet és másodlagos nyelvet egyetlen entitáslistába (EntityCollection). Erre azért szükség, mivel megjelenítjük a Nyelvek vezérlőelemet a Szűrőpanelen, bejegyzések listájaként. Másik megoldás az lenne, ha Szűrés panelen a két attribútumhoz két külön vezérlőt hoznánk létre.

Itt találja az egyes element és attribute értékek leírását:

Név Leírás
Languages Hozzon létre egy új tulajdonságot a Languages nevű eredménykorlátozásokat tartalmazó tulajdonságcsomagban
ufx:select A XPath kifejezés eredményét rendelje hozzá ebben az attribútumban a Languages tulajdonsághoz. A lang_primarylanguage és lang_secondarylanguage tulajdonságokat, amelyeket korábban kért le a Requirement tulajdonságban elérhető lekérdezéssel, a rendszer továbbítja a lookup-to-list XPath függvénynek, amely átalakítja a több lookup tulajdonságot egyetlen list (EntityCollection) elemmé

Korlátozások lekérdezésének beszerzése:

<?xml version="1.0" encoding="utf-8" ?>
<bag xmlns:ufx="https://schemas.microsoft.com/dynamics/2017/universalfetchxml">
  <Requirement ufx:source="fetch" ufx:select="bag[1]">
    <fetch top="1">
      <entity name="msdyn_resourcerequirement">
        <all-attributes />
        
        <filter>
          <condition attribute="statecode" operator="eq" value="0" />
          <condition attribute="msdyn_resourcerequirementid" operator="eq">
            <ufx:value select="$input/@ufx-id" attribute="value" />
          </condition>
        </filter>
      </entity>
    </fetch>

    <bag>
      <InitialWorkLocation ufx:select="msdyn_worklocation" />
    </bag>
  </Requirement>
  
  <Languages ufx:select="lookup-to-list(Requirement/lang_primarylanguage, Requirement/lang_secondarylanguage)" />
</bag>

A korlátozásbeszerzési lekérdezés frissítése

  1. A jobb felső sarokban kattintson duplán a Nyelv lapra
  2. A jobb felső sarokban kattintson az Alapértelmezett beállítások megnyitása lehetőségre
  3. Az ütemezési típusok szakaszhoz görgessen, és jelölje ki a bal oldali listában a Nincs lehetőséget
  4. Keresse meg az Ütemezési segéd korlátozásbeszerzési lekérdezés mezőjét, kattintson a gombra a jobb oldalon a szerkesztő megnyitásához
  5. Frissítse az Érték mezőt a fenti Erőforrás-beszerzési lekérdezés kóddal, és kattintson a Mentés másként lehetőségre.
  6. A Név mezőben adja meg a „Nyelvi korlátozások lekérdezése” elemet, és kattintson a Mentés gombra. Ezzel létrehoz egy új konfigurációs bejegyzést és hozzákapcsolja ezt az Ütemezési táblát a bejegyzéshez.
  7. Keresse meg az Ütemezési segéd Erőforrás-beszerzési lekérdezés mezőjét és válassza ki a Nyelvek erőforrások lekérdezést, amelyet korábban hoztunk létre az Ütemezési tábla testreszabásokhoz
  8. A párbeszédpanel alján kattintson az Alkalmaz gombra.

A tábla újra betölt a frissített konfigurációval. Az Ütemezési segéd szűrése immár működik Ha létrehozott nyelvi bejegyzéseket, és a követelmény bejegyzésekhez társította őket, akkor most tud jelölni egy követelménybejegyzést az Ütemezési tábla alján, kattintson az Elérhetőség keresése lehetőségre az Ütemezési segéd indításához, és csak azokat az erőforrásokat látja, amelyek megfelelnek a követelményben mentett nyelvnek.

Erőforráscella-sablon konfigurálása

Tipp

A az alábbi lépésekhez érdemes szintaxiskiemelést támogató szövegszerkesztőt használnia, amellyel kiemelheti a módosításokat majd illessze be a módosításokat vissza az Universal Resource Scheduling szerkesztőjébe.

Az Erőforráscella sablon konfiguráció egy Handlebars sablon egy erőforráscella tartalmának megjelenítéséhez. Az Erőforrások beolvasása lekérdezés elérhető a sablonhoz.

Módosítjuk az alapértelmezett erőforrássablont hogy ✔✱ jelölőt mutasson ha az erőforrás megfelel az elsődleges és másodlagos nyelveknek ✔ jelölőt, ha az erőforrás csak az elsődleges nyelvnek felel meg és sárga ✔ jelölőt, ha az erőforrás csak a másodlagos nyelvnek felel meg.

{{#if lang_primary}}
<span style='color:green;'>&#10004;{{#if lang_secondary}} &#10033;{{/if}}</span>
{{else if lang_secondary}}
<span style='color:#ffe700;'>&#10004;</span>
{{/if}} 

A lang_primary és lang_secondary tulajdonságok visszaküldésre kerülnek az egyéni Erőforrás-beszerzési lekérdezésből, amelyet fent beállítottunk. Olvassa el a Handlebars webhelyet a sablonkészítés szintaxisának dokumentációjáért.

Erőforráscella-sablon:

<div class='resource-card-wrapper {{iif ResourceCellSelected "resource-cell-selected" ""}} {{iif ResourceUnavailable "resource-unavailable" ""}} {{iif IsMatchingAvailability "availability-match" ""}}'>
  {{#if imagepath}}
  <img class='resource-image' src='{{client-url}}{{imagepath}}' />
  {{else}}
  <div class='resource-image unknown-resource'></div>
  {{/if}}
  <div class='resource-info'>
    <div class='resource-name primary-text ellipsis' title='{{name}}'>{{name}}</div>
    <div class='secondary-text ellipsis'>
      {{#if (eq (is-sa-grid-view) false) }}
      <div class='booked-duration'>{{BookedDuration}}</div>
      <div class='booked-percentage'>
        {{BookedPercentage}}%
        
        {{#if lang_primary}}
        <span style='color:green;'>&#10004;{{#if lang_secondary}} &#10033;{{/if}}</span>
        {{else if lang_secondary}}
        <span style='color:#ffe700;'>&#10004;</span>
        {{/if}}            
      </div>
      {{/if}}
    </div>
    {{#if (eq (is-sa-grid-view) false) }}
    <div class='matching-indicator'></div>
    {{/if}}
  </div>
  {{#if (eq (is-sa-grid-view) false) }}
  {{> resource-map-pin-template this }}
  {{/if}}
</div>

Az Erőforráscella-sablon frissítése

  1. A jobb felső sarokban kattintson duplán a Nyelv lapra
  2. A jobb felső sarokban kattintson az Alapértelmezett beállítások megnyitása lehetőségre
  3. Az ütemezési típusok szakaszhoz görgessen, és jelölje ki a bal oldali listában a Nincs lehetőséget
  4. Keresse meg az Ütemezési segéd Erőforráscella-sablon mezőjét, kattintson a gombra a jobb oldalon a szerkesztő megnyitásához
  5. Frissítse az Érték mezőt a fenti Erőforrás-sablon kóddal, és kattintson a Mentés másként lehetőségre.
  6. A Név mezőben adja meg a „Nyelvi erőforrás-sablon” elemet, és kattintson a Mentés gombra. Ezzel létrehoz egy új konfigurációs bejegyzést és hozzákapcsolja ezt az Ütemezési táblát a bejegyzéshez.
  7. A párbeszédpanel alján kattintson az Alkalmaz gombra.

A tábla újra betölt a frissített konfigurációval. Az erőforrás cella most jelzi, hogyan illeszkedik az erőforrás a nyelvi korlátozáshoz a Szűrőpanelen.

Összesítés

A fenti lépésekben módosítottuk a Szűrőpanelt az Ütemezési segédben, hogy szűrő vezérlő jelenítsen meg a nyelvi entitáshoz. Módosítottuk a Korlátozásbeszerzési lekérdezést is, hogy lekérdezze az új Nyelv attribútumokat, amelyek a Követelmény entitáshoz kapcsolódnak, és listává formázza azokat. Amikor egy felhasználó Kiválasztja, hogy elérhetőséget keres egy Követelménybejegyzéshez a Szűrőpanel megjeleníti az rögzített Nyelv korlátozásokat. A Szűrőpanel értékeit továbbítva lesznek az Erőforrásbeszerzés lekérdezésnek, és a FetchXML lekérdezés csak az illeszkedő erőforrásokat jeleníti meg.

Kapcsolódó információk

Universal Fetch XML

Universal Resource Scheduling bővíthetőség kibocsátási megjegyzések

Hinweis

Megosztja velünk a dokumentációja nyelvi preferenciáit? Rövid felmérés elvégzése. (ne feledje, hogy ez a felmérés angol nyelvű)

A felmérés elvégzése körülbelül hét percet vesz igénybe. Semmilyen személyes adatot nem gyűjtünk (adatvédelmi nyilatkozat).