let's quickly look at how to migrate an existing process solution from kamuna 7 to common 8 and there's a lovely guide in the docs which you can follow and this tells you a lot around the surrounding like what are conceptual difference when you should you migrate how you basically do it today i want to want to go through that in a very practical way basically using an example and i do that using kind of the yeah the architecture we see most often so it might be uh slightly different depending on how you exactly set up your your process solution but this is a pretty common setup of commodore 7 so you use a spring boot application you add the spring boot starter so the workflow engine is started as part of your application alongside the bpmn model the code and so on so forth and you persist in a relational database right and if we migrate this we want to end up with a still a spring boot application but we no longer embed the engine itself but we embed the client the connection towards the engine and the engine is then a remote resource um in our case i'm using community sas so managed reflow engine in the cloud for me but the rest is the same i i still have my spring boot application i add the bpmn models there i add my code there and so on so forth right so we will look at how to get from here to there and we will use the migration tooling which is also mentioned here which is a community extension that you can find on github that basically consists out of two things one is the modeler plugin for the commander desktop modeler to convert the models and another one is an adapter library you can you can add to your project to reuse basically your java delegates and accommodate solution okay so let's let's simply do that i'm using this example here which you can also check out as soon as you do that you will have a small process application here with commodore 7 so that's the typical setup you basically have the spring boot starter you have your process models here the processes are probably not super um exciting but they contain a couple of different things like a java class a spring expression so that's a spring bean going to some method um it's calling a sub process which is then again using a delegate expression so this resolves to a spring bean that is the java delegate and then this gateway here has a condition which in commander seven is true java unified expression language and that's more or less it okay so that's a very simple process i'm sorry and i can start up this application which is again also pretty simple it simply kicks off a new process instance right after startup so we can see that it's working that's the whole idea so um let's kick that off typical camera 7 splash screen starting up web context all the web applications so that takes a little bit almost there and what it can do as soon as that's started up you can also go to the web application and to cockpit what's called now right now we started up we created a new uh process instance and this run through that three different service tasks like activities we've seen in the day diagram right so um hang on there's my process from now so this is the latest one which is the time i'm recording at the moment you see um these values um you could dive into the history and so on so forth okay it's just proving that this is working on communism okay let's stop this and let's migrate that to um community the first step what you can do is migrating the process model so if you go back to your modeler then you can install the plug-in that's um mentioned here so there's the desktop monitor plug-in you can install that to your um to your own modeler right as soon as you do that you have this nice little menu item here migration where you can say convert this model from commodore 7 to 8. so as soon as i do that it um first of all it adjusts my process model so um you can already see that here the one thing um yet that you still have to do is you have to reopen it in the modeler so you get the right property panels here that's a small smart glitch but not a big big deal here what it gives you additionally are some hints so for example java delay gates are that was async in commander seven and all service tasks are async by default and commander eight so this property is not yet not there anymore so it gives you a couple of those hints and so on so forth right so let's save this um close this and do the same thing for the sub process save it close it um now i can reopen them in the modeler there we go and we can see now you have the right properties panel here it and for the java delegate we had the um the java class before now we have a task definition of it's called the commodore 7 adapter here and you have header attributes which configure that further and this is where your class configuration went to right same for the expression language so it's a commodore 7 adapter and header attributes for the expression and the result variable right so these are a couple of things it did um it further also adjusts the expression language because commodore 8 uses field the friendly enough expression language you might know from dmn so the condition looks slightly different so it adjusted that on the fly and okay the sub process is more or less the same boring probably to also look into into all the details um one thing i one wanted to note here is that depending on what symbols what attributes what extensions you use in your commodore 7 models this plugin might only be kind of the starting point so it doesn't convert like 100 of all cases um it's hopefully a good start but what you can always do is you can extend that yourself so it's not too complicated actually so if you go into into the plugin itself for example and this is linked in the readme by the way so there's a direct link there are various functions that convert the different um activity types here different task types so a service task where you can see what's happening or the user task and so on and so forth and you can adjust that to your own needs if if you need to the second thing i wanted to point you to is that there's also the duel to fuel converter which is at the moment relatively simple so it can do let's say basic basic conversions and the test case is a good good starting point for understanding that depending on what you do in your expressions it might be a good idea to also extend this to your needs okay right so that's kind of the first step here we migrated the models the next thing we want to do is um we want to use the um basically replace commander 7 with commodore 8 here in the dependencies and then use the adapter code and first thing is you can use that commoner 7 adapter as a dependency i'm removing the commander 7 dependency here we can keep the the bomb actually to to make sure to use the right versions but i'm removing the starter i can remove the database as well because i don't need a database connection anymore [Music] so let's do this um i need to catch that from maybe central and that should already um giving me a good start let's make sure this is it's already fetched okay that looks so good so that's the one change you um you might want to want to make if you look at maven in this case you get a couple of dependencies by the adapter which is also the spring cb starter which is now kind of the recline library which is started up and configured automatically okay so that is it then i have to adjust my application so it's still a spring boot application but what you can see here is um i need to import the adapter i want to enable my cv client to connect to um commodore cloud and i might want to deploy my models on the fly so this is kind of a good starting point so let's let's import those and this one as well can you adjust the readme i do that after the recording so i just have to copy that and this is more or less it now deploys that on startup we don't have don't want to get the process engine anymore because that's the commodore 7 api but we want to have a cb client right that's the api towards the community workflow engine and and with that client um the api is slightly different so we can still start a new process instance it's called new create instance command so we want to create a new process instance then we can provide a couple of things like the bpmn process id that's kind of this thing we had earlier on as well and we might want to pass on some okay we use the latest version that makes a lot of sense and we pass on the variables which is a map which is kind of the same what you could do in command s7 and then we can send that command to the workflow engine and we want to block until it's done but it's a different discussion if that's a good idea or not okay so um that's code that should already work oh no idea what this is still rap but um jelly j is not always my best friend personally so um that should actually work um the one thing um what we need now is the reference to the workflow engine and what i said earlier on i use commode sas so i have a workflow engine already created in the cloud earlier on what i need to connect to it is api credentials so um let's create some credentials so that's for my spring boot app and then basically um i have to adjust them here we're still working on making this a little bit easier at the moment um the best is to go to um the spring cb project just to remind you that's the one you also saw on the maven dependencies the spring cv starter here and there you have configuration of how to connect to various um different engines so i'm using zazz here i don't need the data source anymore i don't need the commander properties anymore but i just need to connect to my cluster and now i copy the cluster id here which is the first part i'm copying the client id and the clan secret and the region is pressed to that works saving that and now running your application it still has an issue with the spring here let's quickly check if what's sometimes also a good idea is to all right i excluded spring i excluded spring here because why did i do that because um very often you might already have your own spring dependency and you don't want to end up with conflicting versions but in order to make it run seamlessly here without now looking into that i can simply use the spring dependency which is provided here and this should actually resolve my problem so let's go i'm pretty sure you know what i'm talking about if you're if you use the embedded engine with common sense you're kind of familiar with um dependency management and spring and how that all fits together i guess so right so what i did it started up that's already a good sign um it already created new process instance and what you can see and that's probably also the important part you already see that the java delegate here for example is called and just to to prove that we can probably do something like this so we are sure this is live that's almost as unique as the uuid so let's restart the application it again connects to my cluster it kicks off a new process instance as soon as that started up and you can see my nice little bean is called here right the last thing i can probably quickly show you is that you can also see that here in operate for example that's kind of the pond onto cockpit in commander seven so that's the operations tooling where i can look into what's currently going on i have my two process instances which which is not a surprise or waiting here like in commodore 7 i have the two instances which i kicked off i can look into those get all the data i get all the history what happened here so as you can see it's it's simply running as it should and then you have but i don't want to want to brag about the cool stuff in community but i always love clicking this because um now you have the whole platform as you just pulled because it's simply it's simply there it's just provided sounds for you so you could for example immediately um also looking to optimize in order to to get a business intelligence understanding of your process for example but um that's it so i migrated um one process solution in spring boot from commodore 7 to commodore 8 and i hope that gave you an idea what's the general steps if there are any more questions there is much much more information also in that migration guide and if you had any any problems any questions um always head over to the forum from comunio and ask anything that's up on your mind thanks for watching today see you around