Freigeben über


Definieren von benutzerdefinierten Statusmodellübergängen

 

Veröffentlicht: November 2016

Gilt für: Dynamics CRM 2015

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 gültigen 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.

&lt;allowedtransitions xmlns="https://schemas.microsoft.com/crm/2009/WebServices"&gt;
&lt;allowedtransition sourcestatusid="1" tostatusid="6" /&gt;
&lt;allowedtransition sourcestatusid="1" tostatusid="1000" /&gt;
&lt;allowedtransition sourcestatusid="1" tostatusid="2000" /&gt;
&lt;allowedtransition sourcestatusid="1" tostatusid="5" /&gt;
&lt;/allowedtransitions&gt;

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

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright