利用InsertStatusValueRequest消息为新增的statuscode设定指定值(Value)

我是微软Dynamcis 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复340或者20190526可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

 在做定制的时候发现为实体标准的字段statuscode添加选项的时候没有办法指定Value,如下图,是只读的。

如果在某些特定场景下需要指定值呢,咋办?

可以利用消息InsertStatusValueRequest来做,简单代码如下,亲自测试有效。

更多实例参考官方文档:InsertStatusValueRequest Class 

using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Tooling.Connector;
using System;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            CrmServiceClient crmSvc = new CrmServiceClient(@"AuthType=Office365;Url=https://luoyongdemo.api.crm.dynamics.com;UserName=crmadmin@luoyongdemo.onmicrosoft.com;Password=*****");
            if (!crmSvc.IsReady)
            {
                throw new Exception("Crm Service is not ready!" + crmSvc.LastCrmError + crmSvc.LastCrmException.Message);
            }
            InsertStatusValueRequest req = new InsertStatusValueRequest()
            {
                Label = new Label("Created by code", 1033),
                StateCode = 0,
                Value = 100000100,
                EntityLogicalName = "new_luoyongdemo",
                AttributeLogicalName ="statuscode"
            };
            crmSvc.Execute(req);
            Console.WriteLine("Execution successfully...");
            Console.ReadKey();
        }
    }
}

 

当然如果不是statuscode字段,普通的选项集字段请用:InsertOptionValueRequest Class ,分为全局选项集和非全局选项集,具体参考官方实例,我这里不赘述了。

如果要改动statecode的显示值呢,请使用 UpdateStateValueRequest Class ,具体实例参考官方文档,我这里不赘述了。

posted @ 2019-05-26 22:35  微软MVP(15-18)罗勇  阅读(187)  评论(0编辑  收藏  举报