In this episode Jeremy dives into what events are coming up, what is new with Dynamics Con. blogs and Spare-brained products, and finally he explains what tools to have and Product’s overview by zooming out to some of the infrastructure of things.
Listen
Watch
- 0:00:00-0:00:29 Pre-Intro Talk
- 0:00:29-0:01:01 Intro Music
- 0:01:01-0:09:37 BC Community News
- 0:09:37-0:25:04 I didn’t know
- 0:25:04-0:38:13 Functional Areas in BC
- 0:38:13-0:59:42 Dev Basic: Object Types
- 0:59:42-1:00:59 Outro
Pre-Intro Talk:
Good Sunday Morning everyone whenever you are listening to this or watching this will be a good day today. Today we are going to talk about what I did not know and will maybe what you do not know; and in that vein, we are going to zoom out on both the use of the product and understanding how the product works. So, let us talk about business central today and maybe what you do not know.
Intro Music.
BC community news:
All righty, well, welcome, welcome, welcome. Before diving into too much, I thought it would probably be a good idea once again, to borrow some format from my good friend, Steve; hopefully, he does not mind too much. We do talk some of the same things sometimes, but hey, theme of today, I did not know I did not know. So, let us make sure we are covering all sorts of things. Let us talk just a smidge about current events. And we will skip over that quickly. But let us talk.
First of all, there are some things going on on April 3 at the time of recording this, and just a couple of days ago, Business Central released a new version (20 Under the hood, referred to officially as 2022 release wave one), which when you combine with the official product name makes for a mouthful. So, Microsoft Dynamics 365 Business Central 2022 release wave one. Yeah, it takes a whole breath, just to say. But there is a launch event that will be coming up on April 20. And they are doing again this year, what they have done in past years, which I think works fine. They are doing a live keynote, and then all the content is watchable on demand, peculiarly, you do need to register for a virtual event, which is a little odd, but nonetheless, it is not very complicated.
Sometimes there are some hiccups with it, so, be prepared to reach out. If you do run into any issues, they do try to resolve those very quickly. So, I would say watch for this, this is coming in about three weeks from today, and it is something you should be investigating.
On that note, there is a whole lot of content I expect is going to be landing in blogs, and videos and tweets and all sorts of things; because, anytime there’s a new version, there is new stuff. There’s always fixes. Of course, sometimes it’s just tiny quality of life improvements. But there are many, many blogs that are going to be very, very chatty in the very near future, so, if you have not signed up for it already, over on the spare brain site. Yes. Over on the spare brains site. In our articles section, there is this Microsoft Dynamics 365 blogs, Roundup delivery, I strongly recommend you hit that, these are emails that will go out either daily or weekly, that grab all the blog posts that I follow and turn those into an easy summary.
So that way, you know, if out of 100 blogs, three posts today, or 20 posts this week, you just see a list of here are the 20 headlines of those blogs, and you can jump off to them. It is free, it is non commercial, there is no advertising and I do not use the email list for anything. Those of you who have bought any products from us, you have also signed up for, you know, company email, you will notice that you have not really gotten much from us, we make sure that signal to noise ratio needs to be very, very high for us, so, I would encourage you absolutely to do the weekly summary; Not only is this going to give you, let us see here, this is an example from earlier, so, you can see there are you know heads up about upcoming events as the first section that email you will see because the Microsoft Dynamics 365 spaced does have a lot of activity on Twitter.
One of the things is, maybe you do not want to use Twitter, maybe you don’t want to go near Twitter. totally respect that, that is fine. However, this will give you a nice summary of some of the tweets directly from some of the product management team, the engineers, Kenny, for example, shares great stuff all the time on telemetry for partners, including free tools you should be using for Power BI. and then separately, there is also a community highlights from some of the people around the community, and what is going on in the space, and I will let you know some of the different things that are going on. And then here we can see you get blog posts.
So, for example, you know, a stretch of some of the different blogs that have been updated, strongly recommend this, it will save you lots of time, you may have your own strategies in place, but this is an easy thing. You can also refer other people to and sign them up too. So, something to try if you have not. Speaking of content and drinking from a firehose, really, Dynamics Con. has updated, they are in the process of getting all of the content online from the online session a couple of weeks ago. So, you can find most of their videos are now up on their YouTube channel, which is just the dynamics con YouTube channel, and they have got lots of stuff up here.
It looks like there are still some being uploaded, but most everything is up here and good time to catch up. You can watch these whenever do one a day, you will slowly get through them all, lots of great free content there, So, strongly encourage checking that out. And then of course, at the time of filming this, there are a huge number of people at directions north America right now in Orlando. And from this Hounds of some of the Twitter feeds from the various MVPs who are traveling to Orlando, there are still some people making their way there. Unfortunately, some significant weather storms have mucked with the ability to fly in, I hope all of you who are making your way there right now, are not having too much suffering. I have seen a few people camped out on airport floors waiting for the next flight. So, the downside to in person conferences is you occasionally roll the dice on weather and traffic and all that sort of thing. So, but, you know, I like greatly to forward to going to some of the in-person events this year, again, for the first time in a long time. So, I encourage people to keep an eye out on upcoming events. For example. I know, in Europe, we have got the days of knowledge in June in Denmark, we’ve got BC tech days in September in Belgium, if I recall correctly, and we also have directions, Mia, who is by the same folks who do days of knowledge. And that will be in Hamburg, Germany.
I do get the question a lot about what are some of the different targets for some of these events? And that is a valid question, you know, should you send your sales guys to this? You know, should your consultants and implementers be there here. And that varies a lot by conference. I know later this year; there is directions live by the same no dynamics con live done by the same people who do dynamics con and that’s sometime in this fall. I believe most of the ones that I’ve mentioned including what’s on screen are kind of general industry audience. You know, any anyone working with a product is going to find value for them. With the exception of BC tech days tends to be a lot deeper hands-on developer-oriented tech talk.
So, when people ask me, you know, which ones should I be going to? I say it depends a little bit on what your skill set, and your focus is. I think a lot of the implementers would not find as much value out of tech days as they might for directions and math. And that’s fine. So, me, I am going to try to hit all of them. Because I can. It is not far from here.
I did not know!
So, without too much further news chatter, let us talk about the I did not know; And I run into something an awful lot. That overly fancy intro. I am going to have to tweak that, that is to elaborate, The whoosh NOISE for those who are listening to the audio podcast was a Fancy screen transition a little too long, a little too interruptive.
So, one of the things that I run into all the time in my professional world, and that is why I am bringing up here, but also just in life in general is the I did not know that I did not know that; I know there has a few brilliant choice quotes about these sorts of things, and delightful infographics and all sorts of different ways of explaining the, the more you learn, the more you realize you do not know, and to give a couple of anecdotes from my own world. One of the reasons that we ended up moving from the US to Sweden, I was listening to a fantastic podcast, from NPR, almost 15 years back, and I had heard an ambassador from the US who had been stationed in another country, talking about his ride home with a senator from an event in DC or something like that, and the ambassador told the senator if Americans knew what they got for the taxes that are paid in this country that he was an ambassador to, they would riot because they have almost the same tax rates, but, you know, lots and lots of things were included in that ;And there are all sorts of you know, economic and societal theories and all that sort of thing. But it made me challenge assumptions for myself about what do I expect from the society around me.
I realized that a lot of the things that I was fighting for, that I was struggling for, were not things that were equally important to the people around me where I lived in the US, or at least they did not, there was enough disagreement that to try to force my viewpoint on other people, through anything more elaborate than maybe voting would be a disservice to them; and that was an interesting realization and challenge where I said, Okay, you know, I did not, at the time I have, I did not grow up affluent, I had never left the country.
You know, many people outside the US are surprised when I talk about the fact that in the US, most of the people I knew growing up, never left the country and never experienced another culture, another society. And there was so much stuff that I just did not know. That began a multi year voyage for me and my family, where, you know, at the time, my kiddo was still crawling, and very small. So, we were starting to go, well, hang on, let us make sure that wherever we are in the world, there is so much stuff that you rely on for society to give you and there is so much stuff that a society imbues into your children as they grow up. Are they the values that you want them to be? Are they the support structures you want them to be? And we absolutely went, well, we do not know enough about anywhere else to contrast. What that means is that we were going to go through life the way a lot of people do, which is to take what is in front of us the givens of where we lived at the time in the US. And we were just going to treat that as an assumption. And, you know, that is just the de facto way we are and there we go, we are all set. We do not have to think about it, the assumption was all.
So, we spent several years learning about some of the different things that were important to us, you know, whether it be ecology, you know, what is it like geographically to live in a space, you know, climate and then learning all sorts of you know, geopolitics to say, okay, what countries are all the things that are important to us? And you know, how do societies treat these different things? And we started narrowing down of okay, well, city or urban, we, we challenged ourselves to define clearly what we want in the world, and then kept zooming through all of those different layers down to the like, what is it like to go to the grocery store here, you know, the internet is a wonderful thing, make friends with people around the world that are potential What you might want in a space and talk to them find out what life is like.
Through that process, we challenged tons of our assumptions. We expanded our depth of learning, what stuff? Did we just take for granted? What did not we know? We did not know. So, that was part of the process for us over the relocation, and then an entirely different sort of more micro, but more interesting anecdote, someone very dear to me, we have had a variety of conversations about trying to understand our spectrum, ADHD brains together. And what some of those different mappings mean. You know, there are so many different nuances to even just something as simple as saying someone’s neurodiverse would almost be as generic as saying, yes, they have carbon in their atoms. It is a shared trait, but there are so many permutations beyond that. Okay. So, I do a lot of exploring. And one of the bits and pieces that we came across not too long ago was, she told me, she did not have an inner monologue. And I was like, well, that is an interesting statement.
Let us explore that a little bit. I understood as part of having been in MCT, you know, students, when they learn, they are, you know, visual learners, they might be audio learners, they might need to be hands on with different things. There are lots of different learning methodologies that people have. So, I have heard, you know, I am a visual learner. What I have not really considered is that some people are, in fact, so deep into visual thinking that they do not even internally utilize language the same way that you know, when I am sitting still, and I am just existing, trying to just stare at a wall and think about things. There is a conversational style of thought structure. That is not the case for everyone. And I did not know that; And I thought that was a fascinating sort of insight. So, even with big giant things of where you are in the world, down to minor, but constant things like how you think you do not necessarily know what you do not know.
Functional Areas in BC:
So, how all that ties back to what we are kind of dealing with in business central space, there are so many parts of doing business, around running software for companies, there is the processes, for example, talking about, you know, the general business process of implementing a system for our company. We will use Business Central as our example. But, you know, if you go into a company, you need to understand their business processes, and then map those to the software that you have today and go, what are the gaps? What do we need to potentially teach you about how this works? That may require some small adjustments and how you do business? What are some adjustments that we must make to the software? Because those are important to you and into your process? So, the entire discovery process is learning on both sides. A little bit more about what you don’t know.
The challenge there is that much like I talked about last week, you know, for me, it was Tuesday. There are lots of parts of the product that we take for granted. Or worse. There are lots of parts of the product that people are expected to know about, but they don’t even know is there. So, there are some real challenges with that, you know, one of the better developers I’ve worked with in the past 20 years, super smart, sharp guy had no idea how general journals tied to the GL register. Because he has never had to look at the GL register, that part of the product isn’t something developers have to work with very much and should not, so he had never used it. Okay, that’s fair. But you know, there was a trying to do a diagnostic sort of pass on how to figure out what do we do with some of this information? How can we determine when something happened? Well just look in the G/L register. “The what?” So, you know, there are so many facets to the whole world of doing work around what we do that you don’t know, you don’t know. And so, one of the things that I do all the time, is, if people are telling me stuff, I already know, I’m super thankful for it. Because most of the time, if you it is like, if you’re running your hand over a very smooth surface, it looks perfectly smooth. But maybe there’s just that little snag that little crack or whatever have you that you didn’t even notice was there.
But only by carefully moving your hand along the whole thing? Do you find that one little gap? When I’ve taken some of the professional courses from people in our industry, you know, some of the great classes I have taken, for example, with AJ, you know, there are lots of things I already know; But there are basics that maybe I didn’t know that I wouldn’t have found out any other way, except by very carefully and slowly but surely covering all those basics, because we often have to just get the job done. People who are doing that discovery process, they’re often tasked with the responsibility of doing requirements. Well, not only are there project manager certifications, but requirements engineering is entirely its own industry. And we sort of expect that project managers are implementing consultants and those sorts of people are ad-hoc requirements, engineers that are sometimes developing requirements for something that will take a year to develop in a good way.
That is a really big investment for never having heard of requirements engineering, and never having read any books about it. Like, I think there is a lot of I did not know, I did not know in our space. And that is a little scary sometimes. And we are, we are in a space right now, where a lot of partners are cross training into Business Central, from other products. Or maybe for the first time ever, they are starting to sell an ERP system, you know, they are great in IT; and they know all sorts of stuff about Azure. But hey, you know, Microsoft’s got this great business central offering, let us include that in our offerings and signing customers up for it. I do not think they, you know, unfortunately for us, so that is an example of the type of partner that is not going to hear this because they are not connected to the space, it is not a thing that they are even aware that they do not know that they do not know. So, I try to, also, when working with customers, do a lot of, anytime we spend more than half hour to an hour together, is I have got a long list in mind. I have not written it up anywhere.
But I have a long list in my head of all sorts of different tips and tricks and things that often when I show them to people, they go,” Oh, I had no idea that that was even a thing that you could do that”, and you slowly but surely can help provide value in every conversation filling in some of those easy gaps. So, try to build in your mind, in your head, in inventory of the things that you know, that maybe your co workers, your peers, your customers do not know, build that inventory that is going to be your hitlist of knowledge that you can freely share easily with people and go, “Oh, you did not know check this out”. You know, like entering a sales order. You can just type you know, F for Friday into a date field and Tada. Like, there is a bunch of syntactical sugar and shortcuts and, and wonderful ways of doing things smarter and better, and you probably know a lot of them, and they are just air to you.
You know, there is there is the fantastic joke/parable of you know, an old fish swimming by a couple younger fish and he goes, hey, boys, how is the water? And the younger fish are like, yeah, it is good. And swimming on buying then they go, What the hell is water? Much of what we do becomes that water. So, trying to build an inventory of all the different things You know, that maybe not everyone else does.
So, in that vein of things, let us talk a little bit about some of the do not know stuff. For those of you who are just listening in audio, I am showing a diagram of some of the different parts of Business Central, this is an infographic, I mean for Your First 20 Hours with Business Central, it is just kind of outlining the different modules of the system. And I bring this up; And wanted to talk a little bit about this, because there are lots of different lots of different pieces to Business Central as a product that maybe you do not know that it is in here. And in this context, we can also kind of chat about some of the history of it, where to come from, and all those sorts of things. Sometimes knowing the history helps you understand some of the quirks. So, for example, the very, very beginning part of business Central was the early days when it was a product called financials by a company in division.
It was called financials because that’s what it did. It did financial management, it did all the things around purchases, and payables. Generally, in the US, it was called just, you know, accounts payable, sales and receivables generally called AR. So, GL AR, AP glamper, was kind of the core of the product. It also had some degree of inventory, resources and jobs as part of the original core product. And one can make some interesting arguments going far back and like if you go back far enough, some of those parts were added over time, of course, but for a long time, it was those things.
As an interesting side note, it was called Jobs way back when, because they did not want to confuse people into thinking it was a project management tool, like Microsoft Project, it is not. It does a lot of things related to project management; And you can kind of use it as a project management tool, but it is mostly meant for tracking costs and budgets associated with jobs. Interestingly, when I moved to Sweden, turned out that the way they translate it was right back to Project. So, which made sense if there was not a better fit for language. Then, separately, there were variants of the product; division had financials, but division also had manufacturing, which was a separate copy of the product.
It was something you had to buy separately, it was an entirely different feature set and focus. The warehousing module was an entirely separate product from I believe, a non NuVision company that from my understanding was originally an ISV. That then was purchased. Now we will see if some of the older folks in in chat, disagree with that and fix my knowledge. I am open to that. So go for it. But eventually, it became division warehousing. So, there were three different product lines, those were all separate, and you can kind of see some echoes, to this day around the way some of the different parts of the product work with manufacturing and warehousing. You can kind of see how those roots of being a separate product that was added on later and not an integral part of the system. You can see pieces of those reflections.
For example, the warehousing module, you have warehouse entries that track where items are in the warehouse, but they are not the same as the item ledger entries; and people will sometimes ask me, you know, why is it that when I am adjusting things in and out of a warehouse, why is it that I have to do in a warehouse journal, and then later do an item Journal? Well, that is why they were two separate systems. So, and there are a few other bits and pieces intercompany got later added on to be able to support you know, easily moving documents and transactions between this different companies within the same system. It was originally I think, focused a lot more on Being able to export and import intercompany transactions, it was meant for originally companies that needed to have separate satellite offices in the early days where internet, you know, we, we had dial up wham, you know, you need to send a nightly batch of your transactions that evolved over time.
The more that we have gone cloud, the more inter companies feels like it is just passing data between the two different companies. So that has evolved over time. The CRM functionality often is not called that in the product. That was one of the last real modules along with service that was built pre-Microsoft acquisition of the product. At the time, CRM systems were really starting to ramp up and become kind of the hot new thing. The original Microsoft CRM 1.0 had just come out right around the same time that new edition came up with their own CRM product inside of division, and those areas, CRM and service were developed almost at the same time as the Microsoft service, and the Microsoft like customer. Now, customer engagement, those areas were developed kind of roughly chronologically in parallel. So, there are some interesting nuances to that. They have not phased out any of the functionality for CRM and service inside of the product.
They have evolved some of the pieces over time, it is clear that it is encouraged to use the wider dynamics ecosystem around service and CRM, but these parts are still in here. And it is really sort of a fascinating area of the product to get to know many people do not know it, do not make use of it. That is okay. But there are lots of little quirks and wonderful bits and pieces to that, and that is a really high-level overview. One of the things that I have missed a great deal, that we do not really have any current iteration of this and again, feel free to correct me if I am wrong, I will include it in next week as a corrections Urata. There used to be a guide, Microsoft put out every version, you know, you can make an interesting case for, it is really difficult to maintain this, it is hard to explain things in a good way.
They used to have a capability guide of what was actually in the product. It would break down the mechanisms by which the product was licensed, and what was included in things. It would break down all of the different functional areas of the product, and I still found a lot of value to this, I still keep a copy of this handy because it included a breakdown of like, what can you expect of the different parts of the system. Now, because this is older, there is not a good listing of some of the great things that have been added since now. 2018. But most of these things are still in the product today. So, you will notice, even in the official language here, they called resources, capacity jobs all under the project management umbrella. So, it is kind of interesting.
But you know, if you needed to understand what is actually in this product, like, okay, you know, there is a mechanism for doing alternative order addresses, and you could do item substitutions. And you can also do item cross references, what is the logic of workflow around that? It created this nice little checklist that you could go through with customers and talk to all of the different pieces like okay, you know, if you have not had to work with it before, are you aware that, you know, there I s a whole budget entry in the system where you can very easily create budget entries and use those in your account schedules to do comparisons against your budget? I hope the answer to that is yes, that should be something you know lots about, but you know, maybe you do not know, do you understand what is in here for being able to do some of the multicurrency you know.
When we are talking about drop shipments, I think a lot of people are not really aware of how to use the drop shipment functionality; Because one of the most common customs that I get asked for Is there any way that we can connect my purchase order to a sales order? And, you know, I will ask the question of well, have you tried drop shipments? And can you tell me? What about drop shipments does not do what you need to do? And there is a bit of, “hmm”, let me get back to you on that. Because maybe, there is something about it that it does not do. But maybe it does what you need. So, for those of you who are developers and implementers, watching along with this, knowing what is in the product can potentially save you lots and lots of pain, because you can say, well, have you tried this and can tell you can you tell me how it is different from this.
So, I will see developers in our space talking about you should be knowledgeable in how the product works before you customize it, and this is why you should understand how item cross references work before you just say, “oh, I will add a new field for the barcode number of an item”, Well, there is already place for that. Some of the partners that I have had the pleasure of talking to over the years, we will train up their implementers and developers together, because until they know the product, they cannot really move in a good direction without understanding how the product works. So, the early days of them, training people up into this space includes covering both of these different permutations and going down these roads, I do not think you can download this product overview, and capability guide anymore from any Microsoft platform.
Once upon a time it was available in partner source and partner source is gone. So, I am not really sure what the right way to get it is, odds are pretty good, you will find lots of partners who still have this on their website for download. So, I am going to refer you to your search engine of choice to see if you can find it. But typically, it was called way back in the day, the product overview and capability guide. I would really love to see this come back as a document. But I can understand that, you know, a document of this nature is going to need to evolve every six months right now, with the development tempo, and how do you speak to that good way. So maybe at some point, we can get a Doc’s page where this lives instead. That would be cool, and maybe someone will come along and tell me that there is a Doc’s page for that. So, we will see.
Dev. Basic: Object Types
Alrighty, so that was kind of some of the stuff that I wanted to talk to on the the product side of things today of you know, all these different pieces of what you don’t know, you don’t know. And there’s, there is lots of stuff to always learn about things.
And then, the other thing that I wanted to chat about today for the developers in the room, is maybe your rookie developer, or there are a couple of things that you did not necessarily follow. I kind of wanted to do a zoom out of talking to some of the infrastructure of things. So, this is going to be going over a variety of basics of understanding the product. Last episode, we jumped right in, and we said, okay, well, we will set up, here is an extension. You know, here is a page extension, and it pops a message. Well, it gets you hands on, and it lets you start tinkering and working with the product right away, for sure. But we did not really talk about one of the foundation layers. We have a variety of different types of objects. And what does this all mean? And I know I have even had the question from people who have been developing for several months with this product have been this an object-oriented language? Like there are some really quirky behaviours and things like that, that if you just try to solve the problem that is in front of you, or you move into this from another product line. There is lots of quirks and things you do not know. So, let us do a little bit of running our hand really careful along the surface today and address some of the things you maybe do not know You do not know. So first and foremost, is kind of object oriented. We cannot define new classes. the way that other programming languages are, so we have these core object types tables, which contain the data, and potentially can also contain code. But they are the syntactical infrastructure of how data is stored, retrieved, and filtered and a bunch of other stuff. We’ll go into each in more detail. This is high level, we have pages, which is about how the information is displayed to the user, regardless of the target device type, and that is kind of a distinction we will dive into. There is the reporting engine, which obviously, yes, it does produce reports. But once upon a time, this was a straightforward and simple sort of yes, no, of does it produce output, yes or no. And a report typically was to produce some sort of printable or saveable document by which you could then look at things. However, way back in the early days of the product, you could also have what they called processing only reports where there is no output that the user needs to see, but the same concept of collating data to then do something with it, whether it be processes, whether it be to do some different odds and ends, like here, we can see an import budget from Excel or export budget to excel, there is no printable page set that you would potentially want with these things. So, they had the ability to mark things as processing only. These days, we have not only the built-in reports here, but we also have word reports we have now Excel reports just came out in version 20. So, there are some really interesting mechanisms around this. So, understand that a report object is two stages, collation of data. And then the second stage can be any number of different things, whether it be just processed the data, whether it be present the data to a user as a PDF, through the RDLC engine, it might be present data to the user through word report, it might be present user data through emails, there is a variety of different ways that reports, then output. So, collate that output.
However, the name is still the same. So, it can be a little confusing. Sometimes like, well, you need to you need to make a report for that, well, I do not need to print anything, yes, but you still need to report for that. Okay. XML ports. This came from an evolution, the product once upon a time had something called data ports. They were meant for port porting. I am moving data in and out, and these days, XML ports are the replacement for that. However, one of the quirks to changing the name from data ports to XML ports, XML ports don’t have to just do XML. They are also used for CSV files, for example. And they are also used for tab delimited files and a variety of different things. Honestly, if they did not need to change from one tech to the other, they should still probably be called data ports; But that would now confuse things terribly because data ports are not supported anymore. If you are working in older versions of the product, just be aware that once upon a time, they were called data ports, and also, once upon a time pages were called forms. So, there have been a few renames to these object types. The other original product, object type or code units, and I will get back to careers in a second. Code units are literally just kind of libraries of code. There are no display elements unless you specifically code a display element. There are these are meant to potentially be processing chunks of code. Pretty useful. I am not 100% sure why they were not necessarily called libraries, but that is the general idea of them. And yeah, so originally, once upon a time, we had tables, forms, reports, data, ports and code units, and that was kind of about it. Once upon a time in the older versions that are product, these were not stored in extensions. Obviously. They were stored in the database itself. They were only accessible via a custom object designer comm the development environment for those of you who have to go back because you’re a BC developer, and you need to go back to work with the old product. This is the old UI, there was no way to work with the object’s pre-extension, except through the development environments are any specialized tools that someone had invented, which there were a few interesting attempts around that. So, same sort of idea, and all of these were stored in a database, and the only way to get things in and out of databases was to use the built-in import-export tools of those objects. So, all of the source code lived right in the database itself. So, it was an interesting time, I am very appreciative of the Business Central age of extensions. So queries these days are very, very useful. This is, like I said, are relatively new, I think it was added in the, I want to say now 22,009, maybe 2013. Could have been earlier. But yeah, it goes back aways; But the idea behind queries is that these are specialized ways of within the product, creating effectively SQL statements, which is why you do not have the option in queries to do a lot of code logic the way you do in reports, but they become prepared as SQL statements under the hood in a really good way. So, queries are really efficient way of pulling data together. If you do not need to do any code base logic around those things. The rest of the object types have kind of expanded over time, and some of these are relatively new-ish and have obvious implications in the BC era.
Table extensions are things that hook on to the tables, I tried to come up with an analogy not too long back on how to explain table versus table extension. Once upon a time, if you wanted to, say for example, someone asked you to please add a new field to the customer, you would go to the customer table itself; And you would just come in here and say, okay, I am going to cram a new field into my table, like I have got this other is a modified database. So, I have got a handful of custom fields that have been just squished on to a customer table and let me turn on one of my little zooming tools. So, I can zoom in, because I cannot make the development environment as it was any larger. And I think that is giving us some grief here. There we go. So here in the table designer, in the old development environment, you would just say, you know what, I am going to take the truck, and that is the customer table. And inside of this truck, I am going to walk to the next available shelf. And I am which, and I am just going to add a new field on the next available shelf and say, Here you go, we are going to store this bit of data on it. And you could just tack stuff on and make changes inside the truck. Well, the problem with this design philosophy is that when Microsoft releases a new version of the old NuVision environment, when they modify the truck, you now have to go och crud, and you have to take their new version of that truck and redo all your work in it. There were some utilities and tools around this. But effectively, you had to do that job over again. Well, now, instead of that redo your truck design over and over the tables that we’re basing things off of or and this applies as well two pages, same sort of concept. The tables themselves are now a bit like a prebuilt train. The Microsoft car at the front of the table contains all of the fields that Microsoft wants to have. And then you might build a new extension, a new table extension. So, here is our customer table, we could go ahead and real quick let us make a customer table extension. I am going to say this is extending the customer table and I am going to add some new field just text so now I have got a table extension that extends the customer table, it almost works like zooming again, it works like the Microsoft car is there, but now we have hooked on to that a new car from this extension. And it does not matter what Microsoft does to the fields inside of the Microsoft car, the customer table, our extensions car is hooked up behind it. So, they can do whatever they want in there, that is fine, we just hook up our car to the new train. And away we go. I find this metaphor probably pretty useful, because it also highlights one of the potential downsides that you can run into with extensions. There are performance considerations, if you extend a table too many times. We will have to dive into that into a later episode, But the metaphor works really well there; Because once you start going past a certain length of the train, the engine itself starts to slow down; Because the engines of adding all of these different extensions onto the table, even if it is just one field, each starts to get a little heavy, because there is some built in weight to adding those cars onto the train. So just an interesting way of trying to look at things, yeah, page extensions, table extensions let you modify the existing stuff by additive properties. And some of those additions can be subtractions. So, like, for example, on a page, you might want to hide a bunch of stuff, well, you’re just adding a layer that says, hi, please, please, you can’t do a table extension that makes fields go away, for example. So, it is additive. There are also some additional object types that we will have to go into in future episodes, around profiles and page customisations, there can be not only Enums. But there can be extensions on top of Enums. There is support for control add ins and stuff like that. There are interfaces which used use Enums, and vice versa, pretty heavily. There are these days. Now the ability to do report extensions. permission sets are an area where you set what users have rights to do what things there are lots of built-in ones that Microsoft gives, for example, you know, we can come in here, say, General Ledger budget view, well, maybe you have got a custom budget solution, and you need to make an extension that extends this permission set. So, you can kind of get the impression that Microsoft has done a really good job in the past several years of trying to make everything in the engine extensible. To make it in a way that you do not modify what is there, you give the engine instructions by adding on a new car onto the end of the train that say, okay, this is now sorry, click as this is now the way that the system should work. For example, the report extension, same sort of idea. The report extension object is mostly around changing that first processing step the collating the data, you might want to add some extra custom fields to your sales order confirmation report. Well, how do you add those extra fields without redoing the whole sales order confirmation? Well, you extend it and then later, you also will potentially add some steps to the second layer, based off of your extended coalition step.
So that is the general idea of object types. And I kind of wanted to go over that basic. There are lots of other bits and pieces about data types, which are about how you interact with code in the form of variables, But if you come into the Microsoft, business, central developer and admin area, and expand the development section over here in the table of contents, you will see that not only is there some of the things that we talked about last time with the Configuring the development environment and talking a little bit more about some of the more advanced topics of like compiling and projects and workspaces. But there is also some function there is some information in here about each of the general table type of object types, we have talked about tables, pages, reports, queries, and you can read up on some of these different areas. If you do go out to the docs page, and you start trying to read up some of these explanations of stuff, like, for example, here, the table object, you know, tables are the core objects to store data, like, okay, if you find that you are new to Business Central, and you are reading this, and you do not find that it is explaining stuff in a way that you understand, feel free to reach out and say, hey, you know, I was trying to really get my head around XML ports. And I did not really understand it, let me know. Because one of the things that they are going to be talking about ahead directions, North America right now today, and they have been talking about in general is they really want to see a lot of community contributions. And it is absolutely possible that, you know, you and I could do a conversation that says, you know, come on, we will do a team’s chat you and I, I’ll talk with you about it. We will figure out what are about an explanation, say, of this XML port, what does it not explain, and let us find some of those gaps together. Just hit me up on Twitter, LinkedIn, whatever have you, if you read one of these sections, and it doesn’t make sense to you, it doesn’t give you a good understanding. I want to help. Not only you, but I want to help the people you that are potentially doing things well, this. These are all in GitHub, they can be modified, we can do poll requests as community to make these docks better. So, what I would love to do is, as I go through a lot of these things, I am going to try to point people to go look at dock sections. If the docks do not help you, let us do some chats about these different areas. Well, maybe if you want you can join me on like I said a team’s call, we might include that in a future episode, if you are up for it. But at the very least, maybe we can find some of the edges where these basic pages do not explain things very well to a new developer, because remember, most of these documentation pieces are written by people who have been working with this for a long time. And you know, a lot of Givens are water. So, it is super easy for people who have worked for the with these things for a long time. In some cases, maybe couples a couple decades. There are a lot of Mbps share chattering chitter chattering right now about you know, their 15- or 20-year anniversary. It is really challenging sometimes to go; how do I explain these basics in a good way? So let me know, reach out. I am pretty reachable.
Maybe we can go over some more things. So, in next week’s episode, we are going to talk a lot more about some of the consultative side, we are going to be talking about some of the setup, and hopefully the week after that, I am looking forward to maybe talking about the process of how do you go about doing this setup? Because those are two different things. And from a development perspective, I want to dive into understanding how data types of work. There are lots of things to know like, yes, there are the equivalent of strings, there are the equivalent of integers, but you get into some really confusing waters really quickly. And I have seen this trip up people getting used to the system. You know, for example, we understand that the table object is, you know, all these different pieces and all that sort of thing. But the data type for working with tables is called a record. I have seen that confused the heck out of people because they are like, well, isn’t a record just a row in a table? Oh, yes and no. So, let us hopefully clear up some confusion for people next time. Okay, well, I think we are just about an hour and that’s where I try to wrap things up. So, I do not take up too much of everyone’s time. But I think this has been an interesting way of looking at trying to fill some of the gaps Like I said, I hope that you think about what are some of the assumptions? And what are some of the things that I take for granted that I need to bring to every conversation where I’m working with people, and combine that with last week’s talk about empathy, and understand where people are coming from, and help relate to other people of filling their gaps and of understanding and being open to hearing someone explain the basics. Because maybe there is a basic you did not know that you did not know. Take care everyone, and I hope you have a good week ahead, and those of you at directions north America who will probably see this later. I hope you have a good session and see you sometime soon. Take care, buddy.