Every time we run our junior training it somehow turns out to be a totally different one as the year(s) before. Be it the number of attendees, their backgrounds, the roads that lead to their registrations, or whatever it maybe, it eventually always accumulates in a more than worthwhile gathering from day one. Likewise this year, where the introductory week was attended “only” by five students and where, the week following it, the technical track continued with four of those five week-1-students joined by an additional six students, partly from the UK, making it a group of ten altogether. Wow, what a luxury for both the students and the trainer, bringing in a nice and interesting multitude of perspectives. And what a joy for all of them now finally getting their hands on the code behind this ERP system.
week 2 – technical track
Monday
So, on Monday the 20th of September, 2023, we all gathered at Fletcher Hotel Mooi Veluwe in Putten, The Netherlands, the same location as where the introductory week took place.
After welcoming the lot and discussing a number of practicalities I, Luc van Vugt, trainer for our technical track, introduced the students to some relevant historical and technical backgrounds as: Where does this Microsoft Dynamics 365 Business Central come from and how did it evolve into the product it is today? What infrastructure is under the hood (paying attention to its 3-tier setup)? And finally, taking this leap, VS Code was opened up to introduce these eager students into AL development.
We discussed VS Code, being our primary tool development tool. The various standard parts of it, like the Explorer and Extensions section. The link to AL development through the AL Language extension. And of course, how to set up a new AL extension development project with AL: Go!
With a number of demos I showed them the basic concepts of the table, table extension, page and page extension objects, their code snippets, and how to verify the resulting app by deploying it to Business Central. Ready to get to work themselves and build their first BC app!
At the end of the day homework was assigned: complete the exercises, read the related manuals, and send in a multiple-choice questions for the next day.
Tuesday
The next morning we started with a quiz using the multiple-choice questions sent in by all students and supplemented with a number of questions from previous junior trainings. After reviewing the other part of the homework the rest of the morning was focus on data access coding. What means do we have to retrieve data from the database BC runs on? What do methods like Get
, FindFirst
, FindSet
, SetRange
? What repetitive statements do we have? Given a couple of demos 6 exercises where handed over to struggle and get acquainted with all this and at the end of the morning we got to review the final results.
Having had lunch we got to step into the first case of this course: Course Registration. Part 1: given detailed requirements apply some of the things learned so far, i.e., build from scratch a number of tables, applying various properties like NotBlank
, TableRelation
, FieldClass
, CalcFormula
, and provide the pages that should go with them.
Wednesday
Yep, like the day before, we started with the quiz. It’s a simple and yet excellent concept to refresh each others knowledge, but even more to provide the opportunity to pose any question related to the topic, deepening it more than when I would be doing a recap of yesterday. And surely much more fun too.
The quiz was followed by a review of yesterday’s work on the Course Registration case. How did I solve it? What did you do differently? And what next? How can we implement business logic that can not be covered by configuring properties? And thus the remaining part of the morning was spent on implementing this logic using AL code.
In the afternoon we discussed the concept of codeunit objects, methods, triggers and events – publisher and subscribers, with which the student got to work based on a number of exercises.
Thursday
Thursday was dedicated to a new case, after the quiz – in a competition format this time – and homework review. The second case: Sport Planner. Being a more high level requirement than was given for the first case, the students where enabled to internalize the so far learned concepts and skills more. In addition to that they were also challenged to get clarification on the parts that where not understood well. How to go about that? Where to find examples? Do I dare to bother my stakeholder?
At the end of the day we discussed what docker containers are and the most relevant parts of the BcContainerHelper
module based script to create the BC container we are programming against.
This evening, after dinner, we relaxed and sat down to play Mexican Train. I surely had a great time together with the students and Rob Gabriels, the trainer of the introductory week.
Friday
Last day of an intense week, hard working and learning a lot, and the last topics to be covered:
- Two configuration topics
- permissions
- personalization, customization and designing
- Development lifecycle
Based on the latter topic I handed over two research assignments to be worked on in the coming two weeks: (1) Your company and the methodologies it uses and (2) You as a developer. And after each student set a deadline for their assignments we left for our journey back. For the one somewhat longer – flying back to the UK – than the other, but for all back home for a well deserved weekend and loaded with a lot of new knowledge, insights and skills.
what’s next
The technical track will proceed with its 3rd week on 17th of October 2022. In this week the students will be posed a first great challenge having building a standard application. Each day they will have to deliver their code in Azure DevOps and will get it reviewed before the next day.
Feel free to contact us at info@opgona.academy and get more insight into our Microsoft Dynamics 365 Business Central Junior training and how it can fit your needs.