Sdílet prostřednictvím


Rozšiřte Universal Resource Scheduling pomocí vlastních omezení zdrojů

Universal Resource Scheduling, plánovací modul na pozadí aplikací Dynamics 365 Field Service a Project Service Automation, je dodáván s rozsáhlými funkcemi párování zdrojů pro rezervaci správných zdrojů na práci. Zatímco je řešení Universal Resource Scheduling dodáváno s aplikacemi Field Service a Project Service, lze Universal Resource Scheduling také použít k naplánování jakéhokoliv toku práce v Dynamics 365. V tomto článku se podíváme, jak se implementují vestavěná omezení zdrojů a jak se přizpůsobuje Universal Resource Scheduling s vlastními omezeními zdrojů.

Zdroje, požadavky a omezení

Prostředky

Jádro Universal Resource Scheduling je entita zdroje (bookableresource). Když jsou záznamy (bookableresourcebooking) rezervace vytvořeny, jsou přidruženy k záznamu zdroje. Aby byla zajištěna správná volba zdroje, Universal Resource Scheduling je dodáváno s mnoha vestavěnými filtry a omezeními, podle kterých se kategorizují zdroje. Příklady jsou: Typ zdroje, označující, zda je zdroj uživatelem, kontaktem, obchodním vztahem, vybavením atd., Charakteristika, chcete-li filtrovat zdroje podle dovedností, které ovládají, Oblast, k přiřazení zdrojů k určité oblasti, Organizační jednotka, k modelování hierarchie organizace a mnoho dalších.

Záznam o zdroji a jeho přidružená omezení jsou modelovány prostřednictvím atributů nebo vztahů k jiným entitám. Například Název a Typ zdroje jsou atributy entity Zdroj. Charakteristiky zdroje a oblast zdroje jsou podřízené vztahy, protože zdroj může být přidružen k více než jednomu z nich. Tyto entity jsou podřízené vztahy jak k entitě zdroje, tak k entitě charakteristiky/oblasti. Organizační jednotka je vyhledávací atribut na entitě zdroje vůči entitě organizační jednotky.

Požadavky

Jiná důležitá entita v Universal Resource Scheduling je entita požadavku na zdroj (msdyn_resourcerequirement). Entita požadavku zaznamenává požadavek na práci, která má být vykonána. Zachycuje parametry o požadované práci, například pole Od a Do, omezující časové období, ve kterém může být práce provedena; pole Doba trvání, označující jak dlouho se bude podle očekávání práce trvat; Místo výkonu práce označující místo požadované práce. Entita požadavku zachycuje také omezení zdrojů k omezení toho, jaké zdroje mohou splnit tento požadavek a být k němu zarezervovány. Stejně jako entita zdroje jsou omezení zdroje vyjádřena jako atributy na entitě požadavku nebo jako vztahy k ostatním entitám. Oblast je vyhledávací atribut z entity požadavku na entitu oblasti a označuje oblast, kde je třeba práci vykonat, a tudíž musíme najít zdroj ze stejné oblasti. Charakteristika požadavku je podřízený vztah, který váže požadavek na entitu charakteristiky a vyjadřuje dovednosti požadované pro práci. Proto lze požadavek spárovat pouze se zdroji, které mají odpovídající dovednosti.

Omezení, která jsou součástí Universal Resource Scheduling

Následuje seznam omezení, která jsou dodávána v rámci Universal Resource Scheduling:

  • Charakteristiky - Lze je použít k modelování dovedností, které má zdroj. Podporuje také volitelné hodnoty hodnocení zdatnosti zdroje pro každou dovednost.
  • Kategorie - Zdroje lze přiřadit do kategorií
  • Oblast - pro přiřazení zdrojů k oblastem
  • Organizační jednotky - pro modelování hierarchie organizace
  • Typ zdroje - definuje typ zdroje
  • Týmy - týmy, kterých je zdroj členem
  • Obchodní jednotky - které obchodní jednotky je zdroj součástí

Filtrování v plánovací vývěsce

Plánovací vývěska zobrazuje seznam zdrojů a k nim přiřazené rezervace. Panel filtr v plánovací vývěsce umožňuje filtrovat seznam zdrojů podle jejich omezení - např. výběr typu zdroje Uživatel v rozevíracím seznamu Typ zdroje bude filtrovat seznam zdrojů na ty, které jsou typu Uživatel. Podobně můžete filtrovat zdroje podle charakteristik nebo oblastí.

Použití panelu Filtr pro filtrování zdrojů je jedním ze způsobů nalezení odpovídajícího zdroje. Tato metoda se používá, pokud chcete ručně zobrazit seznam zdrojů odpovídajících specifické sadě omezení.

Hledání dostupných zdrojů s pomocníkem plánování

V dolní části plánovací vývěsky naleznete seznam záznamů zdrojů. Můžete vybrat jeden z nich a zvolit hledání dostupnost. Tato akce otevře pomocníka plánování. Pomocník plánování používá omezení zaznamenaná na vybraném záznamu požadavku k nalezení odpovídajících zdrojů, které jsou k dispozici pro rezervaci. Na vývěsce se zobrazí pouze zdroje odpovídající omezení na požadavku a ty, které jsou k dispozici v požadované časové období určeném na požadavku.

Podobně je tomu s dostupností prostřednictvím tlačítka pásu karet Rezervovat na entitě požadavku a dalších plánovatelných entit v zobrazeních seznamu Dynamics 365 nebo formulářích. Po kliknutí na Rezervovat se otevře pomocník plánování a zobrazí zdroje odpovídající omezení vybraného záznamu požadavku.

Na rozdíl od dříve zmíněného režimu plánovací vývěsky, kde panel Filtr používáte k ručnímu filtrování zdrojů, v režimu pomocníka plánování panel Filtr automaticky vyplní omezení zdrojů ze záznamu požadavku a zobrazí se pouze odpovídající zdroje.

Jak funguje párování omezení

Entity omezení

Některá omezení jsou určena jako atributy přímo na entitě zdroje, zatímco jiná jsou definována prostřednictvím vztahů. Vztahy jsou zapotřebí, když se omezení odkazuje na druhou hlavní entitu.

Vezměme v úvahu záznam zdroje a jeho přidružená omezení oblasti a charakteristik.

První, hlavní záznamy. Oblasti máme uloženy v entitě oblasti:

Oblast
New York
New Jersey
Seattle

Máme také charakteristiky i v entitě charakteristik:

Charakteristika
Projektový manažer
Návrhář
Finanční analytik

Entita organizační jednotky:

Organizační jednotka
Contoso US
Contoso EU

Nakonec máme entitu zdroje:

Zdroj Typ zdroje Organizační jednotka
Jorge Galt User Contoso US
Abraham McCormick Kontakt Contoso EU

Zatímco jeden záznam zdrojů pracuje na zachycení omezení s jednou hodnotou, jako je výše uvedený typ zdroje a organizační jednotka. Pokud chceme přiřadit zdroj k více záznamům oblasti nebo charakteristik, musíme použít třetí entitu, vztah N:N, k uložení těchto přidružení.

Používáme entitu oblasti zdroje pro přidružení více oblastí pro zdroj.

Záznamy oblasti zdroje:

Zdroj Oblast
Jorge Galt New York
Jorge Galt New Jersey
Abraham McCormick Seattle

a entitu charakteristiky zdroje pro ukládání více charakteristik pro zdroj.

Záznamy charakteristik zdroje:

Zdroj Charakteristika
Jorge Galt Návrhář
Abraham McCormick Projektový manažer
Abraham McCormick Finanční analytik

Podobně jako zdroj zachycuje záznam požadavku omezení s jednou hodnotou a podřízené záznamy ukládají omezení s více hodnotami.

Zde je entita požadavku:

Požadavek Doba trvání Oblast
Práce 1 1 hod New York
Práce 2 1 hod Seattle

Entita charakteristik požadavku:

Záznamy charakteristik požadavku:

Požadavek Charakteristika
Práce 1 Návrhář
Práce 2 Projektový manažer
Práce 2 Finanční analytik

V některých případech může mít požadavek omezení modelované jako vyhledávací atribut, zatímco zdroj může ukládat odpovídající atributy v tabulce N:N. Například v případě požadavku je omezení oblasti vyhledávací atribut pro entitu oblasti. Požadavek zaznamená poptávku po práci a oblasti, ve které bude práce provedena. Záznam zdroje však může být přiřazen k mnoha záznamům oblasti.

Kontejnery vlastností omezení

Když uživatel vybere hodnoty v panelu Filtr a vybere tlačítko Hledat, hodnoty se odešlou do rozhraní API párování zdrojů. V případě vícehodnotových omezení zobrazuje panel Filtr data z hlavních entit oblasti a charakteristiky a zahrnuje vybrané hodnoty v kontejneru vlastností omezení.

Zde je ukázka kontejneru vlastností s omezeními odeslanými do rozhraní API párování zdrojů:

Jméno Value
ResourceType User
Territories New York
New Jersey

Řekne Rozhraní API párování zdrojů, aby vyhledalo zdroje typu uživatel, které jsou přidruženy k oblastem New York a New Jersey.

V pomocníkovi plánování se omezení nejprve načtou ze záznamu požadavku pomocí Rozhraní API načtení omezení požadavku. Načtená omezení jsou pak předem vyplněna v panelu Filtr a odeslána do rozhraní API párování zdrojů.

Rozhraní API načtení omezení požadavku dotazuje záznam požadavku a všechny související podřízená omezení (například charakteristiku požadavku). Odpoví s kontejnerem vlastností omezení a vyjadřuje všechna omezení zdroje zaznamenaná na zvoleném požadavku.

Zde je ukázka odpovědi z rozhraní API načtení omezení požadavku:

Jméno Value
Requirement Práce 2
Duration 1 hod
Territories Seattle
Characteristics Projektový manažer
Finanční analytik

Rozhraní API párování zdrojů přijímá jako vstup kontejner vlastností omezení dotazuje se na odpovídající zdroje. Odpovídající zdroje se pak zobrazí na plánovací vývěsce nebo v pomocníkovi plánování.

Shrnutí entit používaných pro párování zdrojů

  • Ukázkové hlavní entity
    • Oblast - odkazované jako omezení
    • Charakteristika - odkazovaná jako omezení
    • Zdroj - přiřazený k rezervacím
    • Oblast zdroje - přiřazuje zdroje k oblasti
    • Charakteristika zdroje - přiřazuje zdroje k charakteristikám
  • Ukázkové transakční entity
    • Požadavek - zachycuje poptávku po práci a odkazuje na území
    • Charakteristika požadavku - přiřazuje požadavky k charakteristikám

Souhrn toků párování zdrojů

  • Ruční filtrování. Panel Filtr > Rozhraní API párování zdrojů

    1. Uživatel ručně přidá omezení v panelu Filtr
    2. Omezení jsou odeslána do rozhraní API párování zdrojů
    3. Zobrazí se filtrovaný seznam zdrojů
  • Filtrování požadavků. Rozhraní API načtení omezení požadavků > Panel Filtr > Rozhraní API párování zdrojů

    1. Uživatel zjistí dostupnost pro záznam požadavku (z plánovací vývěsky nebo z tlačítka Rezervovat na pásu karet).
    2. Omezení jsou načtena prostřednictvím rozhraní API načtení omezení požadavku a zobrazena v panelu Filtr.
    3. Omezení jsou odeslána do rozhraní API párování zdrojů
    4. Zobrazí se filtrovaný seznam zdrojů

Rozšíření Universal Resource Scheduling pomocí vlastních omezení

Universal Resource Scheduling lze rozšířit pomocí vlastních omezení zdrojů. Rozšíření omezení fungují stejným způsobem jako ta vestavěná do Universal Resource Scheduling. Jsou modelována jako atributy a vztahy v aplikaci Dynamics 365.

Podrobný návod s ukázkami kódu, které jsou potřebné pro každý krok, je popsán v části Rozšíření Universal Resource Scheduling: Vyhledání zdrojů podle jazyka - návod krok za krokem

Vlastní omezení

Použijeme jazyk jako příkladový scénář. Organizace chce filtrovat zdroje podle jazyka, kterým hovoří. Chtějí také zachytit na záznam požadavku jazyk potřebný pro práci. Toto omezení následuje podobný vzorec jako vestavěné omezení oblasti. Nová hlavní entita jazyka ukládá různé jazyky, jimiž může zdroj mluvit. Záznam zdroje pak může být přidružen k mnoha jazykům prostřednictvím entity vztahu N:N. Na entitě požadavku vytvoříme dva nové vyhledávací atributy: Required Language a Secondary Language. Při hledání dostupných zdrojů pro požadavek se budou zobrazovat pouze zdroje přidružené buď Required Language nebo Secondary Language.

Zde popíšeme vlastní omezení jazyka. Nejprve máme naši novou entitu jazyka:

Language
Angličtina
Španělština

a naši novou podřízenou N:N entitu jazyka zdroje:

Zdroj Language
Jorge Galt Angličtina
Abraham McCormick Angličtina
Abraham McCormick Španělština

Zde je entita požadavku s našimi dvěma novými atributy, požadovaným jazykem a sekundárním jazykem představujícím jazyky, kterými zdroj musí mluvit, aby odpovídal tomuto požadavku:

Požadavek Doba trvání Oblast Požadovaný jazyk Sekundární jazyk
Práce 1 1 hod New York Angličtina ---
Práce 2 1 hod Seattle Španělština Angličtina

Body rozšiřitelnosti

Na základě toku párování zdrojů popsaných výše, se jedná o body rozšiřitelnosti, které musíme upravit, aby naše vlastní omezení fungovala:

  1. Rozhraní API načtení omezení požadavků

    Rozhraní API musí číst naše nové atributy požadovaného a sekundárního jazyka, takže když uživatel zjistí dostupnost pro požadavek, načtou se naše nová omezení.

  2. Panel Filtr

    Uživatel by měl moci vybrat ze seznamu záznamů jazyka v panelu Filtr pro filtrování odpovídajících zdrojů. Při zjištění dostupnosti požadavku by měl panel Filtr zobrazovat požadovaný jazyk a sekundární jazyk ze záznamu požadavku, který byl předem vybrán v seznamu jazyků.

  3. Rozhraní API párování zdrojů

    Rozhraní API získá jako vstup nová omezení jazyka: Musí vrátit pouze zdroje, které mluví vybranými jazyky.

Rozšiřitelné dotazy

Interně používají rozhraní API načtení omezení požadavků (bod 1 výše) a rozhraní API párování zdrojů (bod 3 výše) jazyk FetchXML pro dotazování na data z aplikace Dynamics 365. Rozhraní API načtení omezení požadavků vydá více dotazů na načtení záznamu požadavku a jeho podřízených omezení (například charakteristiku požadavku apod.). Rozhraní API párování zdrojů založené na omezení zdrojů, která jsou předána jako vstup, dynamicky vytvoří správný dotaz FetchXML, takže budou vráceny pouze záznamy zdroje odpovídajíc určeným kritériím FetchXML z aplikace Dynamics 365.

V aktualizaci z července 2017 pro Universal Resource Scheduling bylo zavedena univerzální FetchXML (UFX) pro podporu rozšířitelného párování zdrojů. Dvě důležité funkce, které UFX přidává do FetchXML jsou: 1) Více sad výsledků, jediný dotaz UFX může vrátit výsledky z více entit a 2) Dynamické FetchXML, dotaz UFX dotazu může dynamicky vytvářet FetchXML na základě vstupních dat.

Pomocí UFX lze vytvořit jediný dotaz, aby se dotazoval na záznam požadavku a všechny jeho podřízené záznamy. Rozhraní API načtení omezení požadavku provede přizpůsobitelný dotaz UFX pro načtení požadavku a jeho podřízených omezení. Dotaz lze rovněž přizpůsobit pro načtení záznamů vlastních omezení.

Kontejner vlastností omezení vrácený z rozhraní API načtení omezení požadavku je předán jako vstupní do rozhraní API párování zdrojů. Rozhraní API provede přizpůsobitelný UFX dotaz. S UFX použije dotaz vstupní omezení pro dynamické vytvoření správného FetchXML, aby byly nalezeny odpovídající zdroje. Tento dotaz UFX lze též upravit pro vytvoření správného FetchXML, aby se vracely pouze zdroje odpovídající vlastním omezením.

Rozložení rozšiřitelného filtru a šablona zdroje

V aktualizaci pro Universal Resource Scheduling z července 2017 byl aktualizován panel Filtr ( bod 2 výše) pro podporu úprav prostřednictvím definice rozvržení XML. Nové rozložení podporuje ovládací prvky rozevíracího seznamu pro zobrazení seznamu záznamů z hlavních entit a typických ovládacích prvků number, datetime a checkbox. Rozvržení lze upravit, aby mohl uživatel vybrat záznamy z entit vlastního omezení. Vlastní omezení, jako ta, která jsou dodávána v rámci Universal Resource Scheduling, jsou pak předána jako vstup do rozhraní API párování zdrojů.

Dalším bodem rozšíření na straně klienta dostupným od aktualizace z července 2017 je buňka zdroje. Buňka zdroje se vykresluje pomocí přizpůsobitelné šablony Handlebars.js. Výsledky z rozhraní API párování zdrojů jsou zpřístupněné šabloně. Proto přizpůsobením dotazu provedeným rozhraním API párování zdrojů lze vykreslit vlastní data v buňce zdroje.

Podrobný návod s ukázkami kódu, které jsou potřebné pro každý krok, je popsán v části Rozšíření Universal Resource Scheduling: Vyhledání zdrojů podle jazyka - návod krok za krokem

Další poznámky

  • Rozložení filtru není aktuálně konfigurovatelné, když naplánovatelná entita používá přidruženou skupinu požadavků namísto požadavku na zdroj.

Viz také

Univerzální FetchXML

Poznámky k rozšiřitelnosti Universal Resource Scheduling