我正在使用插件,并希望根据记录状态代码值执行操作。我在网上看到您可以使用 entity.FormattedValues["statuscode"]
从选项集中获取值,但是当尝试它时,我收到一条错误消息“字典中不存在给定的键” .
我知道当插件无法找到您要查找的字段的更改时,可能会发生这种情况,但我已经使用 entity.Contains("statuscode") 检查了它是否存在
它通过了,但仍然遇到这个错误。
谁能帮我找出失败的原因吗?
谢谢
最佳答案
我之前没有见过entity.FormattedValues
。
我通常使用entity.Attributes
,例如entity.Attributes["statuscode"]
.
编辑
Crm 将许多值包装在包含附加信息的对象中,在本例中,statuscode 使用 OptionSetValue,因此要获取您需要的值:
((OptionSetValue)entity.Attributes["statuscode"]).Value
这将返回一个数字,因为这是 Crm 中的基础值。
如果您在 Crm 中打开自定义选项,您通常(某些系统字段被锁定)能够看到每个选项的标签和值。
如果您需要标签,您可以根据 Crm 中的信息进行一些硬编码。
或者您可以按照描述从元数据服务检索它 here 。
关于plugins - 在 C# 中获取状态码文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12406864/