问题标签 [dynamics-business-central]

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 回答
1223 浏览

php - 无法访问 Microsoft Dynamics 365 Business Central 的 APIS

我必须在我的网站中实现 Microsoft Dynamics 365 的 api,但无法访问它。我已经使用这个https://github.com/thephpleague/oauth2-client实现了身份验证,它工作正常。Microsoft 图形 API 正在运行,但我无法使用 Microsoft Dynamics 365。

在应用程序中,我还添加了 Microsoft Dynamics 365 Business Central 的权限。参考本文档https://docs.microsoft.com/en-us/dynamics-nav/api-reference/v1.0/api/dynamics_companies_get来获取公司详细信息,我尝试了以下操作:

端点

使用我从身份验证中获得的令牌

我收到此错误 -

但是,我可以访问 Microsoft 图形 API。请让我知道我做错了什么,我错过了什么吗?

0 投票
1 回答
223 浏览

azure-devops - 多个 devops 构建相互触发

我们使用 Azure DevOps 构建和发布 Dynamics 365 Business Central 的本地安装。

我们维护 3-4 个不同的存储库,每个存储库构成安装的一部分。我们有一个主存储库(基本应用程序),大约有。8000 个源文件。这些不会经常更改,但它们是构建其他应用程序的基础。

当我们构建我们的基础应用程序时,我们的主要工件是一个 sql 应用程序数据库备份。此备份包含我们创建新部署所需的内容。备份包含我们的基本应用程序代码和已发布的子应用程序,我们已下载为构建工件。

示例 1

从技术上讲,这工作得很好。除了一个主要的例外,我们忘记了触发构建的工作项的部署状态。而且由于大部分工作项都与我们的子应用程序相关,所以这是一个问题。

为了解决这个问题,我研究了不同的选择。

一个存储库中 的所有内容 第一个也是显而易见的是将所有内容放入一个大型存储库中(示例 2)。从技术上讲,我确信这也可以正常工作。但这会增加文件的数量(基本应用程序有大约 8000 个对象)和每个应用程序的构建时间与基本应用程序的时间有关。每个子应用程序构建将从 5-10 分钟到 25-30 分钟或更长时间,这并不是很好。

示例 2

子和主构建 理想情况下,我们希望拥有示例 3 中的设置。这里我们有一个进一步的构建。通过将基础应用程序构建分成两部分,其中第一个在没有应用程序的情况下创建我们的 sql 备份工件,而主版本将应用程序发布到数据库中。这将减少我们的子应用程序构建/发布时间。15分钟。

示例 4

但同样的问题是我们丢失了所有工作项引用,因为它们没有从触发构建转移到主构建。

我能想到的最后一个选项是将存储库构建的结果直接发布到开发阶段(示例 4)。这意味着我们将首先在每个部署阶段将所有不同的应用程序发布到数据库中(除了开发,我们还有测试、uat、暂存和生产阶段)。我通过“预开发”阶段对此进行了测试,该阶段将发布应用程序并创建供后续阶段使用的备份。这也可以,但我无法使用 Azure Pipeline 或 Build Artifacts,因为它们只能由构建管道使用,而不是由发布管道使用。因此,如果我们要这样做,我将需要发布到网络文件共享。

示例 4

我们的构建基于 Yaml,而我们使用“经典”发布管道进行部署。我还没有考虑使用多阶段管道,因为我发现它还没有完全准备好投入生产,特别是因为它们的批准/门控选项仍然非常有限。

我知道这是一个很长的问题,有很多细节(但可能还不够?)和个别问题,但
我希望这里有人在他们想分享的领域有经验或见解。您认为不同选项的优缺点是什么。

或者有没有办法让工作项引用通过其他构建到发布,即使它们只是来自触发构建?

0 投票
1 回答
207 浏览

azure-storage - 在 Dynamics Business Central (AL) 中创建文件并将内容写入其中

我正在尝试使用 Dynamics Business Central 在 azure 存储上创建一个文件,然后尝试将一个字符串写入该文件。我无法创建文件 任何人都可以在这方面帮助我。

我的示例代码是

但是我得到了错误的响应,我也无法创建文件。

0 投票
2 回答
127 浏览

visual-studio-code - 当通过包管理器调用测试时 vscode.executeDefinitionProvider 返回空 vscode.Location[]

我正在创建我的第一个 VS Code 扩展,但现在我在自动测试我的扩展时卡住了。如果我从 VS Code 运行我的自动化测试,一切正常,但我也想在持续集成管道中运行测试,这就是为什么如果我用npm run test.

npm run test的大多数测试都成功运行,但就测试方法而言,取决于“vscode.executeDefinitionProvider”的输出 - 测试失败,因为它没有找到任何定义。

你知道我做错了什么吗?为什么npm run test行为与从 VS Code 中运行测试不同?

在此先感谢您的帮助。

大卫

0 投票
1 回答
236 浏览

azure - 在业务中心获取 azure key vault 的访问令牌时出错?

我正在尝试在正文中发布具有不同参数的 HTTP 请求,但我收到消息“oauth2 错误 AADSTS90014:请求正文必须包含以下参数:'grant_type'”。通过 Postman,我可以获得具有相同参数的访问令牌。我不知道我在这里做错了什么。我也附上了截图。

如果有人可以帮助我。

通过邮递员发布请求

错误信息

0 投票
1 回答
45 浏览

microsoft-dynamics - Dynamics Business Central 中是否有自定义(word)报告数据集中的字段概览

不知何故,我觉得很难获得有关 Dynamics BC 的详细信息。我目前正在“设计”一些自定义报告——例如我们的发票——使用文字模板。

现在我想将一些来自 BC 的数据添加到报告中,这些数据在提供的“XML 自定义部分”中找不到作为可用的字段/内容控件(例如我们的 BIC 或客户的德国 UST-ID(增值税 ID))

因此: a) 是否有 XML 部分中可用字段的概述?最好的情况是映射到 BC 前端中的相应字段?b) 我可以扩展 XML 部分中的可用字段吗?

0 投票
1 回答
224 浏览

microsoft-dynamics - Dynamics HttpClient 调用永远不会成功

我正在开发一个业务中央控制插件,我需要在其中调用外部 Web 服务。为此,我在 AL 中使用HttpClient类,但没有成功调用。

完成通话大约需要 2.5-3 分钟。ResponseText 为“ OK ”,HttpStatusCode 为“ 200 ”,但调用始终失败并进入错误处理块。

读取响应Response.Content.ReadAs(responseText);失败并显示动态错误消息。

我错过了什么?我已经在扩展管理中授予了外部访问权限,并尝试使用沙盒和最新 2019 年的本地安装。

0 投票
1 回答
116 浏览

azure - 在业务中心的 Azure 存储上将报告另存为 PDF

我正在尝试在云上的业务中心上运行报告,我想将该报告(PDF)直接保存在 azure 存储上。

我想知道无论如何要在 Business Central 365 AL 代码上执行此操作。

0 投票
0 回答
33 浏览

azure-storage - 在 Azure 存储上创建 PDF 后写入 PDF 文件内容

我在 azure 存储上创建了一个 pdf 文件,现在我想在 pdf 文件中写入一些内容。

有可能吗?如果是,请在这方面帮助我

谢谢你

这是将内容写入 Azure 存储上除 PDF 之外的所有格式的文件。我想将内容写入 PDF 文件

0 投票
1 回答
139 浏览

visual-studio - 业务中心元数据文件使用 Visual Studio OData 连接服务生成错误的 APi 路由

我有一个使用 Dynamics Business Central 的演示租户,我正在使用 OData 为公司实体制作 CRUD 示例,之后它适用于发票、报价单、订单、产品等。我已使用此 URL 调用下载了元数据文件:https : //api.businesscentral.dynamics.com/v2.0/ {tenantid}/Production/ODataV4/$metadata

访问令牌是使用 IConfidentialClientApplication 和 AuthenticationResult 提供的。令牌是正确的,在邮递员中使用它时,我可以从 Business Central 获取公司列表。

我在每个 odata 调用中传递令牌,如下所示:

这是我的 GET Company OData 调用的代码:

List<myNAV.Company> customQuotes = (await ((DataServiceQuery<myNAV.Company>)bcContext.Company).ExecuteAsync()).ToList();

代码生成的 URL 如下所示:https ://api.businesscentral.dynamics.com/v1.0/api/beta/company

但正确的 URL 应如下所示:https ://api.businesscentral.dynamics.com/v1.0/api/beta/companies

Postman 使用此 url 返回错误 404:https ://api.businesscentral.dynamics.com/v1.0/api/beta/company ,但 DataServiceQuery 中的相同调用返回错误 401,凭据不正确。

从不同的 url(https://api.businesscentral.dynamics.com/v1.0/api/beta $metadata#)获取元数据文件后,查询生成正确的 url,但我仍然收到我使用不正确凭据的错误但是当我在邮递员中使用 URL 和访问令牌时,它会返回 200 Success 和正确的公司值。