标签: dynamics-365

在Dynamics API中删除实体引用

我是Microsoft Dynamics Web API的新手,我需要在批量更新调用中删除/ null实体引用(包含GUID的字段,该字段是另一个实体中记录的ID).此批量更新调用可以包含任意数量的记录,每个记录可以包含任意数量的需要为空的实体引用字段.要设置实体引用,我可以执行以下操作:

"gnh_address1_countryid@odata.bind":"/gnh_countries(c58790c2-ed83-e511-80f7-1458d043a570)"
Run Code Online (Sandbox Code Playgroud)

但是,要删除它,将值设置为null(或空的GUID字符串为0)似乎不起作用.我遇到过这个页面

https://msdn.microsoft.com/en-us/library/mt607875.aspx#bkmk_Removeareferencetoanentity

这告诉我,我需要为要删除的给定字段执行删除调用.这真的是唯一的方法吗?在我看来,这应该是一个相当简单的事情.根据我的理解,如果我有3条我想要更新的记录,每条记录都有3个实体引用字段,我想删除/删除/无效,那将是1次批量更新调用,然后是9次后续删除调用.如果我要更新1000条记录,这将是一次更新,然后是3000次删除调用.再次,这真的是唯一的方法吗?作为批量更新的一部分,是否无法删除它们?

microsoft-dynamics dynamics-crm dynamics-crm-webapi dynamics-crm-365 dynamics-365

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

尝试通过Web API创建记录时出现“未声明的属性”

我收到一个似乎无法调试的错误。我正在尝试通过自定义HTML / JavaScript Web资源创建自定义活动实体。

用户单击按钮和以下参数:

var params = {
    'rob_faqid@odata.bind': '/rob_faqs(guid-here)',
    'rob_source': 180840000,
    'subject': 'Signpost',
    'actualstart': new Date(),
    'actualend': new Date()
};
Run Code Online (Sandbox Code Playgroud)

传递到以下URL:

https://dynamicsorg/api/data/v8.2/rob_quickactions/
Run Code Online (Sandbox Code Playgroud)

具有以下标题:

xhr.setRequestHeader('OData-MaxVersion', '4.0');
xhr.setRequestHeader('OData-Version', '4.0');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
xhr.setRequestHeader('Prefer', 'return=representation');
Run Code Online (Sandbox Code Playgroud)

这为我提供了HTTP代码400 (bad request)和此错误消息:

An undeclared property 'rob_faqid' which only has property annotations in the payload but no property value was found in the payload. In OData, only declared navigation properties and declared named streams can be represented as properties without values.
Run Code Online (Sandbox Code Playgroud)

有趣的是,无论是使用实际的GUID还是在其中放置乱码(如果与传入的值无关),我都会收到此错误。 …

javascript microsoft-dynamics dynamics-crm-online asp.net-web-api dynamics-365

5
推荐指数
3
解决办法
1822
查看次数

删除记录后不会触发Dynamics 365中的实时工作流

我正在Dynamics 365中创建一个实时工作流,该工作流被设置为同时在“记录状态更改之前”和“记录删除之前”触发。我可以确认它在“记录状态更改”情况下可以正常运行,但是由于某些原因,当我删除相关记录时,它不能正常运行。

会有人知道为什么会发生这种情况吗?我什至查看了Process Session的历史记录,可以看到只有Record Status Change实例被触发了。所有Delete实例都没有日志条目。

我还应该补充一点,工作流程非常简单,对于删除和状态更改而言并没有做任何不同的事情,因此,对于状态更改而言正常工作的任何记录都应具有与删除相同的结果。

任何帮助将不胜感激。

microsoft-dynamics crm dynamics-crm dynamics-365

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

8.2 到 9.0.13 失败:“'Attribute' 元数据实体不包含 Name = 'autonumberformat' 的元数据属性”

这就解决了。为可能遇到此问题的任何人在下面放置两个潜在的修复程序。关于这个错误的文档非常稀少,我从多个帖子中收集了一些零碎的东西。

修复 1:

从 8.2.x 升级到高于 9.0.8 的任何版本都会导致此错误。开始从 8.2.3 到 9.0.8 的迁移,然后从那里升级到最新版本。

在用户向 Microsoft 提交票证的论坛上找到了此修复程序,Microsoft 回来说,不支持从 8.2.3 升级到高于 9.0.8 的任何版本。不知道为什么最新的更新不包含针对此升级限制的修复程序,但是,嘿,那是 Microsoft。

修复 2:

注释掉 ServerRelease.xml 中的以下代码段(路径:\Program Files\Dynamics 365\LangPacks(LanguagepackID)\Xrm\sql\9\ServerRelease.xml)。不建议这样做,但这是 Microsoft 提供的替代解决方案。

注释掉的区域截图

在我们的开发环境中导入组织时,这是成功的。

希望这对同一条船上的任何人都有帮助!

crm dynamics-crm dynamics-365

5
推荐指数
0
解决办法
671
查看次数

将十进制输入插入 CRM 365

我正在使用 CRM REST Builder 来构建我的请求。我正在从中创建一个网络资源,我正在插入一条带十进制输入的记录。从十进制输入中输入数字时,会显示此错误:

由于输入格式字符串/数字与参数“IEEE754Compatible”false/true 之间的冲突,无法将值转换为目标类型“Edm.Decimal”。

请帮忙。

javascript crm dynamics-crm decimalformat dynamics-365

4
推荐指数
1
解决办法
2831
查看次数

如何在 Dynamics CRM 中获取流程完成按钮事件?

我正在使用 Dynamics 365 在线实例来集成销售流程。我有一个条件,当用户单击 Close Process Stage 中的 Finish 按钮时,我需要将 Probability 字段值更改为 100。

在此处输入图片说明

我做了一些研究,发现(OnProcessStatusChange 事件)可以帮助获取业务流程状态更改(状态:Active、Finished或 Aborted)

参考链接:OnProcessStatusChangeEvent

我已经通过将其添加到如下所示的 OnLoad 事件中来检查这一点,但没有任何反应。

Xrm.Page.data.process.addOnProcessStatusChange(setProbablityOnFinish);
Run Code Online (Sandbox Code Playgroud)

还有其他解决方案吗?

javascript microsoft-dynamics dynamics-crm dynamics-crm-online dynamics-365

4
推荐指数
1
解决办法
4158
查看次数

使用 AAD v2 的 Dynamics 365 API

我正在尝试通过 SPA 访问 Dynamics 365 Online API。但我想使用 v2 授权端点。我在 AAD 中注册了我的应用程序并为 Dynamics CRM 分配了权限(我正在使用允许我指定 Dynamics 的预览注册刀片)。它没有说 Dynamics 需要管理员同意,但是当我在 SPA 中指定范围时,我在同意屏幕上收到一个错误,表明我需要管理员同意。

我过去曾成功使用过 v1 授权端点,所以我怀疑这是我在检索访问令牌时指定范围的问题。

这个 API 有什么特别需要的吗?还没有完全实施吗?

在我请求 access_token 时的范围参数中,我尝试过:

<service guid>/<scope guid>
<service guid>/user_impersonation
https://<tenant>.crm.dynamics.com/user_impersonation
https://crm.dynamics.com/user_impersonation
https://dynamics.com/user_impersonation
Run Code Online (Sandbox Code Playgroud)

最后四个表示需要管理员同意。我尝试了其他几种格式,但它们出错表明格式不正确或资源不存在 - 我得到了。但我对管理员同意部分感到困惑。

任何指导表示赞赏!

microsoft-dynamics azure-active-directory dynamics-365 microsoft-graph-security microsoft-graph-api

4
推荐指数
1
解决办法
1112
查看次数

如何在内部部署的 Dynamics 365 中使用 EasyRepro 自动登录

我正在尝试在 Dynamics 365 On-Premise 中使用 EasyRepro 进行自动化 UI 测试。我设法通过一个问题进行了测试,我无法自动登录到我的 Dynamics 365 组织。以下是我使用的代码:

var client = new WebClient(TestSettings.Options);
            using (var xrmApp = new XrmApp(client))
            {
              xrmApp.OnlineLogin.Login(_xrmUri, _username, _password);
              xrmApp.Navigation.OpenSubArea("My Work", "Companies");
              xrmApp.CommandBar.ClickCommand("New");
              xrmApp.Entity.SetValue("name", TestSettings.GetRandomString(5,15));
              xrmApp.Entity.Save();
             }
Run Code Online (Sandbox Code Playgroud)

当我运行它时,新打开的chrome页面仍然会要求我输入我的凭据,在我输入我的凭据(CRM用户名/密码)后,脚本将顺利运行。

因为,我计划将其用作我们自动化测试的一部分。EasyRepro 有没有办法自动登录?

automated-tests dynamics-crm devops dynamics-365 easyrepro

4
推荐指数
1
解决办法
1007
查看次数

MS Dynamics - QueryExpression 与 ConditionOperator.In 结果没有结果,但与 ConditionOperator.Equal 一起使用

我正在尝试进行查询以检索包含字符串列表中的文本之一的所有记录。

    QueryExpression query = new QueryExpression("account")
                {
                    ColumnSet = new ColumnSet("primarycontactid", "new_text"),
                    NoLock = true,
                    Criteria =
                    {
                        Conditions =
                        {
                            new ConditionExpression()
                            {
                                AttributeName = "new_text",
                                Operator = ConditionOperator.In,
                                Values = { texts.ToArray() }
                            }
                        }
                    }
                };
Run Code Online (Sandbox Code Playgroud)

此代码执行没有问题,但不返回任何记录。

我还尝试了以下代码,导致返回多条记录。

    QueryExpression query = new QueryExpression("account")
                {
                    ColumnSet = new ColumnSet("primarycontactid", "new_text"),
                    NoLock = true,
                    Criteria =
                    {
                        Conditions =
                        {
                            new ConditionExpression()
                            {
                                AttributeName = "new_text",
                                Operator = ConditionOperator.Equal,
                                Values = { texts.ToArray()[0] }
                            }
                        }
                    }
                };
Run Code Online (Sandbox Code Playgroud)

我也尝试过,没有错误,但没有返回。 …

c# microsoft-dynamics dynamics-crm query-expressions dynamics-365

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

有关 Dynamics 365 中 Power BI 仪表板的问题

如果我想在 Dynamics 365 中发布 Power BI 仪表板,并与所有有权访问的人共享。

那么我是否还需要授予对保存在其中的高级工作区中的仪表板的访问权限?

dashboard powerbi dynamics-365

3
推荐指数
1
解决办法
64
查看次数