在 Visual Studio Code 中创建新的 Business Central 扩展
Dynamics 365 Business Central 的所有功能均可通过对象编码实现。 如果要修改现有对象(如表、页面等),必须创建扩展。 扩展是基于对象的编程模型的一部分。 您可以创建新对象或扩展现有对象,具体取决于要使用扩展执行的操作。 扩展定义了修改 Business Central 应用程序行为的额外功能。
所有对象存储为代码,称为 Application Language 代码(AL 代码)。 每个对象都保存在具有 .al 文件扩展名的文件中。 可以将多个对象放入同一 .al 文件中,但建议您对每个对象使用一个文件。
通过使用 Visual Studio Code 的 AL 语言扩展,您将获得现代开发环境的优势,并实现与 Business Central 的无缝发布、调试和实现集成。
编译扩展后,您将收到一个 .app 包文件,该文件可部署到 Business Central Server。 还可以将扩展包提交到 AppSource,向全球数千个潜在客户提供您的解决方案。
在 Visual Studio Code 中安装 AL 扩展后,可以按照以下步骤开始为 Business Central 创建扩展:
打开 Visual Studio Code。
选择菜单栏中的视图,然后选择命令面板。 还可以使用键盘快捷方式 Ctrl+Shift+P。
在显示的菜单中,输入 AL: Go,然后选择 AL: Go! 命令(或使用 Alt+A Alt+L 键盘快捷方式)。 此操作将创建新的 AL 扩展。
提供您想要存储扩展代码文件的路径。 Visual Studio Code 建议 Documents 文件夹中的路径。
AL 语言扩展可用于为不同版本的 Business Central 开发扩展。 Visual Studio Code 要求您选择所需的目标版本。
选择为开发和测试扩展而要连接到的实例。 如果连接到在线云沙盒,请选择 Microsoft 云沙盒;如果使用 Docker 容器或本地版本,请选择您自己的服务器。 如果您要设置本实例以完成本模块,请选择 Microsoft 云沙盒,因为您需要使用在线云沙盒来完成练习。
您需要提供用户凭据才能连接到云沙盒。
Visual Studio Code 不知道哪些对象(表、页面等)已在 Business Central 中可用。 因此,在提供凭据后,Visual Studio Code 将尝试下载引用符号。 这些符号是 .app 文件,它们会下载到您的 AL Extension 文件夹中的 .alpackages
文件夹。 这些符号包含对象构建方式的引用。 例如,在客户表中定义的字段、供应商卡片布局的定义方式等。
在开始开发之前,请确保您下载这些符号文件。 如果 Visual Studio Code 没有自动下载这些符号,您可以让 Visual Studio Code 从您的云沙盒中下载它们。
要下载符号,请按照以下步骤操作:
选择菜单栏中的视图,然后选择命令面板。 也可以使用键盘快捷方式 Ctrl+Shift+P。
在显示的菜单中,输入 AL: 下载符号,然后选择 AL: 下载符号命令。
下载符号可能需要几分钟时间。 下载符号后,您将在文件资源管理器中看到一个新文件夹
.alpackages
。 该文件夹至少包含以下 .app 文件:应用程序
基础应用程序
系统应用程序
系统
业务基础
在 Visual Studio Code 的输出窗口中,您还将看到一条消息,指示已下载所有引用符号。
如果 Visual Studio Code 出现错误,输出窗口会显示错误。 要打开输出窗口,请选择视图 > 输出,也可以使用键盘快捷方式 Ctrl+Shift+U。
要部署应用程序,请按 F5 键,然后等待 Business Central 应用程序在默认 Web 浏览器中启动。 如果未出现问题,您应看到以下消息:应用已发布:Hello World。
如果返回到 Visual Studio Code 应用程序,您将看到一个额外工具栏,指示您处于调试模式。 在 Visual Studio Code 中按下 F5 键将部署并启动调试程序。 可以选择红色停止图标以停止调试会话。
当使用 AL: Go! 创建新扩展时,默认情况下将始终生成 HelloWorld.al 文件。 此文件包含的代码显示上一示例中的消息框。 .al 文件扩展名指示此文件包含 AL 代码。 建议您在每次启动新扩展时删除此文件。
Microsoft_Application.app 文件
Microsoft_Application.app 文件包含在 Business Central 中,位于 \Applications\Application\Source
文件夹中。 Microsoft_Application.app 文件以逻辑方式封装了构成解决方案的所有扩展(例如包含基础和系统应用程序包文件的 16.0.0.0 版本),通过此文件可以轻松定义和引用此解决方案标识。
在先前版本中,对基础和系统应用程序的引用在扩展的 app.json 文件的依赖项下显式声明。 现在,您必须使用 app.json 文件中的应用程序版本属性。
引用的文件名为 Microsoft_Application.app,在应用程序包文件的 app.json 文件中,名称为 Application。 对于具有自己的 appId 的代码自定义基础应用程序,可以修改 Microsoft_Application.app 文件以改为引用代码自定义基础应用程序的 appId。 这可使依赖于应用程序的任何扩展解析为自定义 appId。
当您使用 AL:Go 模板在 Visual Studio Code 中开始一个新的 AL 项目时,隐式 WITH 代码语句现在将默认关闭,以鼓励后续使用显式 WITH 语句。 这可以通过将 NoImplicitWith 选项添加到生成的 app.json 文件中的 features 属性来完成。
存储应用文件
默认情况下,当您生成 AL 项目时,输出应用文件存储在项目文件夹中。 但是,如果您使用不在同一工作区中且相互依赖的多个应用,则输出到共享应用文件夹可能会有所帮助。
在 al.compilerOptions
设置中,您现在可以使用 outFolder
属性来指定要在生成应用文件作为生成 AL 项目的一部分时使用的输出文件夹。
通过本操作,您可以更轻松地在单个位置管理和重用生成的应用。 Visual Studio Code 中的 AL 项目仍然包含输出文件的节点,但该文件随后实际存储在项目文件夹之外。
下面是在用户的 C 盘的“myappfolder”中保存生成的应用文件的示例。
默认文件夹位置
Microsoft Dynamics 365 Business Central 的 AL 语言扩展提供可用于生成新 AL 项目的命令。 从一开始,项目的文件夹位置就固定为 Windows 中用户的 Documents 文件夹。 基于要求,我们为合作伙伴添加了如下功能:在设置中为 AL 项目定义不同的默认位置,从而简化项目创建工作流。
提供用于为新 AL 项目指定默认文件夹位置的 al.algoSuggestedFolder
设置。 可以针对每个用户或每个工作区进行此设置,从而更加灵活地为新项目指定位置。