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à.
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
dove
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.
Quello che interessa sono solo i campi attributevalue e valueXmlTollbox
SQL
select attributevalue, value
from stringmap
where attributename = 'statuscode' and objecttypecode='msdyn_flow_approval' and langid=1033
order by displayorder
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à.Nome interno entitàcliccando sulla entità si può trovare anche il nome interno del campo choiceNome interno campo