Earlier, my previous blog posts about Copilot have included:
First run: Making Copilot create documentation for my solution – Peik’s Corner
This method, I have already used in a live customer situation, where one of my customers had an app made by a previous partner, and the customer was not sure of the exact purpose of the app. Copilot did a great job of deciphering the solution.
The second post:
Using Copilot to create the featured picture – Peik’s Corner
I use that method all the time creating pictures for my blogs.
Next step
So, now the natural continuation is: How to make Copilot create your Business Central App from a description (prompt).
Me being lazy from nature, it is tempting to see if I can make Copilot make the full solution for me.
I will base the solution on the Open-Source solution, that I published in my blog earlier:
Absence Registration Overview – Peik’s Corner
Which is a simple solution. Copilot made the following description:

In all the examples here, I have done the following
- Created a new project
- Added the launch.json file pointing to my Sandbox in the cloud
- Added an App.json file with the basin information like: App Id, Description and Object Range
- Downloaded the symbols from the Sandbox
- Added a Documentation file in the Prompt folder
- Set the agent to be Claude Sonnet 4.5
The only difference in the different runs is the content of the prompt file.
Let’s try.
First run
The prompt in this case is very limited:

And the Copilot agent starts working:

Already now, it is clear that Copilot is using the “old” Business Central naming convention adding all objects in the root folder and naming it with the object type and object number as a prefix.
Also, it is obvious that something else is not right:

This warning shows that all the standards are not met:

So, what if I add the link to the Business Central Best practices for AL from Microsoft Learn to my prompt:
Best practices for AL code – Business Central | Microsoft Learn
Second Run

Let’s see if that changed anything:
Now things look much better; Just setting the Format: Use file naming only changed the names to the correct names, but including the file structure also positioned the files in the /src folder.
So how about the solution?

However, it created a new Absence Registration table, although there is already an Employee Absence table and Absence Registration page in the Base Application, so we need to add a little more to the prompt:

Context: is just some background information for the solution
Source: try to implement the solution utilizing the existing Absence Registration table from the Base Application.
Requirements: are the actual requirements to the Page on the Role Center-
Third Run
Even specifying that the Base Application must be utilized, it still created an new table

So, I must rephrase the prompt
– Utilize the absence registration table and pages in base application
And try again.
Fourth Run
This worked:

The result is this:

And the files are:

The list is now utilizing the Employee Absence table and everything compiles, so, let’s see it in action.
I got a setup page:

The Employee Group Dimension is correct.
The Future Absence Period should have been named Limited Future Absence Period.
The Future Absence Filter has been created, but it should have been on the Absence Registration Overview page; not the Setup page.
The Absence Registration Overview page has been inserted first on each role center page, maybe I should have been more specific about the placement of the page, and the filtering FastTab is missing, but other than that, it looks almost correct.
Conclusion
Copilot has in 3 hours created a solution for me:
- The solution works
- It is still missing a couple of pieces, but that is quickly fixed
- It complies with the Business Central Best practices for AL
- It has created Enums and not option fields
- It utilized the base application functionality
It took a few tries but eventually we got there, and it will seriously make my life easier in the future.
The Dilemma
Garth Brooks always says: “Everything that is a blessing is also a curse”. That is also apparent here. Because:
- Who is the actual owner of the code that was generated, me or Copilot (and who is Claude Sonnet 4.5)?
- Who is responsible, if the solution causes a break-down in a factory, miscalculations or other damages?
- What do I charge the customer:
- The actual time and material?
- The estimated business value for the customer?
- Do I actually have to be a programmer to create solutions in the future?
- Am I limiting myself to an external intelligence that I cannot influence or control?
As I see it, Copilot and Claude Sonnet 4.5 are tools to help me in the future, the rest of the dilemmas, the future will have to show.
Chew on that 😊
You can check the result here:
peikba/Absence-Registration-Copilot-II
