Definieren von benutzerdefinierten Statusmodellübergängen
Veröffentlicht: Januar 2017
Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
In Incident können Sie benutzerdefinierte Statusübergänge für die (Anfrage)-Entität oder benutzerdefinerte Entitäten angeben. Die Eigenschaft EntityMetadata.IsStateModelAware ist true für Entitäten, die Statusmodellübergänge unterstützen.
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.
In diesem Thema
Was ist das Statusmodell?
Erkennen von gültigen Statusübergängen
Was ist das Statusmodell?
Entitäten, die das Statuskonzept unterstützten, verfügen über ein Paar von Attributen, die diese Daten aufnehmen, wie in der folgenden Tabelle gezeigt.
Logischer Name |
Anzeigename |
Beschreibung |
---|---|---|
statecode |
Status |
Stellt den Status des Datensatzes dar. Für benutzerdefinierte Entitäten ist dies Aktiv oder Inaktiv. Die Entität Incident (case) verwendet Aktiv, Abgeschlossen und Storniert. Sie können keine weiteren Statusoptionen hinzufügen, aber Sie können die Optionsbeschriftungen ä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 zusätzliche Statusoptionen hinzufügen und die Bezeichnungen von vorhandenen Optionen ändern. |
Die Metadaten für die Attribute definieren, welche Statuswerte für einen bestimmten Status gültig sind. Beispielsweise werden für die Entität Incident (Anfrage) der Standardstatus und die -statusoptionen in der folgenden Tabelle gezeigt.
Status |
Status |
---|---|
Label: Aktiv Value: 0 |
Label: In Bearbeitung Value: 1 State: 0 |
Label: Zurückgestellt Value: 2 State: 0 |
|
Label: Warten auf Details Value: 3 State: 0 |
|
Beschriftung: Recherche Value: 4 State: 0 |
|
Label: Behoben Value: 1 |
Label: Problem behoben Value: 5 State: 1 |
Beschriftung: Bereitgestellte Informationen Value: 1000 State: 1 |
|
Beschriftung: Storniert Value: 2 |
Label: Storniert Value: 6 State: 2 |
Label: Zusammengeführt Value: 2000 State: 2 |
Diese Daten werden in der Klasse StatusOptionMetadata gespeichert, die die Optionen in der Klasse StatusAttributeMetadata darstellt.
Zum Anzeigen der Entitätsmetadaten für Ihre Organisation installieren Sie die Metadatenbrowserlösung, die in Durchsuchen der Metadaten für die Organisation beschrieben ist. Sie können auch die Metadaten für ein nicht angepasstes Unternehmen in einer Excel-Tabellenkalkulation mit der Bezeichnung EntityMetadata.xlsx anzeigen, die im obersten Ordner des SDK-Downloads enthalten ist.
Erkennen von gültigen Statusübergängen
Sie können das statuscode-Attribut ändern, um zu definieren, welche anderen Statusoptionen gültige Übergänge aus dem aktuellen Status darstellen. Anweisungen dazu finden Sie in der Anleitung zur Anpassung in folgendem Thema: Festlegen von Statusgrundübergängen
Wenn benutzerdefinierte Statusübergänge auf eine Entität angewendet werden, muss die Eigenschaft EntityMetadata.EnforceStateTransitions auf true festgelegt sein. Außerdem hat jede StatusOptionMetadata innerhalb der Sammlung StatusAttributeMetadata.Options eine neue Eigenschaft TransitionData. Diese Eigenschaft enthält einen Zeichenfolgenwert, der ein XML-Dokument darstellt. Dieses Dokument enthält die Definition der zulässigen Übergänge. Beispielsweise kann die standardmäßige Incident (Anfrage) StatusCode-Attributoption 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>
Hinweis
Wenn diese Daten in nicht verwaltetem Code von dem Webdienst abgerufen werden, beispielsweise bei Verwendung von JavaScript, werden sie umgangen und erscheinen wie im folgenden Beispiel.
<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 Entitätseigenschaft EnforceStateTransitions auf true festgelegt ist, kann eine Vorfallinstanz nur in einen der zulässigen statuscode-Werte geändert werden. Sie können IOrganizationService.Update verwenden, um den statuscodeOptionSetValue in einen der zulässigen Werte zu ändern, 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
Datensatzzustand und -status
Abrufen und Erkennen von Änderungen bei Metadaten
Festlegen von Statusgrundübergängen
Microsoft Dynamics 365
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright