问题标签 [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.
powerbi-datasource - Business Central:如何使用 Power BI 从已过帐的销售发票行表中检索总收入(包括增值税)?
我使用 Power BI 从 Business Central 检索和可视化销售数据,但到目前为止我还没有找到任何方法:
- 检索我已过帐销售发票的行级别(每个发票和项目编号)的总收入
- 在我过帐的销售发票的抬头级别(发票编号)上检索总收入
- 检索我已过帐销售发票的行级别(每个发票和项目编号)的增值税,以便根据收入净额计算收入总额
任何有简单解决方案的人(我确定有一个,因为这似乎是一个相当经典的要求)???
最好,如果您需要任何额外信息,请告诉我,凯文
api - 商业中心:custome api getById 不起作用
我的问题是我无法为特定的 调用我的自定义 API itemId
,但是当我调用普通 API 时,它按预期工作。
目前,我可以成功调用特定项目的普通 API,如下所示:
但是当我尝试对我的自定义 API 做同样的事情时:
我收到一个错误:
我可以在/items
. 我在哪里得到所有项目的清单。
我制作的自定义 API 页面如下所示:
我怀疑我需要向页面添加一个属性,例如CanGetById = true
. 不过,我不知道。
BC 版本在 docker 中运行:mcr.microsoft.com/businesscentral/sandbox:dk Docker 版本:V19.03.12
angular - MSAL (Angular) 弹出式登录
我在 Angular 中遇到了 MSAL 的问题。我正在使用该@azure/msal-angular
软件包(版本 1.1.1)。
我正在开发嵌入在 ERP 系统(业务中心)中的 Angular 应用程序。目前我正面临身份验证问题。
业务中心通过引用 Azure blobstorage 中的 Angular dist 文件来嵌入 Angular 应用程序。
登录时,登录提供程序无法重定向回 Angular 应用程序,因为它嵌入在 Business Central 中,并且在嵌入时没有公共 url 来调用 Angular 本身中的路由。
因此,我所做的是将 Angular 应用程序托管在公共端点和嵌入式应用程序中,在身份验证后使用外部应用程序重定向回来。我已经使用另一个库以这种方式支持身份验证,当使用弹出窗口进行身份验证时,我重定向到带有几行 JavaScript 的纯 HTML 页面,以从 url 段中检索 access_token / id_token。检索后,我打电话(window.opener || window.parent).postMessage(message, "*");
通知父窗口认证结果。
但现在我遇到了 MSAL 的问题。当仅在本地运行 Angular 应用程序时,使用 redirectURL https://localhost:4200/ 身份验证过程可以正常工作。但是,当将此更改为外部托管的 Angular 应用程序(相同版本)时,它会显示一个带有应用程序(重定向后)的弹出窗口,其中 JWT 在 url 段中。MSAL 没有对此结果做出反应。我认为是因为弹出窗口的域与父窗口不同。
有没有办法用 MSAL 修复这种(复杂的)身份验证方式?
microsoft-dynamics - 在 Dynamics 业务中心更新销售订单行项目
我有一个使用 API for business Central 创建的销售订单。销售订单有一个单行项目。我想更新订单项的数量。以下是我到目前为止所尝试的。
端点:https://api.businesscentral.dynamics.com/v1.0/domain.com/api/v1.0/companies(company_id)/salesOrders(sales_order_ide)/salesOrderLines(sales_order_line_id)
其中销售订单行 ID 采用e86d3aa1-f2f8-ea11-aa61-0022481e3b8c-10000
本文档中所述的形式提出请求时PATCH
,我收到以下异常:
')' 或 ',' 应位于 '(sale-order-line-item-id)' 中的第 9 位。
当我只是尝试获取订单项时,也会发生上述异常,但是当我更改 URL 并采用以下形式时,该异常已修复:
端点:
当我尝试通过发出
GET
请求获取行项目时,此端点正在返回正确的响应。但是,当我PATCH
使用相同的端点发出请求时,使用简单的请求正文,例如
它抛出异常:
在 Dynamics 365 Business Central OData Web 服务中不允许对 EdmType 'Collection' 的 'salesOrderLines' 的 'PATCH' 请求。
我还指定了if-Match
标题以及包含订单项的 etag 值但无济于事的请求,并且正在发生相同的异常。我错过了什么吗?任何帮助将不胜感激。
dynamics-business-central - Business Central AL 代码超链接方法
我需要在 Business Central 的登录过程中显示一个 URL。在 OnAfterLoginStart 事件上有一个事件。部分事件代码将显示服务条款。显示服务条款页面如下: Hyperlink(TOS_URL);
执行此操作不会创建新选项卡。
如果我这样做: Message('必须批准新的 TOS'); 超链接(TOS_URL);
然后显示消息并创建一个新选项卡 - 正如预期的那样。
如果我将相同的代码 (Hyperlink(TOS_URL);) 放在按钮上单击窗口,它会按预期工作。
在登录过程完成之前,Business Central 基本代码中是否存在不允许重定向的内容?
有没有其他方法可以在没有消息语句的情况下完成此任务?
感谢您的任何帮助。
dynamics-business-central - Business Central:知道是否安装了扩展
在 Business Central 中,我想根据是否安装了第 3 方扩展来启用/禁用页面扩展中的字段。我不想依赖这个 3rd 方扩展,因为大多数时候它不会出现,我们的扩展也不依赖它。
有谁知道如果将扩展作为依赖项包含在 app.json 中但在运行时未安装会发生什么?它安装在开发环境中,但未安装在运行时。我的假设是它将无法安装我的扩展程序。
对于我正在尝试做的事情,不需要更新第 3 方扩展数据,但我想阅读它。
有没有办法确定是否安装了第 3 方扩展?
dynamics-nav - SerialPort 读取扩展因 dotnet 错误而失败
我正在编写一个读取串行端口数据的扩展。我在 BC14 OnPremis 上运行。这就是我所拥有的。全局变量,在客户端运行(显然串行端口不在服务器上,带有事件,因为我需要以某种方式接收数据。
当端口上的数据可用时调用的触发器。它实际上被解雇了。
在 dotne.al 文件中,我有一个 SerialPort 类型的声明。由于某些原因,它会将名称与其他名称混淆,因此我不得不添加一个后缀来键入别名。所以现在我的类型叫做 SerialPort A。
问题是调用CurrPort.ReadLine()
失败并出现错误:
我尝试使用另一种方法Read
。错误是一样的。它很可能与 Nav 将所有 dotnet 变量包装/解包为对象类型有关,但我不知道该怎么做。猜猜这里出了什么问题?
在事件日志中有错误描述
还有一个
visual-studio-code - 是否有可以为 Visual Studio Code 运行以批量处理错误的工具/扩展程序/脚本?
我有一个相当大的 Dynamics 365 Business Central Extension 在 Visual Studio Code 平台上用 AL 代码编写。Microsoft 正在更改 AL 代码中的一项规则,如果在下一个版本之前未解决,该规则将导致广泛的错误。这个变化是不能使用“implicit with”,所以代码中的每一个记录引用都必须用“Rec.”来限定。在这个扩展中有几百个地方需要解决,手动一个一个地调整它们是不切实际的。以供参考,
这个:
变成这样:
因此,如果这几百个实例的错误(或现在的“问题”)是相同的,有没有办法批量更正,可以说只是应用“Rec”。到已在多个文件和文件夹中标记的每个引用的开头?
saas - 如何根据全局变量获取业务中心页面字段的值
在需求预测页面 99000919 中,所有“标题”数据字段都由全局变量支持。我需要将按期间查看(PeriodType)默认为月,然后验证该值。我这样做并不成功。
A. 使用 Modify(PeriodType) 从 OnAfterValidate 触发器中获取值。当我使用 Modify 时,PeriodType 显示在智能感知中,但是当我尝试使用它时,我得到一个编译器错误,即 PeriodType 在当前上下文中不存在。
B. 我也尝试使用 VS Code teventsub 代码片段订阅 PeriodType 的 OnAfterValidate 事件,但没有暴露任何内容。
这可以在带有扩展的 SaaS 解决方案中完成吗?欢迎任何想法或建议。
docker - BC 17 在 Docker 环境中安装
在 BC17 之前,我会下载相应的映像文件并使用 new-navContainer 命令创建一个 BC Container。我读过BC17的过程是不同的。我发现的文章只说流程正在改变,而不是新流程是什么。
有人知道创建 BC17 Docker 容器的新方法吗?
谢谢。