Dynamics CRM 2011 では、インシデント エンティティで、"ステータスの理由" オプションセット (別名 statuscode) が "ステータス" オプションセット (別名 statecode) に関連付けられています。
たとえば、このスクリーンショットを参照してください
API を使用して Status Reason オプションセットを取得すると、次のようになります。
RetrieveAttributeRequest attributeRequest = new RetrieveAttributeRequest
{
EntityLogicalName = "incident",
LogicalName = "statuscode",
RetrieveAsIfPublished = true
};
RetrieveAttributeResponse attributeResponse = (RetrieveAttributeResponse)serv.Execute(attributeRequest);
AttributeMetadata attrMetadata = (AttributeMetadata)attributeResponse.AttributeMetadata;
StatusAttributeMetadata statusMetadata = (StatusAttributeMetadata)attrMetadata;
var dict = new Dictionary<int?, string>();
foreach (OptionMetadata optionMeta in statusMetadata.OptionSet.Options)
{
dict.Add(optionMeta.Value, optionMeta.Label.UserLocalizedLabel.Label);
}
「ステータス理由」(ステータスコード)オプションのリスト全体を取得するという点で機能します。ただし、どの「ステータス理由」(statuscode) オプションがどの「ステータス」(statecode) オプションに関連しているかについての情報は得られません。
どうすればその情報を入手できますか?