本篇继续来介绍两个web api的接口,一个是“Create related entities in one operation”即在一步操作中完成主实体的创建加关联实体的创建,一个是“Associate entities on create“即在创建记录的时候填充lookup字段。

先来说第一个api,老规矩直接上代码,稍微做下解释,注意下面的几点不存在先后顺序,我只是分开说明罢了

1、这里创建一个account实体记录

2、创建一条名为"John Smith"的contact记录(注意这条记录是新建的不是已经存在的),赋值给account中的primarycontactid(与联系人关联的lookup字段)属性字段

3、创建一条名为"测试联系人"的contact记录,account记录和这条测试联系人记录是1:N的关系,也就是说这里的contact记录可以创建多条

4、在第3点中创建的contact记录中再关联task记录,原理同第三点

var entity =new Object();entity["name"] = 'Create related entities';//文本var contact=new Object();contact["firstname"]="John";contact["lastname"]= "Smith";entity["primarycontactid"]=contact;var contact_customer_accounts=new Array();contact_customer_accounts[0]=new Object();contact_customer_accounts[0]["firstname"]="联系人";contact_customer_accounts[0]["lastname"]="测试";var Contact_Tasks=new Array();Contact_Tasks[0]=new Object();Contact_Tasks[0]["subject"]="Task associated to contact";contact_customer_accounts[0]["Contact_Tasks"]=Contact_Tasks;entity["contact_customer_accounts"]=contact_customer_accounts;var jsonEntity = window.JSON.stringify(entity);var req = new XMLHttpRequest()req.open("post",Xrm.Page.context.getClientUrl() + "/api/data/v8.0/accounts", false);req.setRequestHeader("Accept", "application/json");req.setRequestHeader("Content-Type", "application/json; charset=utf-8");req.setRequestHeader("OData-MaxVersion", "4.0");req.setRequestHeader("OData-Version", "4.0");req.onreadystatechange = function () {if (this.readyState == 4) {if (this.status == 204) {}else {var data=JSON.parse(this.responseText).error.message;}}};req.send(jsonEntity);

关于代码中的contact_customer_accounts的由来如下截图,Contact_Tasks也是同理可以在contact中找到,架构名称注意大小写

有图有真相,上截图

创建的account主实体记录,account中的"John Smith"的lookup字段关联的contact也是本次operation中新建的

account记录下关联的多条(我这只创建了一条)联系人记录

测试联系人记录下创建的多条(我这只创建了一条)task记录

上述即是一个create operation中产生的数据记录,是不是很cool。这个场景一般在后台代码中用的比较多,以前的做法都是通过组织服务先创建主记录后,拿到主记录的guid然后再一条条的创建子记录,现在一个api一次request就能搞定。

关于第二个api"Associate entities on create",这里不多做阐述了,以上面的demo来举例,就是创建一条account记录给primarycontactid这个lookup字段赋值,实际过程中用到的不多,就算要用到也都直接是包含在create的api中了。

Dynamics CRM2016 Web API之Create related entities in one operation相关推荐

  1. Dynamics CRM2016 Web API之更新记录

    本篇继续探索web api,介绍如何通过web api更新记录. 下面是一段简单的更新代码,更新了几个不同类型的字段,entity的赋值和前篇创建时候的一样的. var entity = {};ent ...

  2. Dynamics CRM2016 Web API之创建记录

    前篇介绍了通过primary key来查询记录,那query的知识点里面还有很多需要学习的,这个有待后面挖掘,本篇来简单介绍下用web api的创建记录. 直接上代码,这里的entity的属性我列了几 ...

  3. Dynamics CRM2016 Web Api之根据时间查询数据

    我的博文里已经有多次提到CRM中的时间处理问题了,本篇继续探讨在web api的场景下时间字段如何处理,本篇只涉及查询,针对2016中新增的时间行为"用户当地时间"和"无 ...

  4. Dynamics CRM2016 Web API之查询单个属性字段的值

    之前已有文章介绍过通过web api来更新单个属性字段的值,本篇要讲的是查询,查询其实很简单但其中有个注意点,这就是本篇文章的目的. 主要的区别在于js代码返回的结果的处理上,下面这段代码乍看之下没问 ...

  5. 【转】Dynamics CRM 365零基础入门学习(三)Dynamics 通过Web API 来调用自定义的Action(使用插件)

    今天想实现一个Search Product的功能,首先要将数据展示在页面,然后前端根据查询需求进行处理.之前是在salesforce中实现的,可以定义一个Search Product的页面,然后在页面 ...

  6. Dynamics 365本地部署版本配置OAuth 2 Password Grant以调用Web API

    微软动态CRM专家罗勇 ,回复330或者20190504可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 根据官方建议,不要再使用Dynamics 365 Custome ...

  7. Dynamics CRM2016 Update or Create parentcustomerid in Contact using web api

    联系人实体中有个特殊的字段parentcustomerid 在通过web api创建或更新记录时,如果在给这个字段赋值时当做查找字段对待的话,那你就会遇到问题了,报错信息如下 正确的赋值方式如下 转载 ...

  8. Dynamics CRM2016 通过web api来调用自定义action

    action操作很早就已出现,今天要分享的是通过web api来调用action,该功能在online版本中非常有用,可以将js中复杂的逻辑操作放在处理能力更强的后端来做. 首先咱们先简单的新建一个a ...

  9. Dynamics CRM中跨域调用Web API 2

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复224或者20160611可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

最新文章

  1. RHEL 5服务篇—修改MySQl数据库root密码的几种方式
  2. VS2008修改工程名
  3. java课程设计图片浏览器_java课程设计图片浏览器
  4. TMG2010发布web服务器
  5. Spring 社区的唯一一个国产开源项目 - Spring Cloud Alibaba 毕业了
  6. 使用Jupyter Notebook+bokeh绘图入门完整步骤
  7. Java中List, Integer[], int[]的相互转换
  8. 子级Repeater获取 父级Repeater 中的值
  9. R语言空间权重矩阵columbus及画图
  10. 教科书级——黑盒测试设计用例的方法的介绍
  11. vue tinymce安装及使用
  12. 淘宝店铺店名起、分类如何定【太原网络营销师】教你
  13. 笔记本连接无线网络后通过有线网口共享网络
  14. Node-Red UI界面基础设计
  15. cron表达式及其验证方法
  16. 2022北京冬奥会开幕式视觉盛宴技术揭晓
  17. 博士科研论坛和一些学者研究
  18. 运营︱如何实现用户增长?
  19. 数据预处理概述和数据清洗
  20. HTML制作简单交互网页

热门文章

  1. ZigBee无线抄表系统集中器设计
  2. 完爆Excel表格的酷炫大屏效果,可视化还能这么玩?
  3. FPDLINK与GMSL汇总
  4. 企业应如何做好客户管理和客户服务
  5. R语言ggplot2 | 如何绘制美观的散点图
  6. python 测试端口连通_python探测服务器端口连通性
  7. SpringMvc 限流之 RateLimiter
  8. word中把带有某个符号的行全部选中,更改为标题
  9. 暑假线上兼职:300-500元/小时,安利一个大学生也能月入8K的线上兼职
  10. 论文笔记:Modeling Consumer Preferences and Price Sensitivities from Large-Scale Grocery Shopping Transac