Udostępnij za pośrednictwem


Rozszerz Universal Resource Scheduling o niestandardowe ograniczenia zasobów

Universal Resource Scheduling, aparat planowania w Dynamics 365 Field Service i Project Service Automation jest dostarczany z rozszerzonymi funkcjami dopasowywania zasobów, aby umożliwić rezerwację odpowiednich zasobów dla zadania. Rozwiązanie Universal Resource Scheduling jest dostarczane z usługą Field Service i Project Service, Universal Resource Scheduling można również używać do planowania wszelkich strumieni pracy w Dynamics 365. W tym artykule dowiesz się, jak są implementowane wbudowane ograniczenia zasobów oraz jak dostosować Universal Resource Scheduling za pomocą niestandardowych ograniczeń zasobów.

Zasoby, Wymagania i Ograniczenia

Zasoby

Podstawą Universal Resource Scheduling jest encja Zasób (bookableresource). Podczas tworzenia rekordów Rezerwacji (bookableresourcebooking), rekordy te kojarzone z rekordem Zasób. Aby upewnić się, że wybrano prawidłowy zasób, rozwiązanie Universal Resource Scheduling jest dostarczane z wieloma wbudowanymi filtrami i ograniczeniami umożliwiającymi kategoryzowanie zasobów. Przykłady: Typ zasobu, wskazujący, czy zasób to Użytkownik, Kontakt, Klient, Sprzęt, itp., Charakterystyka, aby filtrować zasoby według umiejętności, w których są biegli, Obszar, aby przypisać zasoby do określonych regionów, Jednostka organizacyjna, aby modelować hierarchię organizacji i wiele więcej.

Rekord zasobu i skojarzone z nim ograniczenia są modelowane za pośrednictwem atrybutów i relacji z innymi encjami. Na przykład Nazwa i Typ zasobu są atrybutami encji Zasób. Charakterystyki zasobów i Obszary zasobów są relacjami podrzędnymi, ponieważ zasób może być skojarzony z więcej niż jedną z nich. Te encje są relacjami podrzędnymi dla encji Zasób I Charakterystyka/Obszar. Jednostka organizacyjna jest atrybutem wyszukiwania w encji Zasób do encji Jednostka organizacyjna.

Wymagania

Inną ważną encją w Universal Resource Scheduling jest encja Wymaganie zasobów (msdyn_resourcerequirement). Encja Wymaganie to rekord wymagania do wykonania pracy. Zawiera parametry dotyczące wymaganej pracy, takie jak Data początkowa i Data końcowa, ograniczając przedział czasu, w którym można wykonać pracę; pole Czas trwania mówiące o tym jak długo zadanie powinno trwać; pole Lokalizacja pracy wskazujące miejce wykonywania czynności. Encja Wymaganie przechwytuje także ograniczenia zasobów, ograniczając, które zasoby mogą zrealizować i zostać zarezerwowane dla tego wymagania. Podobnie jak encja Zasób, ograniczenia zasobu są wyrażane jako atrybuty na encji Wymaganie lub jako relacje między encjami. Obszar to atrybut wyszukiwania z encji Wymaganie do encji Obszar, i wskazuje obszaru, na którym ma zostać wykonana praca, i w związku z tym, należy znaleźć zasób z tego samego obszaru. Charakterystyka wymagania to relacja podrzędna, powiązująca Wymaganie z encją Charakterystyka i wyrażająca umiejętności wymagane do wykonania zadania, i w związku z tym, wymaganie można dopasować tylko do zasobów o pasujących umiejętnościach.

Ograniczenia przekazywane w Universal Resource Scheduling

Poniżej znajduje się lista ograniczeń, które są przekazywane w Universal Resource Scheduling:

  • Charakterystyki — może służyć do modelowania umiejętności, które posiada zasób. Obsługuje także opcjonalne wartości klasyfikacji, pozwalajace ocenić, jak biegły w danej umiejętności jest zasób
  • Kategorie — zasoby można kojarzyć z kategoriami
  • Obszary - aby przypisać zasoby do regionów
  • Jednostki organizacyjne — aby modelować hierarchię organizacji
  • Typ zasobu — określa typ zasobu
  • Zespoły - zespoły, których członkiem jest zasób
  • Jednostki biznesowe - jakiej jednostki biznesowej częścią jest zasób

Filtrowanie w Tablicy harmonogramu

Tablica harmonogramu ukazuje listę zasobów i przypisane do nich rezerwacje. Panel Filtr w Tablicy harmonogramu umożliwia filtrowanie listy zasobów według ich ograniczeń — np. wybranie typu zasobu Użytkownik z listy rozwijanej Typ zasobu spowoduje filtrowanie listy zasobów typu Użytkownik. Podobnie można filtrować zasoby dopasowując charakterystyki lub obszary.

Użycie panelu Filtr do filtrowania zasobów jest jedną z metod odnajdywania pasujących zasobów. Ta metoda jest używana, kiedy użytkownik chce ręcznie pokazać listę zasobów pasujących do określonego zestawu ograniczeń.

Znajdowanie dostępnych zasobów przy użyciu Asystenta planowania

W dolnej części Tablicy harmonogramu znajdziesz listę rekordów Wymaganie. Możesz wybrać jeden z nich, a następnie wybrać znajdowanie dostępności. Ta akcja powoduje otwarcie Asystenta planowania. Asystent planowania używa ograniczeń zarejestrowanych dla wybranego rekordu Wymaganie, aby wyszukać pasujące zasoby, które są dostępne do zarezerwowania. Tylko zasoby pasujące do ograniczeń dla Wymaganie i dostępne w wymaganym okresie czasu określonym dla Wymagania są wyświetlane na tablicy.

Podobne doświadczenie jest dostępne przy użyciu przycisku wstążki "Rezerwuj" dostępnego w encji Wymaganie i innych encjach, które można zarezerwować w widokach lub formularzach listy Dynamics 365. Po kliknięciu "Rezerwuj" otworzy się Asystent planowania, prezentując zasoby pasujące do ograniczeń dla wybranego rekordu Wymaganie.

W przeciwieństwie do wspomnianego wcześniej tryby Tablica harmonogramu, gdzie korzystasz z panelu Filtr, aby ręcznie filtrować zasoby, w trybie Asystent planowania panel Filtr automatycznie wypełnia ograniczenia zasobu z rekordu Wymaganie i wyświetlane są tylko pasujące zasoby.

Jak działa dopasowywanie ograniczeń

Encje Ograniczenia

Niektóre ograniczenia są określone jako atrybuty bezpośrednio w encji Zasób, podczas gdy inne są definiowane przez relacje. Relacje są wymagane, gdy ograniczenie odwołuje się do drugiej encji głównej.

Rozważmy rekord Zasób i skojarzone z nim ograniczenia Obszar i Charakterystyka.

Najpierw rekordy główne. Mamy obszary zapisanew encji Obszar:

Obszar
Nowy Jork
New Jersey
Seattle

Mamy również charakterystyki w encji Charakterystyka:

Charakterystyka
Menedżer projektu
Projektant
Analityk finansów

Encja Jednostka organizacyjna:

Jednostka organizacyjna
Contoso US
Contoso EU

I mamy wreszcie encję Zasób:

Zasób Typ zasobu Jednostka organizacyjna
Jorge Galt User Contoso US
Abraham McCormick Kontakt Contoso EU

Gdy pojedynczy rekord Zasób działa przechwytując jednowartościowe ograniczenia, takie jak Typ zasobu i opisana powyżej Jednostka organizacyjna. Jeśli chcemy skojarzyć Zasób do wieloma rekordami Obszar lub Charakterystyka, musimy użyć trzeciej encji, relacji wiele do wielu (N:N), aby przechować te skojarzenia.

Używamy encji Obszar zasobu, aby skojarzyć wiele obszarów dla zasobu.

Rekordy Obszar zasobu:

Zasób Obszar
Jorge Galt Nowy Jork
Jorge Galt New Jersey
Abraham McCormick Seattle

a encji Charakterystyka zasobu, aby przechowywać wiele charakterystyk dla zasobu.

Rekordy Charakterystyka zasobu:

Zasób Charakterystyka
Jorge Galt Projektant
Abraham McCormick Menedżer projektu
Abraham McCormick Analityk finansów

Podobne jak w przypadku Zasobu, rekord Wymaganie przechwytuje ograniczenia jednowartościowe, a rekordy podrzędne przechowują ograniczenia wielowartościowe.

Oto encja Wymaganie:

Wymaganie Czas trwania Obszar
Zadanie 1 1 godz. Nowy Jork
Zadanie 2 1 godz. Seattle

Encja Charakterystyka wymagania:

Rekordy Charakterystyka wymagania:

Wymaganie Charakterystyka
Zadanie 1 Projektant
Zadanie 2 Menedżer projektu
Zadanie 2 Analityk finansów

Czasami wymaganie może mieć ograniczenie zaprojektowane jako atrybut wyszukiwania, podczas gdy zasób może przechowywać pasujące atrybuty w tabeli N:N. Na przykład w przypadku Wymagania, ograniczenie Obszar jest atrybutem wyszukiwania dla encji Obszar. Wymaganie przechwytuje żądanie pracy oraz obszaru, w którym ma zostać wykonana praca. Rekord zasobu może być skojarzony z wieloma rekordami Obszar.

Zbiory właściwości ograniczeń

Gdy użytkownik wybiera wartości w panelu Filtr i klika przycisk Wyszukaj, wartości są wysyłane do interfejsu API Dopasowywanie zasobów. Dla ograniczeń wielowartościowych panel Filtr ukazuje dane z encji głównych Obszar i Charakterystyka i obejmują wybrane wartości w zbiorze właściwości ograniczeń.

Oto przykładowy zbiór właściwości ograniczeń wysłany do interfejsu API Dopasowywanie zasobów:

Nazwisko Value
ResourceType User
Territories Nowy Jork
New Jersey

Instruuje Interfejs API Dopasowywanie zasobów, aby znaleźć zasoby typu Użytkownik, które są skojarzone obszarami Nowy Jork lub New Jersey.

W Asystencie planowania, ograniczenia są najpierw pobierane z rekordu Wymaganie za pośrednictwem Interfejs API Ograniczenia pobierania wymagań. Pobrane ograniczenia są następnie wstępnie wypełniane w panelu Filtr i wysyłane do interfejsu API Dopasowywanie zasobów.

Interfejs API Ograniczenia pobierania wymagań wysyła zapytanie do rekordu Wymaganie i wszystkich pokrewnych ograniczeń podrzędnych (np. Charakterystyka wymagania). Ten odpowiada zbiorem właściwości ograniczeń wyrażającym wsyztskie ograniczenia zasobów zarejestrowane dla wybranego Wymagania.

Oto przykładowa odpowiedź z interfejsu API Ograniczenia pobierania wymagań.

Nazwisko Value
Requirement Zadanie 2
Duration 1 godz.
Territories Seattle
Characteristics Menedżer projektu
Analityk finansów

Interfejs API Dopasowywanie zasobów odbiera jako dane wejściowe zbiór właściwości ograniczeń i wysyła zapytanie o pasujące zasoby. Pasujące zasoby są następnie ukazywane w Tablicy harmonogramu lub Asystencie planowania.

Podsumowanie encji używanych do dopasowywania zasobów

  • Przykładowe encje główne
    • Obszar — traktowana jako ograniczenie
    • Charakterystyka — traktowana jako ograniczenie
    • Zasób - przypisania do rezerwacji
    • Obszar zasobu - kojarzy Zasoby z Obszarami
    • Charakterystyka zasobu — kojarzy Zasoby z Charakterystyką
  • Przykładowe encje transakcyjne
    • Wymaganie — przechwytuje żądanie pracy i odwołuje się do Obszaru
    • Charakterystyka Wymagania — kojarzy Wymagania z Charakterystyką

Podsumowanie przepływów dopasowywania zasobów

  • Ręczne filtrowanie. Panel Filtr > interfejs API Dopasowywania zasobów

    1. Użytkownik ręcznie dodaje ograniczenia w panelu Filtr
    2. Ograniczenia są wysyłane do interfejsu API Dopasowywania zasobów
    3. Wyświetlana jest filtrowana lista zasobów
  • Filtrowanie wymagań. Interfejsu API Ograniczenia pobierania wymagań > Panel Filtr > interfejs API Dopasowywania zasobów

    1. Użytkownik sprawdza dostępność dla rekordu Wymaganie (z Tablicy harmonogramu lub przycisku Rezerwuj na Wstążce).
    2. Ograniczenia są pobierane za pośrednictwem Interfejsu API Ograniczenia pobierania wymagań i są wyświetlane w panelu Filtr.
    3. Ograniczenia są wysyłane do interfejsu API Dopasowywania zasobów
    4. Wyświetlana jest filtrowana lista zasobów

Rozszerzanie Universal Resource Scheduling przy użyciu ograniczeń niestandardowych

Universal Resource Scheduling można rozszerzyć przy użyciu niestandardowych ograniczeń zasobów. Ograniczenia rozszerzające działają tak samo, jak te, które zostały wbudowane w Universal Resource Scheduling, są one zaprojektowane jako atrybuty i relacje w Dynamics 365.

Przewodnik krok po kroku, z przykładowymi kodami wymaganymi dla każdego etapu opisano w Rozszerzanie Universal Resource Scheduling: Znajdź zasoby według języka - przewodnik krok po kroku

Ograniczenia niestandardowe

Jako scenariusza przykładowego użyjemy "języka". Organizacja chce filtrować zasoby według języka, w którym odbywa się w niej komunikacja. Chcą także przechwytywać rekord Wymaganie, którego język wymagał dla zadania. To ograniczenie jest podobne do wbudowanego ograniczenia Obszar. Nowa encja główna Język przechowuje różne języki, z których korzysta zasób. Rekord Zasób można skojarzyć z wieloma Językami dzięki encji relacji wiele do wielu. Na encji Wymaganie utworzymy dwa nowe atrybuty wyszukiwania: Required Language i Secondary Language. Podczas wyszukiwania dostępnych zasobów dla wymagania, tylko zasoby skojarzone z Required Language lub Secondary Language będą wyświetlane.

W tym miejscu opiszemy niestandardowe ograniczenie języka. Po pierwsze mamy naszą nową encji Język:

Language
Angielski
hiszpański

i naszą nową encję podrzędną wiele do wielu Zasób Język:

Zasób Language
Jorge Galt Angielski
Abraham McCormick Angielski
Abraham McCormick hiszpański

Oto encja Wymaganie z naszymi dwoma nowymi atrybutami, Język wymagany i Język dodatkowy reprezentującymi języki, w jakich ma komunikować się zasób, aby zostać dopasowanym do tego wymagania:

Wymaganie Czas trwania Obszar Język wymagany Język dodatkowy
Zadanie 1 1 godz. Nowy Jork Angielski ---
Zadanie 2 1 godz. Seattle hiszpański Angielski

Punkty rozszerzania

Na podstawie przepływów dopasowywania zasobów opisanych powyżej, są to punkty rozszerzania, które należy zmodyfikować, aby nasze niestandardowe ograniczenia mogły działać:

  1. Interfejs API Ograniczenia pobierania wymagań

    Interfejs API musi odczytać nasze nowe atrybuty Język wymagany i Język dodatkowy, więc gdy użytkownik stwierdzi dostępności dla Wymagania odbywa się pobierane naszych nowych ograniczeń.

  2. Panel Filtr

    Użytkownik powinien być w stanie wybrać z listy rekordów Język w panelu Filtr, aby filtrować dla dopasowywania zasobów. Po stwierdzeniu dostępności dla Wymagania, panel Filtr powinien ukazywać Język wymagany i Język dodatkowy z rekordu Wymaganie wstępnie wybrane na liście języków.

  3. Interfejs API dopasowywania zasobów

    Interfejs API otrzyma jako dane wejściowe nowe ograniczenia Język; musi zwrócić tylko zasoby komunikujące się w wybranych językach.

Rozszerzalne zapytania

Wewnętrznie, Interfejs API Ograniczenia pobierania wymagań (#1 powyżej) oraz Interfejs API Dopasowywania zasobów (#3 powyżej) używają FetchXML, aby zapytać o dane z Dynamics 365. Interfejs API Ograniczenia pobierania wymagań wysyła wiele zapytań, aby pobrać rekord Wymaganie i jego ograniczenia podrzędne (np. Charakterystyka wymagania itp.) Interfejs API dopasowywania zasobów, na podstawie ograniczeń zasobów przekazanych do niego jako dane wejściowe dynamicznie utworzy poprawne zapytanie FetchXML, więc tylko rekordy Zasoby pasujące do określonych kryteriów FetchXML są zwracane z Dynamics 365.

W aktualizacji z lipca 2017 dla Universal Resource Scheduling, aby obsługiwać rozszerzone dopasowywanie zasobów, wprowadzono Universal FetchXML (UFX). Dwie ważne funkcje, jakie UFX dodaje do FetchXML: 1) Zestawy wielu wyników, jedno zapytanie UFX Query może zwrócić wyniki z wielu encji, i 2) Dynamic FetchXML, zapytanie UFX Query może dynamicznie utworzyć FetchXML w oparciu o dane wejściowe.

Z UFX pojedyncze zapytanie można utworzyć, aby zapytać o rekord Wymaganie i wszystkie jego rekordy podrzędne. Interfejs API Ograniczenia pobierania wymagań wykonuje zapytanie UFX Query z możliwością dostosowywania, aby pobrać Wymaganie i jego ograniczenia podrzędne. Zapytanie moża dostosować, aby pobrać również niestandardowe rekordy ograniczeń.

Zbiór właściwości ograniczeń zwrócony z Interfejsu API Ograniczenia pobierania wymagań jest przekazywany jako dane wejściowe do Interfejsu API dopasowywania zasobów. Interfejs API wykonuje dostosowane zapytanie UFX. Z UFX, zapytanie używa ograniczeń danych wejściowych, aby dynamicznie tworzyć poprawny FetchXML i znajdować pasujące zasoby. Również to zapytanie UFX można zmodyfikować, aby utworzyć poprawne FetchXML, aby zwracać tylko zasoby pasujące do ograniczeń niestandardowych.

Rozszerzalny układ filtru o Szablon zasobu

W aktualizacji z lipca 2017 roku dla Universal Resource Scheduling panel Filtr (nr 2 powyżej) został zaktualizowany, aby obsługiwał dostosowanie za pośrednictwem definicji układu XML. Nowy układ obsługuje formanty listy rozwijanej, aby wyświetlić listę rekordów z encji głównych i typowe formanty number, datetime i checkbox. Układ można modyfikować, aby umożliwić użytkownikom wybieranie rekordów z niestandardowych encji ograniczeń. Niestandardowe ograniczenia, tak jak te dostarczone z Universal Resource Scheduling, są następnie przekazywane jako dane wejściowe do interfejsu API Dopasowywania zasobów.

Kolejny punkt rozszerzeń po stronie klienta udostępniony w aktualizacji z lipca 2017 roku to komórka zasobu. Komórka zasobu jest renderowana za pomocą szablonu Handlebars.js, który można dostosowywać. Wyniki z interfejsu API Dopasowywania zasobów są udostępniane dla szablonu. W związku z tym, dzieku dostosowaniu zapytania wykonywanego przez interfejs API Dopasowywania zasobów, dane niestandardowe mogą być renderowane w komórce zasobów.

Przewodnik krok po kroku, z przykładowymi kodami wymaganymi dla każdego etapu opisano w Rozszerzanie Universal Resource Scheduling: Znajdź zasoby według języka - przewodnik krok po kroku

Dodatkowe uwagi

  • Układ filtru nie jest obecnie konfigurowalny, gdy encja, którą można zaplanować, używa skojarzonej grupy wymagań, a nie wymagania zasobu.

Zobacz także

Uniwersalny Fetch XML

Możliwości rozszerzania Universal Resource Scheduling — Informacje o wersji