问题标签 [dynamics-al]

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

customization - 从 Business Central/AL 中的列表部分创建项目时自动设置父 ID

我对使用 AL for Business Central 构建扩展非常陌生。我正在尝试为学校申请设置扩展。我建立的表工作,他们遵循这个数据模型:

Cardfor 中School,我展示了 for 的列表部分Course。它正确显示给定学校的所有课程。到现在为止还挺好。但是现在,每当我从这个视图创建一个Course时,我必须记住SchoolId手动设置,但我想自动执行此操作,因为我们已经知道School我们在哪个视图中。

Course表如下所示:

Course列表部分明确不包含SchoolId,因为我们希望它会自动管理:

School卡片在适当的Course list part视图上调用:

当然,还有SchoolNo.属性设置为主键的表:

尽管如此,还是没有运气。

0 投票
1 回答
47 浏览

view - 业务中心创建新视图未显示在下拉列表中

我正在尝试为采购发票创建一个新视图。我使用了这个例子:https ://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-views

当我在演示租户上成功导入扩展时,执行 AL Package 命令时没有错误,并且发布和安装扩展没有问题,新视图未列在页面视图的下拉列表中。

这是我的视图代码:

我正在一个 al 项目中工作,该项目已成功为子表单、卡片和表单制作了页面扩展,但我的页面自定义存在问题。

0 投票
1 回答
331 浏览

dynamics-business-central - Business Central API 扩展:如何将插入触发器连接到 API 自定义页面?

我创建了一种新的页面类型的 API,它使用销售发票标头源。我想获取新插入的记录并更新其值。之后在警报中显示该值。目前我在创建新的销售发票后有一个空白页面。

这是我的代码:

之后,我在我的 BC 类型查询中创建了一个新的 Web 服务,该查询针对销售发票,但在邮递员中我得到 401,无论我是对我的管理员用户使用基本身份验证还是在我的管理员用户上生成的 Web 服务应用程序密钥。

如何将插入触发器操作连接到我的 API 自定义页面?

0 投票
1 回答
627 浏览

api - Business Central API - 为销售发票行创建自定义 API 页面

我需要为 Dynamics 365 上的 Business Central 创建一个自定义 API 页面。我需要获取 API 方法的 AL 源

https://api.businesscentral.dynamics.com/v2.0/{{TenantID}}/{{Environment}}/api/beta/companies({{CompanyId}})//salesInvoices({{InvoiceId}})/salesInvoiceLines

有谁知道我在哪里可以找到上述 SalesInvoiceLines 方法的 AL 源?

我已将 AL 源从我的 Docker Windows 容器复制到目录 C:\bcSandbox\applications\APIV1\Source_Exclude_APIV1_.Source

我只能找到 SalesInvoiceLines 的 ListPart 的 AL 源(见下文),我可能错了,但不确定如何使用 ListPart 将新记录发布到 BC。

0 投票
2 回答
512 浏览

dynamics-business-central - 如何在 AL 中发送获取请求

我目前有2个问题。我正在尝试将 GetRequest 发送到我的网络服务。这是通过 SendNotify (phonenumber: text; template: text) 方法完成的。当我通过操作调用该方法时,我收到以下错误消息:误用的标头名称。确保请求标头与 HttpRequestMessage 一起使用,响应标头与 HttpResponseMessage 一起使用,内容标头与 HttpContent 对象一起使用。When I debug, the program stops at the following line: ContentHeaders.Add('Authorization', 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI2dsadaXdrZUZTTWpNcnlBc2s1IiwiZXhwIjoxNTk1NDA3NDgzLCJpYXQiOjE1OTQzNjgyNTR9.1tAsf-x2FEvhDMyB4dsvgVKfZMLwAHcr_OLRA8RBeiY'); 该令牌当前是硬编码的,但应该从服务设置列表中删除。谁能告诉我我做错了什么?

我遇到的第二个问题是检查 CheckInputData (NotifyEntry: Record "Notify Entry") 方法中的数据。通知条目中有一个名为 Contact No. 的字段,其中包含有关客户的所有信息。我想在方法中询问电话号码和称呼。不幸的是,我不知道我是如何摆脱联系号码的。可以请求数据。有人能给点小费吗?

更新 1

0 投票
1 回答
215 浏览

dynamics-business-central - 删除字符串中的多个特殊字符

我是 Dynamics 365 Business Central 和 AL 的新手。我需要从字符串中删除特殊字符(电子邮件地址、电话号码)。我试过DELCHR(String,'=','[')了,但禁止使用更多字符。我知道我可以添加多个,但我不知道我是否都抓住了它们。任何人都可以帮助我以更有效的方式吗?高度赞赏帮助。

谢谢

0 投票
1 回答
118 浏览

microsoft-dynamics - 日期过滤器未覆盖正确的时间范围

我有两个字段(“开始日期”、“结束日期”)都是日期类型。

而且我还有两个我试图掩盖的情况 - 没有成功:

答: “开始日期”未定义,但“结束日期”例如 Start Date= 0D ,End Date= 31.12.2020。这意味着从 0D 到 2020 年 12 月 31 日之间的一切都应该被视为重叠。

定义“开始日期”和未定义“结束日期”也是如此,例如 Start Date= 02.02.2020 , End Date= ''。那将被视为 02.02.2020..∞</p>

为了可视化它,我添加了一个屏幕截图。

重叠

注意: “开始日期” = “Gültig von”“结束日期” = “Gültig bis”)。

这种情况会重叠,因为 02.02.2020 一直到“无穷大”,例如“结束日期”的第一行在第二行的范围内。

B:在这种情况下,范围不碍事(不重叠),例如,第一行的开始日期= 0D,结束日期= 31.01.2020,第二行的开始日期= 02.02.2020,结束日期= ''

再次可视化:

不重叠

在这里,我们看到两行都有自己的范围(不重叠),因为第一行在第二行的下一个范围开始前两天结束。

我的方法不起作用:

像这样被称为我的页面:

结果比预期的要长。至少它是可重现的:)

0 投票
1 回答
77 浏览

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

0 投票
1 回答
192 浏览

dynamics-business-central - Business Central AL 代码超链接方法

我需要在 Business Central 的登录过程中显示一个 URL。在 OnAfterLoginStart 事件上有一个事件。部分事件代码将显示服务条款。显示服务条款页面如下: Hyperlink(TOS_URL);

执行此操作不会创建新选项卡。

如果我这样做: Message('必须批准新的 TOS'); 超链接(TOS_URL);

然后显示消息并创建一个新选项卡 - 正如预期的那样。

如果我将相同的代码 (Hyperlink(TOS_URL);) 放在按钮上单击窗口,它会按预期工作。

在登录过程完成之前,Business Central 基本代码中是否存在不允许重定向的内容?

有没有其他方法可以在没有消息语句的情况下完成此任务?

感谢您的任何帮助。

0 投票
1 回答
135 浏览

dynamics-nav - SerialPort 读取扩展因 dotnet 错误而失败

我正在编写一个读取串行端口数据的扩展。我在 BC14 OnPremis 上运行。这就是我所拥有的。全局变量,在客户端运行(显然串行端口不在服务器上,带有事件,因为我需要以某种方式接收数据。

当端口上的数据可用时调用的触发器。它实际上被解雇了。

在 dotne.al 文件中,我有一个 SerialPort 类型的声明。由于某些原因,它会将名称与其他名称混淆,因此我不得不添加一个后缀来键入别名。所以现在我的类型叫做 SerialPort A

问题是调用CurrPort.ReadLine()失败并出现错误:

我尝试使用另一种方法Read。错误是一样的。它很可能与 Nav 将所有 dotnet 变量包装/解包为对象类型有关,但我不知道该怎么做。猜猜这里出了什么问题?

在事件日志中有错误描述

还有一个