Freigeben über


Definieren von benutzerdefinierten Statusmodellübergängen

Sie können benutzerdefinierte Zustandsübergänge für die Incident (Case)-Tabelle oder benutzerdefinierte Tabellen angeben. Die EntityMetadata.IsStateModelAware-Eigenschaft ist true für Tabellen gedacht, die Zustandsmodellübergänge unterstützen.

Hinweis

Obwohl die Incident Tabelle (Fall) nicht in einer Microsoft Dataverse-Standardumgebung enthalten ist, wird sie von Dynamics 365 for Customer Service verwendet und innerhalb des allgemeinen Datenmodells 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 Zustands unterstützen, weisen ein Spaltenpaar auf, in dem Zustandsmodelldaten erfasst werden, wie in der folgenden Tabelle dargestellt.

Logischer Name Anzeigename Description
statecode Status Stellt den Status des Datensatzes dar. Bei benutzerdefinierten Tabellen ist dieser Wert "Aktiv" oder " Inaktiv". Sie können keine weiteren Statusoptionen hinzufügen, aber Sie können die Auswahlbeschriftungen ä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 Statusoptionen hinzufügen und die Bezeichnungen vorhandener Optionen ändern.

Die Tabellendefinitionen für die Spalten definieren, welche Statuswerte für einen bestimmten Zustand gültig sind. Beispielsweise werden für die Incident-Tabelle (Fall) die Standard- und Statusoptionen in der nachstehenden Tabelle dargestellt.

Staat Der 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: Abgebrochen
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 Metadatenbrowserlösung, die unter "Tabellendefinitionen durchsuchen" für Ihre Organisation beschrieben ist. Sie können auch die Referenzdokumentation zur Tabelle im Referenzverzeichnis "Tabelle/Entität" durchsuchen.

Erkennen von gültigen Statusübergängen

Sie können die statuscode Spalte ändern, um zu definieren, welche anderen Statusoptionen gültige Übergänge vom aktuellen Status darstellen. Anleitungen finden Sie unter Definieren von Statusgrundübergängen für den Fall oder benutzerdefinierte Tabellen.

Wenn benutzerdefinierte Zustandsübergänge auf eine Tabelle angewendet werden, lautet die true . Außerdem verfügt jede StatusOptionMetadata in der StatusAttributeMetadata.Options -Auflistung über 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 Tabelleneigenschaft EnforceStateTransitions lautet true, kann jede Vorfallinstanz nur in einen der zulässigen statuscode Werte geändert werden. Sie können IOrganizationService.Update verwenden, um die statuscodeOptionSetValue zulässigen Werte festzulegen, die keine Änderung des Zustands 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 des Datensatzstatus und Festlegen des Datensatzstatus
Abrufen und Erkennen von Änderungen an Tabellendefinitionen
Statusgrundübergänge definieren