Share via


Definieren von benutzerdefinierten Statusmodellübergängen

Sie können angepasste Status-Übergänge für die Tabelle Incident (Anfrage) oder angepasste Tabellen festlegen. Die Eigenschaft EntityMetadata.IsStateModelAware ist true für Tabellen, die Statusmodellübergänge unterstützen.

Hinweis

Obwohl die Tabelle Incident (Anfrage) nicht in einer Standard Microsoft Dataverse Umgebung enthalten ist, wird sie von Dynamics 365 for Customer Service verwendet und ist innerhalb des Common Data Model definiert

Benutzerdefinierte Statusübergänge sind eine optionale Filterebene zum Definieren, welche Statusübergänge für einen Datensatz in einem gegebenen Status gültig sind. Insbesondere bei einer großen Anzahl von Kombinationen für gültige Status und Statuswerte kann die Definition einer begrenzten Liste von Optionen es für Benutzer einfacher machen, den korrekten Status für einen Datensatz auszuwählen.

Was ist das Statusmodell?

Tabellen, die das Konzept des Status unterstützen, haben ein Paar von Spalten, die Statusmodelldaten erfassen, wie in der folgenden Tabelle gezeigt.

Logischer Name Anzeigenname Eigenschaft
statecode Status Stellt den Status des Datensatzes dar. Für angepasste Tabellen ist dieser Wert Aktiv oder Inaktiv. Sie können keine weiteren Statusauswahlen hinzufügen, aber Sie können die Bezeichnungen der Auswahlen ändern.
statuscode Statusgrund Stellt einen Status dar, der mit einem bestimmten Status verknüpft ist. Jeder Status muss mindestens einen möglichen Status haben. Sie können weitere Status-Auswahlen hinzufügen und die Beschriftungen der vorhandenen Auswahlen ändern.

Die Tabellendefinitionen für die Spalten legen fest, welche Statuswerte für einen bestimmten Status gültig sind. Zum Beispiel werden für die Tabelle Incident (Case) die Standardstatus- und Statusoptionen in der folgenden Tabelle gezeigt.

Zustand Status
Label: Aktiv
Value: 0
 
Label: In Bearbeitung
Value: 1
State: 0
Label: Aktiv
Value: 0
 
Label: Zurückgestellt
Value: 2
State: 0
Label: Aktiv
Value: 0
 
Label: Warten auf Details
Value: 3
State: 0
Label: Aktiv
Value: 0
 
Beschriftung: Recherche
Value: 4
State: 0
Label: Behoben
Value: 1
 
Label: Problem behoben
Value: 5
State: 1
Label: Behoben
Value: 1
 
Beschriftung: Bereitgestellte Informationen
Value: 1000
State: 1
Beschriftung: Storniert
Value: 2
 
Label: Storniert
Value: 6
State: 2
Beschriftung: Storniert
Value: 2
 
Label: Zusammengeführt
Value: 2000
State: 2

Diese Daten werden in der Klasse StatusOptionMetadata gespeichert, die die Optionen in der Klasse StatusAttributeMetadata darstellt.

Um Tabellendefinitionen für Ihre Organisation anzuzeigen, installieren Sie die Lösung Metadata Browser, die in Tabellendefinitionen für Ihre Organisation durchsuchen beschrieben wird. Sie können auch die Referenzdokumentation für die Tabelle in der Tabellen/Entitäten-Referenz durchsuchen.

Erkennen von gültigen Statusübergängen

Sie können die Spalte statuscode ändern, um zu definieren, welche anderen Statusoptionen gültige Übergänge vom aktuellen Status darstellen. Anweisungen dazu finden Sie unter Festlegen von Statusgrundübergängen für Anfrage- oder benutzerdefinierte Entitäten

Wenn benutzerdefinierte Statusübergänge auf eine Tabelle angewendet werden, ist die EntityMetadata.EnforceStateTransitions-Eigenschaft true. Auch jede StatusOptionMetadata innerhalb der StatusAttributeMetadata.Options Sammlung hat eine TransitionData-Eigenschaft. Diese Eigenschaft enthält einen Zeichenfolgenwert, der ein XML-Dokument darstellt. Dieses Dokument enthält die Definition der zulässigen Übergänge. Die Standardoption der Spalte Incident (Anfrage) StatusCode kann z. B. den folgenden TransitionData-Wert haben.

<allowedtransitions xmlns="https://schemas.microsoft.com/crm/2009/WebServices">  
<allowedtransition sourcestatusid="1" tostatusid="6" />  
<allowedtransition sourcestatusid="1" tostatusid="1000" />   
<allowedtransition sourcestatusid="1" tostatusid="2000" />  
<allowedtransition sourcestatusid="1" tostatusid="5" />  
</allowedtransitions>  

Wenn diese Daten vorhanden sind und die EnforceStateTransitions-Eigenschaft der Tabelle true ist, kann jede Ereignisinstanz nur auf einen der zugelassenen statuscode-Werte geändert werden. Sie können IOrganizationService.Update verwenden, um den statuscode OptionSetValue für einen der zulässigen Werte festzulegen, die keine Statusänderung darstellen. Um den Status zu ändern, verwenden Sie SetStateRequest zum Festlegen der zulässigen Eigenschaftswerte State und Status oder CloseIncidentRequest zum Festlegen der Eigenschaft Status auf einen der Werte, die für den aktuellen statuscode-Wert zulässig sind. Wenn Sie versuchen, einen ungültigen Wert festzulegen, wird ein Fehler ausgelöst.

Siehe auch

Beispiel: Abrufen gültiger Statusübergänge
Beispiel: Überprüfen Sie den Datensatzstatus und legen Sie den Status des Datensatzes fest
Änderungen an Tabellendefinitionen abrufen und erkennen
Festlegen von Statusgrundübergängen

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).