草庐IT

Dynamics CRM实体系列之1:N、N:1以及N:N关系

夜月之光 2023-03-28 原文

Dynamics CRM在实施过程中会遇到很多多个实体关联的问题,这样可以实现多个实体的记录通过关联的字段实现数据的综合展示,在Sql Server里面叫做外键,在Dynamics CRM叫做关系。Dynamics CRM有三种实体间的关系。分别是1:N,N:1以及N:N

1:N关系

顾名思义1:N关系就是一对多关系,也可以理解为主从表关系。在CRM建立方式就是在子表建立一个与主表关联的外键字段,这个字段就是一个关联了主实体的LookUp的字段。建立好之后就完成了1:N关系的建立。

1:N关系的应用场景

1:N关系的应用场景一版有以下几种,主从表、字段映射、字段的限制

主从表关系前面窗体有讲到过,可以通过建立1:N关系配置主子表的数据关联以及数据展示的功能。

字段映射的功能是一个很方便实用的功能,使用字段映射我们可以在创建子实体记录的时候通过选择主实体关联的记录,将主实体记录的其他字段映射到子表对应的字段,可以节省我们通过JS或者Plugin用代码赋值的时间。具体配置方式如下:

选择需要配置映射的关系,这里以商机-订单为例:

 双击进去后,点击左边导航栏的映射进入到映射字段配置列表:

选择对应的两个需要映射的字段,左边是主实体的数据源字段右边是子实体接收主实体数据的字段,设置好后点击确定一个字段的映射就建立完成了。以后我们选择了主实体的记录后如果主实体的映射字段有值的话会相应的带入到子实体的映射字段里。

 

 字段的限制

 可以设置查找字段的必填等级、备注

设置子网格的关联视图,可以自定义显示标签名称。同时可以关联视图设置到需要显示的区域

关联行为可以设置:分派、共享、删除、取消共享的级联。比如分派了该主记录,如果配置了则会按照配置规则进行子记录的分派。

级联类型:分派、重定父级、共享、合并、取消共享的级联类型都一样:全部级联:只要做了对应的操作就会作用到对应的子键。可用项的级联:做了对应的操作后会对可用的记录进行级联。用户负责项的级联:做了对应操作后对自己权限范围内可操作部分的记录进行相应的级联。

删除级联类型:全部级联:删除主记录,所有关联子记录全部删除。移除连接:删除主记录,删除对应子记录引用自己的字段部分的数据。限制:删除主数据,如果有子数据则不允许删除。

 

 N:1关系

N:1关系与1:N关系区别不大

下面是其中一个区别,N:1关系可以配置展示视图关联实体的字段

视图展示关联信息则可以在视图配置页将关联的子表字段添加到视图列达到一个列表展示主子数据关系的目的。

配置方式如下:

以商机产品实体为例,打开视图编辑界面,添加列可以选择到对应N:1关系的商机实体,之后可以将商机实体的字段添加到视图。

 N:N关系

N:N关系是多对多的实体关系,它可以让两个实体各自的记录都可以对应多个关联实体的记录,另外关联实体的记录也可以重复关联自己的记录。

建立方式在后台实体N:N关系里面添加一条N:N关系的记录

 

 选择需要与商机建立N:N关系的实体,填写关系名称以及关联实体名称(有重复性校验),就可以创建成功N:N的关系了。

完成后系统会自动创建一个以关系实体名称命名的关系实体,我们以后添加的N:N关系的信息就会保存在这个实体中。

如果需要用代码进行关系建立的话,可以使用Associate方法,详细可以搜索我的文章中相关的介绍。

关系的内容已经讲解完了。

接下来会讲解一业务规则的一些内容,敬请期待!

 

有关Dynamics CRM实体系列之1:N、N:1以及N:N关系的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  3. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  4. ruby - Rails 关联 - 同一个类的多个 has_one 关系 - 2

    我的问题的一个例子是体育游戏。一场体育比赛有两支球队,一支主队和一支客队。我的事件记录模型如下:classTeam"Team"has_one:away_team,:class_name=>"Team"end我希望能够通过游戏访问一个团队,例如:Game.find(1).home_team但我收到一个单元化常量错误:Game::team。谁能告诉我我做错了什么?谢谢, 最佳答案 如果Gamehas_one:team那么Rails假设您的teams表有一个game_id列。不过,您想要的是games表有一个team_id列,在这种情况下

  5. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  6. 阿里云国际版免费试用:如何注册以及注意事项 - 2

    作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。​关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐

  7. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

  8. [工业相机] 分辨率、精度和公差之间的关系 - 2

    📢博客主页:https://blog.csdn.net/weixin_43197380📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由Loewen丶原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.分辨率(Resolution)1、工业相机的分辨率是如何定义的?2、工业相机的分辨率是如何选择的?二.精度(Accuracy)1、像素精度(PixelAccuracy)2、定位精度和重复定位精度(RepeatPrecision)三.公差(Tolerance)四.课后作业(Post-ClassExercises)视觉行业的初学者,甚至是做了1~2年

  9. ruby - Rails 组合多个 activerecord 关系 - 2

    我想合并多个事件记录关系例如,apple_companies=Company.where("namelike?","%apple%")banana_companies=Company.where("namelike?","%banana%")我想结合这两个关系。不是合并,合并是apple_companies.merge(banana_companies)=>Company.where("namelike?andnamelike?","%apple%","%banana%")我要Company.where("名字像?还是名字像?","%apple%","%banana%")之后,我会写代

  10. ruby - ruby 中的同一个程序如何接受来自用户的输入以及命令行参数 - 2

    我的ruby​​脚本从命令行参数获取某些输入。它检查是否缺少任何命令行参数,然后提示用户输入。但是我无法使用gets从用户那里获得输入。示例代码:test.rbname=""ARGV.eachdo|a|ifa.include?('-n')name=aputs"Argument:#{a}"endendifname==""puts"entername:"name=getsputsnameend运行脚本:rubytest.rbraghav-k错误结果:test.rb:6:in`gets':Nosuchfileordirectory-raghav-k(Errno::ENOENT)fromtes

随机推荐