Definire le transizioni personalizzate del modello di stato
Data di pubblicazione: gennaio 2017
Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
È possibile specificare le transizioni di stato personalizzate per l'entità Incident (Caso) o per le entità personalizzate. La proprietà EntityMetadata.IsStateModelAware è true per le entità che supportano le transizioni del modello di stato.
Le transizioni di stato personalizzate sono un livello facoltativo di filtro per definire quali transizioni di stato sono valide per un record in uno stato specificato. La definizione di un elenco limitato di opzioni può semplificare agli utenti la scelta dello stato corretto per un record, particolarmente quando si dispone di un elevato numero di combinazioni per stati validi e valori di stato.
In questo argomento
Qual è il modello di stato?
Rilevare transizioni di stato valide
Qual è il modello di stato?
Le entità che supportano il concetto di stato hanno una coppia di attributi che acquisiscono questi dati, come illustrato nella tabella.
Nome logico |
Nome visualizzato |
Descrizione |
---|---|---|
statecode |
Stato |
Rappresenta lo stato del record. Per entità personalizzate, cioè Attiva o Inattiva. L'entità Incident (case) utilizza Attivo, Risolto e Annullato. Non è possibile aggiungere altre opzioni di stato, ma è possibile modificare le etichette di opzioni. |
statuscode |
Motivo stato |
Rappresenta uno stato che è collegato a uno stato specifico. Ogni stato deve disporre di almeno uno stato possibile. È possibile aggiungere ulteriori opzioni di stato e modificare le etichette di opzioni esistenti. |
I metadati per gli attributi definiscono quali valori di stato sono validi per uno specifico stato. Ad esempio, per l'entità Incident (Caso), lo stato predefinito e le opzioni di stato sono riportati nella tabella seguente.
Stato |
Stato |
---|---|
Label: Attivo Value: 0 |
Label: In corso Value: 1 State: 0 |
Label: Bloccato Value: 2 State: 0 |
|
Label: In attesa di dettagli Value: 3 State: 0 |
|
Etichetta: Ricerche in corso Value: 4 State: 0 |
|
Label: Risolto Value: 1 |
Label: Problema risolto Value: 5 State: 1 |
Etichetta: Informazioni fornite Value: 1000 State: 1 |
|
Etichetta: Annullato Value: 2 |
Label: Annullato Value: 6 State: 2 |
Label: Unito Value: 2000 State: 2 |
Questi dati vengono archiviati nella classe StatusOptionMetadata, che rappresenta le opzioni nella classe StatusAttributeMetadata.
Per visualizzare i metadati di entità per l'organizzazione, installa la soluzione Browser di metadati descritta in Visualizzazione dei metadati per l'organizzazione. Puoi inoltre visualizzare i metadati per un'organizzazione non personalizzata nel file Excel EntityMetadata.xlsx incluso nella cartella di livello superiore di Download degli SDK.
Rilevare transizioni di stato valide
È possibile modificare l'attributo statuscode per definire quali altre opzioni di stato rappresentino transizioni valide dallo stato corrente. Per istruzioni, vedere l'argomento della Guida alla personalizzazione: Definire le transizioni di motivo stato
Quando transizioni di stato personalizzate vengono applicate a un'entità, la proprietà EntityMetadata.EnforceStateTransitions sarà true. Inoltre, ogni StatusOptionMetadata all'interno della raccolta StatusAttributeMetadata.Options disporrà di una nuova proprietà TransitionData. Questa proprietà conterrà un valore Stringa che rappresenta un documento XML. Questo documento contiene la definizione delle transizioni consentite. Ad esempio, l'opzione dell'attributo predefinita Incident (Caso) StatusCode può avere il seguente valore TransitionData.
<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>
Nota
Quando tali dati vengono recuperati nel codice non gestito dal servizio Web, ad esempio quando si usa JavaScript, utilizzeranno una sequenza di escape e appariranno come nell'esempio seguente.
<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>
Quando tali dati sono presenti e la proprietà dell'Entità EnforceStateTransitions è true, ogni istanza degli incidenti può solo essere modificata con uno dei valori statuscode consentiti. È possibile utilizzare IOrganizationService.Update per impostare statuscodeOptionSetValue su qualsiasi dei valori consentiti che non rappresentano una modifica nello stato. Per modificare lo stato, utilizzare SetStateRequest impostando i valori della proprietà consentiti State e Status o CloseIncidentRequest impostando la proprietà Status su uno dei valori consentiti per il valore corrente statuscode. Il tentativo di impostare un valore non valido genera un errore.
Vedere anche
Esempio: recuperare le transizioni di stato valide
Stato e motivo stato del record
Recuperare e rilevare le modifiche apportate ai metadati
Definisci le transizioni di motivi stato
Microsoft Dynamics 365
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright