Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Field Service-organisationer behöver schemalägga arbete, ofta via en serviceagent direkt av kunden. Bokningar skapas vanligtvis baserat på de resurser som finns tillgängliga för företaget och på arbetets krav.
När du använder minst Dynamics 365 Field Service v8.8.43.51 och Universal Resource Scheduling v3.12.46.21 för att schemalägga arbete, använd msdyn_SearchResourceAvailability API för att hämta alla berättigade resurser för jobbet, så att du effektivt kan schemalägga arbetet. Vid skrivande stund är v3 den senaste versionen av msdyn_SearchResourceAvailability och stöder webb-API-anrop.
Anmärkning
Använd den senaste versionen av API:et eftersom äldre versioner kan använda föråldrade autentiseringsmetoder.
Indataparametrar
| Name | Type | Description | Krävs | Default |
|---|---|---|---|---|
| Version | Sträng | Versionsnumret för API identifierar den version av API som ska anropas. Den följer formatet major.minor.patch. Förfrågan behöver inte innehålla det fullständiga versionsnumret.
|
Yes | Inte tillgänglig |
| IsWebApi | Boolean | Ställ in på True för att använda schemaassistenten via webb-API:et. | Yes | Inte tillgänglig |
| Behov | Enhet | Det här attributet anger resurskraven för vilket resurstillgänglighet hämtas. Detta förväntas vara en entitet av typen msdyn_resourcerequirement. Kravet kan vara en befintlig post från databasen, eller en som skapas direkt med de begränsningar som krävs. Entiteten ska innehålla alla relevanta uppgifter för sökningen.
@odata.type för denna entitet bör vara Microsoft.Dynamics.CRM.msdyn_requirement. Följande viktiga attribut ska fyllas i:
|
Yes | Inte tillgänglig |
| Settings | Enhet | Med hjälp av inställningsattributet filtreras de hämtade resurserna ytterligare. Ange inställningar som attribut i en entitetspåse. Typen av entitet spelar ingen roll. Du kan ange det logiska namnet på en entitet. | Yes | Inte tillgänglig |
| ResourceSpecification | Enhet | Definiera attributet resourceSpecification som attribut i en entitetspåse.
@odata.type för denna entitet bör vara Microsoft.Dynamics.CRM.expando. |
No | Ingen |
Inställningsentitet
Inställningsentiteten är inte en entitet som finns i Dataverse: men det är en samling med alla följande attribut som hjälper schemaläggningsassistenten att API-filterresultat. Därför bör @odata.type för denna entitet vara Microsoft.Dynamics.CRM.expando.
| Name | Type | Description | Krävs | Default |
|---|---|---|---|---|
| ConsiderSlotsWithLessThanRequiredCapacity | Boolean | Ange detta som True om du bör använda ett tidslucka som inte har den kapacitet som krävs (insats) när du beräknar möjliga tillgängliga tidsluckor i resursens kalender. | No | Falsk |
| ConsiderSlotsWithLessThanRequiredDuration | Boolean | Ange detta som True om du bör använda ett tidslucka som inte har den varaktighet som krävs när du beräknar möjliga tillgängliga tidsluckor i resursens kalender. | No | Falsk |
| ConsiderSlotsWithOverlappingBooking | Boolean | Ange detta som True om du bör använda en tidslucka som inte har överlappa bokning som krävs när du beräknar möjliga tillgängliga tidsluckor i resursens kalender. | No | Falsk |
| ConsiderSlotsWithProposedBookings | Boolean | Ange detta som True om du bör använda en tidslucka som inte har förslagna bokning som krävs när du beräknar möjliga tillgängliga tidsluckor i resursens kalender. | No | Falsk |
| ConsiderAppointments | Boolean | Ange detta som True för sökresurs tillgänglighet API för att respektera befintliga Dataverse möten som bokningar på resursen, förutsatt att inställningar för organisation och resursnivå har ställts in. Bokningar med statusen Upptagen eller Avslutad anses vara otillgängliga för att schemalägga operationer. | No | Falsk |
| ConsiderTravelTime | Boolean | Ange detta som True om restid bör beaktas vid beräkning av potentiella tidsluckor på resursens kalender. | No | Sant |
| ExkluderaResursEgenskaper | Boolean | Sätt detta till True för att utesluta resursegenskaper för tidsluckorna som svarar. | No | Falsk |
| MovePastStartDateToCurrentDate | Boolean | Ange detta till True för att flytta ett tidigare datum till det aktuella datumet. | No | Falsk |
| UseRealTimeResourceLocation | Boolean | Ange detta som True om resursens realtidsplats ska användas vid beräkning av potentiella tidsluckor i resursens kalender. | No | Falsk |
| SortOrder | EntityCollection | Ange sorteringsordningen med hjälp av en entitetssamling. Varje entitet i samlingen representerar ett sorteringsvillkor och kan bara sortera Resources från svaret, men inte TimeSlots.
@odata.type för denna entitet bör vara Microsoft.Dynamics.CRM.expando. Följande attribut måste fyllas i:
|
No | Ingen |
| MaxResourceTravelRadius | Enhet | Det här attributet anger det maximala kan definieras i en entitet.
@odata.type för denna entitet bör vara Microsoft.Dynamics.CRM.expando. Följande attribut måste fyllas i:
|
No | 0 km. Om så är fallet returneras inga resurser för krav på plats. |
| MaxNumberOfResourcesToEvaluate | Heltal | Det här attributet definierar en begränsning för antalet resurser som övervägs för förfrågan. | No | Om detta attribut inte ingår i API-anropet använder systemet Resource Availability Retrieval Limit från schemalagbar entitetsdefinition som definierats i Redigera inställningar för aktiverade enheter. Om det ingår i anropet skriver det över den definierade hämtningsgränsen för resurstillgänglighet. |
| ConsiderOutlookSchedules | Boolean | Ställ in detta till True om scheman från Outlook bör beaktas. Endast tillgänglig i versioner 3.1.0 och senare. | No | Falsk |
Entiteten Resursspecifikation
| Name | Type | Description | Krävs | Default |
|---|---|---|---|---|
| ResourceTypes | EntityCollection | Det här attributet anger vilken resurstyp som krävs för kravet. Använd en entity collection för att specificera detta attribut. Varje entitet i samlingen motsvarar ett bokningsbar resurstyp.
@odata.type för denna entitet bör vara Microsoft.Dynamics.CRM.msdyn_resourceType. Denna egenskap krävs:
|
No | Alla resurstyper utom arbetslag |
| PreferredResources | EntityCollection | Det här attributet anger önskade resurser för kravet. Lägg till resurser i denna entitetssamling för att säkerställa att de ligger högst upp på listan över tillgängliga resurser. Även resurser som inte ingår i entitetssamlingen finns på listan, men bara efter de föredragna resurserna. | No | Ingen |
| RestrictedResources | EntityCollection | Det här attributet anger resurser som inte ska beaktas för kravet. Alla tidsluckor för denna resurs filtreras bort från listan över resultat från detta API. | No | Ingen |
| MustChooseFromResources | EntityCollection | Det här attributet anger de enda resurser som kan finnas i listan över tillgängliga resurser. Alla andra resultat filtreras bort från utdatalistan. | ||
| Begränsningar | Enhet | Det här attributet anger vilka ytterligare begränsningar som ska tillämpas på hämtningen av tillgängliga resurser. | No | Ingen |
| RetrieveResourcesQueryId | GUID | ID:t för redigera resursfrågan för hämtning. | No | ID för standardfråga för hämtning av resurs. |
| BookedResourceId | GUID | Det här attributet anger vilken resurs som för närvarande krävs för kravet. | No | Ingen |
Anmärkning
Använd en enhetssamling av bokningsbara resursenheter för att specificera attributen Föredragen, Begränsad och MustChooseFrom . Varje enhet i samlingen representerar en Föredragen, Begränsad eller MåsteVäljaFrån-resurs . Denna egenskap krävs för dem:
-
Value (Guid): Den bokbara resurs-ID:n för Preferred, Restricted eller MustChooseFrom-resursen .
@odata.typeför denna entitet bör varaMicrosoft.Dynamics.CRM.msdyn_bookableresource.
Begränsningar
Specificera ytterligare begränsningar genom attribut i denna entitet. Typen av entitet spelar ingen roll. Du kan ange det logiska namnet på en entitet.
Läs Hämta resursfråga i inställningarna för schemaläggningstavlan och identifiera vilka begränsningar som kan gälla. Det innehåller som standard följande fält:
| Name | Type | Description |
|---|---|---|
| Karaktäristika | EntityCollection | En samling egenskaper som en kvalificerad resurs måste ha. Varje post innehåller en med karaktäristiskt characteristic ID. Eventuellt, inkludera en ratingvalue med betygsvärde-ID för att filtrera resurser efter en specifik färdighetsnivå. |
| Roller | EntityCollection | En samling med roll-ID:er som en kvalificerad resurs måste ha. |
| Områden | EntityCollection | En samling med områdes-ID. En kvalificerad resurs måste tilldelas ett område. |
| UnspecifiedTerritory | Boolean | I kombination med områdesbegränsningen anger du att en kvalificerad person måste tilldelas ett av områdena eller inget område alls. |
| OrganizationalUnits | EntityCollection | En samling med ID:n för organisationsenheter. En kvalificerad resurs måste vara medlem i en av de angivna organisationsenheterna. |
| Teams | EntityCollection | En samling med team-ID. En kvalificerad resurs måste tillhöra något av teamen (det förutsätts att resurstypen är en systemanvändare). |
| BusinessUnits | EntityCollection | En samling affärsenhets-ID:n. En kvalificerad resurs måste tillhöra något av affärsenheter (det förutsätts att resursen är en systemanvändare). |
Utdataparametrar
På den högsta nivån har utdata följande fyra parametrar. Resultaten representeras i entitetssamlingar och entiteter. Svaren kanske inte innehåller alla attribut som beskrivs här som null-värden eller så utesluts inte NA-värden från svaret. Kontrollera alltid om ett attribut finns där innan du försöker komma åt det.
| Name | Type | Description |
|---|---|---|
| TimeSlots | EntityCollection | En samling med resultat för tidslucka. Mer information finns i avsnittet om entitet för tidslucka . |
| Resources | EntityCollection | En samling med resursresultat. Resurser representeras som en samling entiteter med följande attribut:
|
| Relaterade | Enhet | Relaterade resurser representerar resurser och tidsluckor för resurser som inte är direkt kvalificerade för det begärda kravet men som är relaterade. Om till exempel en medlem kvalificerar sig för ett krav blir de andra medlemmarna i programmet relaterade resultat.
|
| Undantag | Enhet | Det här attributet innehåller information om eventuella undantag och information om om och var resurssökningen trunkerades.
|
Entitet för tidsluckor
| Name | Type | Description |
|---|---|---|
| ID | GUID | Unik identifierare för tidsluckan |
| Type | Heltal | Den typen av tidslucka. Det kan vara något av följande värden:
|
| StartTime | Datum/tid | Starttiden för tidsluckan. Om det krävs resor är denna tid starttiden för resan. Om inte, är denna tid starttiden för kravet. |
| ArrivalTime | Datum/tid | Ankomsttiden för tidsluckan. Om det finns resor för kravet, är denna tid starttiden för kravet, efter att resan är slutförd. I annat fall är det samma som vid starttiden för tidsluckan. |
| EndTime | Datum/tid | Sluttiden för tidsluckan. |
| Effort | Heltal | Resursens insats eller kapacitet att utföra kraven. |
| ResourceRequirement | EntityReference | Resurskraven för vilka tidsluckor hämtas. |
| Potentiella | Boolean | Ett booleskt värde som anger om tidsluckan har potential att uppfylla det begärda kravet. |
| IsDuplicate | Boolean | Ett booleskt värde som anger om en tidslucka är en dubblett. |
| AllowOverlapping | Boolean | Ett boooleskt värde som anger om överlappning är tillåten. |
| Resource | Enhet | Resursen som tidsluckan tillhör. Se resurs för tidslucka för mer information. |
| Location | Enhet | Platsen har tre attribut:
|
| Resa | Enhet | Entiteten innehåller information om restid och distansinformation för en tidslucka. Följande attribut:
|
| Nästa | Enhet | Entiteten innehåller information om restiden och sträckan till nästa bokning av tidslucka.
|
| Disposition | Enhet | Detaljerad tillgänglighetsinformation för ett tidslucka. Denna entitet används med tidsgrupper.
|
| TimeGroup | Enhet | Information om en tidsgrupp.
|
Tips/Råd
När du skapar bokningar med hjälp av API:et, använd fältet Potential som beskrivs i tabellen. Om du inte använder fältet kan det leda till överlappande eller olämpliga bokningar.
Tidsluckresurs
| Name | Type | Description |
|---|---|---|
| Resource | EntityReference | En entitetsreferens till den bokningsbara resursen. |
| ResourceGroup | EntityReference | En entitetsreferens till den bokningsbara resursgruppen. |
| BusinessUnit | EntityReference | En enhetsreferens till affärsenheten. |
| OrganizationalUnit | EntityReference | En entitetsreferens till organisationsenheten. |
| Resurstyp | Heltal | Resurstypen. Se attributet ResourceType på entiteten BookableResource för möjliga värden. |
| PoolId | GUID | ID för den pool som resursen är medlem i under tiden för tidsluckan. |
| CrewId | GUID | ID för den besättning som resursen är medlem i under tiden för tidsluckan. |
| Karaktäristika | EntityCollection | Egenskaper för bokningsbara resurser. Varje entitet i samlingen innehåller entiteter med egenskaper och klassificeringsinformation.
|
| HasStartLocation | Boolean | Ett booleskt värde som anger om resursen har en startplats. |
| HasEndLocation | Boolean | Ett booleskt värde som anger om resursen har en slutplats. |
| E-post | Sträng | Resursens e-postadress. |
| Telefon | Sträng | Resursens telefonnummer. |
| ImagePath | Sträng | Sökvägen till resursens bild. |
| CalendarId | GUID | Resursens kalender-ID. |
Exempel
I detta exempel använder du version 3 av schedule assistant API, som stödjer webb-API-anrop, för ett krav med en varaktighet på 60 minuter. Genom att använda attributet settings filtrerar du resultaten. Du överväger två resurstyper för slutresultatet: 1 och 2 (med andra ord, generiska och kontakttyper).
{
"Version": "4",
"IsWebApi": true,
"Requirement": {
"msdyn_fromdate": "2021-07-14T00:00:00Z",
"msdyn_todate": "2021-07-15T23:59:00Z",
"msdyn_remainingduration": 60,
"msdyn_duration": 60,
"msdyn_TimeGroup@odata.bind": "/msdyn_timegroups(c3dc79ea-d12f-ee11-9cc9-000d3a745a58)",
"@odata.type": "Microsoft.Dynamics.CRM.msdyn_resourcerequirement"
},
"Settings": {
"ConsiderSlotsWithProposedBookings": false,
"MovePastStartDateToCurrentDate": true,
"@odata.type": "Microsoft.Dynamics.CRM.expando"
},
"ResourceSpecification": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"ResourceTypes@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"ResourceTypes": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "1"
},
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "2"
}
],
"Constraints": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"Characteristics@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Characteristics": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"characteristic": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "67387f9f-12e2-ec11-bb43-000d3aed25f7"
},
"ratingvalue": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "a1b2c3d4-5678-90ab-cdef-1234567890ab"
}
}
],
"Territories@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Territories": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "cc19f004-4483-ee11-8178-000d3a5c32c3"
}
],
"Roles@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Roles": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "76998e42-744c-f011-877d-6045bdfb899e"
}
]
}
}
}
Följande exempel visar korrekt användning av enhetssamlingar. I detta fall specificerar MustChooseFromResourcesden .
{
"Version": "4",
"IsWebApi": true,
"Requirement": {
"msdyn_fromdate": "2021-07-14T00:00:00Z",
"msdyn_todate": "2021-07-15T23:59:00Z",
"msdyn_remainingduration": 60,
"msdyn_duration": 60,
"msdyn_latitude": 47.64807,
"msdyn_longitude": -122.41249,
"msdyn_worklocation": 690970000,
"msdyn_TimeGroup@odata.bind": "/msdyn_timegroups(c3dc79ea-d12f-ee11-9cc9-000d3a745a58)",
"@odata.type": "Microsoft.Dynamics.CRM.msdyn_resourcerequirement"
},
"Settings": {
"ConsiderSlotsWithProposedBookings": false,
"MovePastStartDateToCurrentDate": true,
"MaxNumberOfResourcesToEvaluate":500,
"ConsiderTravelTime": true,
"MaxResourceTravelRadius": {
"Value": 20,
"Unit" : 192350000,
"@odata.type": "Microsoft.Dynamics.CRM.expando"
},
"@odata.type": "Microsoft.Dynamics.CRM.expando"
},
"ResourceSpecification": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"ResourceTypes@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"ResourceTypes": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "1"
},
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "2"
}
],
"MustChooseFromResources@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"MustChooseFromResources": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "2145a982-f718-ed11-b83e-0022482d79c8"
}
],
"Constraints": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"Characteristics@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Characteristics": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"characteristic": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "67387f9f-12e2-ec11-bb43-000d3aed25f7"
},
"ratingvalue": {
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "a1b2c3d4-5678-90ab-cdef-1234567890ab"
}
}
],
"Territories@odata.type": "Collection(Microsoft.Dynamics.CRM.expando)",
"Territories": [
{
"@odata.type": "Microsoft.Dynamics.CRM.expando",
"value": "cc19f004-4483-ee11-8178-000d3a5c32c3"
}
]
}
}
}