在Dynamics CRM 2011中,在事件实体上,“状态原因”选项集(又称状态码)与“状态”选项集(也称为状态码)相关,
例如看到这个截图
当我使用API来检索状态原因选项集时,如下所示:
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)选项的整个列表.但是,我没有获取任何有关“状态原因”(statuscode)选项与哪个“状态”(statecode)选项相关的信息.
如何获取该信息?
解决方法
你已经有一切尝试将这段代码插入foreach:
int stateOptionValue = (int)((StatusOptionMetadata)optionMeta).State;
如果使用StatusOptionMetadata的State属性,请参阅StatusAttributeMetaData.OptionSet.Options层次结构可以返回一个名为StatusOptionMetadata的类型,它将返回该statuscode属于的状态码.
原文地址:https://www.jb51.cc/csharp/92788.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。