首页 > 其他分享 >Dynamic CRM后端增删改查,带事务提交回滚的实现

Dynamic CRM后端增删改查,带事务提交回滚的实现

时间:2023-09-15 15:59:07浏览次数:42  
标签:回滚 requestToSaveRecords newEntity Dynamic 实体 改查 entity new true

1.引用类库程序集

  using Microsoft.Xrm.Sdk.Messages;

2.创建实例

  ExecuteTransactionRequest requestToSaveRecords = new ExecuteTransactionRequest()
  {
    Requests = new OrganizationRequestCollection(),
    ReturnResponses = true,
  };

 

3.查询方法

  IOrganizationService orgService = OrgServiceUtil.Client;

       //单条查询

  var oldEntity = orgService.Retrieve("实体名", 实体ID, new ColumnSet(true));

  //多条查询

  QueryExpression boxdetailquery = new QueryExpression("实体名")
  {
    NoLock = true,
    ColumnSet = new ColumnSet(true),
    Criteria =
    {
      Conditions=
      {
        new ConditionExpression("foton_box",ConditionOperator.Equal,item),
        new ConditionExpression("statecode",ConditionOperator.Equal,0)
      }
    }
  };
  var boxs = orgService.RetrieveMultiple(boxdetailquery);

 

4.创建新增记录

  //实体记录所有字段复制实现

  Entity newEntity = oldEntity.Copy();

  Guid new_id = Guid.NewGuid();

  //重置字段
  newEntity.Id = new_id;
  newEntity["detailid"] = new_id;//Id

  //两个选项字段的赋值
  newEntity["isrepeat"] = true;

  //选项集字段的赋值

  newEntity["shipvia"] = new OptionSetValue(shipvia);

  //浮点数字段赋值,为0需转换一下double类型,否则会报错
  newEntity["amount"] = Convert.ToDouble(0);
  //查找类型字段赋值为空
  newEntity["command"] = null;
  //查找类型字段赋值

  newEntity["command1"] = new EntityReference("实体名",userId);

  //状态类型字段赋值

  newEntity["state"] = new OptionSetValue(0);

  requestToSaveRecords.Requests.Add(new CreateRequest() { Target = newEntity });

 

5.更新实体记录

  var entity = new Entity("实体名", Id);

  entity["shipvia"] = new OptionSetValue(shipvia);
  entity["status"] = new OptionSetValue(136020013);
  entity["shippingboxs"] = "";
  entity["command"] = null;

  requestToSaveRecords.Requests.Add(new UpdateRequest() { Target = entity });

 

6.删除实体记录
  var entityReference = new EntityReference("实体名", new Guid(item.itemid));

  requestToSaveRecords.Requests.Add(new DeleteRequest() { Target = entityReference });

7.提交执行,当其中有执行失败的,不会提交。

  orgService.Execute(requestToSaveRecords);

标签:回滚,requestToSaveRecords,newEntity,Dynamic,实体,改查,entity,new,true
From: https://www.cnblogs.com/jiangyuhu/p/17705159.html

相关文章

  • Dynamic CRM 字段数据类型及其后端赋值方式
    dynamiccrm字段数据类型及其赋值方式首先实例化一个对象:Entity_entity=newEntity("salesorder");1.十进制数取值:var_typeDecimal=_entity.GetAttributeValue<decimal>("unitprice");赋值:_entity["unitpri......
  • Dynamic CRM调用WCF接口获取选项集的说明数据
    一、SQL语句:selectValueId,LabelName fromLocalizedLabelaleftjoinAttributePicklistValuebona.ObjectId=b.AttributePicklistValueIdleftjoinOptionSetconb.OptionSetId=c.OptionSetIdwherea.ComponentState=0andb.ComponentState=0a......
  • HBase|idea使用hbase进行简单的DDL增删改查
    老师要测试什么的,所以我想练习一下,顺便记录在博客里,如有错误,敬请指正,谢谢!!!idea连接hbase首先确保你可以打开Hbase http://192.168.40.100:16010查看所有表 //导入所需的类和包,包括HBase的相关类importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.......
  • Dynamic CRM 注册插件
    注册插件:  1.启动插件注册工具  2.创建一个新的链接              3.输入登录信息,然后点击登陆注意:红框中标识的第一个是链接方式,第二个是IP地址,第三个是端口号,第四个是......
  • HBase学习5(HBase java编程:创建项目,创建删除表,数据增删改查)
    1.准备工作1.1创建IDEAMaven项目其中名字为hbase_op,groupid为cn.itcast然后导入pom依赖<repositories><!--代码库--><repository><id>aliyun</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url>&l......
  • mysql事务回滚
    前几天发现程序有个Bug:使用JPA已经设置了回滚,但抛出异常后,提交的事务并没有回滚。刚开始以为是JPA使用问题,debug了近2个多小时竟然找不到原因。后来上网查了一下,才发现不是程序问题(坑爹啊,看来自己对mysql还是不熟),是数据库表问题(JPA自动建表)。原因如下:mysql建表时如果指定ENG......
  • [LeetCode] 85. Maximal Rectangle_Hard tag: Dynamic Programming
    Givena rowsxcols binary matrix filledwith 0'sand 1's,findthelargestrectanglecontainingonly 1'sandreturn itsarea. Example1:Input:matrix=[["1","0","1","0","0"],["1&q......
  • HBase学习3(增删改查)
    1.启动hbaseshellHBase的shell其实就是JRuby的IRB(交互式Ruby),但在其中添加了一些HBase的命令。输入:hbaseshell2.创建表语法:create'表名','列蔟名'...例如:创建订单表,表名为ORDER_INFO,该表有一个列蔟为C1create'ORDER_INFO','C1'3.添加数据HBase中的put命令,可以用来将......
  • 名片管理系统(函数、增删改查)
    '''需求:名片管理系统1.基本的欢迎界面,功能菜单2.用户可以输入不同的数字进入菜单页3.根据功能选择,执行不同的功能4.用户信息:姓名/电话/QQ/邮件5.针对以上信息,需要提供CRUD(增删改查)'''#封装函数defwelcome_menu():......
  • DBUtils工具类实现增删改查
    DBUtils工具类实现增删改查一、数据库连接池Druid工具类二、DBUtils实现增删改三、DBUtils实现查询单条数据四、DBUtils实现查询批量数据五、DBUtils实现按键值对查询数据六、查询单个数据QueryRunner提供对sql语句操作的APIResultSetHandler接口,用于定义select操作后,怎样封装结......