Dynamics 365 CRM 后端插件语法示例
public IPluginExecutionContext context = null;
public IOrganizationServiceFactory serviceFactory = null;
public IOrganizationService service = null;
context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
service = serviceFactory.CreateOrganizationService(context.UserId);
Entity entity= service.Retrieve(context.PrimaryEntityName, context.PrimaryEntityId, new ColumnSet(true));
查询:
QueryExpression query = new QueryExpression("EntityName");
query.ColumnSet = new ColumnSet("EntityNameid");
query.Criteria = new FilterExpression(LogicalOperator.And);
query.Criteria.AddCondition("id", ConditionOperator.Equal, corpid);
query.Criteria.AddCondition("id", ConditionOperator.Equal, userid);
var list = svcContext.RetrieveMultiple(query).Entities.ToList();
添加:
Entity entity = new Entity("EntityName");
entity.Attributes.Add("date", DateTime.Now);
conn.CallerId = new Guid(list[0].Attributes["EntityNameid"].ToString());
OrganizationServiceProxy orgServiceNew = conn.OrganizationServiceProxy;
orgServiceNew.Create(entity);
修改:
Entity invoiceEntity = conn.Retrieve("EntityName", new Guid(id), new ColumnSet(true));
svcContext.Attach(invoiceEntity);
invoiceEntity.Attributes["修改的字段"] = longitude;
svcContext.UpdateObject(invoiceEntity);
svcContext.SaveChanges();
批量事务处理:
ExecuteTransactionRequest req = new ExecuteTransactionRequest();
OrganizationRequestCollection org = new OrganizationRequestCollection();
CreateRequest snInformationCreate = new CreateRequest();
snInformationCreate.Target = snInformation;
org.Add(snInformationCreate);
UpdateRequest entupdate = new UpdateRequest();
entupdate.Target = item;
org.Add(entupdate);
req.Requests = org;
orgService.Execute(req);