
JV B/C
JV B/C
JV B/C E2: I Didn't Know
Today we're talking about gaps in knowledge. How "not knowing" things can be big life things. Let's tour through some high level basics to make sure we've got some of the gaps identified.
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
Good Sunday Morning everyone in for whenever you're listening to this or watching this will be a good day today. Today we're going to talk about what I didn't know and will maybe what you don't know. And in that vein, we're going to zoom out on both the use of the product and understanding how the product works. So let's talk about business central today and maybe what you don't know. All righty, well, welcome, welcome, welcome. Before diving into too much, I thought it would probably be a good idea once again, to to borrow some format. From my good friend, Steve. Hopefully he doesn't mind too much. We do talk some of the same things sometimes. But hey, theaman Today, I didn't know I didn't know. So let's make sure we're covering all sorts of things. So let's talk just a smidge about current events. And we'll skip over that pretty quickly. But let's talk. First of all, there is some things going on is April 3 At the time of recording this. And just a couple of days ago, Business Central released a new version 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 hold breath, just to say. But there is a launch event that will be coming up on April 20. And they're doing again this year, what they've done in past years, which I think works fine. They're doing a live keynote, and then all of the content is watchable on demand. peculiarly, you do need to register for a virtual event, which is a little odd. But nonetheless, it's 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's 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's 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 haven't 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 of 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'll notice that you haven't 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's see here. This is an example from earlier. So you can see there are you know heads heads up heads up about upcoming events as the first section that email you'll see because the Microsoft Dynamics 365 spaced does have a lot of activity on Twitter. One of the things is, maybe you don't want to use Twitter, maybe you don't want to go near Twitter. totally respect that, that's 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's also a community highlights from some of the people around the community, and what's going on in the space. And I'll 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 haven't. Speaking of content and drinking from a firehose, really, dynamics Khan 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've 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'll 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 pretty significant weather storms have mucked with the ability to fly in, I hope. I hope all of you who are making your way there right now, are not having too much suffering. I've 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 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've 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, which is by the same folks who do days of knowledge. And that'll 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's 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's directions live by the same no dynamics con live done by the same people who do dynamics calm 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 more deep hands on developer oriented tech talks. And so when 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 wouldn't find as much value out of tech days as they might for directions and math. And that's fine. So, me, I'm gonna try to hit all of them. Because I can. It's not far from here. So without too much further news chatter, let's talk about the I didn't know. And I run into something an awful lot. That overly fancy intro. I'm gonna have to tweak that. That's 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's why I'm bringing up here, but also just in life in general is the I didn't know that I didn't know that. And 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 don't 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 wild 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 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. And rat, 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 didn't, 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 didn't, at the time I've, I didn't 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 didn't know. And 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's make sure that wherever we are in the world, there's so much stuff that you rely on for society to give you and there's 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 don't know enough about anywhere else to contrast. And 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's just the de facto way we are and there we go, we're all set. We don't have to think about it, the assumption was all so we spent a number of 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's it like to go to the grocery store here, you know, the internet's 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. And through that process, we challenged tons of our assumptions. We expanded our depth of learning, what stuff? Did we just take for granted? What didn't we know? We didn't 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's 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 didn't have an inner monologue. And I was like, Well, that's an interesting statement. Let's explore that a little bit. I understood as part of having been in MCT, you know, students, when they learn, they're, you know, visual learners, they might be audio learners, they might need to be hands on with different things. There's lots of different learning methodologies that people have. So I've heard, you know, I'm a visual learner. What I haven't really considered is that some people are, in fact, so deep into visual thinking that they don't even internally utilize language the same way that you know, when I'm sitting still, and I'm just existing, trying to just stare at a wall and think about things. There's conversational style of thought structure. That's not the case for everyone. And I didn't know that. And I thought that was a really fascinating sort of insight. So even with big giant things of where you are in the world, down to really minor, but constant things like how you think you don't necessarily know what you don't know. So how all that ties back to what we're kind of dealing with in business central space, there are so many parts of doing business, around running software for companies, there's the processes, for example, talking about, you know, the general business process of implementing a system for our company. We'll 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 have to make to the software? Because those are things that 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. And the 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's never had to look at the GL register, that part of the product isn't something developers have to work with very much and shouldn't 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 jail 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's 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've 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's a really big investment for never having heard of requirements engineering, and never having read any books about it. Like, I think there's a lot of I didn't know, I didn't know in our space. And that's a little scary sometimes. And we're, we're 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're starting to sell an ERP system, you know, they're 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's include that in our offerings and signing customers up for it. I don't think they, you know, unfortunately for us, so that's an example of the type of partner that's not going to hear this because they're not connected to the space, it's not a thing that they're even aware that they don't know that they don't 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've got a long list in mind. I haven't written it up anywhere. But I have a long list in my head of all sorts of different tape, 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 don't 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 didn't 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's 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're just air to you. You know, there's there's the fantastic joke. Slash parable of you know, an old fish swimming by a couple younger fish and he goes, Hey, boys, how's How's the water? And the younger fish are like, yeah, it's 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's talk a little bit about some of the don't 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 the 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 don't know that it's 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. And 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's 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 wasn't a better fit for language. Then, separately, there were variants of the product. Manual 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'll see if some of the older folks in in chat, disagree with that and fix my knowledge. And I'm 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'm 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's why they were two separate systems. So and there are a few other bits and pieces intercompany got later 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've gone cloud, the more inter companies feels like it's just passing data between the two different companies. So that's evolved over time. The CRM functionality often isn't 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. And so there are some interesting nuances to that. They haven't phased out any of the functionality for CRM and service inside of the product. They've evolved some of the pieces over time, it's clear that it's encouraged to use the wider dynamics ecosystem around service and CRM, but these parts are still in here. And it's really sort of a fascinating area of the product to get to know many people don't know it, don't make use of it. And that's, that's okay. But there are lots of little quirks and wonderful bits and pieces to that. And that that's a really high level overview. And one of the things that I've missed a great deal, that we don't really have any current iteration of this and again, feel free to correct me if I'm wrong, I'll 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's really difficult to maintain this, it's hard to explain things in a good way. They used to have a capability guide of what was actually in the product. And it would break down the mechanisms by which the product was licensed, and what was included in things. And 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's 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'll notice, even in the official language here, they called resources, capacity jobs all under the project management umbrella. So it's kind of interesting. But you know, if you needed to understand what's 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, what's 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've not had to work with it before, are you aware that, you know, there'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 don't know, do you understand what's in here for being able to do some of the multicurrency you know, when we're 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'll ask the question of well, have you tried drop shipments? And can you tell me? What about drop shipments doesn't do what you need to do? And there's a bit of, Hmm, let me get back to you on that. Because maybe, maybe there's something about it that it doesn't do. But maybe it does what you need. So for those of you who are developers and implementers, watching along with this, knowing what's 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, well add a new field for the barcode number of an item. Well, there's already place for that. Some of the partners that I've had the pleasure of talking to over the years, we'll train up there implementers and developers together, because until they know the product, they can't 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 don't 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'm not really sure what the right way to get it is, odds are pretty good, you'll find lots of partners who still have this on their website for download. So I'm going to refer you to your search engine of choice to see if he 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'd be cool. And maybe someone will come along and tell me they had their there is a Doc's page for that. So we'll see. 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, let's see here. Okeydoke. Um, the other things 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 didn't 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'll we'll set up, here's an extension. You know, here's a page extension, and it pops a message. Well, you know, we, it gets you hands on, and it lets you start tinkering and working with the product right away, for sure. But we didn't 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've even had the question from people who've been developing for several months with this product have is this an object oriented language? Like there, there are some really quirky behaviors and things like that, that if you just try to solve the problem that's in front of you, or you move into this from another product line. There's lots of quirks and things you don't know. So let's do a little bit of running our hand real careful along the surface today and address some of the things you maybe don't know You don't know. So first and foremost, is kind of object oriented. We can't define new classes. the way that other programming languages are, you know, 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's kind of a distinction we'll dive into. There is the reporting engine, which obviously, yes, it 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's 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's 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 don't 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're also used for CSV files, for example. And they're also used for tab delimited files and a variety of different things. Honestly, if they didn't 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 aren't 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'll get back to careers in a second. Code units are literally just kind of libraries of code. There's 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'm not 100% sure why they weren't necessarily called libraries, but that's 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 objects 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'm 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 don't 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 really efficient way of pulling data together. If you don't 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'm going to cram a new field into my table, like I've got this other is a modified database. So I've 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 can't make the development environment as it was any larger. And I think that's 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'm gonna take the truck, and that is the customer table. And inside of this truck, I'm gonna walk to the next available shelf. And I'm which, and I'm just going to add a new field on the next available shelf and say, Here you go, we're 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's our customer table, we could go ahead and real quick let's make a customer table extension. And I'm going to say this is extending the customer table and I'm going to add some new field just text so now I've 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've hooked on to that a new car from this extension. And it doesn't 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's 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'll have to dive into that into a later episode. But the 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 the engines of adding all of these different extensions onto the table, even if it's 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. So 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's 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 is 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've 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 don't modify what's 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's 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'll 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's also some function there's some information in here about each of the general table type of object types, we've 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're new to Business Central, and you're reading this, and you don't 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 didn't really understand it, let me know. Because one of the things that they're 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'll do a team's chat you and I, I'll talk with you about it. We'll figure out what are about an explanation, say, of this XML port, what does it not explain, and let's 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'm going to try to point people to go look at dock sections. If the docks don't help you, let's let's do some chats about these different areas. Well, maybe if you want you can you can join me on like I said a team's call, we might include that in a future episode, if you're up for it. But at the very least, maybe we can find some of the edges where these basic pages don't 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's super easy for people who've 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's really challenging sometimes to go, how do I explain these basics in a good way? So let me know, reach out. I'm pretty reachable. And maybe we can go over some more things. So in next week's episode, we're gonna talk a lot more about some of the consultative side, we're going to be talking about some of the setup. And hopefully the week after that, I'm looking forward to maybe talking about the 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 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've 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've seen that confused the heck out of people because they're like, Well, isn't a record just a row in a table? Oh, yes and no. So let's hopefully clear up some confusion for people next time. Okay, well, I think we're just about an hour and that's where I try to wrap things up. So I don't 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's a basic you didn't know that you didn't 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.