Compare commits

..

No commits in common. "main" and "agentic-assistance-hub" have entirely different histories.

8 changed files with 46 additions and 147 deletions

View file

@ -125,14 +125,14 @@ images: ["images/og-image-fission.png"]
<div class="card-shadow">
<span class="card-badge">NEW</span>
<h4 class="section-text-bold mt-4">
Getting Started With Agentic Coding
Vibe Coding for AL
</h4>
<div class="card-shadow-content">
<p class="section-text">
Essential concepts and practices for working with AI coding assistants in your AL development workflow.
AI-optimized coding rules and guidelines designed to enhance the AL developer experience in modern AI-powered IDEs like VS Code and Cursor.
</p>
<a href="/docs/agentic-coding/gettingstarted/">
<button class="hero-mid-2 align-self-end">Get Started</button>
<a href="/docs/vibe-coding/">
<button class="hero-mid-2 align-self-end">Explore Rules</button>
</a>
</div>
</div>
@ -140,16 +140,16 @@ images: ["images/og-image-fission.png"]
<div class="col-lg-4">
<div class="card-shadow">
<span class="card-badge">GUIDE</span>
<span class="card-badge">TAG</span>
<h4 class="section-text-bold mt-4">
Vibe Coding Rules
API
</h4>
<div class="card-shadow-content">
<p class="section-text">
AI-optimized coding rules and guidelines designed to enhance the AL developer experience in modern AI-powered IDEs.
Two API Related Design Patterns and one Best Practice for working with API's
</p>
<a href="/docs/agentic-coding/vibe-coding-rules/"
><button class="hero-mid-2 align-self-end">Explore Rules</button></a
<a href="/tags/api/"
><button class="hero-mid-2 align-self-end">Read Now</button></a
>
</div>
</div>
@ -157,17 +157,17 @@ images: ["images/og-image-fission.png"]
<div class="col-lg-4">
<div class="card-shadow">
<span class="card-badge">TOOLS</span>
<span class="card-badge">PATTERN</span>
<h4 class="section-text-bold mt-4">
Agentic Tools
Event Bridge
</h4>
<div class="card-shadow-content">
<p class="section-text">
Model Context Protocol (MCP) servers that enhance AI assistants for Business Central development workflows.
In the world of interfaces, it is important to preserve (certain) events over multiple implementation of the interface.
</p>
<a
href="/docs/agentic-coding/communityresources/tools/"
><button class="hero-mid-2 align-self-end">Explore Tools</button></a
href="/docs/patterns/event-bridge-pattern/"
><button class="hero-mid-2 align-self-end">Read Now</button></a
>
</div>
</div>
@ -210,6 +210,17 @@ images: ["images/og-image-fission.png"]
</p>
</div>
</a>
<a href="https://twitter.com/search?q=%23bcalhelp">
<div class="card-shadow twitter-card" style="margin-left: auto">
<div class="card-header-custom">
<h2 style="padding-right: 0.8rem;"><i class="fab fa-twitter"></i></h2>
<h2 class="section-text-bold">Twitter</h2>
</div>
<p class="section-text">
Chat about this with the <b class="text-highlight">#bcalhelp</b> hashtag.
</p>
</div>
</a>
</div>
</div>
</div>
@ -243,6 +254,22 @@ images: ["images/og-image-fission.png"]
</div></a
>
</div>
<div class="col-lg-6">
<a href="https://twitter.com/search?q=%23bcalhelp"
><div
class="card-shadow twitter-card-desktop"
style="margin-left: auto"
>
<div class="card-header-custom">
<h2 style="padding-right: 0.8rem;"><i class="fab fa-twitter"></i></h2>
<h2 class="section-text-bold">Twitter</h2>
</div>
<p class="section-text">
Chat about this with the <b class="text-highlight">#bcalhelp</b> hashtag.
</p>
</div></a
>
</div>
</div>
</div>
</div>

View file

@ -35,7 +35,7 @@ The properties that must be defined are:
- ODataKeyFields
### APIPublisher
The name of the API publisher is usually the company creating the API. It is the first custom part in the URL for a given endpoint. While the value is case insensitive for HTTP operations (GET, POST, etc.), it is case sensitive when checking for active subscriptions.
The name of the API publisher is usually the company creating the API. It is the first custom part in the URL for a given endpoint. The value is case insensitive.
Example:
@ -44,7 +44,7 @@ APIPublisher = 'contoso';
```
### APIGroup
Sets the group of the API endpoint that page or query is exposed in. In the URL the APIGroup comes after the APIPublisher. It can be used to distinguish different API apps or groups of APIs from each other. While the value is case insensitive for HTTP operations (GET, POST, etc.), it is case sensitive when checking for active subscriptions.
Sets the group of the API endpoint that page or query is exposed in. In the URL the APIGroup comes after the APIPublisher. It can be used to distinguish different API apps or groups of APIs from each other. The value is case insensitive.
Example:

View file

@ -23,6 +23,6 @@ We're looking forward to your comments. Where you can, do provide concrete examp
[anchor0]: /files/CAL-Coding-Guidelines-at-Microsoft-Development-Center-Copenhagen.pdf "download the C/AL coding guidelines as pdf"
[anchor0]: https://blogs.msdn.microsoft.com/nav/2015/01/09/cal-coding-guidelines-used-at-microsoft-development-center-copenhagen "download the C/AL coding guidelines as pdf"
[anchor1]: /members/waldo/default.aspx "waldo"
[anchor2]: https://www.youtube.com/watch?v=z6skKy0pkmU&list=PLhZ3P-LY7CqmVszuvtJLujFyHpsVN0U_w&index=26

View file

@ -92,9 +92,7 @@ Entities where the Blocked Entity has been implemented include:
The [Released Entity][anchor4].
{{% alert title="Note" %}}
There was previously a video demonstration of this pattern, but it is no longer available.
{{% /alert %}}
{{< youtube O2R-fTSup1o >}}
[anchor0]: 2260.BlockedEntityPattern.png
[anchor1]: /navpatterns/1-patterns/blocked-entity/data-driven-blocked-entity/

View file

@ -1,49 +0,0 @@
---
title: "AL Development Collection"
linkTitle: "AL Development Collection"
weight: 1
description: >
AI Native AL Development toolkit with 37 Agent Primitives for systematic Business Central development
---
## Overview
The AL Development Collection provides a complete AI-native development toolkit for Microsoft Dynamics 365 Business Central. Instead of ad-hoc AI usage, you get systematic engineering through 37 Agent Primitives organized across 3 framework layers implementing the AI Native-Instructions Architecture.
**Created by**: [Javier Armesto](https://github.com/javiarmesto)
---
## Key Features
**6 Role-Based Specialist Agents**:
- al-architect 🏗️ (solution design), al-developer 💻 (implementation), al-debugger 🐛 (troubleshooting)
- al-tester ✅ (TDD/quality), al-api 🌐 (API development), al-copilot 🤖 (AI features)
**4 Orchestra System Agents** (Multi-agent TDD):
- al-conductor 🎭 (orchestration), al-planning-subagent 🔍 (research)
- al-implement-subagent 💻 (TDD implementation), al-review-subagent ✅ (validation)
**9 Auto-Applied Instructions**:
- Code style, naming conventions, performance patterns
- Error handling, events, testing standards
- Context-aware loading via `applyTo` patterns
**18 Agentic Workflows**:
- Environment setup (al-initialize, al-build)
- Development (al-events, al-pages, al-permissions)
- Analysis (al-diagnose, al-performance, al-migrate)
- Copilot features (al-copilot-capability, al-copilot-promptdialog, al-copilot-test)
**Smart Complexity Routing (Experimental)**:
- 🟢 LOW → al-developer (direct implementation)
- 🟡 MEDIUM → al-conductor (TDD orchestration)
- 🔴 HIGH → al-architect → al-conductor (full design + TDD)
---
## Links
- **GitHub**: https://github.com/javiarmesto/AL-Development-Collection-for-GitHub-Copilot
- **Quick Start**: https://github.com/javiarmesto/AL-Development-Collection-for-GitHub-Copilot/blob/main/QUICK-START.md
- **Complete Development Flow**: https://github.com/javiarmesto/AL-Development-Collection-for-GitHub-Copilot/blob/main/docs/workflows/complete-development-flow.md

View file

@ -14,21 +14,6 @@ This page curates blog posts, articles, and written guides from the Business Cen
### Getting Started
#### "AI for BC Development - The Knowledge Gap That Ships to Production" — Kine
**Author**: Kine (blog.kine.cz)
**Published**: 2025
**Summary**: A critical self-assessment guide on whether you are ready to validate what AI produces for BC development. Covers common AI mistakes in AL code (wrong field assignment, missing keys, reinventing standard libraries) and what BC knowledge areas you need to review AI output responsibly.
**Key Takeaways**:
- Common AI mistakes in AL code that ship to production
- Self-assessment framework for AI-assisted development readiness
- BC knowledge areas required to review AI output responsibly
- Practical examples of wrong field assignments, missing keys, and reinvented standard libraries
**Link**: https://blog.kine.cz/posts/bcdevelopmentserie-02b/
---
#### "Vibe Coding — yes or no?" — Demiliani
**Author**: Demiliani
**Published**: 2025-08-21

View file

@ -10,68 +10,6 @@ _Created by Microsoft, Described by Jeremy Vyska (Spare Brained Ideas)_
The "Number Series" system is used extensively to provide numbers to master records, documents, and other transactions through Microsoft Dynamics 365 Business Central.
## Important: BC v24+ Modern Pattern (Updated 2024)
**As of Business Central version 24.0 and later**, Microsoft deprecated the `NoSeriesManagement` codeunit in favor of the new `codeunit "No. Series"` with simplified methods.
### Modern Implementation (BC v24+)
**Variable declaration:**
```al
var
NoSeries: Codeunit "No. Series";
```
**OnInsert pattern (simplified):**
```al
trigger OnInsert()
begin
if "No." = '' then begin
MySetup.Get();
MySetup.TestField("Document Nos.");
"No. Series" := MySetup."Document Nos.";
if NoSeries.AreRelated(MySetup."Document Nos.", xRec."No. Series") then
"No. Series" := xRec."No. Series";
"No." := NoSeries.GetNextNo("No. Series");
end;
end;
```
**OnValidate pattern (same as before):**
```al
trigger OnValidate()
begin
if "No." <> xRec."No." then begin
MySetup.Get();
NoSeries.TestManual(MySetup."Document Nos.");
"No. Series" := '';
end;
end;
```
### Key Differences from Legacy Pattern
| Legacy (NoSeriesManagement) | Modern (No. Series) |
|----------------------------|---------------------|
| `NoSeriesMgt.InitSeries(...)` - 5 parameters | `NoSeries.GetNextNo(...)` - 1-2 parameters |
| `NoSeriesMgt.TestManual(...)` | `NoSeries.TestManual(...)` - Same method name |
| `NoSeriesMgt.TryGetNextNo(...)` | `NoSeries.PeekNextNo(...)` - New name |
| `NoSeriesMgt.SelectSeries(...)` | `NoSeries.AreRelated(...)` - Simplified API |
| Complex parameter passing | Simplified, intuitive API |
### Migration Strategy
For **backward compatibility** (supporting both BC v23 and v24+):
1. Use conditional compilation with `#if` directives based on platform version
2. Check runtime platform version and branch logic accordingly
3. Implement both patterns in separate procedures with version detection
{{% alert title="Note" color="warning" %}}
**The examples below reflect the LEGACY pattern** (NoSeriesManagement codeunit) for reference and historical context. For new development on BC v24+, use the modern `codeunit "No. Series"` pattern shown above.
{{% /alert %}}
---
## Description
At the heart of things, the Number Series engine allows users to define structure for a sequential numeric or alphanumeric string (collectively referred to as a 'number series'), then assign that structure to different parts of the system.
@ -345,4 +283,4 @@ For usage of number series, there is more information available on:
- [Microsoft Docs: Create Number Series](https://docs.microsoft.com/en-us/dynamics365/business-central/ui-create-number-series)
- [Microsoft Learn: Set up number series and trail codes](https://docs.microsoft.com/en-us/learn/modules/number-series-trail-codes-dynamics-365-business-central/)
For more programming details, there is more information on [Microsoft Docs: Number Sequences in Business Central](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-number-sequences).
For more programming details, there is more information on [Microsoft Docs: Number Sequences in Business Central](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-number-sequences).