标签: dynamics-crm-online

如何按查找实体字段对视图中的项进行排序?

有没有办法在表示相关实体字段的列上启用排序?

例如,Case包含一个查找字段 - Contact.在视图中,我添加了FullName和Contact of Email.鉴于这两列的标题不可点击(未启用排序).

dynamics-crm dynamics-crm-2011 dynamics-crm-online

5
推荐指数
1
解决办法
2004
查看次数

实时工作流程的自定义工作流程活动中缺少跟踪日志

我已经针对 CRM 2013 编写了一个自定义工作流程活动。您不需要了解它的作用。我遇到的问题是,尽管实例化了ITracingService,但我使用该Trace(...)方法生成的任何跟踪内容都会在运行时仅针对实时工作流程进行混淆。换句话说,如果我异步运行工作流程并(故意)抛出异常,我可以在相应的系统作业记录中看到跟踪日志。如果我只是将工作流程切换为“实时”(同步),那么我仍然会收到异常,并且仍然会收到任何自定义异常文本,但是当然没有systemjob为实时工作流程生成相应的内容,因此,就像插件一样,我正在在发生异常时显示的可下载日志文件中查找跟踪输出。在这种情况下,我的跟踪不可见,但我从(可能)托管工作流的父上下文中获取了似乎是 Microsoft 的跟踪日志 - 您可以看到它引用了我的工作流过程定义中的步骤:

[Microsoft.Crm.ObjectModel: Microsoft.Crm.Extensibility.InternalOperationPlugin]
[46f6cf4c-14ae-4f1e-98a1-eae99a37e95c: ExecuteWorkflow]
Starting sync workflow 'MyTestWorkflow', Id: ca8782b1-7ca4-e311-a055-6c3be5be5f78
Entering CreateStep1_step: 
Entering CustomActivityStep2_step: 
Sync workflow '__Test' terminated with error 'Unexpected exception from plug-in (Execute): My.Test.WF.DoSomething: System.NullReferenceException: Object reference not set to an instance of an object.'
Run Code Online (Sandbox Code Playgroud)

在我的程序集中,My.Test.WF.DoSomething我在调用时访问跟踪服务并立即开始通过该Trace()方法进行写入,例如

_trace.Trace("Starting Greg's custom code...");
Run Code Online (Sandbox Code Playgroud)

这只是一个示例,但要点是,我的跟踪在异步时有效,但在同步时“丢失”。

有任何想法吗?

dynamics-crm-online dynamics-crm-2013

5
推荐指数
1
解决办法
2978
查看次数

使用早期绑定实体CRM SDK 2015在UpdateObject上获取SaveChanges时出错

我对收到错误xrm.saveChanges()如果我做UpdateObjectADDOBJECT工作正常,initally我认为这是因为上下文在此线程讨论收到错误- Dynamics CRM中保存实体的变化 ,但我尝试了所有的选项这里讨论HTTPS ://msdn.microsoft.com/en-us/library/gg695783.aspx但没有任何帮助.

我的代码是`

        using (var xrm = new XrmServiceContext("Xrm"))
        {
            WriteExampleContacts(xrm);

            //Create a new contact called Allison Brown.
            var allisonBrown = new Xrm.Contact
            {
                FirstName = "Allison",
                LastName = "Brown",
                Address1_Line1 = "23 Market St.",
                Address1_City = "Sammamish",
                Address1_StateOrProvince = "MT",
                Address1_PostalCode = "99999",
                Telephone1 = "12345678",
                EMailAddress1 = "allison.brown@example.com"
            };

            xrm.AddObject(allisonBrown);
            xrm.SaveChanges();

            WriteExampleContacts(xrm);



        //Update the e-mail address of Allison Brown and link her to the account Contoso. …
Run Code Online (Sandbox Code Playgroud)

c# dynamics-crm-online dynamics-crm-2015

5
推荐指数
1
解决办法
2427
查看次数

没有对话框提示的ADAL身份验证

我在Azure AD中注册了一个连接到CRM Online的控制台应用程序(使用这些步骤配置).它查询Web API.

应用程序需要在没有用户交互的情况下运行...但不幸的是,调用AcquireTokenSilentAsync总是失败并且只能AcquireTokenAsync运行.这会使用户登录对话框出现,但无法满足用户交互要求!

有没有办法阻止这个提示,要么通过在客户端机器上保存登录(到目前为止没有工作)或者可能使用证书(但你怎么做?)或其他什么?

我正在使用ADAL for .NET v3.10.305110106版本.以下代码用于验证:

private static async Task PerformOnlineAuthentication()
{
    _authInfo = new AuthInfo();  // This is just a simple class of parameters

    Console.Write("URL (include /api/data/v8.x): ");
    var url = Console.ReadLine();

    BaseUri = new Uri(url);
    var absoluteUri = BaseUri.AbsoluteUri;
    _authInfo.Resource = absoluteUri;

    Console.Write("ClientId: ");
    var clientId = Console.ReadLine();
    _authInfo.ClientId = clientId;

    Console.Write("RedirectUri: ");
    var redirectUri = Console.ReadLine();
    _authInfo.RedirectUri = new Uri(redirectUri);

    var authResourceUrl = new Uri($"{_authInfo.Resource}/api/data/"); …
Run Code Online (Sandbox Code Playgroud)

dynamics-crm azure dynamics-crm-online azure-active-directory adal

5
推荐指数
1
解决办法
3894
查看次数

crmsvcutil.exe:无法为早期绑定生成实体类 - Dynamics CRM Online

我正在尝试从我的 Dynamics CRM Online 实例生成早期绑定实体类。

我的机器上安装了 CRM SDK。

我正在从 SDK 的“Bin”文件夹运行以下命令。

crmsvcutil.exe /url:<<OrganizationServiceUrl>> /out:crmexams3.cs /username:"<<username>>" /password:"<<password>>"
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误:

Error requesting orgs from the discovery server
Access is denied
Run Code Online (Sandbox Code Playgroud)

我已将 OrganizationServiceUrl 替换为可以从 CRM 实例中的开发人员资源中找到的组织服务 URL。

我的实例是 CRM 2016 Online。

知道为什么这会失败吗?

谢谢

microsoft-dynamics dynamics-crm dynamics-crm-online dynamics-crm-2016

5
推荐指数
1
解决办法
1215
查看次数

Microsoft.Xrm.Tooling.Connector高内存分配

我目前正在完成升级产品CRM SDK的过程,我遇到的主要变化是使用以下尝试和信任的方法连接到Xrm服务并创建我的IOrganizationService:

var connection = CrmConnection.Parse(connectionString);
var service = new OrganizationService(connection);
Run Code Online (Sandbox Code Playgroud)

我现在不得不使用Tooling命名空间中的CrmServiceClient:

 CrmServiceClient conn = new Microsoft.Xrm.Tooling.Connector.CrmServiceClient(connectionString).OrganizationServiceProxy;
Run Code Online (Sandbox Code Playgroud)

现在这一切都很好,除了一个主要问题......记忆.

使用较旧的Xrm.Client方法,您可以指定服务配置实例模式(默认为ServiceConfigurationInstanceMode.PerName).这意味着如果同一个应用程序多次调用create,则会重用该服务.这使内存占用率降低.下图显示了在调用创建服务实例100次后分配的内存量

在此输入图像描述

但是,使用较新的方法无法在任何地方设置此实例模式,并且无论您是否需要,似乎每次都会创建一个全新的连接.以下是同一测试的结果: 在此输入图像描述

如您所见,每次新连接都会分配越来越多的内存.我无法看到我可以告诉它重用该服务的任何地方.

所以我基本上要问的是,我是以错误的方式解决这个问题吗?我应该自己创建和缓存一切吗?我缺少隐藏的课程/方法吗?任何帮助将不胜感激.

c# dynamics-crm dynamics-crm-online dynamics-crm-2016

5
推荐指数
1
解决办法
687
查看次数

使用 CRM Web API 获取视图的列名

我正在使用 CRM Online 2016 Web API。现在我拥有的唯一信息是savedQuery 或userQuery 记录。有了这个,我可以获得视图的所有记录,但我也想要这个视图的列名。

是否有一种简单的方法可以使用 Web API 获取列名,仅包含savedQuery/userQuery 记录的信息?

我已经有了获取列名的间接方法(使用 LayoutXML)。

dynamics-crm-online dynamics-crm-2016 dynamics-crm-webapi

5
推荐指数
1
解决办法
957
查看次数

Microsoft Dynamics CRM SDK CRMServiceClient连接字符串缓存错误

最新的Dynamics SDK的缓存行为使我发疯。

首先,如果要使用CrmServiceClient访问不同的环境,则必须使用RequireNewInstance=True;连接字符串中的参数。如果不是,即使您创建实例并将其部署到不同的环境,每个CrmServiceClient实例都将使用相同的连接。

现在,即使您RequireNewInstance=True;在连接字符串中使用,我也发现在某些情况下仍会发生缓存。

var client1 = new CrmServiceClient("RequireNewInstance=True;
Url=https://myCompany.crm.dynamics.com;
Username=myUser@myCompany.onmicrosoft.com; Password=myPassowrd;
AuthType=Office365");

//Now, client 2 points to a url that doesn’t exists:
var client2 = new CrmServiceClient("RequireNewInstance=True; 
Url=https://xxx.crm.dynamics.com; Username=myUser@myCompany.onmicrosoft.com; 
Password=myPassowrd; AuthType=Office365");
Run Code Online (Sandbox Code Playgroud)

client2继续使用第一个连接字符串,因此您无法确定新的连接字符串是否正确。

有什么想法如何在我的asp.net应用程序中正确测试Dynamics Crm连接字符串?

c# microsoft-dynamics dynamics-crm dynamics-crm-online dynamics-crm-365

5
推荐指数
1
解决办法
3114
查看次数

Microsoft CRM:如何在不弃用SetStateRequest的情况下启用/禁用Systemuser

要使用C#代码禁用Dynamics CRM 2016用户,当前使用SetStateRequest.例:

var requestToDisableUser = new SetStateRequest()
{
    EntityMoniker = new EntityReference("systemuser", userGuid),
    State = new OptionSetValue(1),
    Status = new OptionSetValue(-1)
};
organizationService.Execute(requestToDisableUser);
Run Code Online (Sandbox Code Playgroud)

但是,根据Microsoft的说法,不推荐使用SetStateRequest,应该使用Update替换它

但是当我尝试使用Update来禁用用户
示例时:

var userToDisable = new Entity("systemuser", userGuid)
{
    ["statecode"] = new OptionSetValue(1),
    ["statuscode"] = new OptionSetValue(-1)
};
service.Update(userToDisable);
Run Code Online (Sandbox Code Playgroud)

然后它引发错误:

未处理的异常:System.ServiceModel.FaultException`1 [Microsoft.Xrm.Sdk.OrganizationServiceFault]:'systemuser'实体不包含Name ='statecode'的属性.

这是事实,因为systemuser Entity没有状态代码.
systemuser Entity有一个IsDisabled属性,但该属性是只读的.

那么如何在不使用的情况下禁用/启用用户SetStateRequest呢?

c# dynamics-crm dynamics-crm-online dynamics-crm-2016

5
推荐指数
1
解决办法
1168
查看次数

计算 Dynamics CRM Online Web API (ODATA) 中的所有行

是否可以计算给定实体中的所有行,绕过 5000 行限制并绕过页面大小限制?

我不想在一个请求中返回超过 5000 行,但只想要该给定实体中所有行的计数。

根据 Microsoft 的说法,您不能在请求 URI 中执行此操作:

The count value does not represent the total number of entities in the system. 

It is limited by the maximum number of entities that can be returned.
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个:

GET [Organization URI]/api/data/v9.0/accounts/?$count=true
Run Code Online (Sandbox Code Playgroud)

还有其他办法吗?

dynamics-crm odata dynamics-crm-online dynamics-crm-webapi dynamics-crm-365

5
推荐指数
2
解决办法
1万
查看次数