Del via


Definere brugerdefinerede overgange af tilstandsmodeller

 

Udgivet: januar 2017

Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Du kan angive brugerdefinerede tilstandsovergange til objektet Incident (sag) eller brugerdefinerede objekter. Egenskaben EntityMetadata.IsStateModelAware er true for objekter, der understøtter overgange af tilstandsmodellen.

Brugerdefinerede tilstandsovergange er et valgfrit niveau af filtrering for at definere, hvilke tilstandsovergange der er gyldige for en post i en given tilstand. Især hvis du har et stort antal kombinationer af gyldige tilstande og statusværdier, kan definering af en begrænset liste over indstillinger gøre det lettere at vælge den korrekte status for en post.

Dette emne indeholder

Hvad er tilstandsmodellen?

Find gyldige statusovergange

Hvad er tilstandsmodellen?

Objekter, der understøtter begrebet tilstand, har et sæt attributter, der henter data, som vist i denne tabel.

Logisk navn

Vist navn

Beskrivelse

statecode

Status

Repræsenterer postens tilstand. For brugerdefinerede objekter er det Aktiv eller Inaktiv. Objektet Incident (case) bruger Aktiv, Løst og Annulleret. Du kan ikke tilføje flere tilstandsindstillinger, men du kan ændre indstillingsetiketterne.

statuscode

Statusårsag

Repræsenterer en status, der er knyttet til en bestemt tilstand. Hver tilstand skal have mindst én mulig statusårsag. Du kan tilføje yderligere statusindstillinger og ændre etiketterne for eksisterende indstillinger.

Metadataene for attributterne definerer, hvilke statusværdier der er gyldige for en given tilstand. For Incident-objekter (sag) vises f.eks. standardtilstande og statusindstillingerne i følgende tabel.

Tilstand

Status

Label: Aktiv

Value: 0

Label: I gang

Value: 1

State: 0

Label: I venteposition

Value: 2

State: 0

Label: Venter på oplysninger

Value: 3

State: 0

Etiket: Undersøger

Value: 4

State: 0

Label: Løst

Value: 1

Label: Problemet er løst

Value: 5

State: 1

Etiket: Leverede oplysninger

Value: 1000

State: 1

Etiket: Annulleret

Value: 2

Label: Annulleret

Value: 6

State: 2

Label: Flettet

Value: 2000

State: 2

Disse data gemmes i klassen StatusOptionMetadata, som repræsenterer indstillingerne i klassen StatusAttributeMetadata.

Du kan få vist objektmetadataene for din virksomhed ved at installere Metadata-browserløsningen, der er beskrevet i Gennemse metadata for organisationen. Du kan også få vist metadataene for en ikke-tilpasset virksomhed i Excel-filen kaldet EntityMetadata.xlsx, der findes i den øverste mappe i SDK download.

Find gyldige statusovergange

Du kan redigere attributten statuscode, så den definerer, hvilke andre statusindstillinger der repræsenterer gyldige overgange fra den aktuelle status. Du kan finde vejledning i emnet i tilpasningsguiden: Definer statusårsagsovergange

Når der anvendes brugerdefinerede tilstandsovergange til et objekt, vil objektet EntityMetadata.EnforceStateTransitions være true. Desuden vil hver StatusOptionMetadata inden for hver StatusAttributeMetadata.Options-samling have en ny TransitionData-egenskab. Denne egenskab indeholder en String-værdi, der repræsenterer et XML-dokument. Dette dokument indeholder en definition af de tilladte overgange. Standardindstillingen for attributten Incident (sag) StatusCode kan f.eks. have følgende TransitionData-værdi.

<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>

Bemærk

Når disse data f.eks. er hentet i ikke-administreret kode fra webtjenesten vha. JavaScript, vil de være udeladt og vises som i følgende eksempel.

&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;

Når disse data er til stede, og egenskaben for objektet EnforceStateTransitions er true, kan en hændelsesforekomst kun ændres til en af de tilladte statuscode-værdier. Du kan bruge IOrganizationService.Update til at angive statuscodeOptionSetValue til en af de tilladte værdier, der ikke repræsenterer en ændring i tilstanden. Hvis du vil ændre tilstanden, skal du bruge indstillingen SetStateRequest, de tilladte State- og Status-egenskabsværdier eller indstillingen CloseIncidentRequest og Status-egenskaben til en af de tilladte værdier for den aktuelle statuscode-værdi. Forsøg på at indstille en ugyldig værdi giver en fejl.

Se også

Eksempel: Hente gyldige statusovergange
Posttilstand og -status
Hent og registrer ændringer af metadata
Definer overgange for statusårsag

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret