Dynamic CRM插件中获取Entity属性值问题
插件中获取Entity不同类型字段时稍有区别,一般用如下两种方式:
Entity targetEntity = (Entity)context.InputParameters["Target"];
1.decamil val = Convert.ToDecimal(targetEntity["new_cmremainingamount"]);
2.decamil val = targetEntity.GetAttributeValue<decimal>("new_cmremainingamount");
即通过强转或者GetAttributeValue方式,第一种方式不建议使用,赋值时用这种方式会比较简洁一些,但在获取值时,直接拿,如果值为空则会抛出空指针异常,用第二种方式,如果值为空则返回null,不为空就正常返回值。
附上CRM中字段类型:
货币:new Money(Decimal)
查找:new EntityReference(objecttypename,Guid)
下拉:new OptionSet(Int)
选项集:false/true
时间:DateTime
整数:Integer
十进制数:Decimal
浮点数:Double
单行/多行文本:String
if (!targetEntity.Contains("new_cmremainingamount")&& !targetEntity.Contains("new_partsremainingamount"))
{
return;
}
decimal singleVolume = 0;
decimal singleWeight = 0;
singleVolume = !detailEntity.Contains("new_singlevolume") ? 0 : detailEntity.GetAttributeValue<decimal>("new_singlevolume");
singleWeight = !detailEntity.Contains("new_singleweight") ? 0 : detailEntity.GetAttributeValue<decimal>("new_singleweight");
decimal amountBalance = 0;
foreach (Entity en in entityCollection.Entities)
{
amountBalance += !en.Contains("new_cmremainingamount") ? 0 : en.GetAttributeValue<Money>("new_cmremainingamount").Value;
}
或者也可以通过?.的方式
amountBalance += en.GetAttributeValue<Money>("new_cmremainingamount")?.Value ?? 0;
Dynamic CRM插件中获取Entity属性值问题的更多相关文章
- Dynamic CRM插件中记录日志-Nlog记录到文本
Dynamic CRM插件中记录日志的方式有多种 通常情况下分为ITracingService记录.单独日志表插入记录.文本记录三种. 之前整理过ITracingService记录的方式,但这种记录有 ...
- ASP.NET Core EF 查询获取导航属性值,使用Include封装
// 引用 using Microsoft.EntityFrameworkCore; // 摘要: // Specifies related entities to include in the qu ...
- JS中使用document.defaultView.getComputedStyle()、currentStyle()方法获取CSS属性值
在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如: 1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属性 ...
- java中获取系统属性以及环境变量
java中获取系统属性以及环境变量 System.getEnv()和System.getProperties()的差别 从概念上讲,系统属性 和环境变量 都是名称与值之间的映射.两种机制都能用来将用户 ...
- JS中获取元素属性的逆天大法
给大家聊下js中获取元素属性的逆天大法,胆小慎入,切记切记!!! innerHTML.outerHTML.innerText .outerText.value.text().html(),val() ...
- thymeleaf 模板使用 之 前台界面获取后台属性值
使用Thymeleaf模板时,如果需要在js中获取后台传值,那么需要用内联JS写法获取 [姿势很重要] 一.后台通过Model的addAttribute方法向前台传值 1.js获取后台属性值(--内联 ...
- js中获取css属性
直接获取 window.onload = function() { var but = document.getElementById('button'); var div = document.ge ...
- GridView控件RowDataBound事件中获取列字段值的几种途径
前台: <asp:TemplateField HeaderText="充值总额|账号余额"> <ItemTemplate> <asp:Label ID ...
- c# 如何通过反射 获取\设置属性值
c# 如何通过反射 获取\设置属性值 //定义类public class MyClass{public int Property1 { get; set; }}static void Main(){M ...
- js对象中动态读取属性值 动态属性值 js正则表达式全局替换
$(document).ready(function(){ var exceptionMsg = '${exception.message }'; var exceptionstr = ''; //j ...
随机推荐
- 『玩转Streamlit』--多页应用
Streamlit不仅让创建单页应用变得易如反掌,更通过一系列创新特性,支持构建多页面应用,极大地丰富了用户体验和数据探索的可能性. 随着我们Streamlit App的功能逐渐增多之后,单个页面展示 ...
- 线性枚举(C语言)
1.求最大值 比如求一个线性表中的最大值,可以先设定一个最大值,把它初始化为一个非常小的数,然后遍历给定的线性表,将其中的每个元素和目前的最大值比较,如果比它大,则更新这个最大值: 如果比它小,就不做 ...
- Redis数据结构:List类型全面解析
文章目录 一.List数据类型 1.1 简介 1.2 应用场景 1.3 底层结构 二.数据结构 2.1 压缩列表ZipList 2.2 双向链表LinkedList(后续已废弃) 2.3 快速链表Qu ...
- PostgreSQL系统表或视图中pg_node_tree类型值解析
PostgreSQL系统表或视图中pg_node_tree类型值解析 pg_node_tree类型说明 pg_node_tree是一种openGauss/PostgreSQL内部数据类型,用于表示树形 ...
- Redis中的分布式锁(步步为营)
分布式锁 概述 分布式锁指的是,所有服务中的所有线程都去获取同一把锁,但只有一个线程可以成功的获得锁,其他没有获得锁的线程必须全部等待,直到持有锁的线程释放锁. 分布式锁是可以跨越多个实例,多个进程的 ...
- 方法的虚分派(virtual dispatch)和方法表(method table)
Java方法调用的虚分派 JUN 2ND, 2013 | COMMENTS 本文通过介绍 Java 方法调用的虚分派,来加深对 Java 多态实现的理解.需要预先理解 Java 字节码和 JVM 的基 ...
- Impala学习--Impala概述,Impala系统架构
Imapla概述 Impala是Cloudera公司的一个实时海量查询产品.是对于已有Hive产品的补充.Impala采用了和Hive相同的类SQL接口,但并没有采用MapRed框架执行任务,而是采用 ...
- Codeforces Round 960 (Div.2)
A 非常容易观察到性质,注意 Alice 为先手,发现当 \(a_{\max}\) 的个数为奇数时显然能 win,但如果 \(a_{\max}\) 的个数为偶数且有一个数具有奇数个可以作为跳板,那么也 ...
- 使用 spring stream 发送消息
为什么使用spring stream ? spring stream 是用来做消息队列发送消息使用的.他隔离了各种消息队列的区别,使用统一的编程模型来发送消息. 目前支持: rabbitmq kafk ...
- Coqui TTS合成语音
工具介绍 Coqui TTS是一个用于语音转文本的高性能深度学习模型库.提供1100种语言的预训练模型,提供训练新模型和微调已有模型的工具,提供数据集分析工具.XTTS-v2版本支持16种语言: En ...