Recuperare tutti i valori di una choice di una entità (CRM Online)
In una entità del Dataverse ci possono essere dei campi definiti choice, i classici menu a tendina.
Questi campi sono caratterizzati dall'avere una label/testo visualizzato e un identificativo numerico. L'identificativo numerico è il valore che viene persistito sull'entità.
Questa entità contiene tutti i valori dei campi choice di tutte le entità del Dataverse in tutte le lingue possibili.
Ad esempio per visualizzare tutti i valori del campo choice statuscode dell'entità Approvals, la query è questa:
dove
Quello che interessa sono solo i campi attributevalue e value
da questo risultato
Ma come faccio a trovare il nome interno?
Si può andare su Power Apps (https://make.powerapps.com) e cercare nelle tabelle presenti in Data / Tables.
Verifica che nella vista ci sia All e inserisci nel testo di ricerca il nome dell'entità.
Nella colonna Name compare il nome interno dell'entità.cliccando sulla entità si può trovare anche il nome interno del campo choice
Questi campi sono caratterizzati dall'avere una label/testo visualizzato e un identificativo numerico. L'identificativo numerico è il valore che viene persistito sull'entità.
Precedentemente Dataverse era conosciuto come Common Data Service (CDS)
Se si vuole conoscere tutti i possibili valori, inteso come accoppiata valore numerico e label, bisogna fare riferimento all'entità stringmap.Questa entità contiene tutti i valori dei campi choice di tutte le entità del Dataverse in tutte le lingue possibili.
Ad esempio per visualizzare tutti i valori del campo choice statuscode dell'entità Approvals, la query è questa:
SQL
select *
from stringmap
where attributename = 'statuscode' and objecttypecode='msdyn_flow_approval' and langid=1033
order by displayorder
- attributename = nome del campo choice
- objecttypecode = nome interno dell'entità
- langid = codice della lingua (1033=inglese, 1040=italiano, ecc...) della specifica traduzione
- attributevalue = valore numerico della singola voce del campo choice
- value = label della singola voce
- displayorder = ordine di visualizzazione delle label
Per eseguire la query si può usare il tool XrmToolBox con il plugin SQL 4 CDS.
da un risultato come questoattributename;attributevalue;displayorder;langid;objecttypecode;objecttypecodename;organizationid;stringmapid;value;versionnumber statuscode;192350000;1;1033;msdyn_flow_approval;Approval;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;c4f1dac1-36bd-eb11-8235-000d3abc6062;Created;NULL statuscode;192350001;2;1033;msdyn_flow_approval;Approval;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;c5f1dac1-36bd-eb11-8235-000d3abc6062;Pending;NULL statuscode;192350002;3;1033;msdyn_flow_approval;Approval;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;c6f1dac1-36bd-eb11-8235-000d3abc6062;Suspended;NULL statuscode;192350004;4;1033;msdyn_flow_approval;Approval;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;c7f1dac1-36bd-eb11-8235-000d3abc6062;Completed;NULL statuscode;192350005;5;1033;msdyn_flow_approval;Approval;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;c8f1dac1-36bd-eb11-8235-000d3abc6062;Expired;NULL statuscode;192350006;6;1033;msdyn_flow_approval;Approval;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;c9f1dac1-36bd-eb11-8235-000d3abc6062;Canceled;NULL statuscode;192350007;7;1033;msdyn_flow_approval;Approval;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;caf1dac1-36bd-eb11-8235-000d3abc6062;Abandoned;NULL
Quello che interessa sono solo i campi attributevalue e value
SQL
select attributevalue, value
from stringmap
where attributename = 'statuscode' and objecttypecode='msdyn_flow_approval' and langid=1033
order by displayorder
attributevalue;value 192350000;Created 192350001;Pending 192350002;Suspended 192350004;Completed 192350005;Expired 192350006;Canceled 192350007;Abandoned
Nomi inteni
Nell'esempio ho usato sull'entità Approvals che ha uno specifico nome interno ovvero msdyn_flow_approval.Ma come faccio a trovare il nome interno?
Si può andare su Power Apps (https://make.powerapps.com) e cercare nelle tabelle presenti in Data / Tables.
Verifica che nella vista ci sia All e inserisci nel testo di ricerca il nome dell'entità.
Nella colonna Name compare il nome interno dell'entità.cliccando sulla entità si può trovare anche il nome interno del campo choice