Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Außendienst-Serviceorganisationen müssen die Arbeit planen, häufig über einen Service-Agent direkt vom Kunden. Die Buchungserstellung basiert in der Regel auf den Ressourcen, die dem Unternehmen zur Verfügung stehen, und den Anforderungen der Arbeit.
Wenn du mindestens Dynamics 365 Field Service v8.8.43.51 und Universal Resource Scheduling v3.12.46.21 zur Planung der Arbeit verwendest, nutze die msdyn_SearchResourceAvailability API, um alle berechtigten Ressourcen für den Job abzurufen, damit du die Arbeit effizient planen kannst. Zum Zeitpunkt des Schreibens ist v3 die neueste Version von msdyn_SearchResourceAvailability und unterstützt Web-API-Aufrufe.
Anmerkung
Verwenden Sie die neueste Version der API, da ältere Versionen möglicherweise veraltete Authentifizierungsmethoden verwenden.
Eingabeparameter
| Name des Dataflows | typ | Eigenschaft | Erforderlich | Default |
|---|---|---|---|---|
| Version | Zeichenfolge | Die Versionsnummer der API identifiziert die Version der API, die aufgerufen werden soll. Es folgt dem Format major.minor.Patch. Die Anforderung muss nicht die vollständige Versionsnummer enthalten.
|
Ja | -K. A.- |
| IsWebApi | Boolesch | Stelle auf True, um den Schedule-Assistant über die Web-API zu verwenden. | Ja | -K. A.- |
| Anforderung | Entity | Dieses Attribut gibt die Ressourcenanforderung an, für die die Ressourcenverfügbarkeit abgerufen wird. Es wird erwartet, dass es sich um eine Entität vom Typ msdyn_resourcerequirement handelt. Die Anforderung kann ein bereits vorhandener Datensatz aus der Datenbank sein oder ein spontan erstellter Datensatz mit den erforderlichen Einschränkungen. Die Entität sollte alle Angaben enthalten, die für Ihre Suche relevant sind. Das @odata.type für diese Entität sollte Microsoft.Dynamics.CRM.msdyn_requirement sein. Die folgenden wichtigen Attribute müssen ausgefüllt werden:
|
Ja | -K. A.- |
| Einstellungen | Entity | Das Einstellungsattribut hilft, die abgerufenen Ressourcen weiter zu filtern. Geben Sie Einstellungen als Attribute in einem Entitätsbeutel an. Die Art der Entität spielt keine Rolle. Sie können einen beliebigen logischen Namen für die Entität angeben. | Ja | -K. A.- |
| ResourceSpecification | Entity | Definiere das resourceSpecification Attribut als Attribute in einem Entitätsbeutel. Das @odata.type für diese Entität sollte Microsoft.Dynamics.CRM.expando sein. |
Nein | Ohne |
Entitätseinstellungen
Die Einstellungsentität ist keine Entität, die in Dataverse vorhanden ist. Es handelt sich jedoch um eine Sammlung aller folgenden Attribute, die den Filterergebnissen der Zeitplanassistenten-API helfen. Daher sollte das @odata.type für diese Entität Microsoft.Dynamics.CRM.expando sein.
| Name des Dataflows | typ | Eigenschaft | Erforderlich | Default |
|---|---|---|---|---|
| Betrachten Sie Slots mit weniger als der erforderlichen Kapazität | Boolesch | Setzen Sie dies auf True wenn ein Zeitfenster mit weniger als der erforderlichen Kapazität (Aufwand) berücksichtigt werden sollte, wenn potenziell verfügbare Zeitfenster im Kalender der Ressource berechnet werden. | Nein | Nein |
| ConsiderSlotsWithLessThanRequiredDuration | Boolesch | Setzen Sie dies auf True wenn ein Zeitfenster mit weniger als der erforderlichen Dauer berücksichtigt werden sollte, wenn potenziell verfügbare Zeitfenster im Kalender der Ressource berechnet werden. | Nein | Nein |
| ConsiderSlotsWithOverlappingBooking | Boolesch | Setzen Sie dies auf True wenn ein Zeitfenster mit überschneidenden Buchungen berücksichtigt werden sollte, wenn potenziell verfügbare Zeitfenster im Kalender der Ressource berechnet werden. | Nein | Nein |
| Betrachten Sie SlotsWithProposedBookings | Boolesch | Setzen Sie dies auf True wenn ein Zeitfenster mit vorgeschlagenen Buchungen berücksichtigt werden sollte, wenn potenziell verfügbare Zeitfenster im Kalender der Ressource berechnet werden. | Nein | Nein |
| ConsiderAppointments | Boolesch | Legen Sie dies auf True für die Suchressourcen-Verfügbarkeits-API fest, um vorhandene Dataverse Termine als Buchungen auf der Ressource zu respektieren, sofern die Einstellungen auf Organisations- und Ressourcenebene festgelegt wurden. Termine mit dem Status Besetzt oder Abgeschlossen gelten als nicht verfügbar für die Terminplanung. | Nein | Nein |
| Betrachten Sie die Reisezeit | Boolesch | Setzen Sie dies auf True wenn Reisezeit mit überschneidenden Buchungen berücksichtigt werden sollte, wenn potenziell verfügbare Zeitfenster im Kalender der Ressource berechnet werden. | Nein | Ja |
| AusschließenRessourcenMerkmale | Boolesch | Setze dies auf True, um Ressourcenmerkmale für die Zeitfenster als Antwort auszuschließen. | Nein | Nein |
| MovePastStartDateToCurrentDate | Boolesch | Setzen Sie dies auf True, um ein Startdatum in der Vergangenheit auf das aktuelle Datum zu verschieben. | Nein | Nein |
| UseRealTimeResourceLocation | Boolesch | Setzen Sie dies auf True, wenn der tatsächliche Standort der Ressource berücksichtigt werden sollte, wenn potenziell verfügbare Zeitfenster im Kalender der Ressource berechnet werden. | Nein | Nein |
| SortOrder | EntityCollection | Geben Sie die Sortierreihenfolge mithilfe einer Entitätsauflistung an. Jede Entität in der Auflistung stellt ein Sortierkriterium dar und kann nur Resources aus der Antwort, aber nicht TimeSlotssortieren. Das @odata.type für diese Entität sollte Microsoft.Dynamics.CRM.expando sein. Die folgenden Attribute müssen Sie ausfüllen:
|
Nein | Ohne |
| MaxResourceTravelRadius | Entity | Dieses Attribut gibt das Maximum an, das in einer Entität definiert werden. Das @odata.type für diese Entität sollte Microsoft.Dynamics.CRM.expando sein. Die folgenden Attribute müssen Sie ausfüllen:
|
Nein | 0 km. Wenn dies der Fall ist, werden keine Ressourcen für Vor-Ort-Anforderungen zurückgegeben. |
| MaxNumberOfResourcesToEvaluate | Ganzzahl | Dieses Attribut definiert ein Limit für die Anzahl der Ressourcen, die für die Anforderung berücksichtigt werden. | Nein | Wenn dieses Attribut nicht im API-Aufruf enthalten ist, verwendet das System das Resource Availability Retrieval Limit aus der Definition der planablen Entität, wie es in den Edit-Einstellungen für aktivierte Entitäten definiert ist. Wenn er im Aufruf enthalten ist, überschreibt er das definierte Resource Availability Retrieval Limit. |
| ConsiderOutlookSchedules | Boolesch | Stelle dies auf True wenn Zeitpläne von Outlook berücksichtigt werden sollten. Nur verfügbar in den Versionen 3.1.0 und neuer. | Nein | Nein |
Ressourcenspezifikationsentität
| Name des Dataflows | typ | Eigenschaft | Erforderlich | Default |
|---|---|---|---|---|
| ResourceTypes | EntityCollection | Dieses Attribut gibt den für die Anforderung erforderlichen Ressourcentyp an. Verwenden Sie eine Entitätssammlung, um dieses Attribut anzugeben. Jede Entität in der Sammlung repräsentiert einen buchbaren Ressourcentyp. Das @odata.type für diese Entität sollte Microsoft.Dynamics.CRM.msdyn_resourceType sein. Diese Eigenschaft ist erforderlich:
|
Nein | Alle Ressourcentypen außer Teams |
| Bevorzugte Ressourcen | EntityCollection | Dieses Attribut gibt die bevorzugte Ressource für die Anforderung an. Füge Ressourcen zu dieser Entitätensammlung hinzu, damit sie ganz oben auf der Liste verfügbarer Ressourcen stehen. Sogar Ressourcen, die nicht zur Entitätensammlung gehören, stehen auf der Liste, aber nur nach den bevorzugten Ressourcen. | Nein | Ohne |
| Eingeschränkte Ressourcen | EntityCollection | Dieses Attribut gibt die Ressource an, die für die Anforderung nicht berücksichtigt werden soll. Alle Zeitfenster dieser Ressource werden aus der Ergebnisliste dieser API herausgefiltert. | Nein | Ohne |
| MustChooseFromResources | EntityCollection | Dieses Attribut gibt die einzigen Ressourcen an, die in der Liste der verfügbaren Ressourcen enthalten sein können. Es filtert alle anderen Ergebnisse aus der Ausgabeliste heraus. | ||
| Einschränkungen | Entity | Dieses Attribut gibt die zusätzlichen Einschränkungen an, die beim Abrufen verfügbarer Ressourcen angewendet werden sollten. | Nein | Ohne |
| RetrieveResourcesQueryId | GUID | Die ID für die Abfrage zum Ressourcenabruf. | Nein | Die Standardabfrage zum Abrufen der Ressourcen-ID. |
| BookedResourceId | GUID | Dieses Attribut gibt die aktuell gebuchte Ressource für die Anforderung an. | Nein | Ohne |
Anmerkung
Verwenden Sie eine Entitätssammlung buchbarer Ressourceneinheiten, um die Attribute Bevorzugt,Beschränkt und MustChooseFrom zu spezifizieren. Jede Entität in der Sammlung stellt eine bevorzugte, eingeschränkte oder MustChooseFrom-Ressource dar. Diese Eigenschaft ist für sie erforderlich:
-
Wert (Guid): Die buchbare Ressourcen-ID der bevorzugten, eingeschränkten oder MustChooseFrom-Ressource . Das
@odata.typefür diese Entität sollteMicrosoft.Dynamics.CRM.msdyn_bookableresourcesein.
Einschränkungen
Spezifizieren Sie zusätzliche Einschränkungen durch Attribute in dieser Entität. Die Art der Entität spielt keine Rolle. Sie können einen beliebigen logischen Namen für die Entität angeben.
Überprüfen Sie die Abfrage Ressourcen abrufen in den Zeitplanübersicht-Einstellungen, um zu ermitteln, welche Einschränkungen gelten könnten. Dazu gehören standardmäßig die folgenden Funktionen:
| Name des Dataflows | typ | Eigenschaft |
|---|---|---|
| Merkmale | EntityCollection | Eine Sammlung von Eigenschaften, die eine qualifizierte Ressource besitzen muss. Jeder Eintrag enthält ein characteristic mit der charakteristischen ID. Optional kann man eine ratingvalue mit der Bewertungswert-ID hinzufügen, um Ressourcen nach einem bestimmten Kompetenzlevel zu filtern. |
| Rollen | EntityCollection | Eine Sammlung von Rollen-IDs, die eine qualifizierte Ressource haben muss. |
| Gebiete | EntityCollection | Eine Sammlung von Gebiets-IDs. Einem der Gebiete muss eine qualifizierte Ressource zugewiesen werden. |
| Nicht spezifiziertes Gebiet | Boolesch | Gibt in Kombination mit der Gebietseinschränkung an, dass ein Qualifizierter einem der Gebiete oder gar keinem Gebiet zugewiesen werden muss. |
| OrganizationalUnits | EntityCollection | Eine Sammlung von Organisationen-IDs. Eine qualifizierte Ressource muss Mitglied einer der angegebenen Organisationseinheiten sein. |
| Teams | EntityCollection | Eine Sammlung von Team-IDs. Eine qualifizierte Ressource muss zu einem der Teams gehören (was bedeutet, dass der Ressourcentyp ein Systembenutzer ist). |
| BusinessUnits | EntityCollection | Eine Sammlung von Geschäftseinheits-IDs. Eine qualifizierte Ressource muss zu einer der Unternehmenseinheiten gehören (was bedeutet, dass der Ressourcentyp ein Systembenutzer ist). |
Ausgabeparameter
Auf der höchsten Ebene hat die Ausgabe die folgenden vier Parameter. Die Ergebnisse werden in Entitätensammlungen und Entitäten dargestellt. Antworten enthalten möglicherweise nicht alle hier beschriebenen Attribute als Nullwert oder nicht NA-Werte werden aus der Antwort weggelassen. Überprüfen Sie immer, ob ein Attribut vorhanden ist, bevor Sie versuchen, darauf zuzugreifen.
| Name des Dataflows | typ | Eigenschaft |
|---|---|---|
| Zeitfenster | EntityCollection | Eine Sammlung von Zeitfensterergebnissen. Weitere Informationen finden Sie im Abschnitt Zeitfensterentität . |
| Resources | EntityCollection | Eine Sammlung von Ressourcenergebnissen. Ressourcen werden als Sammlung von Entitäten mit den folgenden Attributen dargestellt:
|
| Verknüpft | Entity | Zugehörige Ressourcen stellen Ressourcen und Zeitfenster von Ressourcen dar, die nicht direkt für die angeforderte Anforderung qualifiziert sind, aber miteinander verbunden sind. Wenn sich zum Beispiel ein Teammitglied für eine Anforderung qualifiziert, dann würden die anderen Mitglieder dieses Teams verwandte Ergebnisse sein.
|
| Ausnahmen | Entity | Dieses Attribut enthält Informationen zu aufgetretenen Ausnahmen und Informationen darüber, ob und wo die Ressourcensuche abgeschnitten wurde.
|
Zeitslot-Entität
| Name des Dataflows | typ | Eigenschaft |
|---|---|---|
| Kennung | GUID | Eindeutiger Bezeichner für den Zeitslot |
| typ | Ganzzahl | Die Art von Zeitfenster. Dabei kann es sich um einen der folgenden Werte handeln:
|
| StartTime | DateTime | Startzeit des Zeitslot. Wenn es Reisen für die Anforderung gibt, ist diese Zeit der Startzeitpunkt. Wenn nicht, ist dies der Beginn der Anforderung. |
| Ankunftszeit | DateTime | Die Ankunftszeit des Zeitslot. Wenn es Reisen für die Anforderung gibt, ist diese Zeit der Beginn der Anforderung, nachdem die Reise abgeschlossen ist. Wenn nicht, ist sie dieselbe wie die Startzeit des Zeitfensters. |
| EndTime | DateTime | Endzeit des Zeitslots. |
| Aufwand | Ganzzahl | Der Aufwand oder die Kapazität der Ressource, um die Anforderungen zu erfüllen. |
| Ressourcenanforderung | EntityReference | Die Ressourcenanforderung, für die Zeitfenster abgerufen werden. |
| Potential | Boolesch | Ein boolescher Wert, der angibt, ob der Zeitslot die angeforderte Anforderung erfüllen kann. |
| IsDuplicate | Boolesch | Ein boolescher Wert, der angibt, ob das Zeitfenster ein Duplikat ist. |
| AllowOverlapping | Boolesch | Ein boolescher Wert, der angibt, ob Überschneidung zugelassen ist. |
| Ressource | Entity | Die Ressource, zu der der Zeitslot gehört. Weitere Informationen finden Sie unter Zeitfenster-Ressource. |
| Ort | Entity | Der Standort hat drei Attribute:
|
| Reisen | Entity | Diese Entität enthält Details zur Reisezeit und Entfernungsinformationen für ein Zeitfenster. Das sind die Attribute:
|
| Nächste | Entity | Diese Entität enthält Angaben zur Reisezeit und Entfernung bis zur nächsten Zeitfensterbuchung.
|
| Verfügbarkeit | Entity | Die detaillierten Verfügbarkeitsinformationen für ein Zeitfenster. Diese Entität wird mit Zeitgruppen verwendet.
|
| TimeGroup | Entity | Die Details zu einer Zeitgruppe.
|
Tipp
Wenn du Buchungen mit der API erstellst, verwende das in der Tabelle beschriebene Potential-Feld . Wenn Sie dieses Feld nicht nutzen, kann dies zu Überschneidungen oder unpassenden Buchungen führen.
Zeitslot-Ressource
| Name des Dataflows | typ | Eigenschaft |
|---|---|---|
| Ressource | EntityReference | Ein Entitätsverweis auf die buchbare Ressource. |
| Resource group | EntityReference | Ein Entitätsverweis auf die buchbare Ressourcengruppe. |
| BusinessUnit | EntityReference | Eine Entitätsreferenze für die Geschäftseinheit. |
| OrganizationalUnit | EntityReference | Eine Entitätsreferenz für die Organisationseinheit. |
| ResourceType | Ganzzahl | Der Ressourcentyp. Siehe ResourceType Attribute auf der Entität BookableResource für mögliche Werte. |
| PoolId | GUID | Die ID des Pools, zu dem die Ressource für die Dauer des Zeitfensters gehört. |
| CrewId | GUID | Die ID der Crew, zu der die Ressource für die Dauer des Zeitfensters gehört. |
| Merkmale | EntityCollection | Die Merkmale der buchbaren Ressource. Jede Entität in der Sammlung enthält Entitäten mit Merkmalen und Bewertungsinformationen.
|
| HasStartLocation | Boolesch | Ein boolescher Wert, der angibt, ob die Ressource eine Startposition hat. |
| HasEndLocation | Boolesch | Ein boolescher Wert, der angibt, ob die Ressource eine Endposition hat. |
| E‑Mail | Zeichenfolge | Die E-Mail-Adresse der Ressource. |
| Telefonnummer | Zeichenfolge | Die Telefonnummer der Ressource. |
| ImagePath | Zeichenfolge | Der Pfad zum referenzierten Bild. |
| CalendarId | GUID | Die Kalender-ID der Ressource. |
Beispiele
In diesem Beispiel verwendet man Version 3 der Schedule Assistant API, die Web-API-Aufrufe unterstützt, für eine Dauer von 60 Minuten. Durch die Verwendung des Attributs settings filtern Sie die Ergebnisse. Für das Endergebnis betrachtet man zwei Ressourcentypen: 1 und 2 (also generisch und Kontakt).
{
"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"
}
]
}
}
}
Das folgende Beispiel demonstriert die ordnungsgemäße Verwendung von Entitätssammlungen. In diesem Fall bezeichnet MustChooseFromResourcessie .
{
"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"
}
]
}
}
}