so good morning everybody um it was a little year ago we were a year ago we were here at at Tech days it's incredible to think that already one year has passed and so many thing happened um during the last year uh and yes Luke you guess right we are going to talk a little bit about co-pilot during this keynote um I don't know how you figur that out but I thought I was going to be the first one to mention it but uh you you beat me to it all right yeah I mean it's it's it's hard to imagine that it was I think about two years ago little less than that that Chad GPT started making the news and people were starting talking about it you know outside of the tech industry and this then so many things that happen um and there's no doubt that the AI Revolution is is upon us so we we are going to talk a lot about co-pilot we are going to talk a lot about AI during this keynote but also throughout the whole conference and I want to share you uh share with you a few a few numbers uh about that before we dive into demos and and show you what we've done with the product and show you some of the tooling we we've we've made for you um we've you know there's literally billions of shed this year just on a Microsoft co-pilot uh and people use it for all sorts of things uh to code to to um to get a head start and and and determine company strategy create agendas and there's you know 68% uh 68% uh of the people uh that using co-pilot say that um they give it gives them a jump start for the creative process um we have a few other numbers we we did a little bit of you know um a poll and asking people around how they how they using this technology and 70% say that they're more productive with copilot and 77% um don't want to you know stop using it so when people are first user when they start using co-pilot when they start using this technology they you know they get angry with if you take it away from them so on on the Microsoft front we we have been very you know very busy and and and we have uh in the in the two 2024 sorry re Wave 1 we've shipped more than 100 features across the dynamic 365 portfolio 100 features I don't think any technology has ever been so Pro Min and I don't think we have invested so much in any technology in the past and what's interesting also is you know if you think about you know we we've seen you know if you like me you've been in this in this business for a while um we have seen many new technologies like for example the cloud uh order you know the internet and and if you remember some of you remember this this transition and this this new technology the the the transition to to this new technology has been kind of you know happening over over years right over a long time take the cloud for example it has been happening over several years but this technology AI is just you know in a matter of it's it's such such a period uh that we we have never seen anything like that before um but so we are going to show you what what we've done in business Central we've we're going to show you some of the features we've implemented leveraging this technology but it's important that you know one of the message we have for you guys for this community is that we we must work together I mean we can we can only do that much in business Central we can of course Implement all the scenarios which are you know uh um offering value for Erp but we will never be able to implement scenarios which are domain specific the ones which are specific for a country or an industry so that's why we need you guys to help us with that we need to work together uh with this and we'll show you the tools and we'll show you all the things we've uh We've U we' prepar for you to in order for you to to do that but before we get there uh I wanted to frame a little bit the whole uh discussions around AI because there there's quite a lot of confusion out there I think uh so first of all Genera AI which is what most people are talking about these days is not chat only chat um chat GPT or or co- pilot chat is one application of Genera ey um so that's that's one one uh that one way to use this technology there's plenty of other ways to use it and actually um let's let's go through a little bit of terminology here um so Mach um artificial intelligence is something that it's a it's actually old technology it's I think it was it it appeared around the 1950s and I believe uh Alan Turing was one of the first researcher who scientists who uh who use the term artificial intelligence if you've seen the movie um the imitation game that's that's about you know the life of Alan touring and uh and back then uh this term was used to refer to any you know computer based thing that would try to emulate uh the human mind and what humans are doing and back then it was very very much algorithmic based meaning you were writing code in a traditional way to try to simulate what a human would do and then later on I think in around the' 70s already uh machine learning uh appeared and machine learning is as opposed to traditional programming where you write the code you write the algorithm the idea is to train the model uh train a model on a lot of data to actually let the model uh create the algorithm so you don't write the algorithm but you train a model which becomes the algorithm right uh so machine learning is a subset of artificial intelligence uh and within that that that field there is another field which is yet a subset of machine learning called Deep learning and and deep learning is a little bit different than machine learning in that sense that it is a subset of machine learning but deep learning um when you do machine learning which is not deep learning you kind of have an idea of what the rules are and which feature you're are going to select which things are important for the model uh whereas for deep learning you just let the model train it itself it's a little bit like magic you don't know what's going on inside the training until your model is fully trained and within deep learning there's yet another subset called generative Ai and that's what everybody's talking about these days uh and generative AI is about producing new content um for example self-driving cars uh are not are using AI technology obviously but it's not generative AI you're not trying to to produce new content you you know get some input from sensors and and and cameras and and Radars and the output is you know a brake and turn the steering wheel accelerate this kind of things so you're not generating new content you're just generating some output and predict some uh some things to do with a car whereas generated AI is producing something new and within generated AI there is um picture generation like uh like Deli that's one one of the models used for you might have have seen it that's one of the model you can use to generate pictures there are some models that uh are specialized in generating music for example Symphony and things like that and obviously text as well and and within this field of gener there are large language models also called llm and these are about generating texts and this is often what people are talking about these days when they mention AI um so I just wanted to kind of you know set the stage and and talk a little bit about this ter techology uh and then just to confuse everybody a little more there is Microsoft co-pilot uh which is not actually a technology it's a brand it's a Microsoft brand which covers um everything which has to do with AI within Microsoft and it can be generated I or actually could be something else um so I hope that helps um clear a little bit the the confusion and and help you in terms of understanding the these uh these uh these terms uh right so let's jump into it let's see what uh what we've done in the product and we'll show you for inspiration what we have done before we get to the tooling part uh and for that I'd like to invite Hina on stage please help me welcome horina thank you Vincent it's so nice to be here today actually Vincent we do have a little anniversary together because uh you know in 2013 uh that was my first session here at Tech days and uh we were demoing client extensibility that's true uh and since I actually skipped last year so that makes it around 10 presentations right all right yeah congratulation thank you thank you but let's uh let's talk about uh co-pilots and in uh in business Central right so um I think we all have somehow experienced uh what it means you the power that uh generative AI has own users you know how many times we have sat there with uh DPT and uh type our you know few words and then you know we got all amazed about the answer and we want to bring this power this wow effect this productivity boost uh in business Central and uh how did we do that well we really wanted to do it not just in you know some places in business Central where we think that would be cool and we want to celebrate the technology we have actually thought about the endtoend business processes and we started with sales to cash if you remember we have uh marketing Tech suggestions in uh ready to transact we have also quote to fulfillment and we promise you some really compelling demos today and we also continue our journey in getting paid and pay and actually in uh April we have just announced the public preview of of uh automatic matching purchase orders with electronic invoices also using co-pilot so let's see how we have done that and we would like to show you some really great demos today uh and we will uh yeah start right yeah so while Hina is getting ready with her demo you know when we um when we plan Tech days we we we talk with Luke and and we have some uh you know some communication before and uh and Luke has been you know doing this conference for many years and he's very well organized he have everything under control you know he has this plan and you know so he's asking us you know who's going to come what sessions you going to have and at Microsoft we're very very bad at uh keeping the deadline and we always late you know and Luke is getting nervous you know up to the conference so we thought you know how you know maybe we can um use co-pilot and some of the features we have in business Central to you know uh do a better job Microsoft and you know take some of the anxiety from Luke right yes let's do that so um let's imagine you know I am a salesperson in in Kronos and uh you know I receive a lot of mails from my favorite customers uh you know asking all sorts of questions about uh items we have in our product catalog and you know guess what uh L is one of our favorite customers and uh BC Tech days is going well uh we have 1,200 uh particip yeah so uh it's you know taking up good business and so uh he wants to expand his office setup and uh particularly he would like to purchase uh two black office desks and for blue chairs so he sent you a mail with that yeah yeah and you know look he's very precise right so he also wants uh these items to be delivered by end of June right and normally that will take us quite some time right we have quite a lot of items in our product catalog but let's see how uh AI companion in business Central uh can help me with this task and um you know you notice here the co-pilot icon in the top up bar and you just seen how the copal pain seamlessly uh slides in and integrates in business Central experience so you just open the pen here in the on the RO Center but actually you can do that anywhere in the in business Central right and you can have this chat pain uh on any page yes to help you uh do whatever you want to do yeah it's always going to be alongside with your data and uh you can see here that um co-pilot welcomes me with a message and it clearly states you know how it can assist it can look up records in the database it can help me understand business processes or you can you know guide me on how do I I do some certain operations with with business Central um so what about this there's this view prompt um icon can you show us what that does yeah so if uh users are still in doubt about how to interact with co-pilot uh there are plenty of examples on how um a co-pilot can help so these are prompts which are already made you could type them manually in the chat that would do the same thing but that's kind of a way to help the the users getting started with with asking things to co-pilot right exactly exactly and you know I'm not a fast Piper we all know that uh so I always try to find uh you know shortcuts so uh how about we ask a pilot uh if there's a keyboard shortcut for accessing all actions on the page and what would we do if we wouldn't have co-pilot you know yeah so we yeah so we would have to you know open the documentation you know look for that information and I don't know about you but I think sometime our documentation can be a little bit confusing U so we have to find the right area about keyboard shortcut but here we can just ask directly in the context of of the world center for example here right yeah and uh I have here back from co-pilot a compact answer and well it says I can press out to uh show the access keys well and you know if I really want to double check on co-pilot you know we can always uh we always have here citations what we call citation which is the link to the page where uh copilot found this information for me um so I think this is the right answer Let's uh give co-pilot a thumbs up and uh we can also give it a try uh let's see if I press let's try yeah that was the right answer and see and then we uh we uh navigate to customers and that's how as a new user we get to uh learn a new skill in business Central just by asking co-pilot so let's get back to looke and this mail right let's get back to business yeah I think uh yeah go ahead so uh we need to create a code for look actually we have a code already open so um let me go ahead and ask a co-pilot to find it look up open sales quote uh for uh Tech days so this is uh our customer so notice what happens here we just asking co-pilot to look up an entity sales quote uh in a specific status right which is a open and um and for the tech this customers you know so we're not specifying you know that status is the status is open or the entity is a s quote or Tech is customer Cal figures that out by itself right otherwise we would need to you alternatively we would have to go and and look for uh for it maybe you have many sales code open but you can just ask in copal in natural language and calot returns uh the results right yeah so do here I have um actually a a small preview of the sales quot that we have open for B Tech days uh I also have a link to the sales quote page um to to actually directly go and open this um this quot um and so let's do that so let's go ahead and edit now Luke wanted uh what did he want we wanted four blue chairs and two black office desks and uh normally want need some solid desk there's something about yeah actually the the office desk should be solid o or durable right right ER and normally you know we will actually go back to the items page now and try to search for blue chairs and uh you know see which one would actually be a good fit for look uh come back and and manually enter this but here in the lines page please notice that we have the co-pilot menu action um and in there there is suggest sales line and uh aside this suggest sales line we have uh the what we call the image Sparkle uh and that is an indication for the users that uh this action is a AI powered experience so let's uh go ahead and click on suggest sales line and now uh I can describe with my own words what items I would like to add to this quote and we can be maybe a little bit lazy uh and just copy paste directly from looks mail and uh send this to co-pilots so you just take the text as it is from from Luke's mail and just paste it there no change right just natural language what Luke is asking for and um then ask opala to find this item yeah and we're not only you know looking for the item name of description we're actually looking for all the related information we have available in business Central there we go yeah should let's review these uh items so I can see the quantity also is put right that is correct and then the aend desk if it's um look only the uh a black one that's that that's that matches and also something solid and solid work so that's you know that sounds like that's the right type of item right good suggestion and we can also just quickly review the London chair that's also yeah okay that fits all right should we go ins then yeah so what about uh what if um what if I don't have a mail but if I don't have you know if I just want to find some items without you know without without a meil yeah so we have here uh in the prom guides you know a couple of examples to inspire you how to interact with SC pilot and you know sometimes customers are not really that precise in telling okay I want this item they just uh want to say well I sent me the same thing as last month and uh for that we have um the copy from existing documents or you can also just write copy from the last invoice or we can just add an item like quantity and description yeah so uh we should we should actually send something extra to look look look as usually has this coffee uh coffee van do you have it this year as well yeah so maybe we there always good coffee at B te and then there's the coffee mugs as well right yeah yeah the coffee mug yeah so we we we need to send look one ispresso machine okay so uh let me add this and uh and I can as a gift right yeah yeah yeah sort of well maybe a discount let's see later um but uh um so yes I think we have just receive a luxurious espresso machine and I really hope uh co-pilot will find that and and add this to the quote so the thing here the is that the good you just write one espresso machine we don't remember exactly the exact name of the item you can see here the exact name of the item is espresso machine looks espresso Chronos something right and and you don't have to search for that exactly we just you know write Oneal machine and co-pilot figures out what's the best match you know that's what LMS are really really good at yeah that's true so let's insert that in Luke's order I hope it's a good one you guys are going to love it so um maybe we're almost ready to send this quot yeah there was something in U Luke's mail about a delivery date yeah uh we really wanted by end of June and uh we don't want to disappoint him and and also the other question of course you can ask yourself is well these items are nice copilot has found it for me good suggestions but can they really be delivered on time and um yeah I don't know about you but we have this order promising algorithm for determine delivery dates in business Central is let's ask pilot what how that works so let's say how do I determine delivery dates and um hopefully that uh will will uh help us you know understand how we would what what do we need to add to this quote to make sure that um Luke gets the order in time yeah again here otherwise we would have to look again through the documentation uh find the right place where where we talk about delivery dates and what algorithm we use but then we have it right in in the context of U of the work we are doing and notice here actually copilot uh uh it's adding some steps for me here specifying you know well if you have a specific delivery dayses requested by customer then so quite a nice information and uh here is delivery date calculation uh in our Microsoft documentation uh let's give it again a thumbs up I I really love this answer um so what does it says specific delivery days is requested by the customer yeah it's something about the requested delivery yeah yeah so here you have you the tool tip that we all know and love but the new thing you'll notice here there's a ask pilot icon in a tool tip that can automatically generate a prompt for you uh to ask about that particular field and with one click we can just send a predefined prompt to uh co-pilot pain uh ask it to explain the requested delivery date for us so we could have typed that actually we could have just typed explain field name requested delivery date but then we can the convenience saying that we can just click on the on the tool tip and and get an explanation and that's what says is used to speci if dat all C line that's a starting point for calculating shipment and delivery debt that that looks about right um so let's go ahead and set this to um 30 of June we have um a little bit of time uh and now our quot is ready to be sent ready right discount yes oh yeah the discount good to say that that's that's good to say that let's hope discount also works let's see yeah so actually you know we have um we have this um loyalty program uh as you know you know you and look you are a gold customer obviously uh so what what we want to show you here is that we we've made a you know a very small extension that adds the Loyalty field to the customer and customers can be bronze gold and silver obviously Luke is a gold customer um and what or is going to show you in a moment here is that um we uh copilot can understand the things that are in new extension without having to do anything special about it right yes show show me all customers yeah so let's search for show customers for with reward ID Gold All right so again this extension is very simple we'll see that in a moment right but um it it just it doesn't have any co-pilot code in it in but anyway U when you ask questions but the data um on on these um on these customers even though they are coming from an extension copilot is able to figure out um this thing right and here is the answer yeah so here look you are a gold customer customer so you're you're entitled to this so definitely uh good rewards um and uh you know like if you guys are in doubt um can you show us that there's no co-pilot code in the extension yes so we have here you know uh a very nice feature um which allows me to show you uh the code directly from web client um so uh with one click we can uh just ask uh web client to uh redirect us to vs code and uh show us the reward ID field uh and yes no I don't want any snapshot debugging because this is an extension that works beautifully um so I just want to show you here the code so so you see what happened here you just click on from the browser on the on the page inspector and went directly to visual studio code to the to the implementation of that particular field actually yeah so directly from the browser right yeah it's pretty cool right yes and then uh here you can see the tool tip uh which is is uh so what we have uh added in this extension may maybe a few fine tuning to make sure that co-pilot understands what we're asking for is of course uh quite uh good tool tips uh in this case for example specifies the level of the reward so that allows me to kind of play with words like reward tier or reward ID and so on uh it's also important that uh you you know besides the reward table which we all expect to have uh we have the reward list page and card and uh all the uh columns are actually added to the reward list so for example if we're searching for your word ID that should be added to the to the list and uh and and the same for the uh customer card p uh reward card page very nice so how about now how we doing as a company you know it's fine we give discount to look but do we have do we have enough money to give discount to looke yeah let's see let's see how we are doing with with our finances right maybe Luke doesn't get the discount after all you know this this gold thing you know has just the default values there maybe we Promise Too Much no but so a while ago if you remember a while ago we uce The analyzis View which is which allows you to do ad hoc bi on any lists in um in business Central um and uh it was a very you know U um we got really good feedback on this on this feature but but we also got that feedback sometimes a little bit difficult to to set up the view the way you want if you want to present the data in a certain way um so we uh we think that may we thought that maybe we could use co-pilot to to help with that yeah so let's uh let's take a look uh in this release we have introduced the analyze list with co-pilot uh you will find the analyze list uh across old list bases in in business Central uh we also have uh um maybe you can say more proeminent you know user experience for for this uh uh co-pilot action you know inviting you to you know look at all these data all these rows and and just uh uh get to the view that you want with only a few words um so so what should we what should we ask what what would you like to see show me the money show me how much money our customers owe us okay show me uh what customers owe us I notice here that we are again vague we're not telling uh which columns to have in the view we're not telling what filters to be added um we just say to co-pilot well show us uh all the customers who owe us money and then you know copilot is able to translate this to to this view so here we go view gets formatted um as you know as as you asked just in natural language but um how about I'd like to see the numbers by years and and months let me yeah let me add this uh due month uh and due year and then let's ask go pilot to fine tune this View and one thing that uh you should also remember that when we are um actually calling the analyze list we're actually not sending any of your business data to co-pilot the only information that uh that we're sending uh to uh to the llms is the uh column columns that we have uh available on the list and uh and you know they they metadata information so no business data is being sent over to the wired to llm all right well that's that we have the due month and due date here due year how about uh you know I'd like I'd like this view to be uh in a pivot mode ah yeah yeah yeah I also am not so familiar with pivot St so let me ask go pilot show as pivot and um hopefully we will get the view that we want so what's all these things you could have done with you know the mouse and clicking around and uh but it's so much easier just to ask BC you know how you want the data to be presented and that just happens so here we go yeah and look look look how many columns we would have here so I would have actually we have tried this you know in other when we ship the analysis mode and demo this on how many columns and we had to remember specifically me and Yanik in the Keynotes and so on so I'm very happy for this feature just only for my selfish reasons um so uh let's so I like that view can you uh share it with me yes first let me keep it and uh I can uh we can we also have this option of uh just copying the link and I can you know take this link and send it to you on teams and you know you can then maybe you can show it to look and say hey we actually do have money to give you discount so so if if you get that link in my mail and open it in my environment then I would get this exact view yes all right pretty cool pretty cool all right and that is how uh uh co-pilot uh helps you opens the door to for you to inter interact in with a in a whole new way with your business data uh in some way the business processes have become much more approachable and uh you also have a performance boost productivity boost you I know co-pilot is just uh alongside with your data so you can continue doing your task but co-pilot will take care of all the things you just don't want to be bother and fine tune So yeah thank you Reena thank you thankk you very much thank you so um I hope you um you get inspired by this feature so again this is the the features that Microsoft has implemented it is essential but again as I said at the beginning of the presentation um we will need you to also help us and help your customers implementing Your solution and your feature and to talk about that uh let me invite Ida on stage welcome Ida good morning thank you Vincent it's thank you it's really awesome to be here after a year Gap and see all these great developers and I just think that right now you see all these beautiful features co-pilot features embedded in business Central and you're going to ask yourself okay how I can embed AI in my solution and for that we are introducing uh co-pilot the developer to toolkit and I'm very excited to announce that and guys this is just the beginning so we you you can use the toolkit to build AI Into Your solution in a very trustworthy and consistent way and I would like to demonstrate that a bit but then uh looking at luk um I was just thinking look you make a lot of effort this is one of the best conferences you bring this amazing Community year after year you gather us here together you are very precise I'm always late I know with my plan and presentation so now that hurin help you to um equip your office and get you some discount and some luxurious coffee machine so I'm going to take it one step further and don't you think it's going to be cool to actually ask AI to organize the whole event yeah you know yeah let's see if we can get with pris efficiency and then you don't need to be a stress oh Vincent is yet you know late Ida is late and Hina is late and all that story so for that actually let's what do you think Vincent should we start uh coding yeah let's do a bit of uh on stage coding it's always a lot of fun right yeah it's always a lot of fun especially you know in front of all these developers I love to code live on a stage and see what happens using copilot toolkit so I'm going to do that here I just have created a new project and the first thing I'm going to do I'm going to add a new co-pilot action to the list of projects so what I'm planning to do because as you know we have this concept of projects in BC um earlier we used to call it jobs and I want to uh Infuse it with AI and create a very special experience uh for look so to start with that I'm going to add this action and um just let's go and look how this looks basically it's very simple right I'm just adding it's the simple page extension with a prompting area and I'm placing an action that is calling a page and it's see what it looks like yeah it's going to look like that you can see it has the signature co-pilot look mhm and uh so you recognize this uh this from you know other experience in the Microsoft uh products you know like from M65 yeah this is so this is all it takes to get to get this Co just because you are PR you're using toolkit and place the action in the prompting area you don't need to bother with this and you're going going to have this I turn off my not notification but that's fine we deal with that okay great so this action is going to call a page and let's go and build that page and I know all of you are using this very nice building Snippets for when you want to create the you know to very quickly create a layout for a page or for objects and for the new page type we have prompt dialog we have created a dedicated a snippet a dedicated template that I'm going to use so I can get quickly get it started and you can see this new page type is the prompt dialogue and with this type you get a lot of nice things out of the box you know you get like the co-pilot look and feel the signature visuals and the most important of all there's meta proms in here so you will get all those uh safety controls uh for your customers to make sure that you are following the responsible AI from According perspective it's just a regular page just a new page type called prom dialog right absolutely and I'm going to give this page let me give it an ID and then it's nice also to name it right draft project great okay nice and then you know I want to keep it simple here so I'm not going to use any uh tables instead I'm going to add two variables so I'm going to add two variables one of these variables is going to receive the message that user types in the prompt dialogue and the other one is captures the output that is generated by co-pilot okay okay now I have these two variables and I'm going to use the them in the two main areas of my prompt dialog page one area is the prompt area and I want to make this area you have seen a lot of uh you know prompt dialog areas now in uh hurin demo I want just to make sure that this is going to look nice and user friendly so we have some instruction and so the user knows what to type here great so that's going to be shown as instruction for the user how to use this uh The Prompt area and then we have also the content area this is the output generated by co-pilot and then you know it's nice to have this content area in a reach text format so you can see the output generated by co-pilot in all its Glory so I think I have the base of my page in place should we give it a try yeah let's see how it looks like then yeah let me go [Music] ahead and run this it's compiling so again here you just just a regular page but with some new areas and New Concepts Absol traditional coding apart from that right let's see so we add the action and now we are going to see how the front diog will look like so our nice draft with copilot action by the way this dra copilot action it also shows up in the in here you know in the copilot menu action bar you saw analy list now we have also placed it here just automatically because we use the toolkit and then now let's look at the prompter look so this is the experience we build and you can see the instructions that we add to the prompt area so all that so we build the basically all the U ux and UI here and almost I think yeah we have the base UI in place but it's not special enough remember what is our mission here the mission is to help Luke so okay so you want to do something special for Luke yes I'm going to do something special for you okay so if you remember all those nice let me close this all this uh nice uh prompt guide that we know was showing what about we add a very nice prompt guide also for look so I'm going to add that great so this pump is about organizing the event and then let's make it a bit more special maybe we call it what help PL help PL okay so that's going to be a special from guide yeah do now right let's see and then of course it has a description so you can use this meta prom so you don't need look to tell you know all is about your efficiency I'm going to actually give this a try as well okay and see how this appears great so we are getting a prom dialogue um and we're getting the prom the the uh the co-pilot menu and then the prom dialogue just with really few line of codes here yeah absolutely and look we had a prom guide and now we get this nice cute prom guide icon very specialized and then if I invoke it plan for BC te conference for developers it should have walking dinner it should have exhibitions all right and all that all right so let's go and uh click generate and see what happens okay so so far we we have just built you know I know you are very eager you want to see the results but all we have done we have built an nice experience we make it a bit special but then we need to do a little bit more coding because one thing we need to do when we create we invoke this generate action first of all we one instruction is this user prompt but another one is we need to tell co-pilot in what format and how we want to receive and generate the result because it can go really crazy okay so for now okay so you for now you only build the user experience absolutely which is consistent with all the user experience we have around co-pilot in BC yeah in your extension but you haven't hooked it up to uh an open AI service yet or Co service yet not yet and I'm not even going there so for now I'm going to in the generate and I what I'm going to do I'm going to add uh uh system prompt and this system prompt is this instruction additional for what user is asking for I I want to say okay for example generate at least six tasks because this is a big um conference I don't want 2,000 tasks but I don't want to a limited number I want to have subtask the format should be bulleted for example it's also quite important like it looks nice and fun I can add some Emoji why not um so that part that part is actually is the it's called The Prompt right it's what you're going to send to the llm yeah and actually that's where you know you probably have heard about prompt engineering uh so that's where you know that's where you you might want to do this part maybe outside of BC maybe you want to go to open ey Studio or some of these tools we have and and craft your prom there and get it right for whatever feature you want to implement and once you've got it right and and try it out with with your scenario then you can go on and code your extension here and put your prompt in the in BC in your extension in a absolutely so now we have set to co-pilot how we want the result but then where is co-pilot we need to kind of go and connect to that and as you know we are going to create a new AI capability for business Central co-pilot um create project line so I want to go ahead and actually make sure that I'm defining this so I will uh add the capability um create project line and then the last step I need to also go ahead and connect that to open AI service for that I'm going to use more of a uh toolkit magic and create a local Pro procedure here uh create suggestion and what is happening here actually look at this line of code this is is instruction for you to interact with Azure open AI service however we have make this very simple for you we have provided in the toolkit these very simple wrappers and all you need to do it is available in BC sample and all you need to do is to make sure you are setting a you know safe uh authentication and authorization you you can also go set some parameter for example Define which version of GPT you are using you can adjust for example the level of AI creativity um it's also known as temperature and right now actually it's quite cold in the building and I it's you know it's a kot stage I want to temperature to Z quite down but you can see here it's very few line of code right less than less than 20 lines of code that's what it takes to actually interact with the open AI service there it's part of the toolkit it's available in BC sample all you need to do is just go and change some of these parameters and then are we ready yeah let's uh I think we I think we're ready let's go okay let's let me go ahead and run this and see if we can have a mission accomplished so again this 20 line of code is very simple we just specify a few parameters and that's where the all the magic happen that's where we actually talk to the open service absolutely the the first part was about the UI and the ux and this 20 line of SC this where actually uh we are going to interact with the LMS right okay in our project area we have the draft with co-pilot action we go and use a very special prompt guide we want to help L we already have amazing 2024 conference so let's plan it for next year next year 2025 yes but then we already help look right I just want to add another um um another prompt here because we have this very luxurious coffee machine that we buy for you with the discount so yeah so we need we need coffee for also coffee for the very important at the conference and beer as well oh of course beer seven type of beer right we need to make sure I don't know what how many type next time are also needed no no conference without coffee and beer yes especially a developer conference right we won't last I always okay now we can click generate right going to Happ and at the moment I uh you know press on this by the way look at this uh very nice you know progress bar a stop generating aake this was not part of of code it's part of the toolkit so you got all that experience also for free and let's see if llm is going to work for us and do something grateful look there we go here you go so you can see that we have different task we should set the date check the availability I know Luke does all this identify keynote as speaker so important yeah important luk right and look at this coffee and beer you know I don't know actually I honestly don't know why it has made it someh somehow co-pilot figures out that coffee and beer is important it gets it gets highlighted see it gets in bold uh so I don't know if it's f guys to develop a conference or you let's put an emphas we added at the end so we thought oh this is really important for us so here so look you have this I can even um now it was on a stage so we ask not to add a lot of subtask we can ask to add even more subtask so you will get such a precise planning and hopefully next year you will be less Str stressed especially very good you're good for 2025 right awesome thank you thank you okay so so that was you know how um how you can build an extension uh in you know very few line of scope as you can see and interact with scop pilot uh but I noticed Ida that um where where where you coding you didn't you didn't create a open subscription on Azure or you didn't do anything with uh with the actual open eye service so that was a smart observation how does that work okay I'm going to uh actually pre-announce because you're part of the family um we are not exactly announcing but pre-announcing Microsoft manage AI resources this is a concept that we are working for uh for a while right now and what is it need so all of third party um apps we provide them with AI capacity out of the box it's going to be very transparent managed scalable um situation and I think we are going to announce the private preview it is um it is U holding the final responsible AI review and all those things so I think around in two three weeks probably early summer we will go to private preview with selected customers and partners and after that we will go for a public preview so you don't need to wor about that at all yeah check ak. msbc armor and we'll Ann yeah and you will learn about it and we will make a great announcement when we have it so you don't need to uh uh kind of worry about that and then when it comes to we have a lot of guidance and samples BCS starts coding with AI learn it's all the documentation and then you have coding samples of what I show for example on the stage a lot of more details so there is tons of codes and documentation for you to learn more and experience more and you know of course some of you want to start coding first then let look at the documentation what order you take you can uh use both of these links and take these resources and I think they can actually get it started from next week yeah right after they come back from this conference yeah actually I some of you um already started and um and so a little while ago I think back in February we had this uh this great AI hackaton event we have more than 300 Partners participating in this event and they were trying out the tool kit that Ida just demonstrated and we had a little competition about it and it was a lot of fun uh and they were able to produce more than 50 solution in in just about 3 days and that's how easy it is to implement uh Solutions in in Al uh with with the toolkit and there was tons of really creative ideas it was we we had a a small competition and we wed the best idea but it was really hard because um there were so many so many good ideas so let me let me roll this um this quick video so you can get an idea what's what's went on there welcome to business Central AI hackathon for partners as the clock strikes 9:00 a.m. our virtual doors swing open 300 Partners around the world have joined forces in an AI hackathon over the course of 3 intense Days ideas turn into reality resulting in 50 innovative solutions meet our secret weapon business Central Partners developer tools for AI and co-pilot in business Central have got your back but remember AI isn't just about algorithms it's about Community creativity and exploration every line of code late night brainstorm it's all a collective Journey everyone is a winner here because in this hackathon we are not just coding we're shaping the [Music] future all right then I would like to use the opportunity to uh actually announce the winners we never did it publicly so the company take on they they won this this small competition but again that was really hard to find a winner because there were so many good solution out there and the the solution was about building um logistic manager and plan shipment by organizing delivery uh and sales holder for for customers um so look out for this kind of event we I think we'll have another one uh so if you interested in participating look out for it and U please join that's that was a lot of fun all yeah um I I just think some of our audience are a little bit now you know maybe cynical I would say because they say co-pilot co-pilot ai ai ai come on what about all these fundamental needs that of developer house productivity features language feature anyway Al is a kind of new language you know and we need to continue to invest on it and then I have something actually new for you as well so we have been even though we have been investing a lot in AI but we have continuously it's our mission we always have time box we make sure that we are investing on the language on productivity feature we make sure that we are investing on the tools The Bu experience Alo we add feature makes them better and you can see some of examples on the uh screen also we think about how we are modern modernizing the application stack how we make refactoring easier for you and nonbreaking and we have great session that covering all that and it's just not talking talking you know I actually go ahead and went ahead and cun everything since last takech days uh all these great features that are bubbling in the background um and that we have added and we have I think two sessions that uh covering all the productivity feature language features and all the enhancement for you developers and I'm really um encouraging you to go and attend those session and see how you can use that in your Solutions so there is also maybe I have one more thing Vincent so it's about modernization of application because we are talking about that all the time we are saying we are investing but it has been a bit quiet so would you go ahead and update that for me okay yeah so I wanted to also um recap a little bit what we've been doing in uh in that area um so it was kind of a journey that started a while ago when we converted from cl to L I'm sure we remember that um and that was kind of you know as I see the the beginning of that Journey and since then we have been doing a lot of work to modernize our application that we all love don't we so all right so thanks for the enthusiasm um so so I just wanted to recap a little bit what we did uh in that area so we have the platform and we had the uh the base up um and then local Solutions on top of that so one the first thing we did is we we uh factored out what we call the system layer which I'm sure you're familiar with and the idea with the system layer is to have everything that had that you need to build a solution uh all the apis you need but but in the system layer the apis have nothing to do with the app so you'll find things like HTTP client or key volt API or file IO API these kind of things uh and they all you know things you need but they're not they don't they don't uh they're not specific to app they could be in any um any library then on top of that we have the business Foundation that we introduce uh more recently and the idea with business Foundation is to have uh all the code and all the things that you need for Erp but which are not pertaining to a specific area of VP so they're not pertaining to uh for finance for example or inventory or that kind of things so we'll find in that layer you'll find things like number series which we uh shipped uh very recently and the idea is that we'll keep adding and factoring out these fundamental things into the business Foundation layer and and so our approach is is twofold we are going Bottom up as I'm showing now so starting from the bottom of the of the code base and and factoring on the things uh in these layers but we're also going top down uh so and lately we actually factored out service management and manufacturer which are on top of what we uh think of now as being the core application um so you see what's happening here we are kind of shrinking the the base app itself and and factoring out these modules to create uh a nice separation of concern between these different areas of code right and we'll keep we'll keep with that effort um um it's it's going slowly but that's uh you know that's by Nature this these changes tend to be quite breaking and and we are that's why we are trading carefully we don't want to break you uh too much we have you know two releases uh every year where we actually can have breaking Shak so that that means we we we we have to do these things uh slowly and and carefully so we avoid breaking breaking you as developers and breaking the solution but we'll keep we'll keep working on this and I you know I'm sure I'll talk about it next year and and the year to come at Tech days and and I'll keep you uh updated on the progress we are making on that area awesome so a lot of uh you know great productivity features a new brand new co-pilot toolkit and continue modernization of the application but actually I have one more thing to wrap it up so you know in the beginning of each release we always update of documentation of course but this time I would say the developer documentation has been reimagined it has been a complete o overhaul and I really want you to go and check the link BC developers we have ADD tons of sample tons of wisdom how you can write a efficient and robust code what are all the tips and tricks all the great you know content that we have and samples all in one place in a very organized and structured way it's really we are using it when we are you know onboarding a new developer to business Central and I know as uh BC grows and grows and we are on boarding the new generation of developers this is like an amazing resource to on board the junior developers and you always can also as a very senior developers provide feedback for us tips and trick because we really want to keep this like a world class 2024 resource of documentation for you so please keep that in mind and I there's one URL you want to remember that's the one akbc developer remember what all we are so I hope we can remember that great all right thank you very much Ida thank you please give Ida a round of applause thank you all right so um I think it was two takech days ago not the last one but the one before uh we you I had this uh this section called from the lab I know you uh you usually enjoy that section it's usually pretty popular and back then I showed I showed this this prototype we had where we you could record and replay um um scenarios in the in the browser right and um as always when I when I introduce that section of the keynote I always say it's you know I always come with a lot of disclaimers and say it's it's prototype maybe it's not going to make it to the product maybe we might ship it or we might not so I showed this thing two years ago uh um and uh never uh I had so much feedback around something thing I showed at at at the uh the from the lab section people were literally you when I attend conference like this one people were literally stopping me in a whole way asking me when are you going to ship the page scripting which is you know what we end up calling that feature so I'm you know I'm happy to announce that we finally we we shipped it uh in the 20 24 release Wave 1 as a preview so you have been asking for it and now now it's there uh and uh I'll um so I I'm going to do a quick demo of it uh show you some of the things it can do and some of the things I didn't show uh two years ago so let's switch to My Demo computer here and um um so H how does it work it's very simple uh you get you get to the page scripting by clicking on the on the Cog wheel menu and you have this new menu item here callede page scripting and uh as soon as I click new here here um I I'm automatically in recording mode you can see the uh the Red Dot is pulsing which means I'm I'm recording now and then I'm going to going to do I'm going to do a very uh simple uh recording so let's assume I want to test if the first customer in the customer list as the contact name Robert towns that's my scenario I want to test so I just go and and run that scenario I open the first customer here you can see on the left side here that the the steps I'm performing are getting recorded here and I have uh my contact name here and if I right click on the field uh you see the the the page scripting menu appears here and I can go and say validate that the current value is Rober town right and that's uh that's it uh so i' I've recorded basically a small a small test uh small scenario here so let me stop the recording get back to uh you you always need to uh you always need to go back to where you started otherwise the recording won't work and uh uh let's go ahead and run it so you can see here I get the I get a confirmation dialogue that's because uh by default um by default replaying is uh you need special you need to uh it's restricted through permission on on on production environment for good reason you can always record but for replaying you need to uh you need to have the right permission and that's simply to avoid you can imagine there could be some recording that could do some damage with with a data in the production environment so you need to uh you need to have the permission to do that so I'll just go ahead and um and confirm here and my scenario runs here and everything is green that mean it passes but let's say for example that somebody goes and modifies Robert to to Bob uh Bob T for example in my in in that particular customer here so if I rerun if I reun the scenario here you'll see see what happened um I get a failure uh because I was expecting Rober so that's you know that's very quickly how how you can uh go and and do um and do recordings and replaying and do test so I just want to prec be precise about what we want uh what we're targeting with this feature we our primary goal is to help and users and customers do the acceptance tests that's the that's the scenarios we're supporting uh feel free to use it uh in any you know creative way you you you you'll find useful uh but but we are primarily targeting um end customers and helping them doing their acceptance taste in an automated way so um I'll show you a couple of other things that are interesting in the in the page scripting um you can let's say let's say I record a scenario where I'm going to create a new customer uh so let's start from uh we can start from the customer list that's fine so let me open again the uh the page scripting here and I can go and create a new one uh so I I I'll just go ahead and create create a new customer here so it's recording go new [Music] okay and I just enter some name and that's it i' I've created a customer here right and you can see the new customer is created here so if I replay let me stop the recording now so let me just replay it and what's going to happen here simply is the same thing I'm going to create a new customer as you can see it has the same name that I typed in so there might be some uh there might be some uh some scenario when you do this recording where you want to have some uh some some new new names new strings you know you wanted some you know if I run it every time I will run it I will have a new customer with the same name right so if you notice here uh in that step that is that's where the uh I enter the name right so if I open the the property for that particular steps you can see the value I've typed here and you'll notice that uh right under this uh this field there is a link to the Power FX reference and that's because in that uh in that area you can enter any uh Power effect expression so power effect is a well documented language coming from the Power Platform and you can do really really Advanced thing you can use random numbers you can use dates you know things like that um so just to demo that I have prepared here a small power F expression and what it does it's that it actually generate a uh an eight character strings that's just a power effect expression that does that so just to demonstrate that you can enter you can have pretty complex Expressions here um and let me rerun the scenario now and you see what's happening is I create a new customer here with a random name of egg characters and if I run it once more I'll get as you expect yet another customer but with a different names okay so that's uh you know that's just to show you know you an example example how you can use complex Expressions there are tons of other feature I won't go through all of them look at the documentation there are you can do conditional branching you can you can add time uh timeout or or waiting steps uh if you need to communicate with outside BC uh I won't go through these um but you know look it up and in the doation there are tons of other things can do with that um I want to what I want to talk about a little more because it's more maybe uh interesting for you as developer is what you can do with the with the recording once you recorded it we can we can actually uh so you can share it here uh I can have I have a l a link here I can get in my clipboard and if you send that link through mail or or through teams uh and and somebody opens it they will get the full recording available which they can run on their environment another thing I can do is I can save the recording here and uh I get a warning because it might contain some some private private data uh but then you know uh I I can save it as a file and and the format which you we chose for that is is a yaml uh so let me uh let me show you a little bit what you can do with with this file um let me see I should have a another one here uh so this is this is how a recording would would look like uh actually I'll switch to the slides I'll show you on the slid I think it's it's easier to show it that way um so uh that's that's how recording look like in yaml um so you see there is some um there are some it's pretty simple uh there are some there's description of the recording a title uh and some some steps uh which corresponds to the steps you see in the in the UI uh but but one of the thing you can do in the Y that you cannot do in the UI you can add you can add parameters to your recording uh so uh it looks like this uh you can you have you can add a section where you give the parameter name uh in that example let's say I want to parameterize the name of the customer in my uh customer creation scenario so I just uh introduced that parameter section uh of type string and give it a value and then uh later in my recording in the in the steps where you input the value you can just refer to it by writing parameters. custom name uh so that's one of the cool thing you can do with with the Amo uh another thing which uh which you might be interested in in in playing with is is test Suites so you can if you have you know very very quickly when you start doing recording you'll figure out that you you re-record the same steps for for different scenarios for you need to create a customer at the beginning of a scenario so the interesting things uh with switch that you can create actually building blocks you can say have a um a block that create a customer which you sve in its own y file and then you can another block which validates the customer is in the list and so on and you combine these uh in a test Su like this you have different steps of typee include and what you do in this steps is that you refer to the yaml file where you do you have your your building blocks so that's uh that's that's some of the things I wanted to show that I didn't show last time on the P scripting so go and try it out um aka.ms slbc page scripting uh you'll find all the documentation about it uh and I'm sure you can find uh creative ways to um to use it so I talked about you know I said you know I had this we had from the last section two years ago and the last year and so it's tradition so we're going to have it this year as well and um and this time I'm uh you know I always uh always come again I always come with these disclaimers about you know uh the things I'm going to show they might or might not make it in the product but this time uh so I'm going to show you three things uh and the two first things I'm going to show I'm pretty sure they are going to make it in the product and the reason is that they are actually already in the preview build at least on the compiler side I'm not sure about the run time but uh you can already download the preview uh build and start playing with these things uh in Visual Studio code um so uh let's switch back to to My Demo computer here all right so I need my glasses otherwise that's going to be a lot more interesting okay um so let's start with uh this you know this uh there this keyword and by this I mean the this keyword uh so we um we introduced that a while ago uh and um there's been a lot of points on the on X with the dis and that so I'm not going to make more jokes about it I think all the jokes have been made uh but basically what is the disc keyword so the disc keyword is it represent the instant of the object of the object uh you are currently in in a specific procedure or you know in in the context of of the object so that's uh that's very practical because you can send yourself you send a handle to yourself to say another code unit or another object and um just to demonstrate how it can be used I'm going to code a small a small uh example here just to give you an idea what this can be used for uh so I'm you know let we have our own event mechanism in uh in in BC but let's say you want to create your own so there's this classic pattern of Notifier subscriber right where you have um subscribers that can register themselves a central place and you have a Notifier that can send messages to all the subscribers a very classic um pattern of you know subscriber Notifier so let's see how we can we can Implement that with the with using the disc keyword and how the this keyword can uh can come into play here so I'll start with the um an an interface uh the subscriber interface it looks very simple it just have one method uh called notify and then comes the uh Notifier itself so that's a single instance codeunit and uh what it does it uh so first it has a you can say here um it has a variable uh which is a list of subscriber interface so was the first thing I want to show you we now have the ability to have interfaces in lists uh that's that's also new and uh then the register meod that's what you know that's where the subscriber what the subscriber are going to call they're going to call uh and registers calling that methods and what it does is uh just adding you know the parameter it receives of subscriber to the list and finally the notify method just iterates through uh all the subscribers in the list and call notify on them so that's how the Notifier looks like then um then there is a the actual so implementation of a subscriber so that could look something like that so as you can see here implement the I subscriber interface and what it does is that in the initialization phase it's going to call the Notifier and register itself with this so that's where this becomes interesting it sends a reference to itself a handle to itself to the um the Notifier so that's just you know one example of the many things you can do with a this keyword there's plenty of other uh other application uh I'm sure I'm sure you you'll you'll find it useful so now let let me start that was the first thing I wanted to to demo uh it's been I think it's been a preview for for a little while now and I think some of you already trying uh uh playing with it now um the next thing I wanted to show um we we recently introduced um very recently actually I think a couple of weeks ago the ability to cast interface and uh extend multiple interface so what does that mean that means that you can have uh interfaces um for certain objects uh you can inherit from from different interfaces and we can you can um cast from one interface to the other let me let let me explain so it's going to be a little bit confusing uh but try to bear with me so let's have an interface called uh I do good stuff right and it has one procedure called do good stuff right then I have another interface called I do bad stuff yeah one method is called do bad stuff so far so good right now I have a third interface called I do B Stu and the first thing you notice here is that it extends I do good stuff and I do bad stuff and it also has its own methods called do both stuff right so what does that mean that means that when when I implement this interface I do both stuff I will have to implement all three methods I will have to implement do good stuff do bad stuff and do both stuff are you still with me okay right so uh so let's see our uh or that that looks like um I have a Cod unit here which implements I do both stuff and as I mentioned before you know it has all three methods here right so far so good so where does the casting comes into play here so you'll see here in that method I have three variables one of type I do both stuff one of type I do good stuff and one of type I do bad stuff and what I can do here here on the DU both I can um I can say do both equal this and we have the this keyboard again because obviously this uh this code unit is of type I do both of so that's perfectly legal but what I can also do I can do do good which is of type I do good stuff equals to this that's also a valid statement because the uh the interface I've implemented here this object is also of type I do good stuff and finally I can do do bad equals this as well so all three statement I valid because this particular code unit has all the three types uh it's compatible with all three types so there is a casting going on here uh are you still with me yeah all right good so uh here's another thing which uh which is a CO here uh let's uh let's do a little bit more coding on on uh on on this so I have a another Co need here and I have a method called uh a procedure here called do stuff and it takes a I do B off interface as a parameter and in turns it calls another method here called uh do stuff right and this method takes a I do good stuff interface and again here there's a casting going on because this uh parameter here is of type ID which is also of type ID so it's perfectly legal for me to call this method with uh with that uh that parameter and then but then while while I'm in that procedure uh I all I know is that I have a variable parameter of type I do good stuff but I don't know if uh it actually does also bad stuff so I can ask I can go do good is I do bad stuff so I can ask whether this type I receive this paramet I receive is also of type I do bad stuff and that is if that's the case I can go and cast this uh this variable to a I do best of type and I can finally call two bad stuff on it make sense okay I know it's a little bit confusing with do good do bad and and a lot of stuff but uh I hope that illustrates uh how you can do a casting so wait there's more I have a method here called do something else and it actually takes a variant right which is yet another type so that's also a legal thing I can go and a valid thing I can go and call with a do good parameter which is of of type I do good stuff here and I can go and and send it to a to method that that takes a a variant type and then again in in My Method I can I can ask whether this is a a type of do good and I can cast it to uh to I do good stuff type and call the do good stuff method on it so that's a little bit about interface casting and the is and S keywords uh and you'll see it's fine it has a lot of uh lot of application and it's bring you know these kind of features language feature are bringing Al even even closer to a a true objectoriented languages uh so I'm sure you'll find a lot of um of cool application for this so this was the the two first things I wanted to show that again are already in the preview bill so you know feel free to download the the preview bills and and start playing with this with this feature and the run time is going to be there very very soon uh now the last thing I'm going to show in the form the lab thing has to do with with a little bit of um co-pilot and LM I couldn't resist do something with that so um um our code base the base app um you know is good practice to um to write documentation uh and write code comments in your code and uh how many have you write code comments all the time two people thank you uh but uh yeah so I mean and and we we're the same ad Microsoft if we look if you look at our B app we we don't have a lot of good code comments in the code and I thought well that that could be interesting to maybe see if we can U if we can co-pilot to to help us with that and help documenting uh documenting our code base and um and I thought you know well we probably not the only one uh who have a code base which is not uh which is not well documented there must be other people who have that same problem so I did a little bit of research and I stumbl ac across this article uh where some researchers made some experiment with llms and what they did is that they um they they used llm to generate comments for for some code base and they actually compared it with a dedicated model AI model which were trained to generate comments and they found out that LMS with no special training were just as good as this uh specialized model to generate comments provided that uh you give them examples of code so that make me thinking I say okay that would be cool if we could have a um you know a code action in uh in in in Visual Studio code where you we could add comments to uh to our code base and just have DM just send uh you know generate a comment for us send the method so that's that's that's what I did that's what I'm going to demo now and I'll start by showing you the prompt uh you won't see it in the demo so because it's happening you know uh behind the scenes but this is basically the prompt that uh that get sense to the LM so you can see here you know it's it's setting the stage and and giving a lot of context so the elm gets a chance to do a good job so it says something like business Central is an enterprise resource planning product developed by Microsoft you are programmer expert in Al uh in in and you an experting things like Finance manufacturing and so forth and your task is to generate documentation and by the way you'll notice here in the prompt uh uh you know we ask the llm to generate an answer in Json as a suppos to uh you know I could have I could have asked to uh an answer directly in the XML comment format but what I found out is that it's not very stable when you do that you get sometimes it's formated properly sometime it's not um so this is a a very useful trick that a lot of people are are using when when you do things with llm you ask them to return uh in a in a format like Jon because lnms it turns out are pretty good at manipulating Jon and it's probably because they have seen a lot of it on the internet you know LMS are traditionally good at generating things that they have seen a lot of and they have seen a lot of Jon so um so that that's that's one advantage of this technique uh the other Advantage is that you can actually validate what you get uh in return so you have a structured answer and you can check whether it contains the thing you know to a certain extent you can validate what you get and if you don't get the right answer you can actually ask LM again uh and do a multi-turn kind of implementation uh and then you know what happens in that prom so you know uh that prompt also contains uh I don't show it here but it also contains a bunch of examples of uh comments and and code where the comments have been actually written by humans so good quality comments to give the LMS examples of how it should look like so let's let's see it in action uh let me go back to this uh procedure here as you can see it doesn't compile doesn't matter something I've C and paste from from our code base and so we have a you know we have a diagnostic diagnostic tool here that says you know you should be uh having uh XML Commons describing the purpose and use of vend methods uh so that's why we get the yellow squiggly and then the code action here uh one of them is generate XML common with co-pilot so let me just click on that and uh here we we go uh so it that comes from directly from from co-pilot and when when you look at it it's actually pretty good I've did I've done a little bit of experiment with that and try it with different methods and um it's actually a pretty good understanding what's going on it's creating a data sheet finalizes view entry Bas this so much so and so on and the procedure populates temporary Excel buffer so it's kind of you know kind of a good understanding of the code and you know we're still going to experiment with it and my plan is to get you know people in or developers in um at Microsoft you know on team to use that feature and and you know give us some feedback if they actually generate comments that have good quality and who knows we might we might ship that so that's just you know an example I think that you know uh I hope that can inspire you an example of you can use how you can use llms for um you know all sorts of things um all right that's what that's what I had in the in in in the from the lab section um so so this thing yeah but this is by the way is not shap right just to be clear so uh Before I Let You Go um I usually talk a little bit about the future in that last section of the keynote um and you'll see here this I usually have that slce and tradition um so these are the areas we are going to invest into the future as you can see there's a lot of um there's a lot of focus on AI obviously but there are also all sort of other things we are working on we keeping our service world class we're doing a lot of things like Geographic extension you know improving the integration with the Power Platform uh we do a lot on the fundamentals to increase performance and scalability and reliability so all these things are also going on we all we're not only working on AI uh and we're also doing a lot of things in um in the development area and development tools area um if we haven't if you haven't checked our our YouTube channel go there there's tons of uh great resources there akbc youube uh this we we publish all the videos from the BC lunch events where we uh where we show you know the new features in the product uh there's lots of tips and tricks some technical deep Dives so if you haven't um if you haven't checked it out check it out and I also use the opportunity to do a bit of advertisement for this new series we started which we call under the hood um so you know we have we have videos where we uh we we demo the the latest features in the product and then we have conference like this one where we talk about a lot about development but then I realized you know when when I attend conference like this one people would ask me you know people were curious about um how BC Works how it's you know how we build it so I you know I got questions about the internal architecture of it how the compiler works you know people were just curious about it so I thought maybe that would be interesting to do something kind of in between where we uh we talk about uh you know the inner workings of BC and what's going on under the hood um so the the format is a little bit different it's kind of a podcast format where I invite different speakers and different guests and we talk about all sorts of things we don't demo features but we talk about how how we we build BC we have one on one on AI we talk about how we build AI features and we have one on uh on the inworking of the compiler where Espen talks about you know how he build the compiler uh and together with with his team and um and the last one we just published recently is about how many users can BC handle in the cloud and we have a few ones we are producing very soon so check it out if you haven't seen it uh it's fun it's fun to do and uh I think it's probably fun to watch um and with that you know i' I'd like to thank you thank you again for being such a great Community thank you for you know helping us making this product a great success uh we're really really grateful for for what you're doing with business Central and before I let you go uh I want to roll this this video which something we done which is um kind of a vision of how the future could look like uh for business Central thank you very much enjoy the rest of the conference [Music] [Music] [Music] [Music] [Music] [Applause] [Music] [Music]