Transcript for:
Comprehensive Overview of SAP CPI

I'll just continue with the present PPT and just explain about the background and all the theory about CPI for today maybe I'll take for one hour or something like that and from tomorrow we'll just get into the uh practical sessions done yeah to start with like we have already discussed about what is CPA and what are the advantages so do you want to go through it again or can I start it directly from yes I think let's start from the scratch only because uh that was just a demo class and uh we were not actually uh into that uh kind of situation we are actually just uh reviewing contents and all yeah got it see basically like uh if you see like the sap CPI is nothing but it's a Sap's middleware technology it's an sap integration tool so before going to sap CPI so if I want to tell about the mean how this sap has evolved so I can tell you like if you would be aware like about heard about sap XI you can see my notepad right yeah yeah yeah you have heard about sap XI nothing but sap exchange infrastructure yes this was way back uh like almost like 20 years back 15 20 years years back okay correct this was the Sap's on premise middleware tool on premise is nothing but we install a software in our local machine be it a laptop or a desktop and then we were using it it was called sap XI 3.0 okay so 20 years back and later I mean over the years they develop the versions called SCP pii which is the most commonly used terminology now so if you meet with people who are having some most like 20 25 years of experience people sometimes call it as XI also okay and over the years scpi came into picture which is called process integration okay the versions was scor with 7.1 okay so here PA 7.1 was built on both ABAB stack and S and Java stack okay there were two stacks and two verions involved so just like an ECC system we were having all this T everything we used to monitor sorry you would be about this sxmb Mony sq1 sq2 all these things monitoring everything used to be there in this sa Pi version it was having both the versions right then back then like all the abers used to also work in PA and PA used to work in a since it was having both the things so 7.2 was not having major vers and 7.3 was not having much major changes and very major changes happened in sap 7.4 okay which is called sap poo they change the name and made into process orchestration in 7.4 version what they did they removed completely the abap stack and they built the complete Pi into Java stack okay from here on people used to call earlier it was sap XI this one and later people started calling it as sap pii and then people started calling now as sap P you heard about yes coming they made it as shortly as sap P ideally this sap poo they made it as sap po PPO okay and now in the market we have the lat I mean last version as sap 7.5 that is also on single stack only okay so what happened since all the market is moving to the cloud and sap also thought like okay we should also have some middleware technology which is which will be running on cloud and that is where they failed in parallel to relas reling this sap 7.4 they also released a cloud version Cloud middleware tool okay this all these are in on premise so now coming to the cloud so when running with the 7.4 version and way back like six seven years back they released a cloud middleware tool called sap HCI okay the full form is Han cloud integration so the first form of mean the name will be like sa HCI okay and over the years so they like around four years back over in the sap teet they named sap HCI to sap CPI just for Branding purpose nothing else just to bring the cloud platform integration for better branding purpose they made this naming change okay okay so now some people call it as saci some people call it sap CPI okay sap is very fond of s changing names very often and recently an Year back they even change the CPI name also they didn't even keep it as constant they change the name again as sapci which is nothing but integration but people are most commonly used to this name even I am used to this name as using at CPI but it is no more CPI it is just CI okay so in in btb platform also it's sap CI in that case yes exactly so on the background it's a CPI only but the naming con convention used is CI yeah Cloud integration okay some people call it as HC some people call it most of the people 90% of the people call it as CPI and uh the people who learn now they'll be used to this word called CI Cloud integration got it okay so if you remember here I'm not using any version because it's a cloud mean this complete CS PSA everything is built on cloud so there is no versions involved here me versions are there but we are not bothered about that okay because everything happens in the back end I'll tell you about the advantages and disadvantages okay MH so this is about the evaluation of like how CPA came into picture how CI came into the picture got it okay it's a complete Evolution yes so now why CPI is getting this much boom or why it has become a hot skill okay the first thing when we discuss is end of the day it's business for sap so what they did for the last 20 years so all the what is say the big companies or all the customers who has you used this sapci for their business okay so now they declared that they not going to release any other versions after the 7.5 okay this was almost like four five years back 3 four years back itself they declared at 7.5 that will be the last version and there will not there will not be any new releases for this sap PPO and couple of years back they they also declared that end of this decade like maybe like 2030 or 2029 something like that they will stop supporting sap pip completely okay so here one thing is let us thing you go to a x company and work in an X Project people will be still working in sap pipo Pi this one they will not be upgrading to 7.4 or 7.5 still sap will be supporting this du stack if you go to some other company they'll be working on 7.4 if you go to some very big client so mean who is a good enough to invest money in the Technologies they'll be working on 7.5 means like each time they upgrade I mean a new version comes into the market they need to upgrade their tool they need to upgrade their Integrations everything you're getting right yes so that is the biggest disadvantage while using this sap is there is there any mandate from sap given to the customers like you have to shift to this CI kind of thing uh by this it's not mandate they said like there will be stop supporting it okay support not be there yeah they already they have declared that no versions there is no 7.6 version and they also declared like okay very sooner or later they'll be all this they'll be bringing down this scvp IO okay so there won't be any extended Support also support will be there I'm telling like sooner or later all the companies who are using this sa pipo they need to move to the other alternatives so now why they have created that so the first alternative will be to use the CPI since it is Sap's middle way and that is why we have a huge demand for migration projects in the market okay or like all the sa Integrations everything whatever they're doing they want see it's like they will be extend they'll be doing it but end of the day they want the customers to move from Pabo to CPN got it okay and one disadvantage while using PPO and one bigger advantage while CPI is so when we I worked on PPO also almost like for close to five years well we are working on sap pipo like it is our completely our responsibility for the maintenance of the system means every alternate I mean once in a month over a weekend we used to sit and cleaning up the system maintaining of all the servers everything the basis Team all the people used to say doing the clean up everything we used to do it you call itain activ everything of the okay so that that activity is not required in CPI that activity is completely managed in CPI so it is just like you subscribe to some service you use it so that means if there is any staging area created in in that middleware for sap PPO till 7.5 so there is an additional activity involved with the team to clean all those uh you can say backlogs or whatever it is yes obviously like to maintaining the heal check of the system anywh every time in month once you need to do all this activity it's extra Buton got it so when now when you go with CPI all these things got vanished no maintenance no nothing is there you subscribe to the service and you use it and the one more biggest Advantage is like I said if you go for different company different projects they'll be working in different different versions here but when you go with CPI you go to any company any project across the globe they'll be working on the updated version only why because sap updates the tenant in the back end without any downtime you'll not have any downtime all the Futures just like how your WhatsApp will upgrade or book app will get upgraded similarly CPA will also get upgraded without mean our involvement close your laptop today I mean you finish off work today and tomorrow morning by the time you log in you'll be seeing new Futures in your CPA ten so that is the biggest Advantage where the client is getting convinced mean they will be working on the updated version it any new future it will directly reach to the customer it's not like okay now newer version Has Come Again everybody needs to upgrade to that it's nothing like that your integration will not be affected all the Futures will come it's up to you whether to use it or not to use it and there will be zero maintenance and that is where all this basis work got reduced drastically okay earlier if you go to a project there will be like 50 people 50 basis people and maybe 10 integration people now what happen all the 50 basis people work came to the maybe 10 people all the work sa pull from them it right so this is about the mean just basic advantages about CPI or PPO and to tell you PPO is a finished product we it's like or the 20 years like they have released lot of verchant but CPI is still in growing stage mean over the months over the each releases they're giving new Futures end of the day it's business they will not release all the Futures in one go they will release step by step only it's still in a buring phase it's just like growing product it's not a finished product we have yes yes we have limitations when compared to Papo and even sap is aware on that but but still they will release step by step only they will not do all in one go or one shot okay this is about like what is BPO and what is CPI and why the importance of CPI is coming to picture it's like they created the importance people would have worked both on P1 CPI but unless until there is an external push or external mean push from the sap side the clients will not put the budget and move to CPR so that is why they're pushing the clients slowly yeah okay so now let's go this this kind of strategy actually sap uhp has this strategy only each every time kind of product yeah see they want see they want money they want to make business money that's it exactly so if people are subscribed to 7.1 version and they're working let us think some okay you go to some healthcare industry Johnson and Johnson for an example I'm telling they're working in 7.1 okay fine they're subscribing they're using it even though Market is having fast other Advanced Futures also they'll be working in 7.1 RMC so but what they'll think okay let's move bring them from to the CPA they will declare okay we are not going to support you then forcibly they'll come to CPN they'll get lot of business inste of going to some other middleware tool they'll come to the sap middleware tool only which is nothing but CPA s and that is first thing and second thing as you know when as CPA came into picture SCP also acquired this success factors right so CPA and success factor is just like integration is easier when you want to connect to success factors when you want to do integration success factors CP is best middle way to inter integrate with success factors okay because Su is also one I mean one of the biggest Advantage where it has increased the CPA importance we we are having right now SCP ECC and we are transitioning to S4 Hana so most probably by July or August we will be live with S4 Hana and we have also taken the btp uh along with that it's a rise with sap on private Cloud okay right now in ECC we we have lots of uh Z developments and Integrations cross third party Integrations also available in that the platform but we are we haven't used any kind of pio or XI or any kind of middleware platform for the integration we are just using the abap interface for the integration so now going forward we are looking for CPI as an integration middleware for esort H okay you'll be having lot of Advantage once you explore that you'll be having a lot of advantage using CK okay but they have given see when they want to make business when they want to make money they need to make client roles in day-to-day life comfortable they're giving lot of advantages over P like at the end of the day we want to connect to Cloud systems like if you you aware about o adapter which was not there in ECC days it is there in S4 any compliance related issues are also there with the SCP for this kind of Integrations if we go with directly a or CPI complaints in the sense any kind of uh licensing impact so CPA they have different license different license for Success factors and different license for they have two different this one price bands like one is for fixed band so they give the service like irrespective of the message flow you'll be charged you can process anything or if you want to use only for few Integrations that'll be like number of messages processed on the integration like it will be number of message consumed or the fixed budget fixed price just just a minute C current just a minute yeah e sorry please continue yeah that's it and let me start with this slide can you please make it full screen yeah yeah I'm just checking wait to start not go to the architecture all just a minute and are you aware about btp or hello see I I have an idea of btp okay see again same thing just like how sap PPO evolved just like how CPI evolved the same thing btp also got evolved earlier it was called sap Cloud platform and then yeah they made it as SCP I think right sap Cloud platform and then they made it as sap btp business technology platform like bringing all the Sap's Cloud Technologies into one place yeah it's a kind of actually sap teal landscape it's a kind of Marketplace from sap where you can uh you can access all the components Under One Roof that's my understanding yeah same exact exactly same you're right like bringing all the cloud Technologies into one one one place all the just like just like AWS or a your you can say it's a completely a cloud platform from sap yeah same exactly we both are on the same page same thing so under btp we have this integration suit they created a separate this suit for integration is nothing called Nothing But sap integration suit you can see here can just follow the cursor under btp we have this sap integration suit all this extension suit will be with the Developers for ufp these people those people will do here Focus will be on sap integration suit under this integration suit we have it here okay under integration suit we have this open connectors Cloud integration all these things what is open gr is I'll tell you briefly today itself okay so this is where we'll be working Cloud integration okay we'll be having APA business we'll be having AP sorry API management we'll be having open connectors Cloud integration all together is called sap integration suit so we are going to cover all these components of integration suit yeah major Focus will be on cloud integration and fundamentals on management and open connect so you will you will give an overview on all these components like API Management Open connectors but we will go in deep for the CI part only yes exactly okay done so and what is open connectors before going to open connectors so in CI itself what sap has did so as part of automation for all the standard sap applications be it S4 be it coner be it success factors all these systems they have made a predefined Integrations available to the customer you would have observed in the demo I would have shown on that day so whatever the Integrations or mean for an example an X client has developed a complex integration and the same integration has developed by white client and then the successive Cent they're using they're developing same integration so those integration what sap has did they developed as as a template and kept it ready made available to us okay and this they they put it in a pack name called package packages is nothing but a folder mean just like segregation okay for success factor integration they'll release okay 10 Integrations over the time maybe they'll increase it to 12 and then 14 so this keep on increases as of now we have some almost like 590 plus packages available so the advantage of the to the customer to the client to the customers which sap is giving is instead of starting from the scratch you can just go and see whether you have the standard packages available if it is available you can directly configure and use it kind of automation kind of thing if in case yes yeah yeah I'm actually I think you are going to cover that part uh in case if there is no standard package available then what what so then we do custom Integrations that's what we have custom integration standard Integrations one is if it's exactly 100% same you configure and use it if it is not matched you do a custom integration if it is partially matched you'll take it as a reference and you start working it instead starting from zero you'll be starting from 30% and 40% somewhere okay so that is called standard Integrations and custom Integrations which we do it in Cloud integration so now the question will be like so now what about the nonsp systems so I want to connect to nonp systems like I want to connect to Adobe I want to connect to Google Cloud I want to connect to Gmail I want to connect to other Cloud applications so for those what sap has did sap has come up with a concept called open connectors that is where if you see here open connectors so for all the non standard non sap applications sap has come up a topic called open connectors so instead of developing from the SC they have set up a partial connectivity to those applications okay okay again you need to set up the connectivity that is a secondary that anyway you need to do but again instead of doing all mean instead of doing all these 100 steps they have did at least some 30 40% steps they have did it and kept it rant for us if you want to connect a popular Cloud application which is available in the market let as example some new application has come now like chat GPT has come now still it's is not at come now in open connectors it might come in the near F near future they'll just release a new future date you can directly use that similar okay so standard packages I said that will be also be added time to time on a periodic basis like whenever a new future is coming it will be updated periodically same applicabl to open connectors also even that also will be keep on it like if you see it like tomorrow if I show the tenant if the count is for an example the count is 150 by the time our training gets completed the count will be something like 154 or 155 something like that it keeps on increasing okay and now coming to the connectivity the first thing is okay people might be in an assumption like okay sap CPI is a cloud so both the sender and Target should be the cloud it's not mandatory like both the sender and Target will should be on the cloud only CPI can connect to a cloud system as well as a on Premier system also CPA can connect to an sap application and CPA can connect to a non sap application also that is where you're seeing it here non sap application and sap applications also so we can connect to any application be it sap or be it nonsp we can connect to any application be it a cloud or be it a on system it is not mandatory like anything you can go with anything it okay there is no like that okay yeah uh uh one question uh Karen let's say we don't have any open Conor we have one non sap application for integration and we don't have any open Conor available for that so in that case also we have to go with the custom packages yeah we go with custom packages and we discuss with the respective system like which way they are comfortable in accepting the data let we want to post the data to that nonsp application so we will discuss with them whether they will expose an API or whether they'll expose a bftp server or will they export any other service based on that we get we get initially at the project initial discussion phase we just discuss we get the inputs and then we give our options like what are the ways where CPA can connect and when we come to a conclusion and if if that particular partner of any third party application uh is ready to provide us the connector for that so uh can we deploy that connector also in the we can we can create our our open connectors also for that thing so if we are able to do that in this platform uh do we need do we need any kind of uh you can say sap certified connectors like any kind of sap certification for those connectors from the partner or it will be open for everyone it will be open for everyone but again as I said you right reason is so they charge separately for cloud integration they charge separately for open connectors okay and that is why most of the people will not up for open connectors unless until they have a major requirement to connect to nonsp uh third party applications why because they they'll connect in Cloud integration itself they can directly do it from cloud integration also done okay now coming to that like how to connect to the onter system and Cloud applications okay if you see here the concept I'll tell you very clear concept so cloud and on premise so cloud is nothing but a public so where everybody can access and on premise is nothing but our private which will be there in our local machine okay so now just deviating from the topic so for an example we download something from in the internet the first thing we do is we do a virus antivirus check we do a download a movie we download a song we download file we check for any virus okay why because it is coming from a public platform to our private private Network so by the same thing when we upload something to the internet we don't do anything we directly upload to the internet just like that the same concept appli is applicable here also so when the data is Flowing from an on premise to Cloud nothing is required so no extra level of check is required but the same concept but the same the other way like when the data is Flowing from the cloud to the on promise system there is an extra level of security is required which is called Cloud okay you're getting yes so when the data flow from the cloud to the on premise so on premise system is not mean no on they want will not accept to expose directly their system to the cloud due to security reasons and that is why the cloud connector will be established in btp cockpit so on premise will be this configuration out of the on premise configuration the host name Etc will be there in the cloud connector and from the cloud connector only cloud system cloud system in the sense CPI here CPI will be connected only when the data is Flowing from Cloud to on premise if it is other way nothing is required opposite way like on promise to Cloud nothing is required concept is simple only when the data flows from public to private security is required from private to public no security is required done done right yeah so now the same concept I have said you just now like sap CPI sender and the receiver sender can be sap system non sap system on prary system or a cloud system the same applicabl for receiver also on prary system and a cloud system okay it can be any permutations and combinations it need not mandatory like okay sender is a system so receiver should also be in a system nothing like that and the same thing okay sender you're connecting to a file file server okay then it's not mandatory like okay receiver also I should go with the file server nothing like that you connect with connect with something no restrictions okay okay and here I want to tell you one more Advantage about CPI so when we were working in P days so the data of whatever the data which we are dealing with P days mean when the data needs to process through CPI so it was mandatory that the data should be there in a XML format only it never accepted the data in any other format okay so the data whichever pass through PPO should be there in XML format only but when it comes to CPI so they remove that future data can be in any format it can be in XML format CSV format you can just type some random text and send it CPI will accept the data okay that is also a major advantage so the data format they have removed that limitation in CPI here there the only source of data uh transitioning is through XML envelop only no in PP what is only in PPO yes earlier the data transition was should be there in XML only like source and send for CPI it's open open with any any any data any format so you can tell to Sender okay you send me data in any prop any proper standard format I will accept it we have the converter in CPI we convert it okay okay yeah so now this is the CPI on premise to Cloud integration ECC s p the connector which I was telling you when you want to connect to CPI we use the connector in between enter Cloud integration okay okay so uh just tell me one thing uh see uh yeah on this uh on this uh architecture uh if if we want to connect our ECC to CPI okay so we need a connector got it yes mean like uh when you when the data is getting posted from ECC to CPI nothing is required but when CPI fetches something from ECC character is requir okay you play something in ECC and CPA comes and pick it up then a c is Reed means from cloud some request is coming then ECC will not allow some request directly coming from Cloud to uh uh Karen our ECC right now is on heck it's Han Enterprise Cloud it's not on PR if it is cloud nothing is required you can directly connect then then it's not required now it's not required you can directly connect to CL see Cloud to Cloud no restriction nothing it's like the bypass nothing you can directly connect okay yeah and here the one which I was explaining you so this will be a basic screen the Discover design and monitor three simple tabs the first step you'll be having all the pre uh prepackaged content the one which I was telling you right automation kind of thing so for all the standard systems so standard requirements sa will be keep on releasing it at the time of this PPD presented it was 231 now the count is something close to 600 or something so that will be keep on increasing so every common requirement common systems they'll be releasing so these things without our knowledge we not be even informed so that will be updated in the back end and we takes care of this completely the same thing with design all the custom this will be our red and butter of the day-to-day life so this will be the the place where we design the Integrations develop all the things we do it in the design tab okay you can see here discover is a place prepackage content design is a place where we do this design test and deployment and monitor is a place where we monitor this messages flown through this API three can fourth step is not not that important the three steps will be completely important first three all the prepackage content in the Discover bread and butter the design all the custom development like day-to-day developments will be done in the design Tab and the final one whatever the development has done and any messages which has process through CPI you can go and check it in the monitor tab okay can you go back to can you go back again to that slide so a no no that settings settings design discover yes so in settings uh it's mentioned that all the tent settings done here so tenant means uh whatever any kind of uh uh sap or non sap applications we are going to integrate with them with the platform see all those settings everything will be done in the btp cockpit level not any settings St in the btp the btp platform people call it as cockpit okay do not get confused they call it as btp cockpit like giving the users restricting the roles creating destinations This Cloud connectors all these things you do it in cockpit level in the settings only the transport mechanism we do it here like you know like we do development in one one landscape and testing sat uat production right you'll be having four different accounts so to move from one system to other system so those settings we do it in the settings St okay okay so movement of our development from one environment to the other okay so basically we'll be having four environments development sat or test environment uat or prepro and then production depending on the budget of the client they go with four or three or sometimes two okay okay and here see from btp we have integration suit in the integration suit we'll go with CPI CPI or CI inside the CI we create a package package is nothing but I again said you nothing but a folder or similar Integrations we create a folder and under that folder fer we create an i flow I flow is nothing but I'm just telling the technal terminologies integration flow in short we call it as iflow okay I flow is nothing but integration flow because shortly we'll be me going forward also we'll be I'll be speaking it as I flow okay integration flows integration flow nothing but an end to end flow if you see here this is nothing but an integration flow right from the cender to CPI to the receiver so one complete message flow from the sender till the receiver this complete process we call it as an one integration flow a message from the CER till the receiver will be call it normal Layman language we call it as one message flow and technically we'll be calling it as one integration or one I flow okay okay and in CPI all the standard options we call it as pallets p a l l e TS P yeah pallets that is a technical term which sa has mean they announced so the what are the standard options see CPI is more of like we want to use less coding so as a CPI person now what is happening in CPI nowadays people are coming from different different modules some people are coming from java background basis background different different backgrounds so when you're working on CPI the first our task is to go with standard integration if it is available if it is not available then you go and create a custom integration if you're doing a custom integration the first objective is to use the standard options available it's not like okay you have some 10 years of experience in a Java background you are very good in Java as soon as you get an integration you write a 200 lines of code the requirement is done you deploy to production it will work but that is not recommended so you need to use the standard options in CPI only when see we have the coding we have the grovy scripting only when this the requirement is little tricky and we don't have any standard options available for that then only we go for coding but coding is a last preference got it because now just give me a moment just give me a moment better yeah yes Ken yeah I was telling you right we need to the coding should be the less preference so that is recommended by also okay okay so one more thing I need to tell you here is so back then the Pao days we used to have a predefined pipeline steps so any integration we used to have a predefined steps everybody needs to follow those predefined steps like uh you don't need to worry about this like create a data type message type service interface message mapping operation mapping uh INB processing posting to the client like there was a pipeline steps predefined by sap everybody needs to follow to develop an integration when it came to CPI there is no predefined steps anybody can do like we got a requirement you may do the requirement in one way I may do the requirement in another way just like the code coding so everybody does in a different way but the ultimate uh the better way to use is everybody should use minimum number of pilot options that is first thing and minimum minimal coding okay because we have seen in day-to-day life people who are cross killing from the coding technology like from Java or something who's coming to CPI okay they give the requirement okay from the sender you're getting this message to the receiver you need to transform and send like this they write some single code and then they finish the requirement that will be that requirement will be made integration will work but when it goes to the bi to the support stage if some error happens it will be to track unlike the pilot options which sap has given okay okay even when you contact sap also the suggestion from sap will be to use less minimum mean minimum liit of amount of pallet options at the same time you to use the less coding you you need to use the coding but only when it is required not every time because they'll not be aware of pilot options even though they're aware of pilot option they feel like okay I'm not going to use pilot option I'll write a code and finish it that is not recommended even though it meets the requirement it is not recommended in the long run good okay because even this pilot option they're giving pilot option for each and every require mean whatever is possible they're giving it all the pilot options okay these are all whatever you are seeing here sender is a pilot option receiver is a pilot option all these integration process for error handling everything they have given in the standard pilot options I'm just showing you on a high level so everything if you see this is the standard integration from the sender sender has been cut here sender it's coming through a SFTP server going to the end message from here it going to the receiver these are all the pallet options there so you need to make you you need to just make it like you'll be hearing about low code no code right similarly in CPA also recommends to use the coding in a lesser okay so all these are P options like for starting the message ending the message so different different things they have used it here okay I mean when the time comes I mean I want to show this all these things practically so each and every pallet option will be covered as part of our curriculum you okay each and everything yeah actually that that will that will help a lot I will cover practically and every pet option so so by tomorrow's class I will get the tenant ready somehow and then I will we will start with one ey flow and you I'll be explaining from the time to time okay okay one more option here in CPI is instead of I say in between if you remember I said like instead of sender posting the message to CPI we can also go and get the message from sender means we can initiate the flow in CPI using the timer okay okay you place a files in some SFTP server or let us think you are doing the S4 you said right you have developed a data service you developed all this tables everything you kept the data scheding basically yeah I can schedule the integration I will come to the your for system I will get the data whatever is required for me it means like I will look into your system I will select the fields I'll get the data and then I'll post to the actual receiver system I can schedu it oh it need like okay sender should always push the message CPA instead of sender instead of pushing CPA will come and pull the message from sender got it we can schedule the Integrations from CPI also right from starting from 1 second till 12 hours we have this 1 second 10 seconds 1 minute 10 minut 5 minutes 10 minutes 1 Hour 2 hours yes we have lot of intervals okay and time zone is across the glob sh and these are all the I was telling you about the pilot options right so these are all the pilot options available like content modifier converters decoders extractors encoders filters since because when we are convincing to the client okay this a cloud everything we're dealing in the cloud so the first task the first thing question comes from the client is data security when we are dealing with Cloud okay everything is there okay there is it's everything ACC going to Cloud might data is completely uh sensitive data I'm going to send so how are you going to do these security levels we have encoders decoders encryptions different level of authentications we have many more like that so data will be secure just from the client perspective I'm telling we have all the options available within CPI everything all all pilot options you can see everything is by Pilot option and I was telling you about the converters right we can convert from whatever the format they're sending we can convert from one format to the other format these are also standard options only you use the converter you configure the tool the message will be converted automatically okay that is what I was telling you okay some people okay there is a CSV message you want to convert into XML format people write coding they write a code which converts from CSV to XML we may not worry on on that we just want to use the pallet option and just need to be aware how to configure this so the conversion will happen in the back end we don't need to worry on that all the coding got it okay yes and all these are options very mean the options this I'm showing you which all will be covered in the complete CL okay we have a very big thing and the same with adapters also we have vast number of adapters but as part of the training we'll come we'll try to cover as much as possible practically first at least theoretically sure like HTTP mail o uh what are this process direct JMS these adapters will try to cover practically success factors all this will try toover practically so whatever is not possible I'll give a at least lens so why and what is used adapter also like you said like I said like the standard packages open connectors even adapter adapter is nothing but it is which is used to connect to the external system be a sender or receiver so now I'm communicating to you in English so English is the mode of communication and connected through teams so teams is the medium of communication mode of communication I'm communting communicating to you in English so similarly from CPA if you want to connect to a sender or receiver you want to have some way to pass the message it can be a HTTP it can be a SFTP it can be a o data just like that okay that is the adapter over the adapter you'll find the data like it can be in XML format it can be in a CSV format it can be in a normal text form anything basically depends on the protocol which you are using exactly it's not like okay CP will Monopoly decide which adapter we will use it's always a mutual understanding between the two systems correct so if we yeah please please con yourself see it's not like some people will be see now the recommended adapter to connect to S4 and system is O data it's not like okay I'm not comfortable with o data I'm comfortable with RFC or proxy I'll be using this yes it's nothing like that so whatever is updated in the market we need to use it okay done so saying like uh let's say uh if you're going to connect with any kind of third party systems earlier we used to Whit list our IPS and uh make a communication CH between the third party application and the SCP application server so that that will be shifted to the CPI now yeah it is there let us think you want to connect to SFTP server normally you connect with if they give the host name and credentials you can connect it but let us think SFTP server it's having extra level of security and they not allowing us to post the place post the files or pick the files so then our CPI address needs to be shared to them and it should be white listed then only the the handshake will happen all those see the whatever how the software industry works so the IT industry work that concept is same only the two Basics Basics are the same only if you take P CP except message mapping they changed everything but the concept is okay got Ito guys they need to learn CPA completely but even the concept is same they changed everything the way of working the way of tools everything they changed and of the concept is same connecting getting the data from sender posting to receiver doing the transformation in between this concept is there okay but the way of working out of 100% they changed it 90% they changed it the implementation technique is technique is changed the protocols are the the the prerequisites and whatever the artifacts is required that is all same yeah exactly and for GR for grov scripting we need a basic knowledge of any coding is fine coding language be Java BC C++ at least a basic understanding of coding is fine you don't you know you not need be a pro in Java at least if you can understand what is what that is fine that is more than enough it supports almost all types of languages yeah no we will be since CPI is built on Apache camel framework so that is why we use groovy scripting in CPI even though we have javascripting and grovy scripting both options available in CPI but almost have never seen people using javascripting we go with grovy scripting so grovy scripting it's like that language is more or less similar to Java I said you that will be the last percentage only 10% will be involved in your day-to-day life yeah every day you do your you you do the coding it will be like once in a while when your requirement is not met you use it okay and can we IDE Python scripts also in this no we do not have that option okay see the the what do you call the function and code you can just take it the logic you can take it but you need to align according to the groupy scripting see yesterday I said you right the btp cockpit the integration to so this will be our main main screen this tab I also shown you like the Discover design and the monitor right we just discussed in the theoretical way like what will be the Discover Tab and what is about the design and what is about the monitoring to be in precise standard packages in discover tab design tab we do the designing and here we do the M okay so all the other new tabs there are new tabs like uh if you remember yesterday I said you in the integration suit we have other topics also so whatc has did so they are also combining everything into one screen so that is why we're getting lot of options here so as of now you can ignore this at the end of the training you'll come to know what are these options okay for now just only focus on only the Discover design and the monitor okay got it so now here let's go to the design tab first see this is the home screen this will be a home screen the integration suit so inside that I'm just going to the Discover tab where we have the standard Integrations let me show you share I'll just show you what is standard integration how how does it look like so here if you see in the Discover tab so these are the standard Integrations I said you WR 590 plus so we have as of now we have 596 packages okay till date so here if you see these are all the packages packages is nothing but a folder inside this folder we'll be having the Integrations of similar functionality okay or similar systems I'm going to say so for an example you can see here when it has published also we can see these all packages are published one day before two days before likewise we have almost 596 packages which has been delivered till date this will be keep on updating from time to time so if you want to check for an example I want to check some sap field glass I'm just typing randomly some system so put why is that is not working okay if you see just type like this you will get the related packages can you see s fi to sap success factor employee Center just an example I just type success factors and field so this was published almost three months ago I'm just opening this so here you'll have this so you'll have this public when it was published and who was who has published everything we'll have and this will be your complete flow this high flow you can just configure and use if you're connecting between field elas to success factor C I'm just opening this I flow also I flow is nothing but integration flow as I said to you yesterday let me reload this so you'll be having the related documents also in the next step so why they created what was the purpose everything the related documents also in the standard packages you'll be having in The Next Step okay this everything control will be with sap only I'll just open one I and show you so that you'll get a good picture so Kent if if uh see we we we do have our btb platform available with us yes so if I want to create my own tenant in that for the trial purpose yeah you can create it I'll show you how to create okay in the next other class I'll show you not today okay you will cover that later on yeah okay if you see here this is the standard I flow which they have created the complete design everything they have already done everything it's a bit complex one they already done and ready for us our job is only to set up the connec connection between field glass to success factors if our requirement is 100% matched we can just configure and use it these Integrations we call it as standard Integrations okay okay for all the non for all the systems from time to time they'll be keep on updating even if they want there are some multiple requests from the customers that need that they need some updates to the existing integration also they'll update the version and then they release it got it okay this is an never ending activity so this keep on updating from time to time and here you can observe three four details here the one is when as when they have published and who is the vendor so we'll be having sometime third party vendors also apart from ASP and one more thing to be um informed here is the mode so few Integrations will be configure only and few Integrations will be editable okay so here one thing we need to tell is so suppose if you're using as it is like we are just changing the cender and Target connectivity details so then what will happen so the owner of this integration will still lies with sap so any future patches or any upgrades to the I flow also will be affected to your tenant also mean will be implemented tell if you're not editing the I flow or if you have not changed anything in the I flow but in case if you edited and change a single thing also then what will happen the ownership will change from ASAP to the customer custom to the developer integration developer can you repeat this point for an example you having this high flow right so here you you see configuration MH just copy on let me go to editor open another flow we'll be having better if you are going and editing this particular flow it is not showing as of now if you're going and editing the C flow and changing some at least maybe a partial development you're changing something so then that ownership of the I flow will change from sap to the integration developer then you will be responsible so if anything in future if for example for this I flow something they have changed something some Advanced fure has come they have changed it so that particular future will not come to your I FL means you need to do it manually at a later point of time got it if you have not Chang you just only configured and kept in your tenant everything is working running you mve to production all good okay so maybe after down down the line one year down the line some update has come that update will also be applicable to your I flow also if it lies with sa the ownership I'm telling so can we uh download these I flows also and create a copy of that download yeah see if you copy it if for example I'll just show you now just create see first thing I want to tell you is in CPI since we if we click here it will not create a separate tab so that what we do in order to move across the tabs like from one tab to the other tab we create duplicate tabs like right click duplicate because if I click here again I cannot go back front and back I cannot do like that now I'll show you this is one you cannot download directly from the standard discover tab you can download from the design tab just go to the next tab the as of now just for I'm going to design tab see I just created dumy package just now I was creating so I created dumy package nothing is it so now if you see just closely observe there is nothing only there is a package called test now I'll go back here and I click on copy here what will happen from the Discover from the standard iows package it will come to our tenant you see now just refresh the screen that particular I will come and sit here you're getting so here you can download it okay here you can download can just export it will it will be downloaded directly it's downloaded it be directly downloaded the complete package okay here hello hello yes yeah I think I lost it okay so I was telling you about how to uh mean get the package from the design discover tab to the design tab so whatever design present in the Discover tab that lies with sap okay whatever present in the design tab that is with respect to tenant so when you just click on copy that will come to your design tab so the monitoring or whatever the I you need to develop design anything is a standard or custom everything thing will be in the design tab only even if it is present in discover tab so you you need to copy it then will will come come to a design tab then here you can change it so that means discover contains only the library yeah exactly you have to if have to do anything beyond that it's a view only basically discover yeah changes or any editation editing we have to come to design design if you found something like in the library like standard said you can pick it from there picking in the S you can just click on copy just right on the top right if you just click on copy it'll come to your design tab in the design tab here I'll tell you what is all the things you will just configure the details the sender and receiver then it will work okay yeah this is about the standard packages I'm just want to show you the screens okay so in the first screen this is let me go back so this is all about the standard packages so next will be a design tab already shown you so this will be design t i created dumy package and everyday will be working on this design tab only I will show you in detail this one let me go back one more step so didn't discover tab design tab I'll create one more duplicate tab to show you the monitoring so this is how we work in CP I'm telling you again just create a duplicate tab so that you can easily move across the screens otherwise if you are working on a single screen it will be difficult every time we'll be more front and back because we do not have the link kind of thing here like if you click on this it will not create a separate window it'll just move to in the same screen it will move it will be very difficult so now go to monitoring so this is the place where we monitor the ey flows okay this is completely mon moning screen this is the place where we monitor the I flows this is the place the the packages everything and design T this is the standard packages everything okay so now three simple screens one is for standard packages one is for our design screen the other is for monitary okay so now just create a single sample package and show you what is for okay okay just creating a package package to create in the package just go back to the mean go to the design tab to the complete top right you can just click on create package is nothing but just a folder mhm just putting CPI training you can just put this packages for training something like something just put a in something just clicking on save so then what will happen a package has been created package in technical term is called package so normal terms we call it as folder a folder has been created it is editable and the description the created date and time who has created version everything will be here now we go inside the package okay and top right we just click on edit and here click on ADD and create the integration flow just click on the integration flow here you test and just create one first testore one add okay so one iflow has been created if you just click on this this will be your basic first as soon as you just open the window you'll see this screen it means like a sender we have this CPI here this rectangular box is called CPI we have this receiver so this sender and this receiver is a virtual sender and virtual receiver it means whatever the details you connect to the sender that will let us say you're connecting giving the and connecting and then this will act as a S4 if you're connecting to a field sucess fact this will act as success factors if you're connecting to a third party this will system will act as third party means this sender or receiver is it's just like a virtual it will act as virtually okay whatever the details or whatever the connectivity we give it will behave just like that okay okay so now just if you see on the top right we have edit configure deoy delete all these options I'll tell you one by one for now I'll just click on edit if you click on edit I was telling you yesterday about the list of pallot options all these things I'll show you so now starting with here if you just click one in this screen in in this screen we are having three pallets one is for sender one is for receiver and one is for integration process correct yes exactly if you see by default you'll get this one if you want multiple senders multiple integration also you can go and get it from the top so I want to show what is what so that we going forward we'll see it in detail so starting with here okay if you just click here it is called participants you'll have multiple send sender system and receiver system so you want one more receiver system just click and just come here and just one more click on the white space you'll have one more receiver suppose you want to send the same message to multiple receivers you can bring as many receiver systems from here so these details all the sender system receiver systems will be present in the participants okay I'll just delete this as it's not required if you want to delete it just click on that one and then you can just delete it respect to pette you can just click and just delete it so participants you'll be having it here and the second one you call it as process if you see this is the integration process right that lies in second one apart from the integration process we have local integration process and also exception sub process you'll let you know mean you'll understand when the respective topic will come and after that we have this start message end message error and event all these things so you you see here we have already these are called start message and this is called end message it means the whatever sender sends the message it will enter it here at the start message from after this step it will leave the CPI the entry point to the CPI will be start message and exit point will be the end message okay for the standard integration I'm telling yes yes got it okay so all these part events will be here we'll explain each and everything when the topic comes and if you see this Arrow Mark we call it as connector if you see this one also there is a connector here if you see I can Del this one the line which you connect from one par option to other p option you call it as connector just a drag and drop I'm just if you want just deleting it right click delete just again click on this T you'll see this aromar everything just click on this and just drag to the end and then stop okay okay you'll have this connector and delete for delete this one and here you'll see this message mapping operational mapping XLT mapping ID mapping all these things for mapping kind of thing only this message mapping part is Common from sap p and CPA other than this then there is nothing common in mean there are there'll be questions like people who has having PPO background will have an advantage nothing that like that only the concept will be the same and only one only one advantage limited is this message mapping topic other than this nothing is common okay this message mapping is exactly the same with right from the X days APO days everything is same only the UI changed the user different end UI changes just everything is same it like just want to tell you like they have segregated related topic palot options into one by one like all mappings into one so again if you see here all the Transformations you'll be having here right from content modifier converters decoders if you open converters you'll be having a series of six converters if you open decoders you'll be having another four coders so all these options we'll be covering one by one okay encoders and scripting here you'll be having javascripting grovy scripting so most probably we'll be using grovy scripting only okay is with Transformations and the calls you'll be having external calls Lo mean we will be having four options to connect to the external systems and local calls nothing but when we want to connect internally within CP itself we have three different calls and here if you see I'm just showing like what are the options for our root to root the message to different different points we have aggregators gathers joins multicasting roters and Splitters even in splitter we have different different options when it comes to routing routing isem sorry and security levels we have encryption decryption signer verifier all these things okay when you want to the data persistency level we have a temporary datab mean database kind of thing where you can store the data all these things you can write a data store for a period of time and then get the data from CPS like a temporary database kind of thing staging yeah staging something kind of thing and you can write some variable uh store some variables and do all these things persistence all these things you can do it ideally data stores it's not recommended to store in this CI but if at all if you want to store something okay it is mandatory we do not have any option okay data must be stored in CP at any cost then we can use this option okay we can store the data maybe for a month two months also we can store and then we can just take it from CPA so generally that means one I flow consists contains one one part of integration is it okay one I flow is one integration from one sender system to one receiver system we call it as one I flow so let's let's let's let's say if if we are going to integrate any third party solution with sap and uh they have that that partner had uh delivered us let us say five apis five different apis so we have to create one tenant and five I flows in that package sorry come again so let's say the partner uh gave us five apis there there are five rest apis available from the partner okay okay and we have created one tenant for that in this integration suit in that integration suit we have created one package also for that particular integration in that particular package we can create uh four or five I flows for all to consume all those apis yes we'll be creating five different type flows the package you can create the same because that is same 10 same client or same yes so package will be one yeah and we have to create five different eye flows in that package so that all the apis uh will be taken care of yes exactly got it so let us think this five or for an example you have some 20 I flows you're having for 20 different API for an example so instead of putting all 20 into one you'll find similar functionality okay 10 are having certain different functionality and 10 are other 10 are having different functionality then you use segregate okay 10 KN fls in one package 10 KN fls in the other package okay it doesn't matter like if you create all the 100 flows in one package also it doesn't matter it just only for our segregation it's just like to go to directly to the package it's all about the the how how you follow the the approach yes exactly how structured you are basically yeah yeah to be precise it's like a structure I mean making it in a structural way correct and even for package naming convention everything will be you cannot go is there any naming convention also given by this sap no no no nothing given by sap it's up to the client and customer okay because they cannot create their own names five people are working in a project five people cannot create their different different names you can put some meaningful names with with respect to the client correct like some as soon as they see like nobody should go and research some documents so it should be language if anybody sees the package name they they should be it should be easily understandable all the basic information should be there for an example if even if they create an I now I create test one instead of that what you create for example sales order mean maybe the r of ID for example c00 underscore sales order header header uncore S4 andore some IBM ACI for that you'll know okay this is the r ID this is the integration name okay this is the sender this is the Target everything will be there in the I name itself correct and even in the description if you see in the description they give ideally I have not given the description in here if you see here in the description itself Sor like you can give a two ler description so why this I flow was created so that other person in this will easily know if a new person joins also they'll be it'll be easily understandable okay okay so this is all about I was telling you here the data stores persistence I was telling and again this is validation F so all these things will be there and we have the simulation all kind of things without running theflow all these things so now to start I just say mean so whatever we create we have two things here one is to save and one another is to save as verion since we are working in Cloud so it's always recommendable either do do save or you do it as save as version you need to keep on doing it on a periodic basis otherwise your changes will be lost okay okay it's better to do a save if you do in a save it'll be in a draft state if you do and save as ver it will be 100% saved okay so save as version there is a simple difference you'll be also aware we can move across the versions from one to the other I'll show you what is for that so after you do the save as version or save so you need to deploy to the cloud then only the I flow whatever the changes you did in your tenant will be applicable you see the top right corner you have this deploy you need to click on the deploy then you'll see test you got the pop right on the top also you can see deploy status when it is deplo okay so this should be started I didn't do any changes I have not created anything but even before you do mean after you do any changes also it should be deployed after everything is done so that's State you can see just click on somewhere in the white space here you'll see the integration flow okay just drag it up at the last tab you'll see the details so who has deployed when they have deployed everything whether it is in green or red if it is in green it means like no errors are there okay okay and whenever you are deployed I mean the other tab I was telling you right in the monitoring screen if you go back so now it is 15 now if I refresh now since I have deployed one more I flow it will be 16 I'll show you okay so it will be 16 16 in the sense all the I flows deployed in the tenant will be presented present here not only by one person like all the persons all the things deployed in the complete and irrespective of package anything everything you'll be seeing in the list here how many iows has been deployed it's not like how many iows has created Created creation is different deployed is different only when you deploy it will be visible here as of now in this stand 16 I has been deployed this is all right from the moment that is created so here want to tell you just like the other one mean here I said you what is what right so even in the monitoring screen the first row will be for monitoring of the messages that has passed through CPI the second row will be the messages that has been deployed in the CPA tenant the third row will be the Securities uh saving the credential certificates Keys everything each and everything we will disc discuss in detail okay okay and the fourth one will be a temporary storage maybe data stores variables cues all these things you'll be having storing if you want to store something in CPI you'll be having it in the fourth room okay and coming down you have this access logs like any log files you need and the last two I mean the message loog if you have somebody has logged your I you'll be seeing it here if you just click on this our I see CPA training since we have already opened it here it is just showing here that the package is logged by me okay and the message consumption this was added recently in a couple of months back you'll see the complete messages which has been consumed in this tenet okay okay this is about the monitoring screen so over the classes you'll be seeing like one by one so as of now you can remember the first row will be the message which has been processed the second row will be the the message the I flows which has been deployed in the CPA tenant okay so now this is the first one so I'm just I not just click on edit I just create some basic thing and not do anything just if you want to click on this okay connect to any sender system to CPI just click on sender you'll get three options one is information you'll not have anything or just participant nothing will be there much there and you have a connector and delete if you click delete it will be deleted if you click on the connector just click right left click and then drag to the start message and just drop it okay I'm telling you again just click on the connector mhm drag and drop on the start message so when you drop the on the start message you will have the list of adapters available adapters is nothing but the mode of communication I said you yesterday the mode of communication like how we need to connect to the GPI Sy from the sender you'll be having very big list okay M very very big list of adapters it will be keep on updating we can select I'll just select the most familiar usedly HTTP so for all the AP everything we use the HTTP only this just I'm just building one I flow I'll just show one basic thing AER also I just use this HTTP and just give some basic details yes I'll tell you what has what I have given later I'm just setting up a connectivity from source to Target sure so now I'm saving one more version so whenever you save like this if something pop up mean initially after immediately after you save this popup appears just like we do the code compilation in the coding so this popup appears the into Mar you see right it means like something blunder has happened some mandatory FS we have missed it if you just scroll on here it will show it some authentication is required it is not showing okay just mean without fixing this it will not deploy into the tenant that is the issue we cannot deploy it see if I want to deploy now it'll throw an error k please give me a moment yeah e yes K yeah see now even though if you deploy it it will not work click on deploy see validation failed validation fi see now if you go back to the screen if you refresh here you'll be seeing it in in Red so it's not even come come here okay it failed here itself sorry it failed here itself if you want to see such things the same thing just click on the white space earlier I said you about deployment status right all the deployment everything you can see it if it's successful if you want to see any issues here major issues I'm telling click on the problems tab it will just show you here I'm just coming from the bottom right so the first you about if it is asking for some authentication on go to connection we given authentication client certificate it's is asking me all this and just putting it as none just to deploy it nothing else okay I'm not connecting to any server I'm just putting at abc.com that's why okay so now if I click on Save or save as ver it will be saved now if you see there is no trade now everything is fine this is first level of checking okay no blenders has happened then the second level of checking will be in the deployment page see almost like first two levels of checking with first as soon as you save any errors Will Come Those errors you can see in the problems page first thing and after you deploy also certain times we'll find certain errors we will come to know like whenever we do it you'll see what errors we're getting so then the second errors will be start appearing here as of now there is no errors you'll see it error if D is not deployed successfully you'll see the Respec to error here okay and finally we process the message when we process the message also you'll either if it successful or failure you'll see it here you can see the count all the messages failed messages retry come completed everything okay so now with this I flow now let us take a step back go back if you see I already created testore one integration flow now three versions it is there so now I was telling you about the version mechanism so why do we create the what is the advantage now if you click on this version I can move from one version to another version can you see this is the resource creat first version after that 1.1 1.2 1.3 so on top of that also sorry I forgot to tell one thing we can while saving the version we can add some meaningful comment let me add it just clicking on the save as version just uh into and I and then deploying it so whenever we're adding that meaningful command it will be easier for us to navigate to the versions easily so now how it will naate I'll show you go back to the pay training so now you click on this version so now if you see you can see the what are the meaningful commment we have put yeah initially as soon as we create the and just open this create flow you'll get this one so then after that whatever we do maybe every day whatever you do you can create and you can put a comment for that so that next day either you can move frint or go back see now we are here right I created some HTTP all these things if you want to go back I'm going to the first version just double click on this click on okay see from 1.0.4 come to 1.0 you restored the earlier version yeah the basic now nothing is there now again I can go back I want to go back to Fourth version so directly I can jump you can jump from anywhere to anywhere okay in number of times you can jump from here and there like from 30th version to 70th version 70th version to 50th version again 50 to 100th version can do anything but the you need to remember whatever the version here so now it is showing as fourth version okay but if you go and see here it is deployed I'll tell you okay now if you see here it is version number three but if you go and see in the deployment screen it is version number four okay yes here you need to remember is messages will flow only on the deployed version got it so deployed version be the active version sorry deployed version will be the active version even though you play around back and forth front and back nothing will be impacted on your life flow unless until you deploy it so only when you deploy it then only it will change so if a message if message is already processing it will process now on the fourth version 1.0.4 not on the third version third okay this is about the version change I'm just reverting to Fourth version so and now second thing about the actions so if you want to delete the iflow you can delete it directly if you want to copy the iflow you can just create a copy one more c mean I flow is already running successfully and you want to do some changes to that instead of touching that I flow you can just create a copy it will be copied in the same package instantly you can do the changes without affecting the existing one okay lat everything is done you can delete it or if if you don't want you can just simply delete it okay that is second thing and one more thing is view metadata so in the view metadata the first option will tell you may we have multiple options now I'll tell you one option so for example just now I was telling about the naming conventions okay somebody has not followed naming con they have create it screen is not refreshed now it's uh giving me the uh this uh artifact screen test one test one copy yeah yeah yeah good so if you want to go change the name of the I flow then you can click on The View met data okay edit here you can change the name of the as mean whatever you want okay it's not mandatory okay you say you do it on the same time at a later point of time you can say simply change the name according to the naming convention with the project is following at any point you can change the name without existing the functionality of the so that is with respect to view met dator and if you want to download the just simple just click on download download the complete pack I flow will be downloaded successfully as a zip file okay yes and configure I'll tell you configure is nothing theoretically I'll tell you I'll show you practically for the coming classes so configure is nothing but without you'll be aware like in production uh it's not recommended to have the edit axis mean we will not be having the edit taxis but certain times we need to change some parameters a little bit frequently so it's not me every time getting the CR changing it will not be it'll be very tough job so that sap has given this configure option so where we can configure I mean we can externalize some parameters as a configur parameter like without having the edit taxes we can change some parameters from outside of the iow okay so maybe some connectivity details or some username password or such things you can just configure and keep it ready so in future maybe the target system password got changed or something Keys got updated so then key name you need to change it since you'll not be having the production edit taes so like you cannot go the transport mechanism okay similarly you can just go and like in case in case any kind of uh basic authentication changes or off token gets changed then in that case we have to go to this option yeah it's always recommendable to mean we do the externalization for all the sender and receiver connectivity for example the time out you have given as 60 seconds so is taking larger than expected you need to increase the time out but you don't have the edit ACC or even though you don't you do have the edit access it's not recommended to use go and edit the flow because the version changes again all the the controls reports everything will be affected so then you can directly configure it okay okay this is about the configure and finally deployment either you can deploy from here or you can deploy inside the a flows both are same deployment inside deployment outside configure both okay okay this is about just mean the basic thing I'm telling so one I FL how to just sender and the receiver and how to do create the versions from one version like you can move front you can move back you can do all these kind of things and actions you can do and here I want to tell you see just now I uploaded one nlow right created one nlow we can just directly if you're having an iflow in some other t or something you got that iflow in your laptop somewhere you can directly upload that particular iflow upload just download I'm just uploading the so and when you're uploading or when you're creating the I flows this ID name should be unique in the tenant okay since earlier we already created test one copy right so we need to create other one test three now it work so name can be it is fine this ID should be unique in the tenant you can directly add it correct you can directly upload and uh download uh the I flows from anywhere to anywhere downloading just as a file download as a zip file it will be downloaded and you can go to any tenant any package anywhere you can directly upload it okay okay so this is also the transport mechanism which we are which most of the people are using right now okay so why because so sap has given the CTS transport mechanism where when we have the transport mechanism we'll be having a one more option if you see save export we'll be having one more option called transport here you can transport entire package or I flow any anything like that so when you do the transport it will go to the btp cockpit and from there the basis people they import it to the higher environments like from Dev to sat from sat to u8 and U to Pro so this this an extra cost from sat side so that is why most of the clients are not opting for this service few clients are opting for this and few clients are not so whoever is not opting for the service so what they're doing they're manually downloading and manually uploading the files files in say I flows okay so this manual download and upload of thei flows is nothing but file transport mechanism sh done so CTS transport file transport so file transport is nothing but manually downloading and uploading so one biggest disadvantage is we will not have control over the Internet that is the biggest disadvantage cost wise okay client will be fine but we will not have control when we are going with CTS transport we will be having the control so without anybody's knowledge nobody can move to the production so having the control completely on the tenant but when we are using file transport everybody will be downloading uploading the versions they'll be mismatching so you see in the production it will be version number 50 you go in the development it'll be like version number 40 it'll be ult like people will be directly doing in sat people will be moving to production directly they'll be skipping U they'll be skipping in development okay they'll be playing as they wish they follow the sequence okay I need to do the development and then to sat and then to U because they mean day when they might do so when the time it's not permitting them to do they'll directly do it in sad okay version is done move it to Pro directly so the other two environments they'll skip it mean there is high chances of being having different versions of the I flow you across different tenants because of this file transport mechanism when we do not have the control whereas CTS it will be having a sequence like from Dev it will go to sat and then from sat to pre-pro from prepro to production so everything will be sequence everything will be structured and organized and controlled way okay okay now let's go back to our I flow this is the first iflow I'll just remove this adapter I just start with timer and show you okay so at least for first few classes we'll not deal with with receiver so we'll deal with sender and CPA or inside CPA only okay okay so as so I'll just remove this receiver either we deal with a message coming from the sender to CPA or within the CPA itself both the things we be check so let me start with within the CPA first So within the CI if you want to enable within this API we will use this let me check one second for now I'll just remove this save I just go to here bring the timer okay just drag this and drop it on the end message so for any pilot option to from any pilot option to any pilot option you need to just drag and drop from timer to here okay we'll drop it here so as of now I want to explain about the postman from the postman but I'm just seeing it I don't want have the credentials I'll get it okay so just getting a Content modified and just Place see just getting the P options also get the here and place it here so just drag and drop drop means need drop on the line drop on the line you are now going to configure an i flow where sender will be the postman yes exactly okay done got it not now maybe after a break I'll I'll get the Cs take so now what I'm I'm just scheding within the CPI itself so that I show what is what okay within the CPI I'm just scheduling it saving I'm not given anything I'll just pass some message here in the body something I put it as test okay within I'm now what I'm doing within the CPA I'm doing nothing else okay I'm just saving it as a version and then deployed it click on okay now it is successfully deployed now if you go back to the other screen just overview just now if you see ear it was Zero now we can see one message got successfully processed successfully processed in the sense in the iflow it got processed even though we didn't give source and Target it process within CPA from here to here that is what it is showing here test one message process successfully processed okay we'll be having the message ID correlation ID what is correlation ID I'll tell you in further classes for now message ID means you can just click on this message ID is contrl C if you want to bring that message directly if you give it if you have th messages or something if you give directly the ID message ID that message will come out it means like a unique ID for that particular message okay okay and we have the retention period of I mean certain tenants have 90 days certain tenants of 30 days after till 30 days I mean since a trial account is one till 30 days only these logs will be present here so normally in the what the access which sa gives to the customer these logs will be present only for 90 days after 90 days bcpa Will Not store any logs okay so why I'm telling you here is so normally business will come maybe after a week or month they'll come okay they'll come okay this message was supposed to be process and so on so dat now it has not reached so then we go and check and we'll let you we'll let them know okay this was successful or this was failed so that future will be there only till 90 days if somebody is coming and asking okay there was a message which was processed in last October can you go and check we cannot do that okay okay we have a retention policy of 90 days what this is for then is a trial account this is for 30 days 90 days that is for all completed fail everything anything will be there after that we'll not have a track takeen okay yes just clicking on edit I click a start message I mean before start my edit I mean I just shown you I'll just come to timer again since I'll just go to the post man just clicking to the start message I'll have the list of adapters I'll just give some unique parameter here I let you know what is this okay and just save it as a version and then deploy see every time you do any small change also you need to deploy it that should be the practice because you most probably people Comm do the mistake is they do the changes they save it as ver they'll forget it and then they'll be keep on working it will not work and then they'll realize okay I didn't deploy unless until it deploy we need to see the practice of time here this time now 259 okay 259 is come back here go to overview now again I have deployed right coming to the deployment screen to just refresh it here for test one I flow I have created a HTTP adapter if you see for a HTTP adapter if you create give one one or two minutes an API will be generated using that API we'll be posting the message from CPI so since you are aware about post it will be easier for me to also tell so we will just post that put the API here and then post the message I will tell you once let us is come yeah you got the API right so this will act as an API okay and point URL got generat so this is nothing but the CPI host name till here okay then you see here you see in the top here right from B got it got it it will be here followed by the adapter SL adapter and followed by the unique ID which I gave in the I here if you see I give SL test 55 that will be followed here and this ID should be unique in the tenant so since I have used test 55 so this ID cannot be used by any other R in the tenant so normally we give the RF IDs all these things so I can just copy it here go to the postman and put it over here okay in the authorization you need to give the basic authorization this CR is not working I'll just get the other one so when you post the message that message will enter into CPA here so this end URL this will act as an API to enter into this API or anybody who's having access to post the message to this URL they can post the message as of now for our training we'll be using the postman as a sender it means like if you go to the HTTP adapter here in the uh just maximize this here in the CSR proted this is enabled so this is nothing but Crosset request for jury it means sap is making sure so all the third party applications anything it's just restricting the third party application from posting the messages to CPI so just clicking on on the top right and just removing it because of this we are getting the 43 error okay just unche save as version okay and then deploying it clicking on okay we need to make sure it is deployed then only changes will be there now it is deployed going back to postman clicking on send it is 200 okay yes okay now if you see just go to overview just click on here we got the two messages at 3:15 the message got processed in 8 milliseconds okay so here I mean this is how this is a HTTP adapter I'm telling you maybe I'm a little bit fast we just connecting from the sender by using a HTTP adapter to connect to the CPI we are not connecting to any receiver system so as of now we just doing the connection between at least for first few classes we will be doing only the connection between sender and CPI only when we are familiar with CPI all these things then we move on to the receiver thing okay done so the flow is from sender CPA Receiver right but we are just focusing on the sender and the CPA only okay so here if you see I put in the content modifier a message called test okay and if you are observed in the postman I got the I'm not sending any request okay the request is blank but still I got the response as test so why be let's not go a step forward let me delete this just a minute I'm just skipping the top and just go back a little bit Stu back I'm deleting this also okay it is deployed now go back so now see I'm not I'm just sending clicking on send again now I got a blank message I'm sending blank I'm getting blank now I'm putting it as test or put it as CPI I'll click it send I'll get it as CPA so whatever giving I'm getting it back did you observe same thing if I put it as CPI 1 2 3 4 just clicking on send I'm getting the same okay so why because if you see and now just refresh I given multiple triggers right so five message has been processed mean from sender to CPI okay so here so why are we getting like whatever I'm giving why I'm getting back I mean why I'm getting same response back so here the concept is so by default CPA architecture is mean it's a syn it's in a synchronous mode means whenever you're connecting to from message coming from the center the message whatever the message has been left at to the end message so that whatever the message has been left to the end message that will be sent back to the sender system at the back end okay we now need to set up a separate connection see I set up a con I put a connection setup from sender to CPI with the help of Postman but for the response I didn't set up a connection but still I'm getting the response so why because whatever the message that reaches to end message that will be visible in the response message now be it Postman be it any external system so the message which hits the end message mean in between this L if you just follow the cursor in between the start message and the end message you have lot of I mean do you do the lot of Transformations okay when you do the lot of Transformations here so the whatever the transform message end message that message will be sent back to the sender as it is okay means you'll get a major advantage when you deal with the synchronous scenarios yes synchronous nothing but request reply you send a message and you get a response P which is synchronous asynchronous you send and you forget or you simply call it as fire and forget correct so when you're doing fire and forget it is it doesn't matter but when you are want to send the response back to the sender system then this will help correct okay so that is why so whatever you're sending to this end message that is coming so now we we didn't do any transformation the message is entering here through CPI so no transformation the same test is getting hit here so that is why it is visible here same thing okay as I said you yesterday so in CPI you can send XML you can send Json you can test CSV you can just put some random text also it will come it will just I'm putting random text it will just say I'm just clicking you'll get the so format is not mandatory it's not specific you can send any format okay so this is about the mean since you know Postman so the HTTP URL test it's coming to CPA and it's coming so now let's do a very small transformation using a Content modifier as a first okay so content modifier is like bread and but of an i flow if you see the first one like without this option there will be no any I 90% of the flows you use this option okay there is last mean the topic is simple but the usage is more so the name itself is suggest it is used to modify the content of the message content modify it modifies the content so what I will do I'll just go here put here test 1 2 3 4 5 something okay I'll just save it as a version and then I'll deploy it okay it's deployed I'll go to postman I'll click on send so now what is happening I'm sending as test but I'm getting the response as test 1 2 3 4 5 yes so what does that mean means so whatever you send to the content modifier so see test is coming here and whatever send to the content modif at the content modifier level this is getting the message content is getting replaced by whatever is mentioned in the body of the message okay so here in CPI messages process from blog pallet to pallet or blog to blog you can just follow the C from this is a postman from Postman it is coming here I mean test is the message is test it is coming here the moment it entered into the content modifier the test message got replaced with test 1 2 3 4 5 okay okay and then it went to the end message me the end message means whatever it got hit here that will be replicated in the cender system response okay so that is why test you're seeing test 1 2 3 you're seeing it down for an example if you leave empty I mean let me explain theoretically first I mean message header exchange property is a separate topic I'll explain you today most probably today itself now we're dealing with message body okay the message body if you leave empty okay you're not mentioning anything if you leave empty so whatever is processing here that will be passed as it is to The Next Step okay okay if you leave empty even though you leave a DOT okay that dot only will move to the next step do only will move to the next step I'm just clicking on same I get a do yeah yes okay if you leave empty that will be just leaving it as empty no test will come yeah exactly now test will come okay so leave empty that will go that is fine okay whatever you change that will be there so let us saying I want an addition to that message okay I want something to be added to the incoming message addition to the test I want to add some CPA training I want I need the source message I need the both okay okay okay I want some Json M for an example I put some small XML message something like this I'm just creating okay yeah I'm just keeping like this okay simple XML message so I'm sending I'm getting it as it is so to this I need to add something called CPA training or something I need to add at the bottom or at the top okay so now how will be that that be done so now I want to tell you is so CPI is built on camel framework and as a result of that we have few camel Expressions which will be used in the day-to-day life okay hardly four Expressions we are having so one important expression is I'll just put it here dollar flow brackets mhm in do body okay what it will do means it will bring the message which is present at the previous step it is not any constant whatever is present at the previous step it will bring it to that point for example if I put Dollar in body just putting Dollar in body I'm saving it as a version same same message yes exactly same will happen it will act as an empty message body no it will see if you see have used Dollar in body in contain modifier so what is present at this tip if you see follow what is present at this tip some this what is this this sample XML message is present so that is present it will put it here the same will be send it to the receiver so no change if you just click no changes happen it means either you leave empty or you leave Dollar in body nothing happens no transformation correct okay instead of that if you just just go to edit again go to Dollar in. body just you can do any trans okay I'll just put it as CPI training and then I use Dollar in body just save as verion concatenates yes exactly it concatenates both and dollar INB is not a constant it will just add step by step just go to the postman just click on send I'm getting both this is the message which I have added in the CP content modifier this is the message which is coming from the a input cender system corre both has concatenated so that particular concatenation we can do it in the content modify it's not like only this uh any any library for this camel variables no we we have a very big list of uh you can Google it but most commonly we use four Expressions I will tell you three Expressions okay okay very frequently day-to-day life we use three expressions in addition to this we have two more expression which you need to remember other than that which be very rare that you you get it in online I mean the help. do blogs sb.com you'll be having those camel expens we don't need to remember it because it'll be once in blue okay yeah so now going back so apart from this we have header option and property option also I'll discuss in detail uh after this body is completed for an example click on edit Here If You observe in the body you have two types here I'll be explaining each and every option in the type if you see you have expression and constant since you have given this expression it should be in expression only then only it will bring the message which is present at the other step in case you give constant see system reads this as a not read as an expression read as a constant this will read it as a text only yes you'll get Dollar in body in output yes yes got it you get like this yes why because you made the system misread it okay you read it as a constant so it went wrong okay now you click it on as an expression just click it here P training body is fine okay now it will come so now one more top thing I need to tell you is so it is not mandatory like you need to use one content modif nothing like that you can use as many content modifers as you want you can use five you can use 10 you can use 50 it doesn't matter depending on the requirement you use I will show you like what is the function like how it progresses I'll use some three content four content modifi and I'll build an iow and I'll explain so what I'm doing here I'm just concatenating step by step so that you'll better understand even more understand like what how this dollar IND Body Works so this is I'm coming here so here I'm adding a dollar in body this exercise will be more useful in in ter in case of troubleshooting the ey flows I think so yes exactly got it so now in the cont modifier going again so here again I'm calling dollar in. body okay put it fantastic okay I put one more content modifier I'll go to here I'll put it as dollar in4 F something okay deployed I'm going to post man if I deploy now what will happen I'll get complete list yes it's just like concatenating step by step so for an example at the final step if you just remove this Dollar in body only this first T will go to the next step it means Dollar in body is not a constant means whatever you use in the dollar in body see here it took the Dollar in body is the message which has come from the postman but here the dollar in body is a message which has come from this content modifier the output of this content modifier is the input of this content modifier similarly output of content modifier 2 is the input of content modifier 3 and so on uh can you can you please open this content modifier to yeah okay now here you mentioned dollar in. body testing can you go to postman please yeah this is what in this got added so we we have we have given an input as that XML uh template okay for the first name as current okay yeah yeah now after the uh completion of first content modifier one it will give the output as CPI trading till the amp yes yes now this will go as an input to the second content modifier yes so the output of the second modifier will be okay it is giving the third modifier complete code okay see this is the output of first content modifier it goes to Second get added this will go to the content mod three and this will get added finally got it and that's is mean this is how you play mean not play like you build a knife like it mean it's not like building everything in a single day like block by block pallet by pallet you just keep on building the message so you'll be having okay by any mechanism can we see all these content modifiers output in the message body that's what you're seeing right all this content modif but that that is coming as a Content modifier thre three output because it's already concatenated uh I will tell you you want to see step by step right yes yes yes I will tell you that so just saving a verion let's move on to that one we have two options like to check there one is standard approach when we have plugin plugin I'll tell you in the next class but today I'll show you about Standard Process just go to this page this overview go to the integration content test one in the log level just click on Trace change Trace okay what is Trace I'll tell you I'll tell you this topic after you we finish this one after en after enabling the trace just push the message same message again you got the output now when you go to the message processing here this step okay now you see almost 16 messages 16 times we have triggered today just click on this message if you just scroll down you will see this logs ENT yes click on this now you'll understand clearly we need to wait for 10 seconds so it will be reflected will come here okay you don't to do anything everything will be reflected now you will see the step by step how the message got processed if you see that blue color envelope means it means the message got processed from here me successfully by any chance if you see red color envelope somewhere it means it has ered out at the particular point of time okay point of step mean if there is an ER envelope here me mean at this step the message got failed okay so here the messages processing will be from left to right so this s message enter under modify one input output again input output input output okay to the left hand side if you see this so here we need to check the message from bottom to top not from top to bottom okay this is https 1 2 3 and finally the end message so when you click on the https we do not have anything just click on message content Bel in the first base you not have anything the second me it is entering into CPI you'll have the payload so this is what what happened let mect showing something for okay you can just see it from here there a bug here yes okay from the first content modifier we are sending this one yes okay and before telling you I want to tell you here is so whenever so the output of this message if you want to see whatever the transformation happened in conent modif one you can see it in the contain modifier 2 okay so if you want to see whatever has happened in cont modifier one you need to see it in the next step whatever happened in Second Step you can see it in third step correct correct that that goes on so one first step if you see the message content it is as it is so modifier two means we have added a simple line CP training correct got it okay that Will Go On so now let us back so now whatever happen is content modifier to I will go to the cont modifier three you can see this has the testing has been added now so whatever has happened in Con modare 3 I'll go to the end message this the first Ty FL has also been added so this is the output which we are able to see it in the uh post correct clear right yes yes clear so this is how you check the trace I'll tell you what is Trace after this so you see after you enable the trace you can see the message from left to right and here from bottom to top so whatever has happened at first this step you need to see it in the next step we cannot no need to worry okay seeing it here the transform is not working every time you need to see it in the immediate Next Step then only you'll be able to know yes so here the trace will be visible here in the message if you click here drag down you'll be seeing in the logs that log level is there right you need to click on the trace so now coming to how to enable Trace what is the trace everything let me create one more tab duplicate just go to this monitoring screen this okay remember to see the trace we need to see here to enable the trace we need to go to the integration content to enable the trace me integration content to see the trace you need to see in the message processing to enable to see enable the trace click on here go to the particular I flow scroll down so here in the log level you'll be having l five options starting from none till Trace so by default it will be there in the info mode so as soon as you deploy so as a standard it will be in info mode means you'll be having only the information details if you see also you'll not have see this let me go back see this is in info mode log level is info you'll not have any details you cannot see any step by step details nothing you can do okay that is in info by default it will be info for mode so whenever like you asked I want to see like step by step processing how the message is processed or I want to debug it uh in detail so then what you do you go and enable the trace just clicking like this and then you need to push the message I'm telling you again so you need to push the message enable the trace and then you need to push the message it's not like you enable the tra the locks will be captured after you enable the tra R only you the message should be pushed correct okay so and here one more thing to remember to keep in mind is so this Trace logs will be there only for 10 minutes of time so within that 10 minutes you need to push the message if you see I have enabled the trace log at 340 okay it it'sing as log level Trace expires at 350 mean within the next 10 minutes it will expire mean it will go go back to info mode if you see after expiry the log level switches back to the info mode correct okay and this is first thing and second thing okay 10 minutes that is fine okay I'll enable the trace at 340 now I'll push the message so I need time to analyze this now it is five options okay it's fine if it is 20 options I might take some time to check where it has gone wrong where to fix this okay for that sap has given 1 hour of time till 1 hour that log this functionality you see right that log functionality will be there this functionality you can check step by step for 1 hour after 1 hour be able to you want to see again if you want to unit enable Trace again push the message no other option CH okay Trace functionality for 10 minutes and log functionality for 1 hour log and after none and Trace we have sorry info and Trace we have none none if you click on none means the messages which has processed in the tenant will not be visible in the monitoring screen if you want to do some secret testing or do something okay nobody should know about your testing or something you can enable none so that none of your messages will be logged okay mean either fails sucess nothing you'll not be knowing okay I can show you that because this sometimes by mistake people enable the none and they'll be keep on telling okay messages are not reaching CPA nothing is working and then then they go here and then realize so somebody has switched on this one this has happened this one if you see none I put right for test one now I'll go to the postman I'll trigger one two two messages have triggered at 344 if you go back here okay logs see at 344 there is no message yeah there be there are multiple escalations also happen this might be funny but whenever it switched to info then we'll tell okay see Mage sender is sending so message has not reached to CPI unless until we go and see there I it would pass through CPI also but there is no log neither success nor fail nothing is there okay little okay and error things whenever it is in error it will trigger for debugging we debug the three so five options will be having in log level none info error debug and by default it will be in the info mode the most used functionality are info mode and the trace mode for checking the step by step we go for Trace mode that is the only option the standard option other than the standard option we have one more plugin that I'll tell you in next class we can check here itself but the standard option is to use the trace and push the message okay that is about the trace functionality now coming back to our uh iflow content modifier so I have used three content modifiers I have used the expression and used the constant all these things now it's done now coming to header property and body is done right so t let me check if I have anything left to say here and constant understand okay so body that's it like either we do do with dollar body or we deal with message if you want to add anything you can just add it if you want to say put a detailed expression also you can just put it and you can deal with Expressions whatever the expression body is present it will go to the next pallet option that is with body in general there nothing is about the name you can change the name according to your wish okay something like this adding Properties or something you can change it it's not mandatory like you need you put only content modifiers okay you can just put in my meaningful name I'll just put it as adding body something like that okay you can put a meaningful name so that by seeing the name itself it will change not only for this content modifier for anything you can just change the names or sender put as Postman anything you can just put it like is 400 you put it as S400 okay so this is about the body now coming to the most important thing the headers and the properties you can listen carefully this is most most important thing about the headers and property so normally when we send a message in addition to sending a message we also have an option of sending the headers and this properties in addition to sending the message we have an also we have also an option of sending the headers and also the sending the properties so what is header what is property what is the difference I'll tell you clearly so header If You observe the postman clearly instead of and apart from sending the standard the message here we're also sending some standard headers here the back it's not visible here see 10 headers it's hidden these are all called headers these are all the headers which we are sending in the message these are all 10 standard headers if you just drag up here this is body this is The Standard 12 headers which has been received in Postman as a response correct some cash control dat xma everything these are all the standard headers which has been received in Postman this is about head okay so the same thing when you go and check in the this one we are checking the trace right let me go back here I want to show you one thing just click on this one so you click any object any pilot option just click on the message I was telling you showing you here tell the payload and apart from the payload in each and every step you'll be having this header and exchange properties in day-to-day life we call it as property instead of exchange property we call as header and property okay so if you go to the header you'll be having a list of standard properties just like Postman was having in CPA also we'll be having a list of standard pet properties and headers so most in most of the cas 90% of the cases all the standard headers and properties will start with either sap or camel okay so whatever starts with sap or whatever starts with camel or they are all the standard headers and properties as simple as that okay so now if you see camel HTTP method camel HTTP path camel HTTP URL camel Ser context path hcore everything we message processing ID all this are standard headers go to properties also same thing maybe one or two might be changed but most probably you'll be having the same thing if one is changed you can see some status provider something got CH other than that whatever starts with sap and camel they will be standard headers and properties got okay I'll tell you what is property apart from the header since you have I think you have some knowledge on header so let us think okay instead of sending the message in the bage body I want to send something in the header of the message okay to the receiver receiver is asking okay whatever you're sending to the uh see for first few classes we'll be treating this this is as sender and our Postman receiver as a response okay you can assume this is as a sender and this will be our receiver okay whatever you this will be sender this is the receiver after few we connect to a receiver so now so now you see we got 12 headers so what I want to tell I want to send okay my trainer name as Kar and the CPI header so the client requirement is in apart from sending the body of the message can you also send the employee name or this name in the header of the message so how to do that so to do that just go to the content modif go to any content modifier go to the header of the message just click on ADD if you click on ADD just D just dragging the screen up better view screen up you'll be having list of functions here starting from constant expression Global variable header local variable number r property and exper we will deal one by one uh according to the classes okay so first we are selecting on the constant possum which will not change we can give the name of the header I'm just putting it as CPI trainer I just put my name okay the data type and default value is mean it's not in editable mode it means like it is not required okay I'm just saving it as a version and then deploying it okay going into the postman click on sent now you see I got 14 that's got increased I just maximize this just go I'll see like CP trer I got okay if the receiver system is capable of reading the header systems so that will be sent to the receiver system so it is simple in the content we have only this option if you want to send any headers or any property you need to add it content modified we have other option of adding in gry scripting so but as a standard approach we have it in the content modifier only in the content modifier of the message you can add it so here I want to tell you one thing is so I have added one header here one header here you can add mean let us think you're having 10 content modifier 7 contain modifiers okay so you're adding two properties here two headers here one header here so it'll be difficult to track okay so as an best practice I mean it'll bit T right you'll not know which header VAR you created which property VAR you created yes as a best practice what people will do in the real time they will be using all the headers and properties as much as they can okay it's not uh if it's not feasible they you'll be using it at later point of time as much as they can it is preferable and recommended to use almost all the headers and properties in the first step itself and not only First Step declare everything in one place so that they can easily backtrack what the header has been declared what the property has been declared so they can e backtrack so what they have created okay so this is how to create the header where we have created we have created in the content modifier creation of the header is simple but anyway we have all the other we have seven more options so I'll tell you one by one so I have created a this one called CP trainer called current and I'm getting the message body of the message unaltered I'm getting CPA trainer L everything I'm getting like this so now what I'll do I want to call this header of the message I want to call this message in the body of the message sending the CP trainer everything in in next to CP training I need to sending something like uh CP trainer my name everything I need to say so how to call this head of the message for this I was telling you we have two more camel Expressions right I list it down here those are called how to call call the header of the message is header dot header name and property dot property name let's go to property at the later point of 10 let's focus on header name so whenever you want to call these are the three most important camel Expressions which we will be using in the day-to-day life okay okay Dollar in body which have already discussed so dollar header. header name header name is nothing but the one which we gave it here so this will be your header name CPI trainer is your header name so you need to put the CPI trainer here and then call so wherever you call that expression current name will be added there so I'll go to the cont modifier three in the body let me click it here I'll just add it here something like the CPI trainer I'll put I put it as CP I'll just put colon now I'll copy this header header name always use the copy because it is case sensitive just go here just copy this go to modare 3 body plus header name put this one save as portion okay and then deploy the conent you can see now the name we got the header name we got in the header also we got in the body header we got it here out in the body also we out means we are sending the header in the body of the message same simultaneously we sending in the header of the message also okay here one thing to observe here is so whatever you call in content modifier two that can be called me let say you're declaring the header or property in a Content modifier to okay just an example modifier to that header and property can be called only in the success immediate successful step not only immedate it can be called in third step fourth step mean after this step only it's not like something you declare it here but you call it before that that will not work understood so that is why I said you so whenever we declare the headers and properties if let us think we have used in First Step so then no need to worry from Second Step onwards you can go and create correct so that is mean why I'm telling the best practice to use in the first step means just like because of this certain times we'll be declaring it here without knowing we'll be calling it here sure since it is content modifier you are able to see okay I have only three but when all the other options comes like Splitters routers multicasting everything comes then you'll get confused where to create where have created even we will the one who develops even he will forget and it will be tricky to go and check each and everything time consuming instead of that the first option we create this and put it as a property called setting headers and properties and then that can be called in all the steps it can be called anywhere okay syntax would be the same so now let me go to the similar thing called property and then I'll tell you what is the difference so go to the same content modifier to create something called is 2024 okay this is a constant I'm just saving it and then deploying it and then going to the postman and then sending it here what happen nothing changes the same header I got in the header the same body I got it respect to have created Property nothing has changed so what where exctly I want to see the property let me enable the TR and then I'll show you has got expired let me enable it let me go to overvie after enable we need to push the message select the message at 359 scroll down a this the message scroll down Trace just click on Trace so now the same message we got at content modifier 2 we didn't we created all these things right we will not see here because we cre whatever we created here that will be visible in The Next Step at contain modify 3 if you go the body of the message we seeing it here if you go to header we will see it a CPA trainer current you go to the properties you'll see where is the date it's strange today just a minute it's not yeah yeah okay yeah sorry can I see the properties here okay so now you can get a out like okay when we have the same functionality in header same functionality in property so why are we create why is sap has given two options you exactly same if you see here clicking on edit we have same list of almost seven eight options here we have same list of eight options in header also so when it is exactly same then why like message header why it is exchange property means so header the only difference is header will be sent as it is to the receiver system whereas properties it will not cross the CPA line it will expire at the CPA system itself okay just like in Postman we are able to see the headers but whereas we are not able to see the properties so what happens properties will not cross the end message till the end message only we will be able to see the properties once the message moves out of CPI no receiver system will receive the properties okay for then why are we creating the properties if it's not reaching the receiver so then why do we need to create the properties why because for transformation purpose you'll understand further classes like when we create and dis fetch the data using properties then you'll understand more clearly so for transformation purpose or to read the data of a specific fields or something like that we use the properties for example today's date I'm just declaring I'm just want to get the today's date okay we have a camel expression to get the today's date including time seconds hours everything we have okay we can use it in header but your receiver system will tell don't send me all the unwanted headers and don't uh overload my system you just send whatever is required so then you go for a property okay let us thing you go for 10 you as part of your transformation you want to create 10 properties which will be used at a later point of time if you're using 10 headers all the 10 headers will be reached to the receiver system which is means the requirement is to send the data at the same time our requirement should also be there to send to restrict unwanted data right rest sending unwanted data it's not recommended so that is why we use this header and property the only difference and the exact difference is headers will be sent to the receiver system whereas properties will be stopped at the end message itself okay got it so just like header and property for creating we have the option let us think okay we created we have used and final step if you want to delete you can just simply delete it you just give the delete option the header will be deleted okay okay see this headers and to why I'm stressing here means this is very more very much important you'll not see any iflow without header and property each and every I flow you'll be seeing this me complete iflow runs based on this headers and properties only yes you do any functionality you go for routers filters anywhere you do message mapping grovy scripting anything you go somewhere or the other you'll see this headers or prop is being used correct yes you take any standard package for example if you see I'll go to the standard package randomly I'm just opening it I'll just 25 artifacts are there it was published only two days back I said you right just see here first step is content modifier they declaring properties in some property one property they declar at least I'm telling you one at one basic thing will be there normally they'll be having a list but at Le cre only one they using a l point of time so each and every step you'll be seeing these properties and headers so just like here if you're seeing right they'll be changing the names it's not like they leave it as content modifier they'll be changing the name as per it's required be using grov script and using so just like that you'll be using each and everywhere so now if you see the until now I just summarize what we discuss in content modifier so we discussed about content modifier in the body of the message we can use both this expression called Dollar in body if you leave the body as it is the message which is present at the previous pet option that will be sent as it is to the next step next or if you leave if you give dollar IND body also nothing changes that will be sent as it is instead of that you give anything you give a DOT or you give any text that message will be replaced with that particular thing mean it will move on to the next step for an example if you want to call it as a I mean if you want to append anything to the message which is present at the previous step then you call it dollar in. body and then you give the message which is which you want for example CP training followed by Dollar in. body something like that okay and here you have two types of things one is expression the other is constant expression means it will read the expression if you're giving as constant it will read as a string this is about the message body when coming to the headers we have a series of steps like eight options we have as of now we discussed only about the what is this constant so constant means the fixed value which will not change the same thing we discussed in the uh property also you can give the name of the header and property anything and give the value no need to give any data type value since it is a constant so whatever you give that will be applicable in the immediate next steps that will be sent to the receivers also that in the sense headers will be sent to the receiver whereas properties will be stopped at the receiver system itself okay and to call the head and properties is we have two camel Expressions one is dollar header. header name the other is dollar property do property name property name okay so and one more thing is the headers and properties which is starting with sap and camel are most probably called as standard headers and standard properties why because sap is built on Apache C sorry CP is built on Apache camel framework yes so now the next thing so I was telling about the standard headers and properties all these things right okay most probably we'll be having the common requirement called the CPA message processing log ID the CPA message ID okay this is the message ID for this one so sender will tell okay why can't you send this message ID also in the body of the message so that we can also log it they'll be giving a field you just send this message ID to our system so we also have this log ID in our system also so we need to send this message which is coming as a standard property okay so for this the same thing what you call even if it's standard property also just go here call it anywhere else same thing you can just frame it message ID dollar sorry dollar property dot just control this is case sensitive just copy it from yes copy paste you can copy any standard header standard property you can copy anything I'm just copying it here instead of header I'm just call calling the see here I'm calling header here I'm calling property I'm just saving as a version and then I'm deploying it here okay go to the Post just click on S can I see I got message everything the message ID which was visible here this step that is processing message the message get sff first because that was for that particular message from message to message ID changes that ID we just brought the body of the message so the sender receiver system will not know whether we captured from the header whether we captured from the property they will not know they're only concerned about whatever the required body they got that is done whether we're doing with coding whether we with content modifier router anything else they will there will be list for that the only thing is what are the headers they want we need to send those headers whatever the body they want they need it all The Unwanted data if you want something is reusable which is not needed to be sent to theer system then you go for property because it gets expired at the end in the CPI it will not reach the receiver system if something needs to be sent to the receiver system also then you use it as a header of the message that we S as it is we also have the option of deleting this header and deleting the property also at any point of time you can delete it okay okay and here since we are discussing about headers and property I'll tell you one more topic so sometimes certain headers okay this is the opposite way okay now till we are discussing till time we discussing okay we are sending the headers to receiver system we are sending the property but properties is not reaching that's all fine let us think sender is sending the headers in the center of the message okay okay in that case what will happen so by default all the let us send some headers we'll see since Postman also having the functionality I put as country India okay now I'm just clicking that will be right as it is if you just go to CLS this is little bit irritating now every 10 minutes 10 minutes very small very small Tri I'm sending a country name as India as headed okay to Locks cont so now if you see it here you will see the headers cck on header so this http steps okay it's not visible so now the function topic I want to tell you is if you see it is not visible here the header I'm sending it is not visible so why because in the I flow here in the I flow so till now we are discussing about we sending the headers to receiver now we have come to the opposite way so sender system sending the headers to CPA system okay sender is L okay we'll be sending the ID or something in the header of the message you you can read that and maybe you can send in the receiver or you send as an header you do something to the according to the receiver system so how to read the system I mean accept the headers you not to accept the message just click the in the white space so you'll get this integration flow earlier I discussed about deployment status and problems now coming to the first one General and second one the run time configuration we have the option here called allowed headers okay okay here we need to give those headers then only it will accept for example if I give it a star I'll give it as country only I'll show you both country some problem question what did change it was working till now right see now everything got vanished for some reason so we don't need to worry we can just go back to the previous version go here 17 versions are there right since we are saving as version nothing to worry just go back go back to one version back you'll get it our development will not be lost we got everything back yes suppose if you're not doing savings all this things if something happens then it'll be difficult and at the same point what I want to tell you is let us say you are doing save or for an example you are doing something development some critical development changes so you forgot to save and maybe before you save maybe some power issues or Internet issues you C it got logged off okay so you don't need to worry when you open for the second time when you click on edit okay it will ask for a recover option when you click on the recover option all the changes will be reverted I will show you that I mean everything will be saved in the back end but that's not 100% okay example so if you say click on minute okay now if you click on answer it last save as Discord I click it as save do some changes and POS it it show that op see this is for I did the same changes last time I just went as it is back so it will give a popup call do you want to recover the unsaved changes or you want to ignore it okay when you click on recover you'll get all the changes back okay I got the description I just added this one right I got the changes yes so in the allow configuration let me put a maybe some version is supporting so either you can give star or you can give the mention headers so by give Star all the headers coming from the cender system will be accepted in CPL okay otherwise I have to give the comma separated yeah come one come one minute pipe separator sorry pipe separator okay yeah if you five five headers or four headers only you want those four headers to enter into CPI then those four headers separated by a p see any options if you have forgot it just place the cursor on the checkbox it'll give a popup about this one okay forg whether pipe or Comma just place a cur over there it will give you see pipe list from the incoming message to be return in the integration artifact white spaces are not valid entries in this field got it now saving as a version post on send now if you see we got 36 heads all the headers biggest St right everything came the which we gave here has come as it is in the response went pass to CP and came the response all the above head everything came that is we don't use St all these things you see a ining everything came down 15 or 16 all of a sudden all the unmounted headers everything came so not ideally we give the header names here separated by the pipe chica okay so this is how you send a header and prop property sorry send a header to the receiver and accept a header from the sender properties anyway that will be stoed within the CPA system itself until now we discussed about only the constant option let me move on to the next one about this what is this expression so click on edit you are asking me about this Expressions right camel Expressions you'll see here see you have the list of options very clear very big very vast list can you see exchange ID dollar ID dollar body dollar IND body I was telling you only the required one you can give dollar body but most frequently we'll be using the inboard in the help.sap.com you'll be having all these things okay the expression you are asking the library right so here we'll be having all the list of Expressions but these are all very rarely used most frequently used or dollar in body and dollar header. header name property. property name and one more expression is we don't need to remember the first three we need to remember this we don't need to we don't need to b or anything just we can have a reference from Google just to capure the DAT yes so till now I was telling you about the constant now let us go with a variable mean expression kind of thing go to the header go to add I'll put it as time now okay in the constant I'll select it as expression expression means which changes from time to time which is not a constant till now whatever we given was a fixed value now this is something a variable thing in the source value I need to give the expression I given the date expression so dat Ty data type will be Java dot Lang dot string s is capital save as version deploy okay now just go to postman back since it is in the header we'll receive it in the response only go to post man click on send now you see we got 37 just travel up time now if you see yeah will be in the UK time Z 2024 April 7 1052 29 so if you trigger again that will be changed 1050 to 50 okay in the same expression you can edit as per your requirement it's not mandatory like you use the same expression if you see this expression there are many changes if you don't want this however in time you can just simply remove this or if you want like DD mm also you can just change the format also and you can give it there yes yes yes okay as per the format you want you can put and there are expressions where you put it as now plus 5 means like after five days what is the date after minus 5 days minus one day plus one day everything you'll be having in this Library if you see but with a different time zone wonder4 plus time zone if you put plus plus 5 and hour we get our time let's try this click on edit click on ADD [Music] expression you The Source value so here instead of 2 or 53 let me give 5 5 yes save as Sol sorry I forgot to give date and TP so by default we give it as string you can give it as Java Lang integer also by default if you string it cover everything and string okay and then we are deploying it here let fit for this deployment it's deployed at 425 just go to the Post one and click on send get the message just maximize this can you see yes oh something time changed okay different time I think I need to give some correct hours it went to some plus 5 it's going 11 hours I think okay so depending I me just wanted to tell you like default default Zone will be different now yeah default Zone is different from that zone it is it went 9 it might not be GMT yeah yeah wherever this CPI server is SED from there it will be counting correct so similar to like that you can add the hearts you can minus the hearts you can add the dates minus the dates you can do anything the similar camel expression this is one place where you can you can just help. sap camel Expressions you'll get this one all this one you'll be having so minus 2 hours every two hours everything can do but by default the one to remember is these three Expressions Dollar in body dollar header do header name dollar property. property name okay yes and here for an example we can use that property dollar in. body in the content modifier step also I'll show you what will happen the same I make it little more tricky in the property first body itself I'll go to the property so till now we have almost modified the incoming message like we did lot of transation step by step we have added everything now what I'll do see I said you while telling the dollar IND body itself that dollar in. body or property. property name or header. header name you can use at any point of time at anywhere you can use there is no such restriction so now what I'll be using I'll be using the dollar IND body at a property level I'll show you Postman message just for here I will put it as dollar body the data type will be Java dot line Dot let me save it there is one extra bracket square bracket in that Source value okay sorry okay post my message here so what I'm doing I'm capturing the message which is coming from this what is this sender into a property so this message is appended to the mean is moved to the property called postore message so at a later point of time what I do I did all the transformation I did something finally I'm just sending back the same I wanted to do something here what I'll do I'll call that property dollar property dot Postman body Postman message always we use copying it it will create a lot of issues yeah control V save as version and then deploy it deploy so now I'll enable Trace also I can show you clear it's already back to info enable to it's enabled oh go back to postman and click the message Imes go to logs I just want to show the transformation so now this is how the message process now let's go to the first step okay here the first step is this is the payload which we got when we go to Second Step the payload got added with CPA training go to Second Step next step it got added by testing go to the fin Next Step it got added by message ID everything it got added so now what happened now it go to end message everything got removed and we got it whatever the input message that got we got it here so what happens here me this Postman message here you will see at the first step whatever we did it here this body of this message we appended in a property called post Manore message if you see Next Step In The Exchange property just scroll down where is it post here it got added here the body of the message got added to a property yes and this property what we did we called it in the final step as a property here so what happen whatever the message was there till this point everything got vanished only this message got moved to the next step mean this this functionality we use it in the a little bit of complex mean tricky Integrations how to copy the incoming message and how to bring back from somewhere we do all these things but I'm just telling I mean want to show you like how can this body of the message can be called from time back mean from backd message we can get it when the message which was coming here we almost modified at the three steps but at the final step we again bought the message which is present here we can reuse it so as many time wherever you call this Postman message The Source message will come and it there yeah clear right yes so mean single simple thing is so just like you are using this header. header name property. property name you can also use this dollar in. body inside the property also not only in content modare body you can use anywhere so wherever you use it that will come and the incoming message the message which is present at previous step that will come and get appended here correct okay yeah so I said mean this is the two important Expressions which we'll be using so one is for date we will be using the other is for adding the body to a property in in the Expressions these are the two important things yes headers and in headers and properties we discussed about the constant and the expression as well okay two important Source types and the third important Source type is constant is done Express the first the other five we'll discuss in this separate class now we'll discuss about the xath okay are you aware about what is xath and what is XML no okay I'll show you what is an XM see XML is nothing but a predefined it's data format format of the data you talking about XML yeah yeah yeah I know XML yeah xath xath no okay see this is an XML message you'll be aware that so let me take one iteration I'll take one iteration I'll just put it here let me close this tag mhm okay so this is a proper XML message okay yes so now so as I said like uh in CPI we deal with message message format in messages in any format but for certain cases certain pallot options the message still should be in XML format only okay only for certain pet option certain functionalities otherwise it will not accept so one such functionality here is in the content modifier if you are want to use any xath then the message format should be in like what is this okay so it's the validation on the in message body that only XML will be allowed yes because you're using xath see xath is nothing but see xart XML anywh you are aware xart is nothing but address of the field for example if you want to I want to get this quantity per unit okay some 10 boxes 20 box it is there I want to get this so what is the address of that field means so quantity per unit where does it is lying it lying under product okay yes slash product product where is product lying product is Ling under products okay so slash products products so one more slash here okay so this is the address of the particular field from where that field is present so this is nothing but xath is nothing but the address of the field where it is lying under got it okay so now for an example okay now we are sending the uh what is this let's go back to postman instead of this I'm just putting a normal proper XML format here I select in text I'll go to in send okay I got it here okay I'm getting as it is because I call it property I'm getting as it is now my requirement is to I want to read a particular field I want to get the output as 10 boxes 20 K outside okay so I want to read a particular field value so let us five or 10 or maybe you're having 100 fields in that one I need to read a field value the field which is present at this particular level I need to bring that particular value outside so in this in our case for our training purpose we will think I want this 10 boxes 20 bags as outside I mean in the output mhm so for that what we do we go back to the same content modifier only we select as xath maybe I put as output only okay here I'll call if an xsd is loaded that's a different case since we have not don't have any files now I will give the which I prepared here products product and quantity per so just copy this contrl C put it here the same data [Music] type St okay let me save it as a vers click on edit and the body instead of calling the Postman message now what I'll do I'll call this another where is that output property now you understand why we are calling output yes why why we are calling properties yes yes yes see now if you're using as in header we can also use as in header also but what will happen this message will go in as a header also all the uned thing will go to the Target system but when we are using as a property whatever we are using they will not know see in the Target they will be getting this value let us thing they'll be getting this value in the Target they will not know whether we have used it as a property whether we used it in header whether we brought it some coding they'll not know anything but if you use it as a header that will replicate in their system then they will question why are you sending the body of the messaging header also it is unnecessary so that is where property plays into comes into picture going to cont modifier 4 property. output save as version okay and then deploy it go to the post man click it failed with error if there is any processing error in CPI we will get 500 error okay yes normally if 200 200 okay 200 is for okay successful 21 is for created 43 authentication 44 unauthorized 5 means within the CPI if there is any error we'll get these things go to message processing got failed and expected found name we not know where it F we got something but we will not know where it has fail the same option what we use we enable the trace and then we'll track back track okay just enable the trace again just refresh it you will see that Red Envelope now just put that Trace now you can see in the message Ming Al it is it is failed we not understanding where it has failed somewhere something has just click on send again now the trace locks will be recorded just click on fi logs Trace oh the first step itself it got F expected name s maybe does I got this see I was telling you right we need to declare the first step or second step all these things so what we did the we declared the content exper in Second Step can you see the output everything we declared in second step we were calling this message but by the time the message we modified the incoming message yes the exper ofage we added this one CPA training so this created the yeah so what should we do we should move this property to The Next Step this property should be declared in the first step first before we modify the XML incoming XML message yes because by the time it reached the XML message got corrupted it got added it's not in proper XML message there is some string to that so go to edit just put that property in the previous step output X okay ja string delete it here because again it create an issue delete it so whatever created here exchange property output contain modifier body okay it is matched now save it as a because now if you see only in the trace we will know where it is throwing the error first step is throwing then we'll know okay that first step something is going wrong when it is two step three steps we'll easily know but when we are having some 50 or 20 30 pallet options we will get an issue okay yes so now let me it go to postman just click on this now did you see we called it as some property and we called it in the body of the message clear this is how mean xar is nothing but whatever we call it I mean in the in the XML I mean the format of the message should be in XML so in an XML message if you want to read any value of a field then you use xath xath is nothing but the address of the particular field okay if you want to call any particular field you can directly call that particular field value and you can assign wherever it is required constant if you want to give fixed values you give the constant if you want to give something as Expressions then you give it as expression and uh if you want to call any particular field value then you go for X path clear till now yes okay so and in this expression we have one shortcut I'll tell you that also here you go to the xath click on edit in the output of the message so now if you see we have given all SL SL slash certain times it'll be tricky okay we need to find all these four SL five SL all these things the levels third level fourth level fifth level so instead of that okay if you're pretty sure that there is only one such I mean the sequence is occurring then you can simply give double slash it will work I'll tell you instead of giving this giving completely like this you can simply give it as like this just remove everything before and give one more slash it will directly search for the field and get that value of that field value okay I'll show you that this a simple shortcut mean I'm explaining both uh standard procedure and uh shortcut procedure also sure I mean this can have little bit of disadvantage sometimes I mean 99% it will work but the other one will work 100% when you give the full slash okay but when you want to work very fast just give double slash and you can move on okay you'll get the same output on see C on S you'll have the same output output will not get changed okay so this is about the xath on in see where depending on our requirement when to use x when to use expression when to use constant we'll be using it so these three we'll be using most regularly constant expression and exper and the other three Global variable header local variable number range property we'll be using whenever is required okay header and property at least I'll explain today itself it's not required not that mandatory but still I'll explain what is that at least I'll show you what is what okay so for an example in the body of the message okay let me delete this so you are calling the output as here okay output is coming something like this so what I'll call I'll call this property as an header mean here header and property is nothing but you can convert from a header to property or property to header you can do vice versa this is these are very rarely used but we have this future like calling an property from an header or calling a property from an mean calling a property from an header or calling a header from a property both ways okay what use I'll go to header here I'll create something called I'll put ABCD something instead of the output file what I'll use here instead of the property I'll give the property name what was the property name which we are calling it here some output output right just calling the output going to content modifier 4 and the the header I'm giving the output value so property name is output so that output property will be now a change into ABCD header okay save as verion okay so when you get this error I'm telling you again something has missed at particular step you got into right so when you get like this just click on the white space yeah white space go problems it will tell you the variable name not defined in row one of content modifier step four just go here property okay this one I not declared one yes I'm just added it and not declared it just click on this delete delete it first level of check will be here second level of check will be at the deployment screen third level of message processing will be message monitoring screen three levels now it is deployed go to the postman click on send you'll be having the same but in the header of the message we can go and search for that ABCD something can you see the property came in the uh the screen got stuck actually okay let me reap it yes yes that ABCD mean till the property was not supposed to reach the target so suddenly we changed our mind it's a complex I flow so suddenly we Chang my mind okay we thought okay let's send this property to the receiver then instead of changing everything from the beginning at the end you can just call the property in a header so that will be sent to the receiver okay I mean these two are easy that's why I'm just telling nothing major functionality here just you can call one in the other call a header in a property or call a property in a header okay you can closely observe what I was doing so here I already declared a property called output that particular property I called it in a header message I source typ as property so whatever property is coming you just change it from output property to ABCD header okay same thing something I would called in a header whatever called I call as time now as a header right so here what I do yes I'll call it in property I'll go to property here I'll go and call it as head I'll put the value as times now here in I'll put as now okay okay save as First Data type got missed what has been missed okay okay now if you see in a header we are calling a property in the property we calling a header prop call deploy okay let me go back and enable tres now go to postman click on send okay anyway see the property we got it in a header the body we got it here now let us see the header which is we went in the the time now right we we cannot see it here the time now what is here we want to see it in the property since property we can't see it in the receiver this one this one we call it in the property let us see it in the property let's go back here go to message processing first one go to logs click on Trace we can click on the final step you'll see the properties since after that it will not move go to the message content exchange property we call it this now you see this particular header time nowed to to now property means apart from using this constant expression and expert we can also use this header and property like calling a header from a property or calling a property from an header these two will be rarely used but good to know like if if at all there is a requirement we can interchange between these two we can just swap from one to the other this about this header and property for other things I need to tell about this variable concept local variables Global variable number range this all about here now if you go to the monitoring screen see earlier it was 0 0 right yes now you'll be having some good amount of messages like 19 messages three failed 16 sucess okay so apart from this it this tiles this row is not a constant one you can change according to your requirement for example if you see I can click a plus symbol I can put like in of past I put it a past minute okay I can create my own TI you see one more got created I don't want this retry okay I'll just right click I'll delete it okay I can these are called tiles you can rearrange these tiles as per your mean okay I want this past minute messages here okay 19 here or 16 somewhere you can just move the curses and just arrange as per your requirement got it okay mean based on maybe you're monitoring monthly basis or weekly basis you can just put it here the same applicabl for the deploy screen only these two these two rows not all the things all the things are constant only the first two rows be it monitoring or be it the deployed Integrations if you see here deployed Integrations starting error something error is already there I'll put it as starting okay I'll create a new one more tile these are called tiles you can arrange as reement yeah if you want you can delete everything okay you want everything you delete it we just put only one hour you can just remove everything and create one Ty this will also be there okay no need to save anything automatically it to be there as per your requirement you can do it correct in the last week we discussed about mean all the fundamentals and basics of CPA on top of that we about monitoring stuff the how to enable the tra info mode and what is content modifier what is header what is property corre everything and we also discussed about the three camel Expressions dolling head header and property name and we also discussed about this uh the content modifier about expression constant exper and a header and property five we discussed we are left with another three Global variable local variable we left with that sorry the so let me create a new I yes so we'll move on to the further topics so let me create a new HTTP just creating a new I so mean by any doubts regarding the last sessions uh no uh current as of now uh okay somehow I also uh need to practice a bit more because I don't get enough time most of the time actually goes into the configuration of the suit yeah but now as it is configured so might be next week I will cover each and everything okay I'm just creating a basic I flow with the HTTP adapter which we discussed in the last so that you can just use the post man I just deploy this so that the Endo Ur will be generated okay now let's go to postman this was the one which we discussed in last class yes for this one everything is same only this endpoint URL will be changed so as I said in the last class so for the endpoint URL it will be like the host name SL the adapter and SL the uh ID which we have given here I have given like test you see now I given SL test53 so only that particular thing will be changing yes just see here this is the one if you see test 553 the earlier Endo was test 55 okay so I'm just adding three last okay which will trigger the integration even though there is no data okay here I'm already sending data I'm just removing that okay yes this was the one we discussed in the last class so now let's move on to the next topic which is called converters here in content modifier mean I just just checking what are the things I discuss constant is done expression is done Global variable local variable and number range these three are left I'll discuss the other topic okay these link with the variables topic I will discuss these three in the next one okay as parking the other one and when we move on to next one like converters if you see if you click on the converters as I said in the last class so we do not have any specific format of the message to be processed in there is no fixed format okay data should be only in XML form there is nothing like that there are some limitation for few pet options like for message mapping or for for few I mean here and there few pilot options are there where we use this uh I mean data should be only in XML format other than that nothing I mean data can be in any other format so basically we deal with three important formats one is CSV XML and Json okay okay Ed we use for B2B scenarios we'll discuss it later but most commonly used data formats are CSV format XML format and Json format let me take an XML to Json since we have an XML see I have just go back so I have this Json XML okay let me give it one more iteration so it be easy use this let me put two iterations so that it be easier to so this is XML message copying this and putting it here okay the input will be a XML message now our Target is to convert the incoming XML message into a Json format so no need to write any codes or anything directly we can go to the converters here the converters we have a list of converters the last one we selecting XML to Json converter as soon as we connected this one just drag up in the processing you can remove this name SP mapping it's not we not using any name space as of now so the Json PR separator which we are using it me in the Json message whether we want colon semicolon pip semicolon space so we will not change anything this encoding also will not change anything I'm not adding touching anything we'll just see what is happening see it's very I mean XML to Json is very straightforward uh I mean par option just you can just keep drag and drop if none of the parameters are changing not checking nothing I'm doing here I'm just deploying it okay since we are using Postman we'll be able to this the request as said earlier the bottom we'll be seeing the response as CP is basically a synchronized model so whatever the message reaches to end we'll be able to see the response in the postman tool itself it's deployed successfully going back to post and clicking to send can you see I have got a valid Json message yes I have not did anything so mean we're not reading the file we're not doing just you just if it is a valid XML file we just drag and drop this XML to Json you don't need to change anything so you'll get a valid XML file Json file I'm just putting in a not for better understanding you'll get a value Json file so for suppose yes let us I don't want this products okay I I don't want this root tag I need this root tag to be removed so we have an option click on edit just check this one nothing that's it suppress Json root element means we are suppressing the root element in the Target system I mean after this target after this mean the output file we are suppressing the Json root element so I'm just saving it deploy deploy go to the post man and then click okay can you see earlier two products were coming now only one you're getting yes so basically when we want to convert an XML message to Json message we can directly convert like this without any using any mean supressing or pressing so in case if there's one header and you don't want any headers in the Json message the root element me to say you don't want any element so Karen Karan one thing uh so let's say uh in this output the Json output we want to eliminate the square bracket also this one yes then you need to do replace you need to go with groovy script to replace you need to do it manually so in that case write The Groovy script yeah a small groovy script to replace this square bracket with a space okay in case I mean to add your question like if you see we have we were getting two products in product again product under that we are getting the data like this yes for removing the first Top Root element we have the option in case we want to remove the other one also then we don't have any standard option in CPI then we need to go for gy okay REM as per as per my experience now so there are lot of such third party tools available in the market whose apis or you can say the the the format the support doesn't contain the scare bracket in that so that's why see not only that I'll tell you one more option I mean continuation to this we have one more hidden option also if we good we'll move on to next one say in same topic only same conver only we have other option because in apis if you remember like we have the options of converting this it's a numerical we don't want double quotes and for we want it in Array there are a lot of things correct correct different things so for that most probably we'll go with grovy script and in CPA also we have one option it will be hidden here if you see we have only five options here name space separator encoding supress and streaming but you this one you'll get one more list okay converting the Json element XML elements to Json array okay okay if I select all you'll just see what will happen MH see most of the times mean we will forget if you see like we will not know whether this option is there or not unless until we check that okay only when you check this streaming then only this option will come into picture I think we have to select all first yeah oh sorry let me deploy I'll show what will happen in SEL all and what is specified ones because the as you said like whenever we're posting to the apis we do all the mapping we go we get the message but whatever the AP people they give the structure it should be exactly 100% matched so in that case here and there we will be using this group R script and also these conversions now let me show you trigger this message now now if you see like all the fields has converted into an array yes since we have converted this is some rare cases where every field should be an array in we get yes I just put it in like this like each and every field has been converted so for suppose okay we doesn't want like this we want only a particular field to be an array okay we don't want all these things then we can go we have that option also that is called here and convert XML elements to Json array instead of all you can select specified ones not only one you can give the list if you want to give the list you can give the list same in the earlier class I said you about the xath right the address of that particular field yes yes so similarly we use the same concept here just go back so let us think I want an array for supplier field okay all the supplier be an AR so I just copy this productss products product and Supply rate okay I'll add one more field if it's required I'll add unit price also okay now I'm saving it see when such things happen you can just reload it okay there is nothing to report to sap so very often you'll be having this type of popups okay like error while saving the new version or you're unable to edit the particular AOW contact your system administrator all these things you'll be getting even in the real time you just reload it everything will work okay I mean the other popup you get is like you're not able to access this you do not have the authorization to edit the iflow please contact your system administrator so you can ignore such things just click on edit it will I mean reload it will work okay just saving as a version and then deploying it go to PO now just click on S If You observe here only the supply R and unit price has been converted to string put very proper Json only these two Fields has converted into array the rest everything is normal okay yes in real time the most common thing apart from this array the other thing will be like to convert whenever a numerical will be coming you do not want to send the double qus okay the very common things when we are dealing with apis so go to this one this is the output right when we deal with certain AP the most common thing will be if you're getting text double quote should be there if you're getting this single numericals we don't want to put a double quotes for that we need to send it as yes yes this is the most common thing we use it in see it in the real time so we have stand mean gry script for that like when we convert this into a string automatically all the numericals mean we will be converted like this that I will tell you in the grovy script class okay okay just telling you like this for an example API expects like this whenever a numerical for a certain fields we have like five fields or six Fields so for all those fields we don't want to send double codes then that's a doable task in CPA h and for removal of anything also we do use small grov script to remove any particular name or something we can just remove it as required so this is about the XML to Json converter like converting a standard XML message and here the prerequisite is XML should be in a standard format okay we have many third party tools to check whether the XML message is valid or not for some reasonml is not the converter will not work agreed agreed okay yes now let's see the opposite version of XML to Json let's come back like Json to XML we'll see let's take our XML message so Json message we'll take the Json message the same Json message will give the input now and we'll try to get back our XML message okay so just zo in this going back to again converters now we discussed about XML to Json now we will discuss the opposite way like Json to XML converter we have the third option XML to so J on to XML converter just placing it on the connector this tracker in the processing if you see earlier we were having suppress root element in XML to Json we having suppress XML root element but in Json to XML we have ADD root element I just remove this as of now okay we'll just do the standard one first so now if you see the the Json this is Json message which we are going to C so this is the separator Json separator is colon okay we need to just verify that ideally it will be colon only 90% of the cases in case if semicolon or something other used we can select according to that okay the standard Json message we have the colon itself we're not changing anything just we have dragged and draw the Json to XML converter and we are saving it and then deploying okay we just and deployed js on to XML converter going back to the postman so the same message mean instead of giving the see if you give the XML message I'll get error just click on send I'll get 500 error okay because it if you see the error I won't show the errors also because it will expect only the Json yes sir yes so whatever the converter we are using we need to make sure the input will be in the respective format only if you give giving XML to Json the input should be in XML if you're giving Json to XML the input should be Json input in the sense input here before this also many pallot options can be there but the moment whatever you're giving to the which enters to this converter this pallot option that should be in a valid Json format so you can see 5 find error means it's 100% like it has failed in CPI due to some parameters okay and you'll be aware about 41 42 like 43 errors all these things authentication authorization issues everything so ideally if you're getting any 500 errors it is failed during the processing in the io that is CPI error okay yeah so now let's go back and remove this XML message and bring our Json message which got generated initially just putting it here and then clicking on send now if you see we will get a valid gxml message the message which we gave initially we got it here can you see exact message we got we got back yes okay so here if you closely observe I mean I'll just deviate little bit from the converters since I have the rated topic here okay let me complete this root and come back so now coming back to this add root element so now we have this products product okay so for suppose so let us think we want to add one more root element at the top to match the structure so then we can add the root element and we can give the name of our choice it's not mandator like it should be root we can give anything okay see instead of root I'm I get CPI training something okay even if I give that it will work now what will happen CPA training will come at the top just keep it see by default now we have two okay if we not having this root element then we can add it so whatever the root element we want we can just uh check the is ADD root element and we can give the name of that root element which we want in the Target message Target message is an output of this pet and now if I go back let me see is deployed 34 it is deployed go back to post man and click on this can you see we got one more element on the top yes okay so whatever in just reating in XML to Json when we giving XML to Json we have the option of suppressing the root element just the opposite way when we use this Json to XML we have this opposite option of adding the root element okay just ult just adding the root element we have and the root element we can give of any name of our choice it can be if you are not changing anything by default it will be added as root okay yes so this is about XML to Json and Json to XML converter see now if you see here so the message which we gave was this one see this was the one which we gave okay but when we did the opposite conversion we got this one it is also exactly same but the only thing if You observe is the first XML tag is has been added so whenever you do this conversions this tag gets added by default okay whenever you're using the splitter massage mapping or this converters like converting to XML this XML tag gets added automatically okay and there will be certain systems where they do not expect this XML tag they say like okay I do not want all these XML tags can you send only from products okay can just send only this one what this is the expected don't send me any XML tags so in the earlier days we were using grovy script to eliminate this tag also but now we have a standard option to remove this XML text okay okay now if you just click on edit but this will also create certain times issue mean this XML tag also the front the top one now if you see like just drag a little bit down at the bottom you have this XML modifier Okay click on XML modify place it here I'm not changing anything that to the same Json to XML message I'm just adding this XML modifier go to processing and here if you see I have this option remove XML declaration just check that box that's it just save as question now just go back now if you see it's sped in one minute I'll just show step by step I just remove this F let's go to processing don't want this it's deploy now I just want to show you in the trace so let's go to first one click on send okay now this is the message which we got now if you want to see how it has progressed you can go back to this message it's completed here just go to Locks click on Trace you see the message which has progressed from here to here you want to see the input message just click here the message which is coming from just click on payload so we are getting the message in a Json format just move to the next step we converting the Json to XML converter in this format you see we got this XML TXS here till here we got so now in the next step we removing that XML tag and the end message if you see those tags has been removed successfully yes okay so what what uh what if we have the XML to Json converter converter and in the input this XML header is coming yeah it will take no not an issue see CPA in CPA by defa one advantage is either you send the header or you doesn't send the header it I'll show you right away because we have all the all of it ready now since this is clear this is clear right yes either you send it header or not you don't send the header it'll by default treat it as an XML message input it will handle automatically if you see I'm going back this XML to Json your question was to this XML now I'm sending this XML message yes I'm not going to change anything in CPA just processing yeah that's it not changing anything ideally it will take if you see while sending while sending the input it will take by it will read by default the system will ignore only the output we'll be facing this issues issues in the only if the external system says okay don't send me this XML T then we will be removing but in CPI even though you now see let us see I'll remove this tag and send I'll get the same output only system will automatically recognize whether you send the XML tag whether it doesn't same it will treat as an XML message only mean if it the data is in a proper XML for yeah clear right because for this case even now few people will be using this uh groovy script to remove this tag like using a replace all script they'll be using so no need to use that so we can just go to this XML modifier step and just click that checkbox it'll be deleted it will automatically remove the XML text because in the converter which we use frequently we have mean four converter which use frequently CSV to XML Json to XML XML to CSV and XML to Json out of four three are very straightforward like as two we had discussed now only one we have little bit of challenges the first one csp2 XML I'll come back to that in the last point now let's move on to the next one as of now we discuss XML to Json and then Json to XML both converters has been done now moving to the next one which is called XML to CSV since we already have the XML message now let's see how we are going to convert the into CSV converter okay now if you see here we need to tell the system from where the fields are present under which particular element the fields are present so the fields are present under products under product we have the list of fields so we need to give here/ product and SL product okay path to Source element nothing but X path we need to give where these part these fields are present okay and these fields are present under products product okay so just selecting so now we have move on to the third topic for the day which is called XML to CSV converter just clicking on slash slash slash I'm not changing anything sa as we can check this one I'll tell what it is now go back to postman just maximizes and click on set you see I just put it in your notepad you'll get like this a proper CSV format this will be very straightforward okay and but here we need to be little bit aware so we need to tell the system from where the fields are present if you directly it will not work so we need since it is two level we given two level if it is three level fourth level also we need to tell from where exactly you need system needs to read the file so that is what I have given here so path to Source element here so I'm telling the system okay the fields are present under product so under top of that I have products so I just brought the system here and asked okay these are the field names and these are the field values and that is what I have got it here okay so here we have one more option here include field asms as Since I checked this one I got the field names everything if I remove this I will not get anything the headers will be removed just saving it and deploy deploy and see the field names got removed by default if you want only the values we can get it if you want the field names and values also we can get it yes okay but the conversions it is very simple it's straightforward the only thing is we need to I mean in this in XML CSV mean the other first two was very straightforward this one a little bit I mean this thing we need to know if in case I change this one it will not work I just show the negative case as well so in case I gave the wrong PA to Source element deployed long click Send and not get anything why because it is searching for the fields under here under products so under products see notepad here it is searching for the fields at this particular at this level so at this level there is no product no Fields so that is why they getting BL so system is not trading anything so we are getting a blank CSV file so we should be very careful when we de mean the option is simple this one the option is simple but we need to be careful like where exactly the fields are there we need to give that respective XS path okay while doing this XML to CSV converter okay these are all not that much required parent elements all this and not aware okay I move on to the next one so the last fourth one is very important but little bit tricky the opposite way so now let us think there is the other one we got this output right now if you get this output and if you want to convert into an XML message this is not a straightforward one I'll tell you why this is still limitation in CPI you see go back like converter now I want to put the first one now I want to convert the opposite way if I want to convert the opposite way from CSV to XML here it will ask for a XML schema okay yeah it will ask for an XML schema for which we do not have any standard option to generate in CPA even as on today we are dependent on third party tools available only mean either the target system people or the external system people they need to give the schema or if they do not give let us think now our job is to okay we have this forget about all the things which we discussed till now now let us focus on we have this CSV message now our job is to convert the CSV message into a proper standard XML format okay so these are the field names and these are the field values so this is what we have so when we we want to convert like this we do not have any standard option in XML to generate the schema till date SMB has not released any future such like that so we dependent on the third party tools only so for that what we do contr c either in our test package using the CSV generate a c sorry directly go to Google sor csv2 XML converter first directly because this is a limitation with CPS mean is not released just place the CSV format convert CSV to XML we did like this okay just copy this now go to other tab now type XML to xsd converter to generate the schema I'm telling just using third party tool I converted the CSC to XML and using another third party tool I'm just generating an this schema okay and to generate the schema you need to have this at least a sample XML so I've given the sample XML the external system they they need to give us if they're not giving then we should only be able to generate it so this is the schema just putting it just copying this putting it in a notepad but this all this will not require this is third party website name so I'm just removing it as language XML okay so now we have the list Fields here if you see un all the list of eight fields or 10 fields we have it here and if you you see here properly so our job is to get this products product under that we need to get the list of fields But Here by default uh I mean since we dependent on the third party tools by default it got added as root and row okay so we will be changing it here just copy this products and replace it here changing as product and replace it here so in this schema we are defining it as the to element or the first root element will be products under that we'll be having product under that we'll be having the list of felds Okay so this schema will be where using here there will be two places where we use this xsd schema more frequently one is in this CSV to XML converter the other will be extensively used in the message mapping in message mapping schema is bread Inver okay even there we do not have any option we depend we depend completely depend on third party tools okay and this schema I want to tell you about two things one is this type either we can declare as Boolean string decimal all these things for each and every field that is one thing and we have so normally we call it as xsd in hi you're there hello hello yes yes I'm there only see in this xsd I want to tell you about we call it as xsd few people call it as schema few people call it as xsd xsd is nothing but external definition okay yes yes yes PR call it as xsd so in xsd we have three things one is to declare the field names so if you want to change the field names I mean basic knowledge like you want to change the field names you can give the field list of fields here fields and field names and if you want to declare the types string buo Boolean everything you can declare it here okay and we have one more thing called maximum occurrence and minimum occurrence okay so by default it will be I put it here we have thisan in detail I'll tell you in the message mapping class but since the topic has come just tell you okay okay we'll be having zero and unbounded or zero and one for example okay just tell you so what is zero what is one what is unbounded means if we are giving zero mean on there be three iterations 01 these three things will be in the xsd most most frequently okay okay so for an example now I can just give like this after this one I can give minimum occurrence is zero and maximum occurrence is unbounded okay this means this field can is an optional field where it may come or it may not come and if it is coming it can come infinite times also okay okay if it zero means it is an optional field so for example if I put it as one it means it's a this field is a mandatory field so if value is not coming to this field then the message will fail it in CPA as mandatory field missing so these things I'll tell you in the message mapping class so since a topic has come telling so whenever you're seeing an xsd you need to look into three things one is the field names and the level where we are getting everything second thing is what is the type here and the third thing is minimum and maximum occurrence okay see by default it'll be like only for one or the other field it will be there but if you want to add you can just add it in a sequence minimum occurrence and maximum occurrence you'll be having lot of sample xsds online you can just download any xsd and edit over there okay okay zero it is an optional field if it is one it's in a mandatory field if it is UN bounded it can come it mean it can come any number of times I mean minimum is not required in maximum if it's unbounded it can come any number of times if it is one means it will come only once okay so as of now if you see why it is unbounded means it has come more than once but that is why by default system has taken unbounded because we have given product two occurrence so that is why the system has taken by default as unbounded okay okay if it is more than once it is unbounded so now this is our XML schema which we prepared it online just putting okay this XML schema just open a notepad past it here and save it as a xsd file converted out xsd all and putting in the I think the screen got freezed I'm still on the notepad++ screen okay let me reshare wait one minute just a minute yes yes stop on we had here because it's one this the CSV file which we had we need to convert into proper XML format so now you can load it here so we have two options to load the file one first option is I'll show you can directly load it here see you select here if you're having anything it'll be here okay if you want to have anything here you can go back you can upload for anything to upload or download there is one place called references okay earlier I said you about deployment status and problems in the references you can directly upload anything mean all files mappings everything now it's our schema right click on schema xsd browse converter add so now our whatever the schema which we prepared for converting that particular schema is present in references so references is one place it's like a library like whatever the external file or any mappings or any scripts anything will be present here this is one place where you get everything all files which has been stored in the as part of the iflow so now the schema which we prepared it is here now if you go back to the flow I'm telling you again deployment status I covered about deployment status problems any uh compilation errors references all the files xsd schemas scps everything will be here okay okay now coming back to the converter in the processing now if you do the select you'll be having this option we uploaded over there right we'll be having this option here this that is one option whether you can upload there or you can upload from directly from here also upload from system you can here also both ways either upload from there or uploading the reference both will be reflecting same got it so now here again we need to Define so what is the path to store the target accs so just like the opposite way we declared there we need to declare it here okay what is the root parent element everything so just declaring it like this SL product this is not a mandatory field not required field separate in CSV just I'm putting I mean the file which we are doing is a CSC file type it is a comma separated file so I putting it as comma separated file I not changed anything just save as version okay and deploy go to postman so now our input if you trigger this you get find as usual why because we are using a CSV to XML so the input should be a CSV format so now let's copy the message which we got earlier contrl C just deleting this message putting it here we're giving a CSV message and just click on send we're triggering the message we got the put let's see what we have got let's beautify this and copy this and put a notepad click on language click on XML if you see there is a mistake has happened we got three iterations we got tag we got the products product and product so one thing is system has misread the first line also as a Fields this one it has misre this this line the first row it has misre as the field values because will not know we will know that is but we didn't tell the system that whatever present in the first row is a header so we have this option exclude first line header okay cck on edit just check this one I'm changing anything just deploy okay I'm going to postman now click on send SM now we got proper format which we sent in the initial yes so from we started from the XML message like we gave this XML message we got the Json we gave the Json we got back the XML message and again we gave this XML message we generated this CSV format we gave the CSV format back and we got back our initial XML message from where we started okay out of the four converters the last converter which CSV to XML that is little bit tricky because we should have some basic knowledge on the xsd generation everything okay what where to edit what to do we need to know like all this field names parent element root element everything we need to know like in case you want to add any names also because I have okay I have this schema ready in my system so I for the next interface I need to do something mean I need to have one more integration where the field names are little bit different so again no need to go to third party to generate everything you're having a little bit of knowledge on the xsds you can edit it here itself edit or add or do any alter modifications you can do in the existing uh xsd and you can validate it you can check the xsd validation online you can validate once they Pro have a proper xsd or the schema you can do the conversion from a CSV to XML format only for the csv2 XML we need the schema for all the other three converters it is a straightforward job yeah okay this is about the converter topic the rest Ed converters I'll tell you later okay uh why this warning is coming which one in the converter there is a watering symbol just click on here just drag up if go to problems it will tell it will not accept CS sttp sender adapter may not pass text message to CSV to XML con okay you can ignore the wars not it is telling about this adap that it will not pass CV message just ask for the information yeah yeah no no we will have many going forward like while you do the development also if this coming you can ignore it not an issue if any errors you you need to fix it otherwise it will not work it will not deploy also okay okay okay this is about the converters I said you about the XML modifier also so here I want to okay let me start with encoders and decoders so before going to encod and decoders I'll just tell you about one small script which will be useful and going forward regularly I just go okay I'm not deing telling you about the gry scripts so I just want to tell about only one particular feature so where will be it will be useful when you practice also so in regularly like I have explained you about the trace functionality like we need to enable the trace within 10 minutes the message should process all these things so let us think okay in real time it will not work out like when we will not know I mean the data can be in it will be in a real time basis we will not know when the data will be when the sender will be sending the message but we need to log it and we need to see it in CPI what sender what we are sending to receiver at least that that's a mean for support basis for Buu purpose it is required to see what we are processing through CPI in such cases we have a standard script which is called logger script which will be used in gry you can use it anywhere any number of times also so if you want to use the gry script I'm not going with gry script topic now I'm just telling about only one script just go to here in the scripts select The Groovy script and place it wherever it's required okay just place it like this and if you see here the plus symbol just click on create if you click on this create by default a standard syntax or standard script will be generated by default it means you're not starting from the scratch by default the one script will be generated like what to do with the body mean I'll I'll remove the commented lines so it'll be more easier it's more of python syntax yeah if you see here we'll be having three faces one is for the body one is for the headers one is for the properties okay okay so this script you'll get it by default whenever you create a groovy script by default you'll start it from here so I'm not going since I'm not I don't want to deviate from the topic I just bring the script okay okay so this is the script which I plac it here this is again what it'll do I'll just show you so it will check if the message I'll just show you what mean you'll understand rather than reading about the script I'm just saving it as a version deploy it okay it's deploy now go to the postman and triggering the message again okay I got the output as usual mean I didn't do anything I got the output now if you go to the message processing here see as usual like we have the fail start everything we are having now see the earlier message here we have only status properties logs and artifacts details what is St properties logs and artifact details but if you go to the latest message which I triggered just now you'll be having one more tab called attachments okay if you click on attachments you'll see the payload here itself payload what the what was the message at that particular point of time in short what I want to tell you is if you're using this logger script it will log the message at the that particular point of time if you're using the logo script here it will show the message what is present at this point of time if you're using it here if you're using a 10 step 15 Step as many times wherever you want you can use it okay if you see I'll show you how it is there it will show you the message complete message here the message which was visible in Postman it is here it doesn't mean like you need to use it at the L itself you can use in the beginning First Step you can use you can use the fifth step you can use 10th step 15th step so wherever it's required any number of times you can use it okay okay so what is the advantage means in the real time for the support purpose so whatever the message sender is sending whatever let us think the message got failed in CPI so we are now sender will not know what message he has sent he we he be set uping up an automated job so then it will be very tough to debug without knowing what message has hit CPI so in such cases as soon as the message enters CPI we will log it and mean ideally in the real time the moment it enters CPI we will log it and the moment we send it to the Target we will log it these two cases we'll do it mandatorily in in the day-to-day life when it enters we log it when we leave again we log it okay in between if it is required we will use it okay but I ideally this logger script is also not recommended when we are using this large amount of data for example we are processing 5 MB 10 MB 20 MB of data it is not recommended to store such data unless until it is required normally what people will do they will set up a if Els condition uh during this hyperare period or till the moment till the time this integration is stable they enable this loger and once the integration is stable and you don't have any processing issues they can we can disable the loggers logger the script okay I'm not deviating from the script it's just a script so whatever the attachment name is there we're just putting it here we're just printing the payload what message message contain which is present at this particular point of time as an attachment the where you can see it here you can see it in the message processing you'll be having an additional tab called attachments and that is where you can see it okay okay this is about log me because since while you practicing it you can make uses of that instead of enabling the trace everything if you just put a logger we can just remove that mean ignore the trace option now moving on to next one encoders and decoders we just see it so basically for a security purpose we have these four types of encoders and we have four types of decoders this is very straightforward is very easy also there is much nothing much to learn but as a practice I just show all the four so we have this base 64 encoder we have zip compression we have gzip compression we have this m multiart encoder so we don't need to worry about what algorithms everything has been used these algorithms has been used in the back end so we do not need to worry on that so example you see I I just want to encode the message this is just purely based on security purpose I'm just ENC if you want to encode based on B 64 just drag and drw B 64 you do not have any other option if you want to change the name you can change it encoding something okay it will be name will be changed that's it okay you can just save it as a version deploy okay now if you see click the same message I'll get a encrypted format which is at least something in readable format some alpha numeric I have got it so the only thing we need to be keep in mind is when a external system be a sender or be it a Target it's telling okay what are the encoding mechanisms you have we need to be aware like we have four encoding and four decoding mean just opposite of that okay yeah so you'll be aware like if the sender has been encoding the message in Bas 64 we need to decode it in base 64 only we cannot use the opposite algorithm okay okay same thing if you see here I'll use the opposite one see in the encoders we have this four B 64 zip compression gzip compression M multiart encoder in the decoders we have the opposite one okay correct do the opposite one here again okay I'll just use one more GRC to just show you the output in CPI itself see this script you'll be seeing each and every I flow so just a copy paste I'm just putting a meaningful name to show you see now if you see I just put name the script as logger well if you see anywhere in the standard anywhere as log it means like you don't have any other functionality it is just logging the message as an attachment okay okay normally people put it as logger logging anything even in standard I flows you can see if this is if you see this thing no need to open and see the script it is just like logging nothing else deployed going back to the postman check that now I got a proper XML message if you want to see like how the basic4 work encoding word how the decoder work I have enabled the attachments right so now if you see the latest message in the attachments I'll be having two things basics for encoder basics for decoder if you want to download download it here I want to if you want to see directly in CP itself you can download means it will download to your system you want to see it here double click here all the attachments will be present followed by tab just close it you see the me the message which we sent got encoded into base 64 encoded like this and post it here we mean the message is present here is in encoded format immediately we decoded using the same similar encoder decoder just see here we got the message back okay okay so what I want to by using this Dogers we will know at least mean whereever it's just like giving keeping checkpoints so wherever we want to we are okay at this particular point of time I want to see the data in the real time also we can keep the checkpoints as loggers okay okay so similarly I'll just show on a brief thing the other decoders and encoders also in same way just do remove this just removing this go to encoder Bas 64 is done and zip compression so zip compression here normally we do is zip and gzip whenever we are dealing with I can so huge files so let us think we don't have any transformation in CPI or there are transformation but okay people they're telling they're placing the files I mean a 1GB file or let a 500 MB file they're placing in the they want to process through CPI okay it is very huge so we can recommend that either you can zip the file or gzip the file so that file size will be reduced just like we do it in the normal day-to-day life but send the S right so similarly The Source people they can zip the file and send we can do the opposite like zzip the opposite way we can uh decompress it okay we have two options like whenever dealing with heavy files we can go with either zip compression or Z zip de compression yes yes yes and here one thing we want to tell you mean since the topic has come so let us think we are using such scenario that Z decompression or compression let whatever you're doing you should do the moment it comes to CPI itself it means can tell you okay we have splitter topic that I'll discuss it later so whenever you're dealing with any heavy fil here processing will happen block by block okay it's not something like you put the splitter like you're splitting the message and sending you cannot use it at the third step or second step something if the message wants to come from here to here the whole message will get loaded here and then it'll come here okay right logger also you need to The Next Step even if you're using splitter for example they're telling I'm sending you one lakh records in one a b Bunch so we'll be thinking okay I have a splitter option I'll be sending in Thousand records of chunks to the Target so in that case you cannot use logger or any other thing before that okay okay whenever it's dealing with a large size of messages it is recommended to use less transformations in CPI okay now I'll just use the opposite way it's not like all the Transformations I mean we are going to do it in CPI so it's about mean Mutual discussion between if you're going with an S1 project between theer and V or the target system I use zip compression I just OPP Ed opposite way just use the deployed the message I'm send you'll get the same output I'll just show it in CPI itself the latest message at 430 go to attachments so earlier the message was at least in a proper Alpha numerical value here it is not even readable format okay it is completely SCP I mean uh G you ignore the names it is a sorry only zip we are not used zzip zip compression here we have here we got the output zip and zip will not be even in a readable format also yes yes yes the same thing I show you Z also so for all these things we do not have any option it is just like drag and drop and use it the only thing is we need to keep in mind okay these are the four options that we have it in CPI other than that there is nothing much to learn on this I'm using this ZZ and decoder as gz compression if you just place on the line it will be automatically adjusted that is one thing I want to tell you one more thing either you just click here and select the option any any option I'm telling just select the option directly and place it on the line it will be automatically adjusted if you're feeling discomfort you can just select here and click on this plus symbol okay so type for the one which you are expecting so you will get it in the bottom just select it there it'll automatically get inserted okay sa and deploy go to the postman s the message got processed same as usual just going back attachments can just ignore the names I have given the same names this is G compression and G decompression so G compression it is not even we not even getting any Alpha numericals it's completely in a not readable format there is non- readable format because even if you copy and put it in Postman it will not work so that is why I'm just using it in same iflow if I copy this and put it in the postman request message it will not take yes yes it's not I'm just using the opposite way the opposite way the message got decompressed G decompressed okay I'm telling you again four options we have whatever the option we are using we need to use the exactly opposite algorithms the leftover one the last one M here we have little bit of options and not using anything means completely high level of algorithms decoder deployed going into post C on send okay go to the suit message processing just refresh the latest message is at 432 go to attachments okay this message you'll be seeing sometimes the encryp the certificates all these things right if you're aware this format okay just opposite it got deom okay decoded okay so we have the other things like encryption decryption pgp encryption decryption that we have like sharing the keys all these things the encoding mechanisms we have four encoding mechanisms B 64 compression sorry Z compression ZD compression Z sorry B 64 zip sorry B 64 zip compression gzip compression and M okay so this are the four typ and here one more thing when you're practicing or in the real time so let us think when you develop you develop like this okay it's like all the cursors has just like up me just move here and there so you're facing difficulties in arranging like all these lines okay so recently this has come very recently hardly this year only so what we can do let us say we are having like 15 or 20 options it'll be it will it's a timeing task like to put it in a proper readable format okay yes then just select this integration process just an alignment okay either you can align horizontally you can see or you can align vertically I'm just clicking this automatically system will okay you don't need to worry on that so you do whatever the way you want you you keep up and down you do whatever the way you want and the final step you want to disign everything see this option very recently earlier we were not having we were facing lot of issues like arranging this Arrow it's just like can say pretty printer kind of thing yeah exactly if you go for vertically it will put it like this okay vertical horizontal option is better than this yeah if I put horizontal it will just select like this yeah so normally when this process will be useful means in the real time we'll be selecting to many receivers like we'll be having lookups we'll be doing five calls six calls everything here and there D will be little bit it will be not in a proper readable format and we don't need to spend time just click here on the iflow just this one you automatically it will be arranged okay so this is about the converters and encoders and decoders it's very straightforward I'll tell you about the filters now filter is mean converted decoders with nothing to learn much there nothing much but filter is a very good topic we need pay attention you see here single topic but we have lot of uh things to be learn under that select filter just placing it here so filter the name it suggest it is used to filter the data whatever the XM the message which we giving so for filter I'm telling you the input should be in an XML format okay okay there are here and there there are some pallet options where uh uh because since the earlier told P was in XML right so here and there there are par options where the input should be in XML format now you'll understand okay I want to filter data but my data is in CSV what I will use before the filter I will use CSV to XML after yeah sary sending CSV but I want to remove some records do something some operation on there but I don't have XML so what I'll do I'll do like this put a converter put a converter csv2 XML before yes the same XML to after so my issue will be Sol sending input to XML immediately I'm getting XML output I'm immedately converting to CS correct okay likewise mean convert as I'm telling so now let's move on to the filter topic quickly so in filter we have only two options but two options are very much important one is the xath expression the xath expression but the xath which I was telling you and we have the value type we have five or six value types okay the whatever the XML message which F you that will be filtered based on the value type which we select okay I have a list of fields which I have let me bring that it how they prepared it let me take a simple one and then I'll I'll select me I'll show you all the permutations in combinations now let's grab all these things since is not a deploy so let me take the input as simple one node okay I'm not changing anything I'm just sending node value node uh Karan just wait for two minutes I I got one call yeah okay fine e yeah here I just put all the permutations combination I want to show you just selecting test note okay this deplo oh I'll explain you in detail one minute yeah yeah please take your time yeah so now if you see so we have five value I'll just explain theoretically and explain practically so we have five value types so basically starting from node list node string integer and Boolean so apart from filtering the the me the complete XML so we'll just focus on first as how to filter the data okay so for an example if you want to get this note okay discontinue or something this particular this completely is called node the list of all nodes is but node list yes okay node and node list and if you want to get any particular value so I want to get the value of discontinued okay so it is false or let say I want to get the value of product name product name is called chai so this is a string so if I want to get that particular value then I need to go for string okay Follow by respect to expart expression if I want to get any particular numerical value then I need to select this integer inte okay if I want to check whether this particular node is coming in the field or not okay I want to check okay this product name whether it is coming in the incoming XML or node whether it has come or it has not come I want to check then I can go for Boolean what will happen if that node exists it will return return a true if the node doesn't exist it will return return a false so this is the just basic things I will show you all the permutations this is the basic thing what filter can do but when we combine the filter we have lot of other options because that's what I'm telling next to content modifier filter is also more important thing which we use frequently in real time people call it as content filter or filter so we have five types starting with if you want the list of nodes it will be node list only node you can select as node want any string value string integer value integer if you want like to check okay node exist or node doesn't exist you can go for Boolean if a node exist it return true if it doesn't exist it will return false so as of now I have selected as node okay maybe you just conf put it as CP okay just an example so here if you see I'm not just put it as I'll get the complete note okay let me deploy it first I'll explain with basic example then I'll show you like at least two examples how to filter the incoming example sure so now I'm just giving taking just a oneliner note so now if I just click on S if I click on node I'll get CPI CPI this this this node I think doesn't exist in the XML I gave for node it came work if I not some I did some mistake it didn't get deployed proper deployed and now I'm getting okay I not but let me why CP I'm not this should also [Music] work it's going back yeah working maybe it didn't get deployed properly so now if you see if I'm selecting node I'm getting the complete node okay now see now I'll not change the xath anything I just we'll just play around with value types now the same thing if I select a string the output will be coming as value one if you see selected a string say it earlier we didn't deploy properly that's why it didn't reflect so now instead of node I selected a string string means it will select okay for this node we telling bring me Val string of the node scpi okay then it will value correct the same thing go to edit node is done you integer also it will work you the integer deployed click on send sorry integer it will not throw it will not bring any because it is string given string yes you give it as one you s you'll get it as one point okay now I said if you not L it will fail here you'll get the same thing because the list of notes is only this one you'll get the same thing I I'll tell you about what is node list in the next example and Boolean it will just check if the CPI node is coming or not if the node is coming it will send the out the output of this Boolean in CPA not only here in message mapping also anywhere the output of this Boolean will be true or false here we will not deal with zero or one in Boolean we will be dealing with with true or false the output of will be true or false if the not exist it will return return a True Value if it doesn't exist it will return a false value okay so let me deploy it's true it is true for example now I'm CP CPI putting sap false I get as false because CPI node is not coming over there I can check if there a mandatory check I can go and check whether that particular node is coming or not coming I can check okay let me select as node list and deploy means you can just practice it you can just create multiple permutation and combinations and see see now I'll create one more permutation I as API we'll see what happens it is deployed and go back and send this one it fail because multiple things are there no list will not work okay I will save somewhere wait one minute this is done integer is done Boolean is done node is done and for no list let's CU this input you have I'll change the input value here we put CPI now we're giving a list of notes okay not I have some little confusion I'll tell you okay you're clear about the rest right node integer string and Boolean hello hello yes yes I'm there only yeah yeah so no list I'll show you because no list is the one which bring all the list of values I'll show you another example I'll bring a complex example little bit now so sharing it somewhere yeah yeah one minute yeah so this is the XML which I prepared just and got it on a proper XML format let check it okay here we have different tags okay if you see we have three records one two yes yes the first record we have success message the second record we have error message in the third record we have again the success message now we will see like how to get this particular record outside like we want only the error records or we want only the success record all these things also can be done using the filter option okay it's not only like only node list node all these things that is only just Basics and fundamentals so in the real time we will use the filter to remove The Unwanted records okay so to remove The Unwanted record so in this case if you want to go with okay I want the records only with me this one uh whatever the message status is equal to success can you pull me all the records with that all can you pull me the records only the records which are error which are having the message as error can you pull me the that particular records so those things we will see it now just go to CPI and remove this one not one go to so we are filtering the error records now yeah we'll go to the error records okay error records me ideally we need to get only second iteration the first record and the third record should be filtered out correct okay I have given this list here just I'll remove the unwanted space first it's going back to postman I'm typing this here so what I'm typing here under root if you just see here here I'm typing under root under the record I'm searching for the world called word called error so wherever error has been made only that particular record I'll be getting it outside okay so that is why I given root record in the record I'm searching for error okay and here we need to give the value type as no list because there may be multiple nodes just save it as version deplo I'm going to the postman clicking on send can you see we gave the list of Records but here in the bottom we got only one record which is having the message as error correct so the same thing we can just add one more record to this we'll see just go to here thing we'll add one more iteration instead of B2 b b 1 B okay data issue just adding we get one iteration right since we have given not L I'll just f show one more so just increased the input message now we are having record record okay one and two two it's copying the message putting to go to post man okay con sent now you'll have two records yes data isue this one this is the one and this is the one which I have added so in ideally what we can tell you is so using filter we can get the records what mean just now telling you right we can remove The Unwanted records so let us we processing only the error records we don't need to worry about putting our Logics or coding or anything just use the filter use the appropriate xath everything lies with the xath what we give here appropriate xath and select the value type the respective value type c uh one one query here let's suppose I want multiple filter conditions so I have to uh Place M multiple controls over there filter filter option yes you can give uncond conditions or conditions everything you can give so we have to add more than one uh filter uh components yes you can give like for an example under record error and Status equal to e or something like that you can give it I have think I have taken that script just like this okay thep then the other one I tell you okay okay okay okay okay so so filter condition will be one only the expression will change value type will be one now if you see under root record earlier I just put one bracket right in in that bracket I'm just putting text equal to S and text is equal to SK both okay got it text this one under log under status for the status I'm checking whether yes or we having any other things okay see we have given this yes e and some I'll give it okay can you go back to that yes expression okay just just hold hold the screen here record okay log text okay done done done understood yeah under root record just for the log status yes here under the log under status we checking the this this one this particular thing status field whatever status whenever status field is equal to s or status field is equal to SK and we put R condition just pull that out if you put uncond condition we will not get anything I'll show you that also just deploy it just go back to postman on sent fit some syntax show be let's see what to say yeah this course when it copy it online it will change it now it should work going to post yeah now you can see status yes and Status s SK we got both the records out the most common I mean error and CPI which we face is so whenever we getting uh mean when you refer some blocks or get some data and when you see for the human a it will be exactly the same a common mistake here is they you see single codes right so and it will be different uh code that will create an issue just delete that and you give it manually okay it will work not only in do we do we have the Escape sequences also in this like if there is any string in the XML template with apostrophe s in the then single code will be treated as like uh it it will be it will be take we will we have to take that at a double two times single quote just to uh just as a Escape sequences I didn't get your question sorry uh can you please uh go back to this um um XML input yes so uh yes so now just go to postman just go to postman okay and just uh this is the input now input yeah see this is input yes so in input let's say uh there is uh down down uh can you go to that ska SK yeah yes so let us Suppose there is s apostrophe k k s single code K now I have to search this thing that will be little bit tricky if you give here sometimes it'll fail but that we have some reject expression this single code will act as a termination of the string now yes yes that's what we have some reject expressions like uh that's a little tricky and complex one so we search it in the Java libraries only for those scripts regular Expressions we call reject scripts okay rejects will be used yeah rejects expression okay I understand like for this one what were you're telling so earlier what I was telling you the I mean one similar thing I'll tell you this one this one if you see if you want to we when we use this replay script you want to use the replay script for products it work straightforward but when we want to use this one this open and close tags it will mislead the system so again the slow those slash this single quotes double quotes all these things will come into picture adding extra text so the same way now whatever you're telling like if you give this s single code K yeah it will not work okay again we need to search online like how to overcome this like this done done some other script we need to give and we need to search it okay you save it as a version okay okay so this is all about the filter and just reiterate filter is very much important so node list it will give the list of nodes the same thing if you give node it will not work okay node means only the particular whatever the node you giving it'll bring that particular node and if you want to bring the value of a field which you are giving and if it is in a string you can select string it will work if you want to get in any numerical value you can select as integer and in case you want to check okay I want to check whether any particular field or the no has come or not whether the particular node has been existing or not in the XML message you can select the Boolean so the output of the Boolean in CPI will always be either true or false it is not zero or one it is only as true or False only okay got it that is one thing and keep in mind the input of the filter should be an XML message only you cannot send any other message we have other pilot options also whenever it comes I'll tell you so as of now it is filter and message mapping and the splitter also okay so these things should be sorry splitter you can send no you just uh take that word back so filter and message mapping needs uh the XM input in an XML format of only yes okay any other pick for okay I'll tell you about simulation since if you are practicing now apart from this logger you have one more topic called simulation as a high level I'll tell you today so if you want to do any simulation see by default it will be disabled you can see let us think I have deployed everything so by default it will be disabled in production also you can do it you do the simulation if you're are doing simulation it will not pass to the Target system okay so whenever doing the simulation if you can just select this option select it here and select it here this will be I'm telling select here start select here end and you can just select the if you want to give the input value whatever the post man you're giving you can just give it here itself contrl C contrl okay and you can just simulate this function here itself testing the I flow I'll just close it so if you want to test I mean since it is practice classes I'm just telling you every time we are triggering the message but whenever you're developing so you don't need to do all every time trigger the I flow or that is one case or in the biu cases uh you don't need to do if you want to test in production inad of sending from the source to Target you have let us thing you have 15 options or 20 options pilot options I mean to say you don't need to you just want to just uh narrow down the error we need to find out where exactly it is going wrong so so that cases you can test block by block or in a series of blocks simulation just telling how to just checking you want to say test the simulation can see by default this will be disabled either in edit mode or normal mode this will not be enabled if you want to enable this just select this tip of the arrow Mark the connector just here you'll get this option options Okay one minute just select this tape one minute okay this is the start point of this you can see simulation start point just click it here and wherever you want to stop the simulation just select it here not only here in between you have many other options also just select it here and just put the simulation endpoint okay and if you trigger it it will just uh come mean just check the simulation mean filter want to give the input value just if you see the play button right just select it here thir step here you give the input value here okay whatever you're giv in Postman you can directly give the input value here okay so now I have given the input value and now if you want to run the simulation now if you see the option is enabled in the top that now I'm going to run the simulation you want to run the simulation it is here okay if you want to cancel the simulation you can cancel the simulation here so I want to run the simulation just clicking on run so this will tell you whether you whatever you're giving filter whether it is working or not it's not like every time you go and Trigger from Postman or every time you trigger jlow it is just like time waste okay we can just focus on the filter so now our filter whatever the input we have given it has given the output it is green means it is successfully processed now we can see the output here itself in the body we can see what filter has dat okay this is without disturbing the existing I flow not even in edit mode me even you don't have the edit axis also in normal axis only you can just see it all the functions are performing okay it will act it will act as a debugging for the yes exactly this will be a very helpful feature this was also added in last year I think one year back they added this simulation option ear we are not having so you can test block by block or in a series of blocks and this simulation uh it is restricted for 10 blocks at a time 10 pallet options so you use 20 pallet options you cannot put simulation for all 20 at a time it will not accept so at a time you can test for 10 in a sequence 10 pallets or 10 blocks 10 pet blocks or pallets both are same okay if you use content modifier converter all the massive mapping all these things you want to test you can test from 1 to 9 or again from 10 to 18 likewise you can go on testing one by one so this 10 is the limit for trial version only or in the production in the real in the real in the real also maximum you can go for 10 in in a sequence okay okay and here if you see you can add the head and properties also see certain options now if you see for filter we have directly declared the value yes we can instead of yes we can give dollar property do property name okay okay instead of yes you can give dollar header do header name so then we need to send the header and property otherwise the simulation will not work in such cases what you do you go and give the header and property here whatever header name header value property name property value okay then you can simulate using options certain pallot options will require the header and property certain will not required so wherever it's required you can give the header and property you can simulate you can run the simulation you can clear the simulation if it is green it is Success if it is red then we'll know okay at this particular point of time my message whatever I'm expecting it is not coming in the right format okay okay any other questions I'm done for the day uh no I think uh we have covered to summarize we have covered the converters starting with XML to CSV CSV to XML Json to XML and XML to Json and post that we saw this converter sorry uh the encoders and decoders B 64 encoders decoder gz compression gzip D compression gzip sorry zip compression zip Z compression gzip compression gzip D compression M encoder and M decoder and I explain you about the loga script which you can use it in the day-to-day practicing like how we can see it in the attachment of your file there is no limit for any logger thing like you can use wherever is required but ideally when it moves to prod the SAT phase you can use it when you move to the production phase you can minimize the number of loggers and whenever it's not required you can disable it and not recommended to use to store a huge amount of data in CPI using logger because that is why they have given it as an optional future otherwise they would have given C would have given as a standard future to save it as an attachment since it is not recommended they gave us an optional using groing script and post it I have shown you have discussed about the most important option called filter starting with node list node integer string and Boolean depending on the X paath and the value type we give the output of the XML message differs the input of the filter should always be XML only okay and I shown you about the simulation also without deploying the I flow even in production system also we can see the simulation from one point to the other point so the number of pilot options in simulation will be is limited to a maximum of 10 pilot options if you want to do for latest thing 100 options go in a batches of nine or 10 okay we in the simulation we also have the option of giving the headers and properties if the pallot options which we are simulating requires a header or property [Music]