Jaa


Universal Resource Schedulingin laajentaminen mukautetuilla resurssin rajoituksilla

Universal Resource Scheduling on Dynamics 365 Field Servicen ja Project Servicen Automationin taustalla toimiva ajoitusmoduuli. Se sisältää runsaasti resurssien vastaavuushaun ominaisuuksia, joiden avulla työtä varten voi varata oikean resurssin. Vaikka Universal Resource Scheduling-ratkaisu toimitetaan Field Servicen ja Project Servicen yhteydessä, Universal Resource Schedulingin avulla voidaan aikatauluttaa kaikkia Dynamics 365:n työvirtoja. Tässä artikkelissa käsitellään valmiiden resurssirajoitusten toteuttamista ja Universal Resource Schedulingin mukauttamista mukautettujen resurssirajoitusten avulla.

Resurssit, tarpeet ja rajoitukset

Resurssit

Universal Resource Schedulingin ydin on resurssientiteetti (bookableresource). Kun varaustietueita (bookableresourcebooking) luodaan, ne liitetään resurssitietueeseen. Universal Resource Schedulingin mukana toimitetaan useita valmiita suodattimia ja rajoituksia, joilla resursseja voi luokitella. Tällä tavoin voidaan varmistaa oikeiden resurssien valinta. Esimerkkejä: Resurssityyppi ilmaisee, onko resurssi esimerkiksi käyttäjä, yhteyshenkilö, asiakas tai laite. Ominaisuuden avulla puolestaan resursseja voidaan suodattaa taitojen perusteella, kun taas alueen avulla resurssit voidaan määrittää tietylle alueelle. Organisaatioyksikön avulla voidaan taas mallintaa organisaatiohierarkia. Vaihtoehtoja on paljon muitakin.

Resurssitietue ja siihen liitetyt rajoitukset mallinnetaan määritteiden ja muihin entiteetteihin liittyvien suhteiden avulla. Esimerkiksi nimi ja resurssityyppi ovat resurssientiteetin määritteitä. Resurssin ominaisuudet ja resurssin alueet ovat alatason suhteita, joissa resurssi voidaan liittää useisiin vaihtoehtoihin. Nämä entiteetit ovatkin resurssi- JA ominaisuus- tai alue-entiteetin alatason suhteita. Organisaatioyksikkö on resurssientiteetin valintamäärite organisaatioyksikköentiteettiin.

Edellytykset

Toinen tärkeä Universal Resource Schedulingn entiteetti on resurssitarve-entiteetti (msdyn_resourcerequirement). Tarve-entiteetti kirjaa tehtävän työn tarpeen. Se tallentaa tarvitun työn parametrit, kuten aloitus- ja lopetuspäivämääräkentät, joka rajoittaa aikaa, jolloin työ voidaan tehdä. Kestokenttä puolestaan ilmaisee, kuinka kauan työn odotetaan kestävän, ja työn sijaintikenttä ilmaisee tarvittavan työn sijainnin. Tarve-entiteetti tallentaa myös resurssirajoitukset, jotka rajoittavat tämän tarpeen toteuttamiseen varattavia resursseja. Resurssientiteetin tavoin resurssirajoitukset ilmaistaan tarve-entiteetin määritteinä tai suhteina muihin entiteetteihin. Alue on valintamäärite tarve-entiteetistä alue-entiteettiin, ja se ilmaisee, millä alueella työ tehdään. Tämän vuoksi resurssi on myös etsittävä samalta alueelta. Tarveominaisuus on alatason suhde tarpeesta ominaisuusentiteettiin. Se ilmaisee taidot, joita työn suorittamiseen tarvitaan. Tämän vuoksi tarve voidaan yhdistää vain resursseihin, jolla on vastaavat taidot.

Toimitukseen sisältyvät rajoitukset Universal Resource Schedulingissa

Seuraavan luettelon rajoitukset sisältyvät Universal Resource Scheduling -toimitukseen:

  • Ominaisuudet – Voidaan käyttää mallintamaan resurssin taidot. Se tukee myös valinnaisia luokitusarvoja, joilla voidaan luokitella resurssin taitotaso kunkin taidon kohdalla.
  • Luokat – resurssit voidaan liittää luokkiin.
  • Alueet – maantieteellisten alueiden määrittäminen resursseille.
  • Organisaatioyksiköt – organisaatiohierarkian mallintaminen.
  • Resurssityyppi – määrittää resurssin tyypin.
  • Ryhmät – ryhmät, joiden jäsen resurssi on.
  • Liiketoimintayksiköt – liiketoimintayksiköt, joihin resurssi kuuluu.

Aikataulutaulukon suodattaminen

Aikataulutaulukossa on luettelo resursseista ja niihin määritetyistä varauksista. Resurssiluetteloa voi suodattaa aikataulutaulukon suodatinpaneelissa rajoitusten perusteella. Näin ollen käyttäjän valitseminen resurssityypiksi avattavassa Resurssityyppi-luettelossa suodattaa resurssiluetteloon Käyttäjä-tyypin resurssit. Resursseja voi suodattaa vastaavasti hakemalla ominaisuuksien tai alueiden vastaavuuksia.

Resurssien suodattaminen suodatinpaneelissa on yksi tapa etsiä vastaavia resursseja. Tätä menetelmää käytetään, kun halutaan näyttää manuaalisesti luettelo tiettyä rajoitusjoukkoa vastaavia resursseja.

Saatavissa olevien resurssien etsiminen ajoitusavustajalla

Aikataulutaulukon alaosassa on tarvetietueiden luettelo. Voit valita jonkin niistä ja etsiä sen saatavuuden. Tämän toiminto ajoitusavustajan. Ajoitusavustaja etsii sellaiset valittuun resurssitietueeseen tallennettujen rajoitusten mukaiset resurssit, jotka ovat varattavissa. Taulukossa näytetään vain resurssit, jotka vastaavat tarpeen rajoituksia ja jotka ovat saatavana tarpeessa määritettynä ajankohtana.

Vastaava kokemus on saatavana varausvalintanauhan painikkeella. Tämä valintanauha on tarve-entiteetissä ja muissa Dynamics 365:n luettelonäkymien tai lomakkeiden ajoitettavissa entiteeteissä. Kun Varaus-painiketta napsautetaan, avautuvassa ajoitusavustajassa näkyy valitun tarvetietueen rajoituksia vastaavat resurssit.

Toisin kuin aiemmin mainitussa aikataulutaulukkotilassa, jossa resursseja voi suodattaa manuaalisesti suodatinpaneelissa, suodatinpaneeli täyttää ajoitusavustajatilassa resurssin rajoitukset automaattisesti tarvetietueesta, joten vain hakua vastaavat resurssit näytetään.

Rajoitusten vastaavuuksien käyttäminen

Entiteettien rajoitukset

Jotkin rajoitukset määritetään määritteinä suoraan resurssientiteetissä, kun taas toiset määritetään suhteiden avulla. Suhteita tarvitaan, jos rajoitus viittaa toiseen pääentiteettiin.

Oletetaan, että kyse on resurssitietueesta ja siihen liitetyistä alue- ja ominaisuusrajoitteista.

Ensimmäiseksi kirjataan päätietue. Alue-entiteettiin on tallennettu alueita:

Alue
New York
New Jersey
Seattle

Ominaisuusentiteetissä on puolestaan ominaisuuksia:

Ominaisuus
Projektipäällikkö
Suunnittelija
Talousanalyytikko

Organisaatioyksikköentiteetti:

Organisaatioyksikkö
Contoso US
Contoso EU

Käytössä on myös resurssientiteetti:

Resurssi Resurssityyppi Organisaatioyksikkö
Jorge Galt Käyttäjä Contoso US
Abraham McCormick Yhteyshenkilö Contoso EU

Yksi resurssitietue riittää yhden arvon sisältävien rajoitteiden, kuten edellä mainitun resurssityypin ja organisaatioyksikön tallentamiseen. Jos resurssi kuitenkin halutaan liittää useisiin alue- tai ominaisuustietueisiin, tarvitaan kolmas entiteetti, monta moneen (N:N) -suhde, johon nämä liitokset tallennetaan.

Useat alueet liitetään resurssiin resurssialue-entiteetin avulla.

Resurssialuetietueet:

Resurssi Alue
Jorge Galt New York
Jorge Galt New Jersey
Abraham McCormick Seattle

Resurssin ominaisuusentiteettiä puolestaan käytetään resurssin useiden ominaisuuksien tallentamiseen.

Resurssin ominaisuustietueet:

Resurssi Ominaisuus
Jorge Galt Suunnittelija
Abraham McCormick Projektipäällikkö
Abraham McCormick Talousanalyytikko

Resurssin tavoin myös tarvetietueeseen tallennetaan yhden arvon sisältäviä rajoituksia, kun taas monta arvoa sisältävät rajoitukset tallennetaan alitietueisiin.

Tarve-entiteetti:

Tarve Kesto Alue
Työ 1 1 t New York
Työ 2 1 t Seattle

Tarpeen ominaisuusentiteetti:

Tarpeen ominaisuustietueet:

Tarve Ominaisuus
Työ 1 Suunnittelija
Työ 2 Projektipäällikkö
Työ 2 Talousanalyytikko

Tarpeessa voi joskus olla rajoitus, joka on mallinnettu valintamääritteenä, kun taas resurssi voi tallentaa vastaavat määritteet N:N-taulukkoon. Esimerkiksi tarpeen ollessa kyseessä aluerajoitus on alue-entiteetin valintamäärite. Tarve tallentaa työn kysynnän ja alueen, jolla työ tehdään. Resurssitietue sen sijaan voi liittää moneen aluetietueeseen.

Rajoitusten ominaisuusvarannot

Kun käyttäjä valitsee arvoja suodatinpaneelissa ja valitsee Haku-painikkeen, arvot lähetetään resurssien vastaavuushaun ohjelmointirajapintaan. Jos rajoitukset sisältävät useita arvoja, suodatinpaneeli näyttää alueen ja ominaisuuden pääentiteeteistä ja sisällyttää valitut arvot rajoitusten ominaisuusvarantoon.

Esimerkki ominaisuusvarannosta, jonka rajoitukset on lähetetty resurssien vastaavuushaun ohjelmointirajapintaan:

Nimi Value
ResourceType Käyttäjä
Territories New York
New Jersey

Se pyytää resurssien vastaavuushaun ohjelmointirajapintaa etsimään New York- tai New Jersey -alueeseen liitetyt Käyttäjä-tyypin resurssit.

Rajoitukset noudetaan ajoitusavustajassa ensin tarvetietueesta tarverajoituksen noudon ohjelmointirajapinnan kautta. Noudetut rajoitukset esitäytetään sitten suodatinpaneelissa ja lähetetään resurssien vastaavuushaun ohjelmointirajapintaan.

Tarverajoitusten noudon ohjelmointirajapinta tekee kyselyn tarvetietueeseen ja kaikkiin liittyviin alirajoitukseen (kuten tarpeen ominaisuuteen). Sen vastaus on rajoitusten ominaisuusvaranto, joka ilmaisee kaikki valittuun tarpeeseen tallennetut resurssirajoitukset.

Esimerkkivastaus tarverajoituksen noudon ohjelmointirajapinnasta:

Nimi Value
Requirement Työ 2
Duration 1 t
Territories Seattle
Characteristics Projektipäällikkö
Talousanalyytikko

Resurssien vastaavuushaun ohjelmointirajapinta vastaanottaa syötteenä rajoitusten ominaisuusvarannon ja vastaavien resurssien kyselyt. Vastaavat resurssit näytetään sitten aikataulutaulukossa tai ajoitusavustajassa.

Resurssien vastaavuushaussa käytettyjen entiteettien yhteenveto

  • Näytepääentiteetit
    • Alue – viitataan rajoituksena.
    • Ominaisuus – viitataan rajoituksena.
    • Resurssi – määritetään varauksiin.
    • Resurssialue – liittää resurssit alueisiin.
    • Resurssin ominaisuus – liittää resurssit ominaisuuksiin.
  • Näytetapahtumaentiteetit
    • Tarve – tallentaa työn kysynnän ja viittaa alueeseen.
    • Tarpeen ominaisuus – liittää tarpeet ominaisuuksiin.

Resurssien vastaavuushaun työnkulkujen yhteenveto

  • Manuaalinen suodatus. Suodatinpaneeli > resurssien vastaavuushaun ohjelmointirajapinta.

    1. Käyttäjä lisää rajoitukset manuaalisesti suodatinpaneelissa.
    2. Rajoitukset lähetetään resurssien vastaavuushaun ohjelmointirajapintaan.
    3. Suodatettu resurssiluettelo näytetään.
  • Tarpeen suodatus. Tarverajoitusten noudon ohjelmointirajapinta > Suodatinpaneeli > Resurssien vastaavuushaun ohjelmointirajapinta.

    1. Käyttäjä etsii tarvetietueen saatavuuden (aikataulutaulukosta ja valintanauhan varauspainikkeella).
    2. Rajoitukset noudetaan tarverajoituksen noudon ohjelmointirajapinnan kautta ja näytetään suodatinpaneelissa.
    3. Rajoitukset lähetetään resurssien vastaavuushaun ohjelmointirajapintaan.
    4. Suodatettu resurssiluettelo näytetään.

Universal Resource Scheduling -ratkaisun laajentaminen mukautetuilla rajoituksilla

Universal Resource Scheduling -ratkaisua voidaan laajentaa mukautetuilla resurssin rajoituksilla. Rajoitusten laajentaminen toimii samalla tavalla kuin Universal Resource Schedulingiin sisältyvät rajoitukset, ja ne mallinnetaan Dynamics 365:ssa määritteinä ja suhteina.

Kunkin vaiheen koodinäytteitä sisältävä vaiheittainen opas on kohdassa Universal Resource Scheduling -ratkaisun laajennuksen resurssien kielikohtaisen haun vaiheittainen ohje

Mukautetut rajoitukset

Esimerkkiskenaariossa käytetään rajoituksena kieltä. Organisaatio haluaa suodattaa resurssit resurssien käyttämän kielen perusteella. Lisäksi halutaan taltioida työssä vaadittavan kielen tarvetietue. Tämä rajoitus on samankaltainen kuin sisäinen aluerajoitus. Uusi pääentiteetti, kieli, tallentaa resurssin osaamat kielet. Resurssitietue voidaan sitten liittää useisiin kieliin monta moneen -suhde-entiteetin kautta. Tarve-entiteetissä luodaan kaksi uutta valintamääritettä: Required Language ja Secondary Language. Kun tarvetta vastaavaa entiteettiä etsitään, vain resurssit, joihin on liitetty joko Required Language tai Secondary Language, näytetään.

Seuraavaksi käsitellään mukautettu kielirajoitus. Ensin uusi kielientiteetti.

Language
englanti
espanja

Sitten uusi resurssikielen monta moneen -alientiteetti:

Resurssi Language
Jorge Galt englanti
Abraham McCormick englanti
Abraham McCormick espanja

Tarve-entiteetissä on kaksi uutta määritettä, pakollinen kieli ja toissijainen kieli. Ne edustavat kieliä, joita resurssin on osattava, jotta hän vastaa tätä tarvetta:

Tarve Kesto Alue Pakollinen kieli Toissijainen kieli
Työ 1 1 t New York englanti ---
Työ 2 1 t Seattle espanja englanti

Laajennettavuuspisteet

Edellä mainitun resurssien vastaavuushaun työnkulkujen perusteella seuraavat laajennettavuuspisteet on muokattava, jotta mukautetut rajoitukset toimisivat:

  1. Tarverajoitteiden noudon ohjelmointirajapinta

    Ohjelmointirajapinnan on luettava uudet pakollisen kielen ja toissijaisen kielen määritteet, jotta käyttäjä löytää tarpeen saatavuuden uusia rajoituksia noudettaessa.

  2. Suodatinpaneeli

    Käyttäjän on voitava suodattaa vastaavia resursseja tekemällä valinta suodatinpaneelin kielitietueluettelossa. Tarpeen saatavuutta etsittäessä suodatinpaneelissa on oltava näkyvissä tarvetietueen pakollinen kieli ja toissijainen kieli, jotka on valittu valmiiksi kieliluettelossa.

  3. Resurssien vastaavuushaun ohjelmointirajapinta

    Ohjelmointirajapinta käyttää syötteenä uuden kielen rajoitukset, ja sen on palautettava vain valittuja kieliä osaavat resurssit.

Laajennettavat kyselyt

Tarverajoituksen noudon ohjelmointirajapinta (kohta 1 edellä) ja resurssien vastaavuushaun ohjelmointirajapinta (kohta 3 edellä) käyttävät sisäisesti FetchXML-kieltä tietojen kyselyyn Dynamics 365:stä. Tarverajoitusten noudon ohjelmointirajapinta lähettää useita kyselyjä tarvetietueen ja sen alirajoitusten (kuten tarpeen ominaisuuden) noutoa varten. Resurssien vastaavuushaun ohjelmointirajapinta muodostaa siihen dynaamisesti syötteenä välitettyjen resurssien rajoitusten perusteella oikean FetchXML-kyselyn, jotta vain määritettyjä FetchXML-ehtoja vastaavat resurssitietueet palautetaan Dynamics 365:sta.

Universal Resource Schedulingin heinäkuun 2017 päivityksessä otettiin käyttöön yleinen FetchXML (UFX) tukemaan laajennettavaa resurssien vastaavuushakua. UFX lisää FetchXML-kieleen kaksi tärkeää ominaisuutta: 1) Monta tulosjoukkoa, sillä yksi UFX-kysely voi palauttaa tuloksia useita entiteeteistä. 2) Dynaaminen FetchXML, UFX-kysely voi muodostaa dynaamisesti FetchXML-kielen syötetietojen perusteella.

UFX:ssä yksi kysely voidaan muodostaa tarvetietueen ja kaikkien sen alitietueiden kyselyksi. Tarverajoitusten noudon ohjelmointirajapinta suorittaa mukautettavan UFX-kyselyn tarpeen ja alirajoitusten noutamiseen. Kysely voidaan mukauttaa noutamaan myös mukautetut rajoitustietueet.

Tarverajoitusten noudon ohjelmointirajapinnasta palautettu rajoitusten ominaisuusvaranto välitettiin syötettiin resurssien vastaavuushaun ohjelmointirajapinnan. Ohjelmointirajapinta suorittaa mukautettavan UFX-kyselyn. Kysely käyttää UFX:ssä syöterajoituksia oikean FetchXML-kielen dynaamiseen muodostamiseen vastaavien resurssien etsimiseen. Myös tämä UFX-kysely voidaan muokata muodostamaan oikea FetchXML, joka palauttaa vain mukautettuja rajoituksia vastaavat resurssit.

Laajennettava suodattimen asettelu ja resurssimalli

Universal Resource Schedulingin heinäkuun 2017 päivityksessä suodatinpaneeli (kohta 2 edellä) päivitettiin tukemaan mukauttamista XML-asettelumäärityksen kautta. Uusi asettelu tukee avattavia ohjausobjektiluetteloita, jotka sisältävät pääentiteettien tietueluettelot, sekä tyypillisiä number-, datetime- ja checkbox-ohjausobjekteja. Asettua voidaan muokata siten, että käyttäjät voivat valita tietueet mukautetuista rajoitusentiteeteistä. Mukautetun rajoitukset välitetään sitten samalla tavalla kuin Universal Resource Schedulingiin sisältyvät rajoitukset syötteenä resurssien vastaavuushaun ohjelmointirajapintaan.

Resurssisolu on toinen asiakaspuolen laajennettavuuspiste, joka otettiin käyttöön heinäkuun 2017 päivityksessä. Resurssisolu hahmonnetaan mukautettavan Handlebars.js-mallin kautta. Resurssien vastaavuushaun ohjelmointirajapinnan tulokset ovat mallin saatavana. Tämän vuoksi resurssien vastaavuushaun ohjelmointirajapinnan suorittaman kyselyn mukauttamisen ansiosta mukautetut tiedot voidaan hahmontaa resurssisolussa.

Kunkin vaiheen koodinäytteitä sisältävä vaiheittainen opas on kohdassa Universal Resource Scheduling -ratkaisun laajennuksen resurssien kielikohtaisen haun vaiheittainen ohje

Muuta huomioitavaa

  • Suodatinasettelua ei tällä hetkellä voi määrittää, kun aikataulutettava entiteetti käyttää liitettyä tarveryhmää resurssitarpeen sijaan.

Katso myös

Yleinen FetchXML-kieli

Universal Resource Schedulingin laajennettavuuden julkaisutiedot