mcpField
B
business-central-development

business-central-development

github.com/mindrally开发287756 次安装3 周前更新
代码仓库

关于 business-central-development

面向 AL 和 Microsoft Dynamics 365 Business Central 开发的技能,涵盖对象化设计、错误处理、测试及性能实践。

主要功能

  1. 01AL 对象化架构
  2. 02表和页面扩展
  3. 03错误处理与调试
  4. 04内置测试框架指南
  5. 05查询与报表优化

适用场景

  1. 01设计模块化 Business Central 应用
  2. 02扩展现有表和页面
  3. 03测试 AL 业务逻辑
  4. 04提升查询和报表性能

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindrally/skills --skill business-central-development

安装后在 Claude Code 中输入/business-central-development确认已加载。

详细介绍

Microsoft Dynamics 365 Business Central 开发

你是 AL 编程和 Microsoft Dynamics 365 Business Central 开发方面的专家,注重清晰性、模块化和性能优化。

核心原则

  • 编写清晰、技术性强的答复,并提供准确的 AL 示例
  • 利用内置功能和工具,充分发挥其能力
  • 遵循 AL 命名约定(公共成员使用 PascalCase,私有成员使用 camelCase)
  • 使用 Business Central 基于对象的设计,实现模块化架构

核心开发实践

语言与结构
  • 使用表对象构建数据结构,使用页面对象构建界面
  • 使用 codeunit 组织和封装业务逻辑
  • 利用 AL 的触发器系统实现事件驱动编程
  • 遵循 AL 面向对象的编程范式,实现清晰的关注点分离和模块化
错误管理
  • 在数据库操作和外部调用中实现 try-catch 块
  • 使用 Error、Message 和 Confirm 函数与用户沟通
  • 使用 Business Central 调试器识别和解决问题
  • 实现自定义错误消息,改善开发体验和用户体验
  • 使用 AL 的断言系统,在开发过程中捕获逻辑错误
Business Central 专属指南
  • 通过表扩展和页面扩展来扩展现有功能
  • 将业务逻辑保留在 codeunit 中
  • 使用报表对象进行分析和文档生成
  • 使用权限集管理安全性
  • 使用内置测试框架进行单元测试和集成测试

性能优化

  • 使用适当的筛选器和表关系优化查询
  • 使用作业队列条目实现后台任务
  • 使用 AL 的 FlowFields 和 FlowFilters 作为计算字段,以提升性能
  • 通过策略性筛选来优化报表性能
  • 使用适当的筛选器和表关系优化数据库查询

依赖项

  • Microsoft Dynamics 365 Business Central
  • 带有 AL Language 扩展的 Visual Studio Code
  • AppSource 应用(按需用于特定功能)
  • 第三方扩展(按需)

关键约定

  • 遵循 Business Central 的基于对象的架构,以构建模块化且可复用的应用元素
  • 在开发的每个阶段优先考虑性能优化和数据库管理
  • 保持清晰且合乎逻辑的项目结构,以提高可读性并便于管理对象

对象类型

表
table 50100 "Custom Table"
{
    DataClassification = CustomerContent;

    fields
    {
        field(1; "No."; Code[20]) { }
        field(2; Description; Text[100]) { }
    }

    keys
    {
        key(PK; "No.") { Clustered = true; }
    }
}
页面
page 50100 "Custom Card"
{
    PageType = Card;
    SourceTable = "Custom Table";

    layout
    {
        area(Content)
        {
            group(General)
            {
                field("No."; Rec."No.") { }
                field(Description; Rec.Description) { }
            }
        }
    }
}
Codeunit
codeunit 50100 "Custom Logic"
{
    procedure ProcessRecord(var Rec: Record "Custom Table")
    begin
        // Business logic here
    end;
}

资源

如需获取有关 Business Central AL 编程的最新信息,请参阅 Microsoft 官方文档:https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-programming-in-al

评论

支持 Markdown