问题标签 [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.
api - MS Dynamics 365 商业中心。API POST、PATCH、DELETE 不起作用
我们已经在我们的服务器上安装了 MS Dynamics 365 Business Central(我不知道如何查看当前安装的版本)。我们正在为我们的请求使用oData v4协议。
任务
我们需要从 PHP 对该系统进行 API 调用问题
当 GET 请求运行良好时,不可能发出 POST、PATCH、DELETE 请求。得到
要求:
获取 https://d365bc.vendor.com:7058/attain/ODataV4/Company('{{company}}')/Customer回复
删除
删除 https://d365bc.vendor.com:7058/attain/ODataV4/Company('{{company}}')/Customer(No='01121212')我不确定 Create (POST) 或 Update (Patch) 的正确语法是什么 对于 POST 请求,我尝试复制现有值(取自 GET)并将其放入正文中。我收到以下回复:
有时,如果我提出绝对错误的请求,我会收到以下回复:
我无法为客户 ProductItems 应用 CUD 操作。但是对于订单,它可以工作。
现有特权
如果我跟随设置和扩展 / 手动设置 / 用户 / [选择用户]
在权限部分,分配的权限太多。其中,有一个SUPER特权项。据我所知,所有的名字都是定制的。这是分配权限的屏幕截图。
UPD 1。
我尝试遵循本指南:https ://docs.microsoft.com/en-us/dynamics-nav/api-reference/v1.0/
我有本地安装,对我来说,不清楚任何操作的正确端点是什么。
例如,我可以提出以下要求:
https://d365bc.vendor.com:7057/attain/WS/CRONUS%20International%20Ltd/Page/Customer
结果,我得到了一些计划,但没有客户,或者与他们采取任何行动的可能性。
据我了解,本指南仅提供云安装示例。
我做的一切正确吗?这些参数是什么意思?指南中没有提供任何解释。
更新.2
关于要求:必须在 Business Central 服务器实例上启用 API:
所以端口是 7057,API URL 是https://d365bc.vendor.com:7057/Attain/WS/
什么是WS,真的需要吗?通过上面的 URL,我得到了这个:
用于身份验证的用户必须具有 Web 服务访问密钥(在 Business Central 中为用户创建)
这部分没有任何内容,我添加了新密钥。现在它看起来像这样。但这并没有改变我的情况。仍然相同的错误:端口 7057 为 405,端口 7058 为 404。
ps 简单生成就够了吗?或者我们需要在某个地方使用它?
用户必须在 Business Central 中拥有相关 API 所需的权限。
是在下一页管理吗?
以下是响应示例:
网址在域名中使用正确的供应商名称执行后已更改。
我现在无法测试所有内容,因为我离 vac 上的笔记本电脑很远。谢谢大家的时间
asp.net - 401 错误后使用 C# 调用 Dynamics NAV Web 服务成功
我遇到了一些奇怪的行为(意味着我不明白发生了什么),如果可能的话,我希望得到一些帮助来解决它。
我们有一些 Dynamics 365 NAV Business Central Web 服务公开了一个带有 SSL 证书的安全,我们正在使用一些标准 C# 代码访问它。
我们已将 SOAP 代理添加到 ASP .NET Webforms 应用程序,这一切都按预期工作。
然后我们声明一个 Web 服务的实例,使用新的 NetworkCredential 实例设置凭据,并将 Web 服务设置为使用 PreAuthenticate,然后在我们的服务上调用该方法。
当我们在 Fiddler 中查看日志时,我们发现该服务被调用了两次。第一次调用时,我们收到一个 401 错误响应,告诉我们必须使用 NTLM,然后使用更长的 NTLM 密钥进行第二次调用,调用成功,我们得到我们的数据......
第一次尝试...
第二次尝试...
谁能告诉我如何进行网络服务调用,以便第一次进行身份验证?401s 被当作 DDOS 类型的攻击,然后流量被阻止。
我尝试更改凭据传递的方式,但这没有任何区别......
http - 无法解析域名
我正在 BC 学习 AL 编程,并且正在尝试使用 HttpClient 类来发出 http 请求。我尝试向 jsonplaceholder api 发出请求,但我收到“无法解析远程名称:https://jsonplaceholder.typicode.com/posts”。API 工作正常,因为我可以通过 Postman 向它发出请求。我正在使用 BC16,在一个应该代表 SaaS 环境的 docker 容器中。任何想法为什么我可能会收到此错误?请求代码如下:
c# - C# OData MS Business Central - 添加属于父项的子记录
我正在尝试将 Business Central [Sales Line] 子记录添加到 C# OData 程序中的 [Sales Header] 父发票记录。我知道标题记录存在,因为程序刚刚创建它并且我可以在 BC 中看到它,但是当我尝试使用绑定文档号添加子记录时,我收到了一个错误(见下文),表明它可以'看不到标题记录。
表销售行的文档编号字段包含在相关表(销售表头)中找不到的值(102206)。
有什么想法吗?
dynamics-business-central - 业务中心页面上的选定/标记记录
在 AL 扩展 CodeUnit 中,您如何使用“选择更多”功能遍历用户在列表页面上选择/标记/勾选的记录?例如,某处的数据类型中是否存在 IsMarked / IsSelected / IsTicked 属性?或者,您可以将已经深入的列表传递给代码单元吗?
navision - 如何通过代码创建标准的“Microsoft Excel”按钮?
我想知道如何通过代码创建标准按钮“Microsoft Excel”,我所指的按钮是创建的:
打开页面,右键单击功能区、自定义功能区、Microsoft Dynamics 365 Business Central、打印发送和“添加”“Microsoft Excel”以在功能区页面上执行您想要的操作。
我知道我可以使用 excel 缓冲区或代码单元,但我希望在功能上使用“Microsoft Excel”来按代码创建按钮,我想要一些东西:
“CU 365 Excel”.createExcelByTable(18)。
提前致谢。
microsoft-dynamics - 无法从 NavJsonValue 转换为 NavDate
在向端点发出 Get-Request 后,我逐键解析返回的 Json 字符串,这很有效。当我尝试将返回的日期('createdAt')转换为日期类型时,会出现问题。
我收到的错误
Die Konvertierung von Microsoft.Dynamics.Nav.Runtime.NavJsonValue in Microsoft.Dynamics.Nav.Runtime.NavDate ist nicht möglich。
这意味着:
无法从 NavJsonValue 转换为 NavDate
我解析的 Json
相关代码
dynamics-business-central - 用户卸载自定义扩展时如何运行自定义代码单元
我们有一个扩展来创建一个作业队列条目,以确保基于某些滚动日期的自定义表值保持同步。该扩展还创建了一些 PermissionSet。卸载扩展时,需要删除作业队列条目,并且需要从分配给它们的任何用户中删除权限集。
Codeunit 类公开了一个 Subtype 属性,但非测试值只有 Normal、Insert 和 Upgrade。我也期待 Uninstall 和/或 Unpublish Codeunit。
如何检测用户扩展卸载,以便删除有问题的项目?