dynamic 365 常用后端操作和方法

dynamic 365 常用后端操作和方法

dynamic 365 常用后端操作

//获取操作记录
Entity entity = (Entity)context.InputParameters["Target"];

//获取当前记录
Entity entity = service.Retrieve(context.PrimaryEntityName, context.PrimaryEntityId, new ColumnSet(true));

//获取选项集的value
entity.GetAttributeValue<OptionSetValue>("tec_approvalstatus").Value
((OptionSetValue)getEntityRecord["tec_approvalstatus"]).Value

//获取时间
getDeal.GetAttributeValue<DateTime>("tec_stagestartdatetime");

//获取文本
string description = entity.Attributes["description"].ToString();

//获取发件人+参与方列表
EntityCollection collection = entity.GetAttributeValue<EntityCollection>("from");
foreach (var item in collection.Entities)
{
EntityReference userid = item.GetAttributeValue<EntityReference>("partyid");
}

//更改值
Entity Updeate = new Entity("tec_deal");
Updeate.Id =entity.GetAttributeValue<EntityReference>("tec_dealid").Id;
Updeate["tec_caststate"] = new OptionSetValue(30);
Updeate["tec_onstate"] = new OptionSetValue(30);
service.Update(Updeate);

//关联记录的id
Guid tec_dealid = entity.GetAttributeValue<EntityReference>("tec_dealid").Id;

//删除括号 直接取值
EntityReference erOwner = ((EntityReference)entityTask.Attributes["ownerid"]);
Guid toUserId = erOwner.Id;

//创建一个对象
Entity createEntity = new Entity();
createEntity.LogicalName = "tec_bondevaluationsheet";
VoteEnt["tec_dealname"] = new EntityReference("tec_deal", new Guid(dealid));
createEntity["tec_name"] = title;
recordId = service.Create(createEntity).ToString();

//给选项集赋值
createRecord["ownerid"] = new EntityReference("systemuser", new Guid(UserID));

dynamic 365 常用后端方法

//多对多关系取值
public void a(){
 if (context.MessageName == "Associate") {

                Relationship entityRelationship =(Relationship)context.InputParameters["Relationship"];
                if (entityRelationship.SchemaName == "tec_tec_deal_tec_teammember")
                {
                    //父实体
                    EntityReference targetEntity =(EntityReference)context.InputParameters["Target"];
                    
                    //要共享的
                    EntityReferenceCollection relatedEntities =(EntityReferenceCollection)context.InputParameters["RelatedEntities"];

                    foreach (var item in relatedEntities)
                    {
                        //item.LogicalName;
                        //item.Id;
                        share(service, targetEntity.LogicalName, item.LogicalName, targetEntity.Id.ToString(), item.Id.ToString());
                    }
                }
            }

}
     #region 根据条件获取数据
        /// <summary>
        /// 根据条件获取数据
        /// </summary>
        public DataCollection<Entity> GetEntityDataByCondition(string entityName, string[] selectColumns, ConditionExpression[] conExpressions, OrderExpression orderExp)
        {
            QueryExpression queryexpression = new QueryExpression
            {
                EntityName = entityName,
                ColumnSet = new ColumnSet(
                selectColumns
            )
            };

            FilterExpression filterExpression = new FilterExpression();
            if (conExpressions != null)
            {
                foreach (ConditionExpression conExp in conExpressions)
                {
                    filterExpression.AddCondition(conExp);
                }
            }

            queryexpression.Criteria = filterExpression;
            if (orderExp != null)
            {
                queryexpression.Orders.Add(orderExp);
            }
            queryexpression.PageInfo.ReturnTotalRecordCount = true;

            return service.RetrieveMultiple(queryexpression).Entities;
        }

        public DataCollection<Entity> GetEntityDataByCondition(string entityName, string[] selectColumns, ConditionExpression[] conExpressions, List<LinkEntity> lkEnts)
        {
            FilterExpression filterExpression = new FilterExpression();
            if (conExpressions != null)
            {
                foreach (ConditionExpression conExp in conExpressions)
                {
                    filterExpression.AddCondition(conExp);
                }
            }

            QueryExpression queryexpression = new QueryExpression
            {
                EntityName = entityName,
                ColumnSet = new ColumnSet(selectColumns)
            };

            if (lkEnts != null)
            {
                foreach (LinkEntity en in lkEnts)
                {
                    queryexpression.LinkEntities.Add(en);
                }
            }

            queryexpression.Criteria = filterExpression;

            return service.RetrieveMultiple(queryexpression).Entities;
        }


        #endregion

//如果调用action
IOrganizationService service = svr.GetIOrganizationService();
                            
                            var request = new OrganizationRequest("tec_UpdateIsHalf")
                            {
                                ["RequestName"] = codstr,
                                ["RequestId"] = ((EntityReference)entity[codstr + "id"]).Id.ToString(),
                                ["IsHalfValue"] = ishalfcode.ToString()
                            };
                            service.Execute(request);
//多对多关系增加创建
AssociateEntitiesRequest associateEntitiesRequest = new AssociateEntitiesRequest()
            {
                RelationshipName = "tec_tec_entity1_tec_entity2"
            };
            associateEntitiesRequest.Moniker1 = new EntityReference("tec_entity1", new Guid("83fde645-0aba-eb11-b856-005056b6907f"));
            associateEntitiesRequest.Moniker2 = new EntityReference("tec_entity2", new Guid("11d2bb52-c4a7-eb11-b856-005056b6907f"));
            service.Execute(associateEntitiesRequest);

//多对多关系移除
DisassociateEntitiesRequest disassociateEntitiesRequest = new DisassociateEntitiesRequest()
            {
                RelationshipName = "tec_tec_entity1_tec_entity2"
            };
            disassociateEntitiesRequest.Moniker1 = new EntityReference("tec_entity1", new Guid("83fde645-0aba-eb11-b856-005056b6907f"));
            disassociateEntitiesRequest.Moniker2 = new EntityReference("tec_entity2", new Guid("11d2bb52-c4a7-eb11-b856-005056b6907f"));
            service.Execute(disassociateEntitiesRequest);

//简单的查询方式
   QueryExpression query = new QueryExpression("new_infotemplate")
                {
                    ColumnSet = new ColumnSet("new_infotemplateid"),
                    Criteria = new FilterExpression
                    {
                        Conditions = { new ConditionExpression("new_systemiden", ConditionOperator.Equal, "message_wechat_3"),
                                new ConditionExpression("new_isfixedtemplate", ConditionOperator.Equal, true),
                                new ConditionExpression("new_templatetype", ConditionOperator.Equal, 100000001),
                                new ConditionExpression("new_memberloyaltyprogramid", ConditionOperator.Equal, memEnt.GetAttributeValue<EntityReference>("tsr_loyaltyprogramid").Id),
                            }
                    }
                };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值