Utvid Universal Resource Scheduling med egendefinerte ressursbegrensninger
Universal Resource Scheduling, planleggingsmotoren som er underliggende for Dynamics 365 Field Service og Project Service Automation, leveres med omfattende ressurssamsvarsmuligheter til å booke riktige ressurser for en jobb. Universal Resource Scheduling-løsningen leveres med Field og Project Service, men Universal Resource Scheduling kan også brukes til å planlegge en arbeidsstrøm i Dynamics 365. I denne artikkelen skal vi ta en titt på hvordan innebygde ressursbegrensninger er implementert, og hvordan du tilpasser Universal Resource Scheduling med egendefinerte ressursbegrensninger.
Ressurser, krav og begrensninger
Ressurser
Kjernen til Universal Resource Scheduling er Ressurs-enheten (bookableresource
). Når bestillingsposter (bookableresourcebooking
) opprettes, er de tilknyttet en ressursoppføring. For å sikre at riktig ressurs er valgt leveres Universal Resource Scheduling med mange innebygde filtre og begrensninger som ressurser kategorieseres etter. Eksempler: Ressurstype, som angir om ressursen er en bruker, kontakt, forretningsforbindelse, utstyr osv., Egenskap, for å filtrere ressurser etter ferdigheter de mestrer, Distrikt, for å tilordne ressurser til bestemte områder, Organisasjonsenhet, for å modellere et organisasjonshierarki, og mange flere.
En ressursoppføringen og tilknyttede begrensninger er utformet gjennom attributter eller relasjoner til andre enheter. For eksempel er Navn og Ressurstype attributter i entiteten ressurs. Ressursegenskaper og ressursdistrikter er underordnede relasjoner, siden en ressurs kan tilknyttes mer enn én av dem. Disse enheter er underordnede relasjoner til både enheten Ressurs OG Egenskap/Distrikt. Organisasjonsenheten er et oppslagsattributt i Ressursenheten i enheten Organisasjonsenhet.
Krav
En annen viktig enhet i Universal Resource Scheduling er Ressurskrav-enheten (msdyn_resourcerequirement
). Kravenhetsposten registrerer et krav for arbeid som må utføres. Den fanger opp parametere om det etterspurte arbeidet, for eksempel Fra- og Til-datofelt, begrenser tidsperioden der kan du gjøre arbeidet, Varighet-feltet for hvor lenge jobben forventes å ta, Arbeidssted, som angir plasseringen for arbeidet som er nødvendig. Kravenheten registrerer også ressursbegrensninger for å begrense hvilke ressurser som kan utføre og bestilles for dette kravet. Som Ressurs-enheten uttrykkes ressursbegrensninger som attributter på Krav-enheten eller som relasjoner til andre enheter. Distrikt er et oppslagsattributt fra Krav-enheten for Distrikt-enheten som angir området arbeidet skal utføres i, og derfor må vi finne en ressurs i samme distrikt. Krav-kjennetegnet er en underordnet relasjon som er relatert til kravet til Kjennetegn-enheten. som uttrykker ferdigheter som kreves for å fullføre jobben, og derfor kan kravet bare samsvares med ressurser med like ferdigheter.
Betingelser i Universal Resource Scheduling
Nedenfor finner du en listen over begrensninger som følger med Universal Resource Scheduling:
- Egenskaper – kan brukes til å modellere ferdigheter en ressurs har. Den støtter også valgfrie vurderingsverdier for å vurdere hvor god en ressurs er i hver ferdighet
- Kategorier – ressurser kan knyttes til kategorier
- Distrikter – for å tilordne ressurser til områder
- Organisasjonsenheter – for å modellere et organisasjonshierarki
- Ressurstype – definerer hvilken type ressursen er
- Team – teamet en ressurs er medlem av
- Forretningsenheter – hvilken forretningsenhet ressursen er en del av
Filtrering på planleggingstavlen
Planleggingstavlen viser en liste over tilordnede ressurser og bestillinger. Med Filter-panelet på planleggingstavlen kan du filtrere listen over ressurser etter begrensninger – f.eks. ved å velge en ressurstype av Bruker i rullegardinlisten Ressurstype, filtreres ressurslisten til dem som er av typen Bruker. På samme måte kan du filtrere ressurser ved å sammenligne egenskaper eller distrikter.
Bruk av Filter-panelet til å filtrere ressurser er én metode til å finne samsvarende ressurser. Denne metoden brukes når du vil vise en liste over ressurser manuelt som samsvarer med et bestemt sett med begrensninger.
Finne tilgjengelige ressurser med planleggingsassistenten
Du finner en liste over kravoppføringer nederst på planleggingstavlen. Du kan velge én av dem, og velge å søke etter tilgjengelighet. Denne handlingen åpner planleggingsassistenten. Planleggingsassistenten bruker begrensningene som hentes fra den valgte kravoppføringen, for å finne samsvarende ressurser som er tilgjengelige for bestilling. Bare ressurser som samsvarer med betingelsene for kravet, og som er tilgjengelige i den forespurte tidsperioden som er angitt på kravet, vises på tavlen.
En lignende opplevelse er tilgjengelig via et "Bestill"-bånd som er tilgjengelig på Krav-enheten og andre planleggbare enheter i Dynamics 365-listevisninger eller -skjemaer. Når "Bestill" klikkes, åpnes Planleggingsassistenten, som viser ressurser som samsvarer med begrensningene for den valgte Krav-oppføringen.
I motsetning til den tidligere nevnte Planleggingstavle-modusen, der du bruker filterpanelet til å filtrere ressurser manuelt i Planleggingsassistent-modusen, fyller filterpanelet automatisk ut ressursbegrensningene fra Krav-posten, og bare samsvarende ressurser vises.
Hvordan begrensningssamsvar fungerer
Begrensningsenheter
Noen begrensninger er angitt som attributter direkte på Ressurs-enheten, mens andre er definert via relasjoner. Relasjoner kreves når en begrensning refererer til en hovedenhet nr 2.
La oss vurdere en ressursoppføring og dens tilknyttede distrikt og kjennetegnbegrensninger.
Først hovedoppføringene. Vi har distrikter lagret i Distrikt-enheten:
Distrikt |
---|
New York |
New Jersey |
Seattle |
Vi har også kjennetegn i Kjennetegn-enheten:
Kjennetegn |
---|
Prosjektleder |
Designer |
Finansanalytiker |
Enheten Organisasjonsenhet:
Organisasjonsenhet |
---|
Contoso US |
Contoso EU |
Til slutt har vi Ressurs-enheten:
Ressurs | Ressurstype | Organisasjonsenhet |
---|---|---|
Jorge Galt | User | Contoso US |
Abraham McCormick | Kontakt | Contoso EU |
En enkelt ressursoppføring fanger opp enkeltverdibegrensninger, som Ressurstype og Organisasjonsenhet ovenfor. Hvis vi vil knytte en ressurs til flere distrikt- eller kjennetegnoppføringer, må vi bruke en tredje enhet, relasjonen mange-til-mange (N:N), for å lagre disse tilordningene.
Vi bruker Ressursdistrikt-enheten for å knytte flere distrikter for en ressurs.
Ressursdistrikt-oppføringer:
Ressurs | Distrikt |
---|---|
Jorge Galt | New York |
Jorge Galt | New Jersey |
Abraham McCormick | Seattle |
og ressurskjennetegnenheten for å lagre flere kjennetegn for en ressurs.
Ressurskjennetegnoppføringer:
Ressurs | Kjennetegn |
---|---|
Jorge Galt | Designer |
Abraham McCormick | Prosjektleder |
Abraham McCormick | Finansanalytiker |
På samme måte som Ressurs registrerer en Krav-oppføring enkeltverdibegrensninger, og underordnede oppføringer lagrer flerverdibegrensninger.
Her er Krav-enheten:
Krav | Varighet | Distrikt |
---|---|---|
Jobb 1 | 1 t | New York |
Jobb 2 | 1 t | Seattle |
Kravkjennetegn-enheten:
Kravkjennetegn-oppføringer:
Krav | Kjennetegn |
---|---|
Jobb 1 | Designer |
Jobb 2 | Prosjektleder |
Jobb 2 | Finansanalytiker |
Noen ganger kan kravet ha en betingelse modellert som et oppslagsattributt, mens ressursen kanskje lagrer de samsvarende attributtene i tabellen N:N. For eksempel når det gjelder Krav, er Distrikt-begrensningen et oppslagsattributt for Distrikt-enheten. Et Krav registrerer et behov for arbeid og distriktet der arbeidet utføres. En ressursoppføring, kan imidlertid knyttes til mange distriktsoppføringer.
Egenskapssamlinger for begrensninger
Når brukeren velger verdier i Filter-panelet og klikker på Søk-knappen, sendes verdiene til ressurssamsvars-API-en. For flerverdibegrensninger viser Filter-panelet dataene fra hovedenhetene Distrikt og Kjennetegn og inkluderer de valgte verdiene i egenskapssamlingen for begrensninger.
Her er en eksempelegenskapssamling med begrensninger sendt til ressurssamsvars-API-en:
Navn | Value |
---|---|
ResourceType |
User |
Territories |
New York New Jersey |
Det instruerer ressurssamsvars-API-en til å søke etter ressurser av typen Bruker som er knyttet til New York- eller New Jersey-distriktene.
I Planleggingsassistenten hentes begrensningene først fra en Krav-oppføring via API-en for henting av kravbegrensninger. De hentede begrensningene forhåndsutfylles deretter i Filter-panelet og sendes til API-en for ressurssamsvar.
API for henting av kravbegrensninger foretar en spørring til Krav-oppføringen og alle tilknyttede underordnede begrensninger (f.eks. Kravkjennetegn). Den svarer med en egenskapssamling for begrensninger som uttrykker alle ressursbegrensninger som registreres på det valgte kravet.
Her er et eksempelsvar fra API-en for henting av kravbegrensninger:
Navn | Value |
---|---|
Requirement |
Jobb 2 |
Duration |
1 t |
Territories |
Seattle |
Characteristics |
Prosjektleder Finansanalytiker |
Ressurssamsvars-API-en mottar som inndata egenskapssamlingen for begrensninger og spør etter samsvarende ressurser. De samsvarende ressursene vises deretter på planleggingstavlen eller i planleggingsassistenten.
Sammendrag av enheter som brukes til ressurssamsvar
- Eksempel på hovedenheter
- Distrikt - referert til som en betingelse
- Kjennetegn - referert til som en betingelse
- Ressurs – tilordnet til bestillinger
- Ressursdistrikt – knytter ressurser til distrikter
- Ressurskjennetegn - knytter ressurser til kjennetegn
- Eksempel på transaksjonsenheter
- Krav – registrerer et behov for arbeid og refererer til distrikt
- Kravkjennetegn – knytter krav til kjennetegn
Oppsummerer ressurssamsvarsflytene
Manuell filtrering. Filterpanel > Ressurssamsvars-API
- En bruker legger manuelt til begrensninger i filterpanelet
- Begrensningene sendes til ressurssamsvars-API-en
- Den filtrerte listen over ressurser vises
Kravfiltrering. API-en for henting av kravbegrensninger > Filterpanel > Ressurssamsvars-API
- En bruker finner tilgjengelighet for en kravoppføring (fra Planleggingstavlen eller fra Bok-knappen på båndet).
- Betingelsene hentes via API-en for henting av kravbegrensninger og vises i Filter-panelet.
- Begrensningene sendes til ressurssamsvars-API-en
- Den filtrerte listen over ressurser vises
Utvide Universal Resource Scheduling med egendefinerte begrensninger
Universal Resource Scheduling kan utvides med egendefinerte ressursbegrensninger. Utvidelse av begrensninger fungerer på samme måte som de som er bygget inn i Universal Resource Scheduling, de er utformet som attributter og relasjoner i Dynamics 365.
Trinnvis veiledning med kodeeksempler som kreves for hvert trinn, er beskrevet i Utvide Universal Resource Scheduling: Finne ressurser etter språk – trinnvis veiledning
Egendefinerte begrensninger
Vi skal bruke "språk" som et eksempelscenario. En organisasjon ønsker å filtrere ressurser etter språket de snakker. De vil også registrere på Krav-oppføringen språket som kreves for en jobb. Denne begrensningen følger et lignende mønster til den innebygde Distrikt-betingelsen. Et nytt hovedenhetsspråk lagrer de ulike språkene en ressurs kan snakke. En Ressurs-oppføring kan knyttes til mange språk via en mange-til-mange-relasjonsenhet. På Krav-enheten vil vi opprette to nye oppslagsattributter: Required Language
og Secondary Language
. Når du søker etter tilgjengelige ressurser for et krav, vil bare ressurser som er knyttet til enten Required Language
eller Secondary Language
, vises.
Her skal vi beskrive egendefinert språkbegrensning. Først har vi den nye språkenheten:
Language |
---|
Engelsk |
Spansk |
og vårt nye ressursspråk mange-til-mange underordnede enhet:
Ressurs | Language |
---|---|
Jorge Galt | Engelsk |
Abraham McCormick | Engelsk |
Abraham McCormick | Spansk |
Her er Krav-enheten med våre to nye attributter, Obligatorisk språk og Sekundært språk, som representerer språkene ressursen må prate for å samsvare med dette kravet:
Krav | Varighet | Distrikt | Obligatorisk språk | Sekundært språk |
---|---|---|---|---|
Jobb 1 | 1 t | New York | Engelsk | --- |
Jobb 2 | 1 t | Seattle | Spansk | Engelsk |
Utvidbarhetspoeng
Basert på ressurssamsvarsstrømmene som er beskrevet over, er dette utvidbarhetspoengene vi må endre for at våre egendefinerte begrensninger skal fungere:
API for henting av kravbegrensninger
API-en må lese våre nye attributter Obligatorisk språk og Sekundært språk, slik at når en bruker søker etter tilgjengelighet for et krav, hentes vår nye begrensninger.
Filterpanel
En bruker skal kunne velge fra en liste over Språk-oppføringer i Filter-panelet for å filtrere etter samsvarende ressurser. Når du søker etter tilgjengelighet for et krav, skal Filter-panelet vise Obligatorisk språk og Sekundært språk fra Krav-oppføringen som er forhåndsvalgt i listen over språk.
Ressurssamsvars-API
API-en får som inndata de nye språkbegrensningene. Den må bare returnere ressurser som prater de valgte språkene.
Utvidbare spørringer
Internt bruker API-en for henting av kravbegrensninger (nr. 1 over) og ressurssamsvars-API-en (nr. 3 over) FetchXML til å spørre etter data fra Dynamics 365. API-en for henting av kravbegrensninger utsteder flere spørringer for å hente Krav-oppføringen og de underordnede begrensningene (f.eks. kravkjennetegn osv.). Ressurssamsvars-API-en, basert på ressursbegrensningene som sendes til den som inndata, vil dynamisk konstruere riktig FetchXML-spørring, slik at bare ressursoppføringer som samsvarer med de angitte FetchXML-kriteriene, returneres fra Dynamics 365.
I juli 2017-oppdateringen for Universal Resource Scheduling ble Universell FetchXML (UFX) innført for å støtte utvidbart ressurssamsvar. To viktige funksjoner UFX legger til FetchXML, er: 1) flere resultatsett, en enkelt UFX-spørring kan returnere resultater fra flere enheter, og 2) dynamisk FetchXML, en UFX-spørring kan dynamisk konstruere FetchXML basert på inndata.
Med UFX kan en enkelt spørring settes sammen for å spørre etter en Krav-oppføring og alle underordnede oppføringer. API-en for henting av kravbegrensninger utfører en egendefinert UFX-spørring for å hente et krav og de underordnede begrensningene. Spørringen kan tilpasses for å hente egendefinerte kravoppføringer også.
Egenskapssamlingen for begrensninger som returneres fra API-en for henting av kravbegrensninger, overføres som inndata til Ressurssamsvars-API-en. API-en utfører en egendefinert UFX-spørring. Med UFX bruker spørringen inndatabegrensninger til å dynamisk konstruere riktig FetchXML for å finne samsvarende ressurser. Denne UFX-spørringen kan endres for å lage riktig FetchXML for å bare returnere ressurser som samsvarer med de egendefinerte begrensningene.
Utvidbart filteroppsett og ressursmal
I juli 2017-oppdateringen for Universal Resource Scheduling ble Filter-panelet (nr. 2 over) oppdatert for å støtte tilpassing via en XML-oppsettdefinisjon. Det nye oppsettet støtter rullegardinlistekontroller som viser en liste over oppføringer fra hovedenheter og de vanlige kontrollene number
, datetime
og checkbox
. Oppsettet kan endres slik at brukere kan velge oppføringer fra egendefinerte kravenheter. De egendefinerte begrensningene, som de som ble levert med Universal Resource Scheduling, sendes deretter som inndata til ressurssamsvars-API-en.
Et annet utvidelsespunkt på klientsiden som ble gjort tilgjengelig i juli 2017-oppdateringen, er ressurscellen. Ressurscellen gjengis via en Handlebars.js-mal som kan tilpasses. Resultatene fra ressurssamsvars-API-en er gjort tilgjengelig for malen. Ved å tilpasse spørringen som utføres av ressurssamsvars-API-en, kan egendefinerte data derfor gjengis i ressurscellen.
Trinnvis veiledning med kodeeksempler som kreves for hvert trinn, er beskrevet i Utvide Universal Resource Scheduling: Finne ressurser etter språk – trinnvis veiledning
Ytterligere merknader
- Filteroppsettet kan for øyeblikket ikke konfigureres når en enhet som kan planlegges, bruker en tilknyttet kravgruppe i stedet for et ressurskrav.
Se også
Produktmerknader om Universal Resource Scheduling-utvidbarhet