Definere brugerdefinerede overgange af tilstandsmodeller
Udgivet: november 2016
Gælder for: Dynamics CRM 2015
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 gyldige 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.
<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>
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
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret