问题标签 [microsoft-dynamics-webapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
307 浏览

php - 带 PHP 的 Ms Dynamics Nav 多语言

这就是我从 Ms dynamics Nav 获取记录的方式。所有结果均基于英语。我需要弄清楚我们如何才能获得基于其他语言(如 De)的记录。提前致谢。

0 投票
0 回答
48 浏览

dynamics-365 - 无需在 AD 中注册应用程序即可向 Dynamics 365 for Mobile App 进行身份验证

我正在做一些关于通过 Web API 对 Dynamics 365 进行身份验证的研究,我遇到的所有事情都说您必须在 AD 中注册您的应用程序才能获得客户端 ID。如果我想将一个应用程序发布到应用程序商店或 google play 商店以供多个 Dynamics 365 用户在许多不同的组织中使用,那将如何实现?用户是否必须让他们的管理员在 AD 中注册应用程序才能使用它?我对如何为一般分发创建动态应用程序感到困惑。一个正确方向的点将不胜感激,或者如果不可能,那也很好....拉我的头发寻找!

0 投票
0 回答
508 浏览

azure-active-directory - Azure Active Directory 和 Microsoft Dynamic 365 财务和运营身份验证令牌问题

我想根据他们的指南将 Web API 用于 Microsoft Dynamic 365 Finance and Operation,我在 Azure Active Directory 中创建/注册了应用程序,并尝试使用 Postman 生成访问令牌,但遇到范围问题:

错误: AADSTS70011:为输入参数“范围”提供的值无效。范围https://api.financials.dynamics.com/无效。范围格式无效。范围必须采用有效的 URI 形式https://example/scope或有效的 Guid ..

邮递员获取访问令牌数据

认证网址: https ://login.microsoftonline.com/coromed.onmicrosoft.com/oauth2/v2.0/authorize

访问令牌网址: https ://login.microsoftonline.com/coromed.onmicrosoft.com/oauth2/v2.0/token

客户 ID = [我们的客户 ID]

客户端密钥= [hsdhjkfhsjkdhfjkwshdjkfhsjkdhfjsdjhfgwjdsgfwegew]

范围= https%3A%2F%2Fapi.financials.dynamics.com%2F

授权类型= 授权代码

范围字段中必须使用哪个参数及其格式?

下面是快照:

在此处输入图像描述

在此处输入图像描述

请帮助解决问题以及我们应该在 Sope 值中添加什么。

谢谢

0 投票
1 回答
1203 浏览

office365 - 使用 Javascript 调用 Dynamics 365 Operations 基于 JSON 的自定义服务时出现 CORS 错误

我正在开发一个简单的 SPA 应用程序并尝试访问 Dynamics 365 for Operations 基于 JSON 的自定义服务。我正在使用 ADAL.js 库进行身份验证。我从This Dynamics Community 线程中遵循的身份验证方式。

但是机会,在成功获取有效令牌并使用获取的令牌调用我的目标 API 后,我无法调用 API 并收到CORS错误。

PSB截图相同

在此处输入图像描述

以下是我的代码示例:

0 投票
1 回答
1192 浏览

dynamics-crm - 使用具有空备用键的 Dynamics 365 Web API 检索记录

问题

我正在尝试使用关键属性为空的 Web API 从 Dynamics 365 查询记录。

方法

出于测试目的,我创建了一个具有字符串属性、整数属性和小数属性的实体。然后,我创建了一个备用键并将这三个属性放入其中,使这种属性组合独一无二。然后我创建了一些记录。

使用 Web API 查询数据按预期工作。我用这些值创建了一条记录:

{ "my_string_key": "s1", "my_integer_key": 1, "my_decimal_key": 1.23 }

并像这样查询它:

/my_entities(my_string_key='s1',my_integer_key=1,my_decimal_key=1.23)

这将返回所需的记录。

但是,当任何关键字段为空时,我无法让它工作,它总是返回 400 并带有消息“错误请求 - 查询语法错误”。只是为了澄清:我特意创建了其中一个关键属性为空的记录,如下所示:

{ "my_integer_key": 1, "my_decimal_key": 1.23 } { "my_string_key": "s1", "my_decimal_key": 1.23 } { "my_string_key": "s1", "my_integer_key": 1 }

请注意每条记录如何缺少一个关键属性,这实际上将其保留为空。

我尝试使用=null, =empty, ='',==Microsoft.OData.Core.ODataNullValue没有任何效果。我试图像这样查询它们:

/my_entities(my_string_key=null,my_integer_key=1,my_decimal_key=1.23) /my_entities(my_string_key='s1',my_integer_key=null,my_decimal_key=1.23) /my_entities(my_string_key='s1',my_integer_key=1,my_decimal_key=null)

我还尝试省略其中包含 null 的属性,如下所示:

/my_entities(my_integer_key=1,my_decimal_key=1.23) /my_entities(my_string_key='s1',my_decimal_key=1.23) /my_entities(my_string_key='s1',my_integer_key=1)

这些都不起作用。任何人都可以提供解决方案吗?

最后的话

我知道关键属性不应该为空,因为这不是关键属性的重点。但是,我的方案需要处理这种特定情况。

我也知道我可以只使用 $filter 参数,但我想要一个解决方案,而不必求助于这种“解决方法”。毕竟,它是一把钥匙,我想把它当作一把钥匙。

0 投票
2 回答
1628 浏览

azure-active-directory - 使用 Azure Function 应用程序的登录用户对 Dynamics 365 Web Api 进行身份验证

我有一个受 Azure AD 身份验证保护的 Azure Function App(HTTP 触发函数)。

这工作正常 - 当我在浏览器中转到函数的 URL 时。我首先被重定向到登录页面,我可以使用我的 Azure Active Directory 登录凭据登录。

但是,我希望该函数连接到 Dynamics 365 Web API 以使用登录用户的身份读取一些数据。关于连接到 Web API 和在 Azure 中配置应用程序权限的代码,我已经复制了这个示例。我的 Dynamics 365 实例与我的 Azure 和我正在使用有权访问 Dynamics 365 的用户登录的用户位于同一租户中。

我正在努力的部分是获取访问令牌以调用与登录用户相对应的 Dynamics Web API。

第一次尝试

然后,我尝试根据“X-MS-TOKEN-AAD-ID-TOKEN”标头使用当前登录用户的令牌。我的代码如下 - 它没有连接到 Dynamics Web API - 我得到 401 - Unauthorized 响应:

似乎“X-MS-TOKEN-AAD-ID-TOKEN”没有被接受。

第二次尝试

我试图通过创建一个“UserAssertion”实例以及一个 ClientCredential 来为用户获取一个新令牌。UserAssertion 位我真的不确定并且可能是错误的:

我得到的回应是

解决方法 - 不是真正的解决方案

我设法开始工作的唯一一件事是硬编码我正在登录的用户的用户名/密码:

...但是这种失败的目的 - 通过硬编码用户名/密码,我肯定只是完全绕过 Azure 应用程序注册安全性?

0 投票
1 回答
1839 浏览

javascript - 无法通过 Web API 客户端关闭事件

在 Dynamics 365 上,我们正在尝试使用客户端 Web API 关闭事件。

查看文档(C# 中)后,我们了解到我们首先需要创建一个 IncidentResolution 活动,我们成功地做到了。但是,我们不知道如何完全关闭事件实体。

我假设我们需要更新记录的 stateCode 和 statusCode。但是,如果我这样做,ajax 总是返回 500 错误。

其他更新工作正常。

我们这里有什么遗漏吗?

0 投票
2 回答
1699 浏览

c# - 在 C# 插件中调用 Dynamics Web API

我在 Microsoft Dynamics 中有一个业务流程来处理新客户端的创建。当该过程完成时,我将附加一个工作流,该工作流会启动一个调用插件来执行一些自定义处理的操作。我正在关注这篇文章来设置这个过程。

在我的插件中,我调用了 Dynamics Web API(参见下面的代码)。当我上responseMessage = client.GetAsync(url).Result;线时,我的插件退出而不返回错误。当我在插件注册工具中调试时,插件注册工具崩溃并且必须重新启动。当我查看网络流量时,此调用似乎因401 - Unauthorized错误而失败。

当我从控制台应用程序尝试同样HttpClient的调用时,调用成功。我尝试了几种不同的身份验证凭据,但均未成功。我也尝试过GetAsync以几种不同的方式调用该函数。此错误与异步或身份验证方法有关吗?我在这里想念什么?


更新

我们正在使用 Dynamics 2016 On-Premise。

我们使用 Web API 的原因是这个调用发生在我们开发的一个库中,该库将在多个系统之间进行接口。该库在插件中使用,但也可以在插件之外用于其他应用程序。我们提供的代码示例是库中失败的代码块。我们将这段代码直接拉到插件中,以查看错误是否与库或插件更多相关。

我们注意到,client.GetAsync(url).Resultcall 实际上返回了一个正确的值。我们错过了在我们的网络流量中看到两个调用在第三个成功并返回正确值之前失败(见下面的屏幕截图)。奇怪的是,当我们调试这行代码时,越过这行代码会导致插件注册工具崩溃,而网络流量显示我们返回了正确的值。如果我们在这行代码之后设置断点,那么插件注册工具不会崩溃,并且我们的响应中有正确的值。当我们回到库中而不是直接在插件中进行调试时,这种行为会发生变化。在库中,无论我们在哪里设置断点,插件注册工具在点击此行时总是崩溃,即使网络流量仍然显示成功响应。

网络流量


更新 2

看来我的库成功地对 Web API 进行了多次不同的调用,所以我认为问题更多是插件注册工具无法处理 Web API 调用,而不是调用实际上不起作用。

网络流量

0 投票
2 回答
1021 浏览

c# - Dynamics C# 插件在运行时失败,但在调试时成功

概述

我在本地使用 Dynamics 2016。

我在 Microsoft Dynamics 中有一个业务流程来处理新客户端的创建。当该过程完成时,我将附加一个工作流,该工作流启动一个调用插件进行一些自定义处理的操作。我正在关注这篇文章来设置这个过程。在 Dynamics 中触发此插件时,它似乎运行成功,但没有创建我期望它创建的记录。但是,当我分析插件并通过插件注册工具/Visual Studio 运行它时,会创建我希望看到的记录。

当我将跟踪日志添加到我的插件时,我注意到401 - Unauthorized当我调用 Web API 时,我似乎收到了来自 Dynamics 的错误。当我在调试时查看网络流量时,看起来我收到了一个初始401错误,但随后重试成功获取了我想要获取的记录。

代码

这是我认为401-Unauthorized错误来自的代码部分

网络流量

网络流量

我似乎无法弄清楚我是如何在调试期间看到插件成功运行的,但是在直接在动态中运行时却看到它失败。该插件似乎在同一用户下运行,无论它是在 Dynamics 中运行还是在我的本地计算机上运行。我正在传递管理员凭据,因此他们应该拥有在系统中执行任何操作的完全权限。有什么想法吗?

我已经问过这个问题和这个可能相关的问题,但并没有完全涵盖这个问题。


更新

我在跟踪日志中注意到此错误消息