Tenant Specific Customizations for Dynamics 365 Business Central
Hello. And, welcome, to this video in. Which I will talk about how to develop and deploy tenant, specific, customizations. For, Microsoft, Dynamics 365. Business, central, my. Name is Daniel Ramos Hwan and I am a partner with cloud ready software, one, of the is fee development, centers who can help you with just about anything, related to, business central. We. Have a number of objectives, for this video, first. I'll talk about the development, platform, that is necessary, to develop tenets, specific, customizations. I will. Cover the same box environment, that you can use for this process as. Well as the tools that you need. Next. I will cover how to create an extension with Visual Studio code, specifically. For tenant specific, customizations. We'll. Also take a look at how you can use the inclined, designer, to help you in this process and, finally. I'll show you how to upload, the tenant specific, customization. Into your business central tenant using. The extension, management, functionality, in business, central, most. Of these topics are already covered in much more details, in other videos, and I, will refer to those videos where that is the relevant let's, get started. In. The first section I'll talk about the development, platform. The. First thing that you need as a development, platform is, a sandbox, for development, there. Are three ways that you can create such a sandbox, environment, one. Is through an online, business central, sandbox, which. You get one per production tenant, at, the moment there is no extra charge for this although, this can be changed. In the future so, if you have a production, tenant, for business, central you, can activate, one sandbox, environment, for that tenant. The. Second option is to create a local container, using docker you, can create as many as you need so, you could create one for development, and you can create one for testing each. Developer, can have their own local, environment. The. Third option is an azure VM, and if you create these using, the. A RM template. In Azure this, comes with the container environment, already pre-configured. As. Part, of the azure VM. For. Tools you will need Visual, Studio code, and optionally. You can use the in client, designer to. Help you create. A visual, design of the pages that you'll create as part, of your project. Let's. Take a look at the, development, environment. What. We're looking at here is my personal. Local. Virtual, machine and in, my virtual machine I just have a web browser open, and as you can see I am logged into business, central dynamics. Comm and this, is a demo. Tenant, that I've created earlier, today, part. Of this demo, tenant. Is also. A sandbox. Environment so we're still online and this, is the same box environment. That is linked, to this, demo tenant, so if I go into my dynamics, 365. Menu, I have, a manual option for my regular, business central, tenant and I have a menu option for, my. Sandbox. Environment. And you can tell by clicking. On the ellipsis, this is the regular attendance and. Clicking, on this ellipsis, that's the same box environment. And at. The top of the menu you can see which one it is as well so this doesn't, show anything that's. The regular demo tenant, this. Shows this is the same box. That. Is the. Online. Option for your development, environment. At. The same time I also have, installed. On this virtual machine a docker.
Container, So, currently, I have a single, docker container, installed, called, my sandbox and if. I want, to do local development. All I would do is open visual studio code and develop. Against one of these local. Docker. Containers. I don't, currently have an azure VM, to show you but. The azure VM really, looks the same as what we're looking at here only, the sandbox. Is called nav server and the, environment, is pretty much the same as what we are looking at today so. When I look at the. Sandbox, over here, I can. Actually, open. A. Visual. Studio code, window. And. Inside. That window, I can create a new, project. And, that new project, can then link to an online sandbox. And by, simply, providing, the, login, information it. Knows to connect, to the right place and that will connect right to my, demo. Sandbox. And we will do so in, a later demo, in this video. So. Let's go to the next slide, there. Are a few challenges that, you have to be. Aware of one. Is beware, of the number ranges just like, nav, development, objects. Are, managed. By using, object. Numbers. For. App source apps there, are specific, ranges, that Microsoft, provides, to ISV partners. That develop, these, app source apps and there are usually in the 70 million range. Then. There are also number. Ranges for add-ons that are registered, with Microsoft. For instance CF MD, products. That have their own license. Range in each country has their own, individual. Ranges. So I believe, in the u.s. is the 36. Million I've. Seen 34. Million I've. Seen 24, million so it really there's, there's, logic behind how, they assign these numbers, but. Just. Be aware that you have to have those, numbers in, your development. License, to be able to develop in those ranges, and typically, for. Anything. Other than the 50000, range and 50,000, range is object, numbers between. 50,000. And. 99999. Those. Are for. Custom development. So the, number range for tenant specific, customizations. Is between 50,000. And. 99999. Those, numbers are free to use for tenant specific, customizations. All other. Numbers are. Not. To be used you cannot, use. Any of the other numbers, now. When you upload. One. Of these app files, with. Custom. Objects. The, process, of importing, that will check the numbers in the number range it will not let, you upload an app, file that has, object. In there that. Do not comply. With object, number range now, so this, is very important, to be aware of do, not take number, ranges lightly, don't, think that just because you. Are the first one to think about. Using. Number 60,000. That, someone, else hasn't used 60,000. As well and, also beware, of unregistered. Add-ons. Just. Like in the, in. The old nav. World there. Are many, partners, who have. Oftentimes. They have great, add-ons, they have great IP that. Are really, useful to use but, since they are not registered, there is no process behind making sure that the numbers, that are used for those objects, fall. Within a reserved. Number. Range and so, it might be that, you go to one, partner, that, has an add-on, that's. In the I don't know. 57,000. Range and then, you go to another partner, that has an add-on in the 58,000. Range then, the third partner, might have some objects, that overlap. And so you. Cannot, install. Apps, that, use the same object. Number so you have to be really, aware, of the, numbers that add, that, that are used and so. It. Is really important. That you get, object. Level information. Especially. From add-ons, that you purchase, from non. Registered, partners. Now, I just have to say again I do not want to say anything about the quality, of any of these add-ons, I have, seen many. Products. That are, super. Great awesome, products. Awesome, IP very. Well developed, just.
Because That partner. Didn't want, to go through the. Validation. Process does not mean that the product itself is bad you, just have to make sure that you are aware of the. Number ranges and that. You have access, to whoever, developed, us because you might need to have some. Developer, or some development, team, provide. Some help with renaming, and remembering, some, of those objects. I. Also, want to talk quickly about moving, ciaela, mods to al, mods. I mean modifications. Customizations. Abbreviated. To mods, assess. Your current customization. So if you have a current, nav. Installation. Implementation. With custom, functionality, this. Is quite an involved, process. So. You would. Need to do a feasibility, study of all the code modifications that. Are in your system and then, you decide on how to split, into separate, apps, the. Most important, step is to convert the. Modifications. To an event based architecture. And then to convert the see al to Al objects. And that step, dick and actual conversion the. Only thing that that does this translate object. File to a object. File from. That point on you have to refactor, the code to. Make sure that it still works in an. Environment. Since, we're not validating, for app source there's, no real need for Sassa fication most. Of this functionality, was, created, for the. Specific, customer, anyway but, at the, same time if, you know about sassa fication it, might be interesting. To also, think about you. Know adding some setups. Adding some notification. Functionality. Or that sort of thing watch. The video this. Is the migrate. See al, - al. It's available on YouTube I didn't, make this a link because there's an underscore. In. The link so plus. The video copy, it. It's. Case sensitive so, good. Luck. Here. Are some resources for al development. Developing. Extensions, in Al has a page. In Doc's top Microsoft, comm get. Started with it all has its own link as well and there, is a ton of sub, pages underneath those links, you can go to the dynamics, learning, portal. AKMs. Slash ready to go online learning, and this, will open the DLP, which. Is in partner source so you'll have to have a login most. Of the technical videos, are also now, available on. The Microsoft, Dynamics 365. Business, central channel. On, YouTube. And. If you go to that link you, have to type everything but. Just, search. YouTube on that on, that channel and you should see them in there and we're, also working on potentially. Moving, all the marketing. Videos, into, YouTube as well they're. Related, videos, in ready, to go library, or YouTube, now as well our introduction. To extensions. Setting up vs code, etc. Etc there, is about. 20, to 30 hours of technical. Videos. Available, training, material, for, business. Central. Specifically. So there's a ton of video, content. To choose from, that's. About it as far as, me, talking. About the environment, and the tools we'll. Look into vs code I have an example that I want to show you how. To implement, that as a tenant, specific, customization. It's the same bookshelf, we've been developing in other videos, as well, so. Let's, go to the next section. To. Modify. Extensions. Using visual studio code, we've. Had. A bunch of videos already on this topic, so. Needless. To say this is the main tool for business, central development. Not. Going to go into very, much detail on that since, you know other, videos are much more detail about that but let's go into our virtual. Machine and take, a look at. Code. So. In my local, virtual, machine I open, visual studio code, and. In. Visual, Studio code, I'm going to start a new project so, control, shift key for that, command. Palette and then I select a I'll go I am. Going to create a project. And. Instead. Of the local version or, the local server I'm, going, to select the cloud server. Microsoft. Cloud sandbox, and. That will lock me into, the. Sandbox. Environment, that I've shown before and. Since it's already, has. My credentials, in there authenticates. Against that sandbox, it. Immediately, downloads. The symbols, in there so I'm not going to see the, problems, that you know the.
Customer. List reference. Is unknown, that you would expect you. Don't have to download. The, symbols manually, of course you still can you know you can still issue that command but. It's. Not necessary, so my workspace. Is now pointed. Towards. The Microsoft, cloud sandbox and behind, the scenes I'm logged in to my. Sandbox. Tenant, so. The first thing I'm going to do is get. Rid of hello world I'm. Not going to use that and I'm. Going to, copy. Some, of my bookshelf. Objects. Into this workspace. So. Let's just, explorer, and, browse to. And, I'm just going to paste those objects, in here so. Replace, the files in there and that should then show up in. My workspace here. Jason. My. Tenant bookshelf I have a publisher, I have, my translation. File instantiate. It so let's. Package. That. See if that all works. Package. Is created, here's. My app file. And. Let's see what happens if I try to publish, this so ctrl. F5. And. That now should can contact. The. Sandbox. Environment, and open. The sandbox environment, with my extension. Installed, so. This is because we're in the development, environment this, is publishing directly, into. The sandbox, environment, and. Now. I am, in my, sandbox. And. So I had, set. The. Book list with, a usage, category, of lists. Let's. See if it has the book list and yes there is my book list. Let's. Create a new book. My. First, book. Dan. The man just. A small book. So. That's in there let's, create another. So. Now I have two books. Let's. Go into the customer. Card. And. My. Customer, card has the favorite. Book number field and. When I drop down I can select one. Of those books, so. My. Extension. My functionality. All works and this, is in my sandbox, environment. And, so now I can, publish. I can use my. Tenant bookshelf, app file. To. Upload, that into the. Tenant so. Let's go into. The. Regular tenant. Which. So. Now in my regular tenant, this is my demo tenant, I can search for. Extension. Management. Open. Extension, management. There. Is a, option. Here called manage, and in. Manage, I can, upload an extension, into, the, system so, I can browse, for, a file. Let's. See, if we can find the, tenant bookshelf. At. File there's, our guy and. We open it. And. When. I accept, I, should. Be able to deploy this. And. Now I get a message saying extension, deployment, is in progress please check the status page for updates and, this, will then upload, the, app file in my, tenant. And, that. Should then at some point make it available for. Usage. To. See the status, of our upload. You go to manage. And then, you select deployment. Status and in. There we should see, our, app. File my tenant bookshelf and we can see that the status is failed so, when I click on this. Should get more details, on what exactly it is that failed, so.
The Package validation, failed due to following. Error table. 50,100. Is missing, a matching, permission, set so, going back to a workspace, indeed. There's no permission set so you, can't just upload. Anything, you, really have to make sure that the app. That you are developing, matches. The requirements, for. A tenant, specific. Customization. And in order for you to have, some, help you. Can go into the settings, open. User settings. Let's. Take a look at the JSON file here and in. There we have. Make. Some more room here in here. We have code. And. We'll analyzer. So. Enable. Code analysis. True. And and. We are going to add the. Code analyzers. Themselves. And we. Are going to turn on, the. Code cup. That's. For general code issues. And then we're also going to turn. On the pertinent. Extension, cop we, are not going to use the app source code because we're not developing for, AB source and so by, turning on code analysis, like this we. Should get some problems, immediately. That. Shows some hats um some, error messages and so as, you can see table. 50,100. Is missing. A mashing, permission. Set so in order for us to fix this you would have to address every single problem, we're, not going to do that for this particular video it. Just just, suffice it to say that you have to work through all that problems you, have to get a matching permission said you have to make sure that. The. Code is correct and that sort of thing so all the errors errors that you get you, have to work through it because if you, don't, fix. Every single one of them your, app upload. Will, fail every time, and so, that. Really that. Really is all that, you need to know so let's, go back to the presentation. And, how, we can move on to the next section. Another. Way to modify, an extension, is to use the in client, designer. The. Inclined designer gives you the ability to add, fields, remove, fields move, fields, and other, parts of screens and the. Secret, behind the. In client designer is that, it turns into an extension, behind, the scenes so as you are modifying, a page, object, inside, of the, tenant. Your sandbox tenant, because you can only do this in a sandbox tenant, it becomes an extension an app file behind the scenes you can dot then download. The app file including. The source files themselves, as an. App as a workspace, to. Be used in al, there. Are a few. Peculiarities. About. How, that all works so I'm going to show. You how. It works and. Again this is already covered in other videos so I'm not going to go into too much detail just. Some, some. Some, handy tips, so, let's go back into our. Sandbox. So again this. Is the sandbox environment, when, I click on this gear here I can, select personalized or I can, select design this design option. Is not available in production tenants you can only do this in a sandbox, environment and. So when I click on design I get, the designer screen. And. I always go more because, now I can also add fields, now, I can go into the. App. I can just use business, central the way that I am, used to using it only. I am in design mode right now. So. Now for instance I am looking, at the customer. Card and I. Am looking at this and I'm thinking maybe, I want, to get rid of this costs. Field. So. I can select remove, and. I, know that, there is another field, that I would like to add. So I click on plus field. And. Now I have here, the field called, name - and, I want to add that right after the. Name field and, so. As, essential. As thinking about how to put this on the screen I can. Now click stop. And designing. And. Let's get given a name. And. I, want to download the, code you, can also save it without downloading and, you can download it later but when I click on download, the code and, I click on save that, will generate, an AI, workspace. That is already, connected, to the sandbox environment, and, now I can, save that in, any location, that I want and, so I am, going to go into. The AL folder, because, that's where all, my, projects. Are, so. Going, into, the a alla folder, I can, find my zip file let's, extract, that. Extract. And. Let's. Rename this I don't like this really long name, just. Call it my screen stuff. Ok. Now, I can right-click this, and say open with code. Now. One thing I want to point out is when, you do this it. Is aware, of other. Objects. It is, aware of using, the next number so 50,000.
101. Is the, first available, page extension, number, in, that. Number a number between you. Know 50 thousand, one hundred. And. That. Was the default that, a I'll go workspace, creates, and as you maybe have seen in the, dependencies. There. Are a, lot. Of dependencies, the. Reason why is that when, you are doing this. In. Client designer. That, tenant. Already has a bunch of extensions. Installed, and so when you go to extension. Management. And. You look at the list of already installed. Apps. Here. We go. If I go through the dependencies. In app dot Jason, this is the workspace that was generated, by me. Saving, the inclined, design you'll see that all these dependencies. All, these extensions, that are already installed are. Included. In app dot Jason, as dependencies. The reason behind it is that all. Of this changes, that you made on the screens. Might. Need to, have either, one of these extensions, installed, and just, in case that any of the fields that are part of those extensions. Are on those screens itself, all, those extensions. Are included, in dependencies. And so this, is one thing that is not so nice about the in client, designer so. Maybe what is a easier. Way to do, is to. Either take. This page extension. Object, and. Include. That in your vias, code workspace, so. You can just copy it in there and then include, maybe these. Things into, the other customer, card extension, right because we've, added a field to the customer card for our extension, maybe, we need to include. This stuff into, our. Workspace. As well so, be careful with that because you. Know there's not so much that you can do, without. All those dependencies. Right. So. That's, about everything, that I want to show for the inclined designer there's, more detail in other videos so, please feel. Free to go to the, other videos and watch that. The. Last part deploying. To business central we've, already covered this it's, really a matter of opening extension. Management, go to the manage parts. And choose upload. Let's. Go in there just one more time just to, reiterate how, easy it is to do this so, let's go back to our regular. Tennant. And. When. We are in here, we go look for extensions. Management. And. Inside. Extension management. You. Click on manage and. Then. In manage you uploaded, extension, and this. Is where you browse to that app file write the app file that was generated by visual studio code, you. Select that and it goes into a deployment, status, and to. Look, at the deployment, status you just opened this guy up and, it'll show you the. Status, of that. Deployment that. You're working on and so in this case my. Tenant bookshelf failed, because, we didn't have the permission set, it's. Not a matter of just completing, that extension. And then uploading, an ADD file and that then becomes part of your tenant so, it's really that, easy to, do let's. Go back to the presentation, this. Is really it I've shown you all the important. Details on, how to develop, and deploy tenant. Specific, customizations. If you. Want to learn more about business, central Apps follow, the link on your screen and, that. Leads me to tell you thank, you so much for, your time and watching this video I hope I've given you some useful information, and I, wish you a very happy, rest, of your day.