CDS MADE EASY | SAP MADE EASY | Skillshare
Search

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

CDS MADE EASY

teacher avatar SAP MADE EASY

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      Introduction

      3:38

    • 2.

      Free System Setup using CAL and GCP

      123:55

    • 3.

      Normal CDS, Parameterized CDS, How to call CDS in Program

      134:15

    • 4.

      Association, Association with PATH EXPRESSION, Different types of Association

      117:19

    • 5.

      CDS Table Function and Inbuilt Functions

      96:56

    • 6.

      OData with CDS using Annotations and VDM(Virtual Data model)

      121:12

    • 7.

      VDM - Transient Provider

      114:38

    • 8.

      VDM - Consumption View RSRT

      71:56

    • 9.

      HANA text search

      90:33

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

33

Students

--

Project

About This Class

This course is about CDS - Core Data Services the most popular code push down Technique in SAP ERP world.

Existing ABAP knowledge will be helpful to excel in this concept.

This course has been designed keeping the novice developer in mind.

This course covers all the important aspects of CDS from Scratch to Advance.

This course will help you to understand the various use cases of CDS.

How CDS is so powerful in the current era.

Why we should go for CDS and what is the standard supposed to be taken care of while working with CDS.

VDM concept is the heart of CDS.

VDM has been covered in very much detail considering the real-time scenario.

CDS Performance is also nicely covered with real-time example in detail.

Highlights -

1.  What is CDS?

2. Some Basic Examples of CDS?

3. Why CDS is the most popular code pushdown techniques like AMDP, Information model etc.

4. CDS Vs SQL View

5. Annotations, Mandatory Annotations, Power of Annotations

6. Different properties - like Buffering etc.

7. CDS Vs OPEN SQL

8. Parameterized CDS

9. How to consume CDS in Report

10. Association - A powerful Concept

11. Different types of Association

12. Cardinality

13. Adhoc Vs Exposed Association

14. Asociation Vs Join

15. Path Expression

16. CDS - Limitation

17. CDS and OData

18. Table Function - Use and Limitation

19. Virtual Data Model - Different types, usages and benefits

20. Transient Provider

Meet Your Teacher

Level: All Levels

Class Ratings

Expectations Met?
    Exceeded!
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

Transcripts

1. Introduction: Dear learner. Thank you for showing the interest in learning about CDS, Made Easy. Welcome to the course about CDS Medici. And I'm going to introduce about myself by cell phone. Girish Kumar having ten plus ten plus years of real-time walking experience. I've worked in MNCs like Accenture surprise to you, and so on. I've worked into implementation project one migration, one rollout and to support projects and journeys going on is still a half trend, 500 plus the students online and offline. I'm a founder of a biopsy ritual community. We are every day 20 plus students are taking a benefit on daily basis. In this course. After having, you will be able to do the system setup for CDS prac, practice for free. You will be able to Create and using CDS effectively. You will be able to understand the concept of VM and it will be able to know how to create and use the VM concept, that is the Virtual Data Model efficiently. You will also understand the concept of harm or tester, searcher. And it will be able to know fear to use how to use effectively and leverage the power of Anna, creating and using LV, IID, LV, a Baptist river idea, integrated data access. This concept is based on the Hannah that also it will be alarming and how to use that. It will be understanding CDS in the port, how to consume, and then how you can generate the OData service from the CDS imaging, annotation, and how you can register and taste over there. This also you are going to learn some important highlight from this course. You will be able to understand the how you can set up the system and how you can get the free access for one year using SAP can and GCP. What is normal CDF for each parametrize city is what is the association. It will also understand this season. And there are different types and then cardinality association with the path exploration we're going to understand. You will understand about annotation. You will understand that VM and different types of EDM, private interface and conduction. The most popular medium type is basic composite and conduction. This also you are going to understand in detail. Apart from that, you will understand how you can generate the auditor service using the annotation, you will understand the concept of transient provider embedded analytics that you will understand how you can improve the CDS performance. Then different types of analytics search in explained in detail you will understand. Then, of course, you are going to understand about the NVIDIA in detail. Okay? So this is going to be all your core course, hightlight, basically this and this, both two slides is representing about the core satellite. So thank you so much for showing the interest in this course and see you later in the course of the first session. Thank you. 2. Free System Setup using CAL and GCP : In our last class, we have seen in detail about the MDP. Okay? Now, we will be looking into or must awaited topic. That is the CDS code data services. That's the very important topic from interview for interview, as well as it's the most widely used, mostly used topic in the real time scenario as well. So whatever abab on hana we have this scarce discussed. The most important thing is the new opening sequence and the other one is the CDS. And then maybe the third priority we can give to the MDP. Okay. So you're going to look into the CDS today in the detail. Before going to the CDS. There is one more topic in this MDP that is like how to handle the exception in the MDP that we will quickly look and then we will go ahead to handle the acceptors. And we know that we are having a root class that is known as the CX underscore road. So this is the ops oriented concept and how we handle the exception in the opposite way that we'll see here what class we are going to use to handle the exception. There can be several class which can be used to handle the exception. But this one, which I'm going to show you, I generally use in order to handle the exception, the program in our last class, what we have created each MB, 2803, I think. Yes, this is the program. So suppose here, if we have to handle the exception, we are going to call this method, right? This is, this is the, this is the method we're calling over here. This is the MDP method call. This is the MDP, a method call. This method when we are calling, it's giving the data into itinerary score. Finally, for our OAE scenario, that data we are displaying with the help of this particular program. So here we have the chances to have the exception. How to handle this excerpt from their normal way only we should know that class name. Even that is not necessary to remember support at runtime you are going to get the exception. You can get the exception class from the dump and you can use that one, but it's better to use here itself. Why to wait for the dump. All right. I'm just going to run this one. And you can see that here we are getting the data. In case suppose some error comes over here. We can handle the ships and like this. So we can use the try Catch and end tray. In the catch block, you will have to use the class called C underscore, MDP, underscore editor. You will get here the multipolar. We are having the multiple exception. Okay? So this is the one which I generally use. However, these all can be selected. You can see so many 1234567899 exception can be handled. But at least we're supposed to handle this exception. So cats CX underscore, MDP underscore error into the and data, a low underscore exception. And then we can write this exception underscore e exa control space and get text. Okay? So fullest stop. This much. Are we supposed to know? This is how we handled accepts and in the hopes. So fully stop here also, we are supposed to give, activate this one. Now it is activated, okay. Giving the data. That's fine. Now we can go back and Let's go to the topic CDS. But sometimes we feel that if we have to practice the CTAs or MDP, we don't have the system. And how to practice those scenario. If we don't have the system, how to practice the scenario. So recently I come across some tutorial or some blog from where I came to know that it's, nowadays, it's easy to create your own system. Almost free. Almost free, or even a 100% free. At least for CD is practicing. So suppose if you want to practice for the CDS. If you want to practice for the CDS, you have the system free. How you can get your free system that we will discuss in the first half an hour so that someone is not having the system to practice. They can go and create their own system and they can practice. Okay, so let's go to the other slides and we will see how we can create the system. Okay? So how to create, how to create the SAP NetWeaver instances? To practice. Of course, this is having some limitation, but it's good if there is no way to get or if some financial issue is there. What we can do, we can use this approach, okay? Something is better than nothing. So following that approach, or we are just discussing these particular things and we will see how we can do this one. So the Foster, you should understand some concept of the cloud computing. So to create the system for practice, what you require, you require the proper set of hardware, right? You require the proper set of hardware. You require the proper set of hideaway, and then you require the proper set of software. The software will be installed to. The software is going to be installed to this. Where the software installed to this, a hardware, right? So we should have the hardware. We should have the hardware, but our existing system is not that much copy, right? We don't have the means octa core CPU. We don't have eight core. We generally having the four core, six score or something like that. We don't have the powerful CPU. So we require the powerful CPU, right? We require the power, full CPU. Require the enough RAM. We require that enough RAM, at least 16 GB to force to this particular the software, the native weavers software. And once everything is hardware, software, the database instances also really quite right? So we also require the database which will be installed onto this hardware database. Maybe we can consider this database Azure, the software component. We can put it over here. Under the software, we must require the NetWeaver about mover is about 7.42 or 7.50. Let us suppose the latest one, then we require the anti-terrorist. One thing we should know that the CDS is independent of database. It is not necessary to have in the back-end as a hana database. For the CDS for MDP, of course, we must have the hana database. As of now, a MDP only supports the hana database. Mdp only supported by the hana database as of now, maybe in the future release of the SAP, this limitation will be overruled. And maybe some another DB also will be supported. But the CDS, CDS is supported by all the database. Cds is supported. Cds each supported by all the database. It's an open technology like open secret database. So here you can have any database if you want to practice only the CDS. And I would recommend you to practice at least the CDS because 95% interval question will be from the CDS or 90 per cent, okay? Question will be there from the CDS only. So we should be strong enough in the CDS because of its reusability. Many places it is widely used, whether it is a Fourier meant, whether it is a very famous stops or audit or services. If we have to create our, if you want to huge from the BW side, right beside, from so many places, the CDS, even in our web app also, we can consume this series. So because of its reusability. Because of its reusability, as its name suggests, Core Data Services score means the central component, right? Because this is the central component, it can be used in many ways, in many places, in many different ways. Okay? So this is the thing we should know why I'm talking all this point, because the free server which we are having for the database it is having, if you support, you are going to choose the hana database, which charges will be more, okay? It's charges will be more. But if we're going to do some, another database, like site-based, okay? So here also you can practice the series, but the charges will be list, will be released further. Sybase, Hannah will be having the more charter service will be having the almost half the added. And we have to practice the CDS so we can go for the service. Okay. Now you might be thinking I was talking about that. It will be free. Okay. Then why I'm talking about the charges, right? Why I'm talking about the charges. It will be free for us because we are going to have a work-around. That work around is nothing. Google Cloud Platform is giving the $300 credit. Towards that credit, we are going to huge, okay, That's right. It is going to have the free, it, it's going to have the kind of free for us, but it's chargeable, going to consume the amount from the Google Cloud Platform credit, which we are going to receive once we activate the account under the GCP Google Cloud Platform. Google Cloud Platform. What is that? Google Cloud Platform is nothing vector. There. You can go and you can create your own set of hardware. You can create your own CPU, you can create their own ramp, right? So if you might be knowing about the cloud computing, we have discussed in our maybe second or third class that we are having a SaaS software as a service, PaaS platform as a service, right? And then different types of services. We are having this platform as a service. We are going to huge, okay, we are going to use PrEP form. I just service from here from where? This Google Cloud Platform, we are going to use the Google Cloud Platform to Google Cloud Platform, gcp, for our hardware purpose, okay? And for the software, we must require some software. The software you also they are in the Cloud. This decision also they are in the Cloud. Okay? So that cloud is their SAP Cloud Platform. Okay? So actually, SAP has given a one system where all the software is installed in the Cloud. Okay. So this software they are providing on some three months trial basis. We can go and we can consume for the three months. Again, after three months, what we can do that you can create some new Gmail account. And from that, we can create some another server for just our practice proper. So at least for three months, we don't have to think. And the one which we are going to use this database, Ibis, You don't have to bother about the three months. It will be for permanent. Okay. If we're going to practice only the CDS in that case, you don't have to bother about the three months renewal. But of course, if we're going to use some hana database or some S4 hana and stuff kind of things. You can use for three months with one account For cannot free, completely free. So this software we are going to get from the SAP, from their Cloud system. Okay. So this each water that we're having. So Kyle system, we are going to get this software and we will install this software into the hardware, onto this platform. So we are going to install how we can install a way require a connection between both this cloud system. Okay? You must have internet connection available with you. Then only you can use a Cloud platform because everything is there in the Cloud. Everything is there on the internet, okay? So you have to follow some certain steps and then it will be able to do so. Let's go and follow the steps. What we have to do. Firstly, we set up our GCP Google Cloud Platform, and we'll get it in our account, $300 credit. For us to know how to set up the Google Cloud Platform. So the foster, what do we have to do? Whatever you have the system ready with you, whatever the Gmail ID you have. Maybe you can use the existing demand ID or you can use the new one. Okay. So I will just show you with my e-mail ID I've already created. I will just show you the steps, how you have to do. So. You can type it over here in GCP, Google Cloud Platform login. And just click on this cloud.google.com. The first one. If you already have the female automatic cellular devices, come in. If you want to see their limitation, you can go to this particular link, cloud.google.com, three dogs, GCP fitter or what they are. Dcp3, Google Cloud free time. You can read out what they are going to give it a where the tire it will be four fungus. We lost her voice actually. We can't hear you. Hello. I'm good. The benefit, it will be losing your money from that credit card. Okay? So you'll have to, but if you are sincere enough, it will not going to lose anything you are going to save, okay? So you can see that you must have to provide a credit card or bank detail to set up the billing account and verify your identity, but you won't be charged during the free trial. But the one which we are going to install here, actually we are having the Windows Image. And for the Windows image, we must have our account upgraded. So for that purpose, actually, you have to upgrade your account. Fine. So here, your free trial credit applies to all Google Cloud resources with the following exceptions, you can't have more eight cores, Right? You can't add a GPU to your VM instances. You can request a quota increase for an overview of. These are the things you can create VM instances that are based on the Windows Server support. If you have the Windows Server, then you will not be able to create a VM instance. And this is one limitation you are having here. I'm not sure. But I have created my Windows Server by giving my credit card details and By upgrading those. So I need to check if I have been charged. So I will conform this particular thing. Steady only I have created, so I'm not sure if I have been charged are now if I have been charged, that I will choose this one because they have created an image on the Windows server might be I might have been charged some amount for those purposes. So I'll confirm this one. But the one thing is sure there are so many system of which you can use without Windows Server also for your practice purpose. Okay? So you can use in that case for free that also after it. Once you will having one idea, you can try yourself. How we can do this one, Let's go and start how we can do. Okay. So let's go to the console over here will be getting one option. Console. Can you please mute from your side if you don't have any question? Some questions here. Now, we did find Am I audible? Yes. Okay. Okay. Fine. So good. Okay. Fine. Let's go here and go to the console. We'll have to go to the console. We'll be able to see all your GCP related stuff. The fastest step over here, what we'll have to do. Okay? So they think now it's a better voice. Some internet issues there. So what actually have to do? You have to go to this Google Cloud Platform. And here you can go to this dashboard. And you will have to create the project, okay? But you have to create a project first. So here my first project it is showing, okay, Do one thing, go to here, my first project, click over there and click on New Project over here. Okay. So we can give the name of the projector, CDS practice, and then the location and knowledge not required. I think underscore is not permitted CDS practices and off, click on this Create button. Okay, so a serious practice project is now created. The second step, what we'll have to do that you will have to create one service account. So for that purpose, you will have to come to this market, this volume and admin, and come over here and you will see one service account option. Click on the service account. And here we will create one service account, create a service account. So the service account is responsible for connecting our Kyle system with the GCP system service account detail. We can give this account detail something like CDS practice I'm going to give service account ID is CDS practice service account description. Also, we can give something over here. Click on this Create button. Here, you will have to select the role. Okay, the second step you must do require some roles. So what are those important role? Have to add it over here. So go here and type to filter. We have to add the three important role. One is the Compute instance admin, compute instance side. When this one compute instance admin B1, this role you will have to add, I'll just selected this one. Another role, you will have to add compute network admin, okay? You'll have to add computer network admin. Okay? So compute network admin. And one more role you would require, that is a compute security admins. Have to add this one. Computer security admin, computer security admin, this one compute security admin. So we have added three-year-old computing stands, Edwin computer network admin, compute security admin. And then clicking on this Continue button. Once you click on the Continue button, then our service request with the service account will be created. And now what actually will have to do that? Grant access to the service account. That is fine. We have created. Now click on this Done button. Here you can see that our service account is greater. Now it will have, what do we have to do? You would like to connect with this service account, right? This is the this is the account through which your hardware will be connected with the NetWeaver software for the installation purpose and on. Alright, so how it will be connected, there will be a key, that key will be generated and this key, we are going to be huge in the Guys system, okay? For the purpose of installing the software over here. So create a key, ones will create a key adjacent type. Let's select this Type and click on this Create option. One, dish on file will be downloaded. So I'm going to, you know, surveys and GCP service account key, GCP service account key, click on the Save button. And that has been, the key has been generated. Now, what you will have to do, it will require some machine over here, right? What are the muscles you require the machine in form of CPO, informal for the hardware, hard disk or something like that do require the methane. So we are going to locate that machine. We are going to enable that and saying, Okay, we also require a machine to manage our resources, right? We also require a machine to manage our resources. Will do again, we will go to this Cloud Platform and we'll go to the, this particular tree line is here. We'll click on this tree line, I am and Edwin. And here we will select. Here it will be having the option called service organization. I am. Okay, Just a second. Okay. So we can go to this API and services, actually APA and services click on this dashboard. Or directly we can click over here. Because to the API and services navigate. And in order to consume that particular click on this enable APIs and services. In order to enable that particular CPU. And all will have to enable the APH so that it will enable the CPU and all. So the first one which we are going to enable is the Cloud, it restores Manager, Cloud Resource Manager, APA. This is the first one. Select this one. And once we select her, after this click on this enable. So Cloud Resource Manager, APA, you get enabling. Okay? So it has been enabled. Again, you can see that that Isabella PA option is coming over here. That means it has been enabled. Now, one more API will have to enable. So again, maybe I can go to the dashboard. The thing is that you will have to go to that particular API from here also directly, we can search and we can go, which is not necessary. To go from there and then from here and here it is not directly. We can start it from here. Okay? So the another one is the Compute Engine API, Compute Engine, APA, Compute Engine, APA. This one, this one. You can see that it's a DIN is like it's photo a Laker CPO. So with the help of this, we are going to know, I will select this one and we, we enable this. So now here our work is done. Our work is done. Meantime, what we can do that we can go to the file system, Kyle dot. They will have to create one account, del.SAP.com over here, go here. I already have the account created over here. To login into this. You will have to create your own owned. It's very easy to create. You can go ahead and create your self. It is not created. I'm going to login into my existing account, which I have already created. So it hides my account is already there. That's why I'm able to login into Kaldor tcp.com automatically available to login. And here I've created a study, one instance, okay? And you can see that I have suspended it. So you must have to suspend you for not going to use it. Okay? So now I'm going to terminate this one so that I can show you because with one account, it will not be here to use the multiple software. This is a software which I have installed restarting the same software is the a stands for the Sybase, is c stands for the service database. I'm going to terminate this so that I can show you once again. So you can see that it's terminating. It may take some time. While activating. Also, it will take some time. So let it does it work. Meantime, I will show you in Kaldor tcp.com. You have over here the multiple option. You can see the first option is a solution. These are the free solution provided by the SAP. That means these are the free software. You can install. The free software, licensed software. This is another pirated one. Alright, this is a free, genuine software you can install in the GCP hardware. Can install on GCP hardware. So you have the multiple system over here, what you will have to select over here. You can see the Esperanza if you want. This is a trial version. You can see trial version, so it will be only possible for three months. You can check. It should be three months or at least for one month. It must be. Okay. Here also you can see the S4 hana 1909 if p is 0 and freely activated. Okay? So how to know more about this? You can click on this and it will get the documentation. Once you clicker. Like if you wanted to know how often you will be having that documentation over here somewhere. And we will be having that documentation, this one getting started guide. This guide will help you how you can install, how we can use in the system to that GCP or Amazon Web Services or Microsoft HER. So similar to GCP, we are having the multiple service provider like Amazon Web Services. Amazon Web Services is a warning list one, and having the most customer that is the most popular nowadays, the DCP is also getting popularity because they are providing the free 3010, right, due to that. And here you can see that it's dealing free trial status. Credit and 365 days remaining. With a full account, you will get unlimited access to all of Google Cloud Platform. Right here. You can see I've already given my credit card information. That's why are they able to do all these things? You can go to the billing if you want to see more about your billing and all. So here it will be having the billing option. You can go and check how much you have been charged. Okay. The one which I have already created that is with a different account that is this oncologists a protector or the rate of z1.com. Let me check. You've been charged something. Okay. So the stem checking, having charged, I didn't get any mass is still out on my credit card. Sum this I want to check if something I've been charged. Go here. 1 second. I will go to this building and then we'll check. So this is my billing account. It's active. So till now we do not showing anything to me. Right? You can see that it's not seeing maybe after some time, it will tell you I will share with you if something I'm going to get deducted. But there are many things we can, which we can use free over here for our practice purpose. Absolutely. Three. So what actually I was suggesting to you over here that go to the solution once again. And from here, we can search for the above system. And here you can see that this is for the developer. This is for the developer. This is one. I'm recommending you to use this one. But the problem with this is that you will have to upgrade your account. That means when one year will be Dear, Ms. or when your one year will be completed, our already if 300 will be consumed, it will not ask you for further consumption. But at this point of time, if you don't upgrade, I have not upgraded the different e-mail ID through which I've just shown all distinct here, this bunker Giuseppe take tuner or they're at gmail.com already have upgraded, but here I have not upgraded. Okay. Here I have not upgraded in this. Okay. Here I'm not I'm just going to close this one. I have not upgraded. Okay. So it will it will ask you the option to upgrade over here. No, here. So here you have the option. If you don't upgrade, it will, you know, when you're T6, T5 days will be there. It will be completed. When 365 days will be completed, it will send you by e-mail to upgrade. If you don't upgrade, your credit card will not be charged until and unless you update, your good god will not be charged. But they're all live with this system. You must have to update because it is consuming where? A Windows Server, it is consuming what? Windows Server. So once I will let you know that if it is charging my card, it is not consuming from that $300, then maybe you can start using this one. Because here, the advantage is that it's a list charged, okay? It's the least less charged one. But the one I will just show you. Actually, you can go to this recommended a VM size. And here you can see that which one is going to take? This is the Google Cloud Platform, Linux. And the forecast, we are having total eight cores. So for calls and two cores, right? So still we are left with a two chord. But the thing is that this SAP front-end is going to use our Windows image that is creating the problem. Okay? So it will not allow you to create, it will give you the error. If you try without activating, I will just show you it is terminated now you can see. So now what I can do that again, I can try by creating than this one, okay? So here also get one option to create the instance or directly, you can go to the solution. And here you can, we will have the option to create the instance. Instance. Miss this, this particular software you are going to install to the GCP. Okay, So I want to install this one. I'm going to click this one. You can see that it will give me the error because this service account from where I have downloaded this Jason, this key, each not the upgraded one. Okay. I'm going to create a new account. So the new GCP description, you can give some description. And here we are having the Google Cloud Platform digital file, which I have downloaded over here. The key. You will have to upload it. Okay? So I have uploaded. And once they upload, it will go the further processing. Click on this Upload File actually, after selection, you will have to click on the upload file. The name. You can give some desk name, something like that, or another GCP and other GCP. And this you can leave as it is the region and zone B, this region is the via your cloud storage system is there. Okay, So it is the one of the region you can select butter. It all depends on regional. You also, your charges will vary. You can see that your charge is to shrink the stop job over here. It's asking 0.61 USD per hour when active. Okay. And this is per month when suspended. If you are going to keep your system in the suspended state, also, minimum this much amount it will be charged. Minimum. Okay. If you keep the suspended, if you keep active, you will end up with lots of amount. So make sure that you suspend your system. Make sure that you suspend your system. That's the important. Here. You can give some password. I'm giving some password over here. Must have to give some password. Following these criteria, validating these criteria. And that's it. And you can click on this Create button. If you click on this Create button, it will give some information message click on this, okay? But after some times, it should give an error because my account is not upgraded and you can just selecting some password. You have to give some password and download this one. However, this will not require, but it's asking to download. You can download it. We can just ignore the minutes. Firewall, this one, the VPC network. Or go here, click on this. And then you click on this here. This click on this here. Something, something I'm missing just to wait for a second. Okay. So yeah. So we will have to create a firewall rule. We can give some name over here. Cd is fire wall, something, some valid name, test2. And then the turning on firewall logs can generate a large number of logs. So we are going to remove that one. The network is default, okay? The default network and let it be like that polarity and all these things. It's fine direction of traffic is in Greece. All these things, we are going to just keep the same specific target tax. That's fine. Okay. And IP ranges here, source IP, I'm missing something, some missteps, I'm just a machine here. We will have to select this TCP. No, I'm missing something. Just a second. Let me check. Go to this. This should be 1 second. And here, from here, I will try to go to the firewall. Here will be having one option. Offer, firewall. Watch insights. Come to the same point only. Okay, get the seed this one. Now, what is the status over here? Okay. I'm not able to remember actually the stepson, no problem. Let's try with data itself and the blog. Maybe we can defer that blog where they might be mentioning that this tip audience, what you can do it better. There is a video here on the U2 by Milan Navi, Madame like so that also can be referred. I have taken the help of that video. So the steep I'm not able to remember actually. By now v. This is the one episode is 0. We can go over here and just copy and paste the link. And you can take once if it's going to kill it. The problem if that firewall is unnecessary to be created or maybe every chick and tomorrow also, I will let you know the steps are going to create a problem. Okay? So here you can see that it's giving me the error. It's giving me the error. Here. It is giving me the error. What is there? A Windows VM instances are not included with a free trial. To use them first to enable billing on your account. Still be billing means you have to upgrade this one. Okay? So what I will do that, what you can do that the free one, you can either watch, which is the completely Philly or via the SAP GUI. Inmates need not to be created here. It is. Using the Windows Image, how? Because it has to create the CPU and image. So here the virtual machines, heavier, having no solution, info, sends information. Is that one, not the instances I'm talking about. We are talking about the VM cij. Okay? So go here to this solution and come to this VM search. And here you can see that we are having, we are having the recommended VM sizes over here. So this is actually creating the problem, this SAP frontier and twist center, this is creating the problem. But if I have AB upgraded, then it is not creating any problem, but I'm not sure if it will show that this point of time. So these all these things I will check by today. One is that the firewall setting we'll have to do. If you don't want to wait for this firewall sitting, what you can do that we can just check. I think that Farewell setting is not mandatory one. Okay? So this other, other thing also we can try S4, hana 1809. So the sizes will have to check. Too cold 16 course you can say we are having only eight cores, okay? So this will not be possible. This will not be possible. Okay. Come to the another solution with Hannah. It is not possible. I'm sure this one. Maybe you can try this trial version. This trial version, you can try. And here go to this recommended Williams size. And here the Google Cloud perform this is only required for course. But here the problem is that it will not be getting the developer role. Okay? It will be not getting the developer role. I've just checked with this. You can see that I have created with this one did not ask for the account upgrade. But it will not be able to create any program or something like that. So that's the problem with this. So maybe you can start with some, another one. We can do, okay, where we can do innovation is C. Let me check with this. It goes Google Cloud platform, right? So we can drive for this. It requires that eight cores. And the Google Cloud form also is providing us the eight goals maximum. Okay? Here you can see that it calls the maximum. We can have eight cores, so we can try with this. So I'm just going to try with this. Some more research needs to be done. Which one is going to be perfect? So it will take some more time for me and I will conform meal that which one will be suitable. Okay, so go to the solution once again. And the one which I have selected is this 1.527 is E. Okay? This is already activated, but this was not the good one. This is, this is PGY1 innovation, okay? And it requires only the eight goals. We can go and click on this Create Instance. It will work. It will not give you any editor. It will be able to create that, create a new account. I'm going to create a new account. Accept over here. Simply, I'm going to give some name account taste. Gcp is our Cloud platform provider. And the decent decision file is very important. Then only it will be able to, you know, connected with the hardware. Tonight's find the name. We can give that the new disk or something like that password. We can give it over here. Okay. Okay. Okay. So problem was there. The connection with the Cloud provider is valid node click on this Create Instance, and it's telling some information. We can just ignore that. Now click on this button and now it will take some 30 minutes time to create that particular instance. That means to install that particular software on that hardware. So this is the process we have to follow some firewall rule. We will just I will just check that if that firewall rule, we can close this one. This is not required. Want to permanently delete the private key. Note that if you do not the store or download the key, you cannot access the opening system of your solution instance, I don't know, let me do one thing. I will give the same password which I am using everywhere. And click on this download. New underscore test. That's fine. It will take some time, but this time it should not give any error. It should not give any error. It should be created. Even though I have not upgraded may account. The benefit of not upgrading the account is that you will not be charged without you will not be charged after one year Even. It will first ask, Google will send you the e-mail that please upgrade your account if you want to continue further. And if we're going to upgrade, then only you will be charged. So that's where we are going to take the precaution. Otherwise, our credit card maybe I will just confirm this particular point. A right. Child even have upgra 3. Normal CDS, Parameterized CDS, How to call CDS in Program: Class we were discussing about how we can set up a free server of worth $1.300 with the help of GCP. And the server, which is given by the SAP that we have seen how to do their watch one open query over there. That watch, like if we don't have the upgraded account, will be able to a particular network server, which we have seen yesterday, right? They're not able to install that. But the thing is that once you update account, you will be able to do. And I read some Google terms and condition over there. They have written over there that we don't have to worry first, it will get deducted from the $300 and then it will start consuming. If that means, the faster it will take the $300. And then if you are going to use more than that, then it's going to deduct from your account. I have prepared one small document over here for your reference. You can go through this document and you can set up your own server. You can upgrade your account. Nothing to worry just do will have to take care of that if we're going to exceed more than $300, which it will not be able to consume so soon if you are going to, you know, suspend your salary for not doing so. Very, very important. This point is the suspension. Like if you're not using your server, bleach makes sure that you are going to suspend that because for one hour they're going to charge somewhere around 0.6 is $6. That means more than $0.5. Okay. So like supportive are going to practice every day, a one-hour of which is I think a good time. Like it's the end of time to practice. If we're going to practice every day, one hour, then you can even on you because you are having the $300 available. So accordingly, like minimum, it will be able to practice like 300 hours, which is more enough more if you can even create your program and all for your SAP or bad practice, that server can be used so nothing to worry, you can use over there. What you will have to do that if like, just really have to keep and grow j over there. That means once it's like if you are having your account ten or $20 left, just don't teach, you may create some, another account with another Gmail idea, then you can start using that one. And, and just to avoid any kind of problem in future like NOT gate charge your credit card or debit card, something like that. What you can do that once you are left with a ten or $20 account, you can close your billing account. Okay. So there will be one option over there to closure the billing account under the billing section. From there, you can close if you face any issue. You can just let me know. I will guide you how to coach. Okay? So this is the thing you can freely use that particular instance. So once you upgrade will be able to create, I will just show you once again. So they stay apartments and only do over here. You can go through this step and you can start establishing this one in more detail. They have given over here in this YouTube video or the study also we have discussed in our video as well how to set up or else you can edit for this video as well. Voltage, fine. This blog. If you don't want to refer this YouTube video, you can go Andrea, for this blog is step-by-step with details screenshot. It's given over there. Okay. Or if you are feeling comfortable, you can go through I prepared this nice document from here also you can refer. Okay. So come over here and we are having this server or lady, I have upgraded my account. You will get the option to update this account. Bonkers Kamara measure the rate of gmail.com under this account. The previous account, I have deleted the app, close the billing account and all. Now with this account Yesterday, I will not having upgraded, but I have upgraded now in GCP console. I'm just going to open cloud.google.com. And I will show you that. Here I have already. You can go to console from here or from here. Okay? So console is the place where you can do on configuration. So it's opening and you can click over here. Your system, if you go to the building over here, evaluate that one option to upgrade the account, okay? So you can simply upgrade. Once it will upgrade, what will happen that here, you will get one option to upgrade. Or here on the top, if your account does not upgraded, it will ask you to. Okay, so once you click on the Activate button, it will tell that your account is getting upgraded and your account will be upgraded. So nothing to worry. That is a feature when that is enabled then only we can consume the Windows Image. And that Windows image is required in that particular server over here. Okay? So with the help of that server, that is the development server, what you can do that too, can create your BI program. You can do anything with that. Okay. This is the this is the server. Okay. This is the server. I've written down the server name over here. This is the server where you can do the development. You can see David server. So wherever the day we were able to see, you will be able to do the development. But the thing is that only this particular development server will be compatible with our the free account. Because the free account is going to give only eight core and 32 GB of RAM. So this way, this, this can be done, but for this development server, wherever the Hannah is there, it will require more resource. So if you want to use this one, you will have to pay over there. First, you will have to buy more cores, more RAM, and all those things you'll have to do then only will be able to do. But with the free account, you can use this one for CDS practice, for report program for that bad practice, this is very good option. You can use this one. So here you can see that it's already activated. It's already activated. Once again, I'm going to click the create the instance. What I did that it started. I have created the instance and terminated that instance. Again, I'm going to create one instance just to show you that it will not give me any editor because it way create a new account. I will create a new account, or you can use the existing account as well. So new GCP or knew about practice. Okay. So some account name will have to give some description. You can give them that cloud provider name, the Google Cloud Platform. And here you will have to upload a GIF file, which you will be having over here under this service, under the service account to which you have created. So what you can do that you can go to the IAM and Edmund, go to this service account which you have created, come over here. Or from here directly, you can search a Britain directly from here. Also, we can go to the service account. Okay. No need of salting and all. And this is the service account for the series practice we have created, create key, okay? And here I will just download this key. Study also add downloaded. I don't remember what is the name of my dog. So just again, the new key, it will be the same key only. So I have downloaded this one from that GCP so that this instance, instance me, this software will get installed on that particular hardware and operating system setup, which is the DCP. So I'm going to upload this one, the new key Jason and upload file. Once you will click on this Upload file, it will ask you to provide some name, any name you can give, any name. We can give CDS practice or something like that. Okay. Other thing, you can just leave it. This password is important. Okay? This password is important. So I'm just going to give this password. You can give your own password and then click on this Create button. Click on this, Create water. So click on this. Okay Now. And it will take some time, around two minutes. And after 30 minutes, that instance will be created. Okay? So here also, I will give this password. I don't know exactly. This is for what purpose we're not going to use this key anywhere, at least as of now. No. This one, another key which is getting generated. Okay. But this is not required. Use anywhere simply. I don't know actually, the use of the play I'm downloading. Now. Go ahead and it will create this one. Once it will be created, we will be able to use it. Meanwhile, let's go to the CDS after 30 minutes or one hour, we will come back or just before closing the class, we will come back and we'll get to really connect directly from you. I will create one program, okay? But the thing is that you will not be able to practice the CDS data clean SAP GUI server, SAP GUI server here it will not be able to mince SAP GUI this login. It will not be able to practice. You must have to install the eclipse. You almost have to install the eclipse for that purpose. What actually will have to do to install the eclipse? Either you can take some YouTube video from the disperse and itself, this novel itself, you can go here. Here this is, this is the first video to install the GCP and the server, and the second video just the next video, it is there over how to install the eclipse and how to integrate the ADT with this eclipse them, this, they will give you some idea over here how we can do, okay? So you can go, you can go over one side called tools dot hana daughter on-demand dot com. You can go over here. Tools dot dot On Demand.com. Here you can select this, okay, The latest Eclipse you want to install. So click on this particular option, click on this. It will take you to one another site. From there you will have to know the latest Eclipse evolves and click on this latest Eclipse version. Once it will come over here, it will directly take you to the door towards you download so you can directly go to the eclipse oocyte. And from there also you can download. Okay, but why we have gone to that particular website, I will just let you know what is the benefit because that particular website will be used later as well. This option you will have to select Eclipse IDE for Enterprise Java developer. And select over here 64-bits. Select over here 64 bits. Any question? Hello. Anyone is having any question, okay, no problem. So here you can come and click on this Download. Once you will click on this Download, it will be downloaded. And after getting downloaded, you can click on the executable file. And what it will do that you will be able to install that one. So your Eclipse will be installed like this. It will be able to open the Eclipse after that. What you can do, because you will have to install the ADT means above development toolkit on top of a clip. So in order to use or else directly, you can install the hana Studio. But ADT is the more preferred way. Sap is. More giving more focus for the ABAB development. Stuff like CDS are these? No. He's giving SAP is giving more focused on the ADT on Eclipse. That's where we're like, I'm just showing you if you want to Use the Harness Studio as well. Hi, nice to do is for the hana developer, for information model and all those things that is better I think. But for the web app development and for the CDS purpose of app development toolkit on Eclipse is better. So now your Eclipse installed, and after getting installed Eclipse, you can go to the helper. And here you will get the option, install new software. Click on this. Install new software. And what actually will have to do that? The ray which you have copied from there, just go back. Go back. This particular tool, dot hana dot on-demand dot com, right? If we just go back once again, this is the very beginning UL which I have used. Here. You can see that you are having for abab about development tools. For BAD BWM, you are having, these are the software. So these are the different software which are available on this particular location, okay, on this particular URL. Here. Here, once again, I will show you go to this help and click on this install new software. If you click on this install new software, one window will come. And here it will tell you select a site or inter the location of a site. But you can do, you can paste the, you can paste the particular URL, this tool dot Harvard or demand.com from the latest. You can see that these are the options you are getting up. App development tools, modeling tools, SAP Cloud, business application tools. So these are the options you are getting over here. Or if you just want to install the app development tools only click on this above development tools. And you can copy this URL and paste it over here. Okay. Click on this Add button, give some name over here, taster, ABAB, and click on this Add. It is just searching. What is the software available at this particular place. It is telling that there is no software at this particular place. So that's the better I think from there directly and go to the latest one. And it is showing everything, right? It's showing everything. Click on this Add button just above, just give some name. Here. It's everything is coming. Select this about development tool. You can select everything. Letter maybe for Hannah modelling purpose, this SAP hana tool, we become SAP Cloud business application tools. I don't know what is the purpose. So if you want to remove this one, but the first one is a very important, the above development tool is the important one. This at least will have to select it. Once you select, it will give you the option to next over L because already I have installed. It's not giving any you can see that it's not giving any option to install. Okay. You can see that what is already installed. If I want to see already installed in my system, your system will be very new for that. You will get the next option. For me I'm not getting because already it is installed. I've clicked on the already installed. You can see that these are the things which is already installed. So abab development toolkit about development. You can see that here. Here we are having the above development tools, right? This of app development tools we're having. So that's why it is not about code development tools, developer edition of laughter. So all the web development tools which is relevant for me it is there, That's why it is not coming. Okay. So this is how you can install over there. Once you will install, you will get this screen like this. And you can go to this perspective over here. And you can open the above perspective. Once you open the above perspective, you can go and create a project. Project means you will have to connect these abab system, ADT system, okay? Click on this okay button. It is giving some error. Nothing to worry. Here, you will have to connect with some application server, right? This is a kind of GUI. Then you will have to configure the, you know, when you will have to configure the new SAP log on PAD, what do we do? What do we do? Have to configure. We go to this new item right here, usually a specific system. Click on this Next button right here, description application server instance number, system ID. So CPU way also, we provide in today's CPU way all these descriptions so that it will be connected with the application server right here on ADT also, you will have to provide the application server option over here. You can see that here it is coming masses survey, it's not coming the application server, it is coming group. It's coming different from that, right? Because here the groups, Alex entities we have selected, we have to select the custom application server, the application server instance number, RFC gateway server. All this is coming. You can see that this is the mandatory one application server instance number. These two is the mandatory one. This will have to pass it correctly. This is a system ID from where we get this information. From, where we get this information, we will get this information from the server, okay. It's just activating ones. It will get activated. I will get this information from here. So let's wait for that. That information, you can put it over here and click on the Next button. It will just create a project and it will be added. I will show you that part. Fine. Now, let's go to our CDS. I'm going to connect to our system at distinct system, which I have bought from some another vendor. And go to this SAP hana Studio. Now, let's discuss some theoretical point over here. Now. You might be thinking some point over here that CDS is the CDS is the good Push down approach, called push down approach. And CDS is available for all the database, it is available for all the database. For all the database. Now, you might be thinking that the hana database is the powerful database, right? Hana database is the powerful database. A database is the powerful database. So if hana database is there and we're going to do the code push down. If hana database is there. And if we're going to do the code post code push down, then it is making the sense because it's very much capable, right? It's very much capable for having the massive parallel processing. For having a no. Because it's having a multi-core processor. It is installing RAM and all. So if we're going to do the code push down with the help of CDS. Instead of writing the code at application server layer, we are going to write the code at CD with the help of CDS, as we have been doing in the MDP information model, all these things in the hana. But why the CDC supporting the, another, you know, another database as well. Another database like Oracle and all, which is not the in-memory database, which is not having the massive parallel processing capacity. What is the benefit? What's the benefit? Why we are doing the code? Post down here. The main purpose for that. Here, the main purpose for that. Why the SAP hedge evolve the CDS in such a way that it is compatible with all the database. That means that it's open to all the database. It can be used in all the database. The region behind that is the reusability. The reason behind that is the reusability because the side bays, max DB informatics, whatever the database you have in the backend, okay. If you are able to create the CDS in this CDS, see, it is not necessary that the fury application is only can be connected a veto. The hana database system support if you have some, another database. But you can do that. Or data gateway server you can install, or data gateway server, you can install this application server. And through this, this, your database will be connected, right? And from the auditor service, auditor using the OData service, anything we can get anything can be connected, whether is it a foodie app or whether it is a WiFi, AP or dotnet application or Java application, AngularJS, whatever, whatever things you want to. That's why it is technology known as the Open Data Services. It's open to all. It's open to all. Let's write this technology is known as the Open Data Services. So you can connect with a knee fronted application, any front-end application. Okay. And what's the beauty of CDS? Duty of CDS, each annotation. The most important feature of the CDS is the notation. So if we're going to use a symbol O notation, you don't have to go and write the code over here to explicitly generate the OData service. If you know that if you have developed some auditor surveys, will have to go to the SEC W transaction there we can get the entity type entity set, right? All those things will have to do. We'll have to test whether our service is working fine or not. And then that service we are going to consume. But if you have the CD is just with a simple annotation at the rate of or data dot publish colon. True. If we're just going to give this one, you're all data is going to get ready. You don't require a required to write any code over there. Automatically. Your audit or services will be created over there. You just a single line of code is able to do everything over here. Okay? And that service can be now consumed with anything. So suppose if CDS feature is not there in this oracle, Sybase and max, then the customer is not having enough money, alright, enough money to install this, Hannah, and they will not be able to use. This wonderful feature of the CD is right. This wonderful feature of the CDS will not, they will not be able to use. This is one of the most important things. Another is like Association. So see, like aggregation, aggregation generally what we avoid, generally what we have, what if we have the conventional database system? Generally be aware the aggregation, right? We have where the aggregation. So what we can do that we can have where the aggregation in the CDS, other things, whatever the feature is not going to impact from the performance point of view that we can see that here also we can use the aggregation in the CDS min-max count, all those things. Inbuilt function also can be used. Okay? So that's the region. So this is a one important point which I wanted to discuss. Now. The other point is here, like this secret view VI will write history. We're talking about one question was there already we have in the sequel will then why the CDS view? Okay, if already we are having the sequel humans as yellow one view, then why this, why this on another view. Okay? So the reason behind this is the region behind this is Let's do anything. We define a parameter over here and based upon that parameter, will start writing the code. So this is one box, this is another box. And this is what? Another box. In this box, I will add that parameter. So what is the parameters? So the very first parameter on which we are going to see the actor that the code push down. Code push down. If you see the code post down in sick will view it is not possible, right? In sequel view, it's not possible. The code post down. It's not possible in the sequel we know, but here in CDs, it's possible because we are writing the code in here. Okay? And now the second, the second with respect to late annotation, annotation feature is not there in the sequel view. Annotation feature. He's not there in the sequel view. So here, it's not there. But in CDS view. In CDS view, it's there. Okay. And CDS view it's there. Now, the third we are having is if you see about the outer join, outer join is not supported by the sequence lamotrigine or any outer join and left outer join. Such kind of things is not supported by the sequel view. But here in the CDS view, you can use the left outer join outdoors when it is supported over here. Okay? Then in the fourth option, if you're going to hear, if you want to compare with respect to complex expression like if want to use the vein case and vein statement in CQL itself. In CQL itself, you want to use the case and although the statement, it will not be able to do in the sequel view, but in CDS view, you will be able to do so. We'll be able to do so. Now. The fifth, what we can see over here, like it supports the view is not the extinction of the open sequel, right? If you see from extension point of view, it's not extents and wherever. Whereas the CDS view is the extension of the open square. So here it's the extents and extensive. Extensive. Now, you cannot create here some database table or modify creator or modify feature. You don't have over here in the CQL, you cannot create or modify DB table over here. You can just feed the data. But here using the CDS concept, not the CDS view. Using the CDS concept. Using the CDS concept, we can create or modify the DB table. Okay, with that buffer, a RESTful Web App. Now, the seventh, similarly, you can have so many like the IT support the built-in function, built-in function, built-in function. So it supports law, it does not support this equilibrium, does not support the built-in function. If you want to use a built-in function, mod operation, mod floor, see like that the built-in function, if you want to use, will not be able to use. Whereas here it is possible to huge automatic or Data Service. Automatic or Data Service. Will you be able to do it over here? No, not possible at all. In the sequel, we know wherever, like where edge here. It's very much possible. And that's the most important and one of the most powerful feature of the city's view. If you compare with the sequel, will this, with the help of view? It was not possible. These are the things was not possible. That's why the SAP came up with That's why they say pick them up with the CDS view by SAP. Came up with CDS view. Then we all ready have the SQL view. So this is the answer if someone is going to ask an interview, okay, you can give this answer. This is water. We can answer. Okay? So now we'll see some examples. We'll go to some example. And once we have in the good understanding over here, then what we can do that we will see some other stuff. We will summarize about the CDS view, okay? We will summarize about the CDS view that what actually it means. Give a final conclusion. And that final conclusion will help us a lot. Okay, Let's go here, go to the new slides and we'll create on, and we'll see some more stuff for here. Cd is V0, Vi. So powerful. Cds view is why it's so powerful. The reason behind that, why it's so powerful is the region behind why it's so powerful is that I have been telling about the reusability, right? I have been telling about the reusability. So if we talk about the reusability scenario over here, you know, how we can reuse it. What are the different way we are going to reuse this CDS view? We can use this one in the fury or pipe up. We can fury and foodie or Wi-Fi, AP. We can use how we can use it over here. How we can use it to overhear inferiority, Wayfair web. Simple answer is annotation. For everything answered each annotation, what we're going to use over here, or the rate of 40 to all the notation is going to start with. After that, it's very important to remember this one. All the annotation is going to start with it. So for foodie or UFO application, SAP has provided the annotation starting with other IT auditor and the red. Anyway, these are the poplar and rotation which is going to be started with, okay? Now, you can also use this CDS in BOP. If you can also use the CDS in BOP business object processing framework, very powerful framework, you might be knowing about this. Okay, What are the annotation? We will see how we can integrate this BOP or with CDS in our upcoming classes. This BOP, if this annotation we can use in our transactional app when we are going to develop the transactional app, at that point of time, would be UPF is required when we are going to develop some transactional app. Okay? So to integrate the transactional app with the help of UPF, we are going to use the notation called semantics. Okay? This is the annotation. All denotation is going to start with the semantics. We will see this one in detail. Another thing where you can use this, where you can use this, the other place where you can. Use the analytics, that means BAR, BW, that means B a and B w. We can use it. Which, from which particular, you know, it's going to, from which particular name it. I'm going to start that annotation. Default aggregation and LDC is nothing but mean max count sum, right? So analytics is nothing but the aggregate function, BA or BW is nothing but the huge of aggregate function aggregation we are going to use in analytics mostly. So are the default aggregation is the annotation which we are going to use it. Okay? Then one more, we're having that th, that age. That is, the one more. We're having that image, embedded analytics, embedded analytics. So in S4 hana, we have the option of embedded analytics. So we'll create a transient, transient provider. And with the help of that, we will use this one in embedded analytics. We will see this one. How we can create Ms. how we can use in embedded analytics. So embedded analytics. Embedded analytics. Embedded analytics with the help of this option, actually, with the help of this embedded analytics feature, the particular CDS can be consumed in your S4 hana system as well in summary port or somewhere like that. In report also, we can congeal. So in Esperanto, embedded analytics, here, the concept of v dm comes into the picture virtual data model. So here this VM, or the rate of video annotation is going to be started with. And we will see this video is one of the most important topic of horror of all cities, very popular nowadays this video, because it improve the performance. A lot of our CDS APP, okay, whatever the city is application we have. If we're going to use the medium concept properly, then it's going to improve the performance of our CDS that we will see under the CDA is performance chapter. Okay, fine. So these are the things we just have seen that how the CDS are going to be used, a 111 object and it's getting used in multiple places. Okay? So this is the things which have now will go and create one CD's. Okay. Now we'll go and create one CDs. Come over here. We'll create one more slides and get some more slides. Go to the system and we'll see how we can create have to connect once again. And here already we have created some project over here. If you want, I can delete all this project. And again, I will create some more predictive over here. I'm going to delete this projector and I will show you how to create a project from scratch. You can do in the same way. You can do in the same way that we have discussed how to create a projector in the new setup there it was asking for treating Zealand. All right. Because the system was not set up here. In this you can see already the system is set up. So what you can do, you can select this system. If you don't select that, then it will ask you to select a system and all automatically you can see that all already. It is having this system IDD veto custom application server or application server. It is set up with two. Over here. You can go to the next. You can give the user ID and password over here, the client also you can choose, I'm going to select them already. The setup system from here, select this one, click on this, and next, this is coming, That's fine. Client. Okay, it's showing us the same option. No problem. We'll go and find out the client. So let's come over here into this. Away from here, it's easy for us to find out the client or to this SAP Logan got hacked. Close. This one. Open this SAP log on pad. And here the client will be able to get it easily. So 400 is the client number. They gave the 400 client over there, 400. And whatever the user ID and password is there a way to use it? So they each of our Pana Pana and password I remember. Okay. So you can see that this project has been created. Select this one, click on this other option, go here and type the CDS. Okay? Then data definition, you can see over here the option is data definition. Under the Core Data Services. Just select this data definition. Click on this Next button. The package, the local packet. I don't want to transport it to another server, just giving the local package. Okay. And the name over here, the CD is NB. Three CDs of one. I'm going to clear the city. S, R1, C, D is demo, CDs, demo. Click on this Next button. Once you click on this Next button, what it is telling the taste object cannot be created in foreign empty space. Okay, let's give a start with Jade over here. Click on this next, click on this Next. And now you can see that define view. You can see over here that define V0 defined View, define, define humans. The normal CDS. If you want to create the normal city is if you want to create the normal CDF is just simple defined view. So CDs, these are the different template given by this particular system. Different templates we're having. This template is going to help us a lot, right? As you remember that when I'll have to call the function module in SAP editor, I use the pattern every time and it's going to help me out. Similarly, this is also going to help us a lot. Going to select, Define view at this point of time. And then we will see the different, different template over here. And then we'll try to understand how to huge click on this Finish button. So the very basic CDS know very fundamental CDS or normal series we're going to create here. If you see here, if you'll see, I just want to increase its font. So let me do that. Can we be able to see it properly? How to increase the font? Here we gave some option actually to increase the font. It contains so much deep centric search over here, font, settings, colors, and fonts under the preferences. Okay? So I want to increase the font for this CDs settings and notation. I'm going to use this annotation. I want to increase the font, okay? So if you want to specify some color and all a different option, they have given some custom color. Maybe. I can choose this one. Notation for annotation purpose, disease, CDs. And you can apply this one. Let me choose another color. Click on this okay button and apply. I have just click on the Apply. Let us see if it is working or not. I have not used this particular feature. I just want to increase the font so it will be properly visible for you. Some way, we get the option actually to increase the font. Colors and fonts is here. But how to increase the font file? Just to give me a second dialogue. Fonts, header phones, text editor. Okay. Supportive firm going to increase the font over here. I'm going to make it 18 and lead to see if it's working. Or not? I don't think so. It's working. Okay. I will take it How to increase, but we can increase the font. By this way also, we can increase the font. I've just press the Control and plus button, like so now it will be better. It will be having the better visibility over here. So by this way also we can do Control and plus button, okay? Control and plus button. You can also do in this way. Here are some important points we are having. What are those important point? Do have to give all these annotation. Okay? Okay, the color is appearing over here. You can see this color we have choosed. So this is appearing, right? This color is appearing. Let me do one thing. Can we marked it bold colors and fonts, colors and fonts open the professed dialogue. Cd is, I want to make it bold. Is it possible to make it bold? Let's not get a little bit. Okay. So here we are having the multiple, you know, the ABAB catalog dot sequel view name of app catalog. These are the annotation by default annotation coming over here. The most important annotation is this one, the first one. This annotation, what it will do actually, when you create a CDS view. This is the name of the CDS view which we are going to create. The CDS view name is also known as the CDS documents, CDS entity, different name, our name is there for this particular CDS. This par 4. Association, Association with PATH EXPRESSION, Different types of Association: Last class we have seen about the introduction of the CDS. What is the importance of the cities? And why CDS has been so powerful nowadays? Because of its usability in the different platform. It is having so many reusability on the different platform that we tried to understand whether it is a failed replication or it is BA or BW application, or whether it is theory application or embedded analytics everywhere one CDS can be used. That's what we have understood in our last class. We have seen some example, that example watch related with the. Now here we have demonstrated that one CDS can be used in fury or even a five. And the annotation, mainly, we are going to use it in context of fury or wave five. If we want to consume the CDS for Fury or even a favor application, they're mostly within this annotation. We are going to then in BOP or false. So we can integrate the CDs with WPF using the semantics on rotation. It's going to be helpful when we have to expose these cities to be UPF for analytics application where B or B w comes into the picture. There we are having or the red default aggregation. Some mean max like that. Wherever the aggregate function comes into the picture, the default aggregation will take place. So that's where it will come. Then in S4 hana, in S4 hana itself. For the real-time scenario, we're using these embedded analytics. And there this video comes into the picture. This video is very popular nowadays. This v dm is very popular nowadays. This one, this medium, and this fury, or even a five. This will be our main focus, mostly either above 100 developer. This is going to be our priority focus, okay? This is going to be our priority focus. I kept finding this BOP or false. We will see that how we can integrate this one. This is not frequently used, but as part of our course we'll try to understand how we can integrate the BOP or with the CD's. Okay. Fine. So let's go ahead and, uh, we'll see some more stuff. However, we have seen that we have defined some cities over there on simple series we have seen in our last class and then CDs with parameter, we have seen how we can consume that CDS with parameter in our report program. That also we have seen here, I've created this report per gram, right? Similarly, we have also seen how when CDS can be consumed in another CDS, okay? We can put the select query on the CDS that we know already, right? So let's go to the system and create some more cities. And we'll try to understand the concept which we are going to discuss today. Okay, fine. We'll also see some example related with some inner join, outer join. So it's kind of stuff we'll try to see and we'll try to explore how we can use inner join and left outer join and all these things. Then we will come to the association. So today our main agenda will be for association will also see some invalid function, how we can use the inbuilt function. You'll also see that how we can use some aggregate function, some keys and Venice statement also we can use it over here a nicely that also see, let's go to the system. I'm going to login here. And we create one more cities. We are, we can consume the existing cities. Okay, fine. So in our last class, we have created some cities. Let me try to find out those cities where we have created. So go to the local object and a backup on Hanak auditor services, That's fine. From here, we can go and find out, okay. Mbi G23. Under this package, we have created ODBC demo at DVC. This is fine. Demo one. This is what we have created. Double-click over here. This is the first series we have created. Here. What we have done that we are selecting some fields from this marketable and this CDS we have consumed in our report directly. We can put the select query on the CDS, as usually we do in our report with the help of open secret. The same CDS or we can also know the same CDs. We can also consume in another series. So for that, we have created the NBCOT MAY underscore city is two. We have created this one, right? Okay. This is the CDS with parameters. This is, we have created CDS with parameters. So here we are passing some parameters over here. Alright? And here we are passing the filtering condition. That means for this parameter which we are passing. So those who have joined today and have not attended my previous classes, so they must have to attend the previous means they haven't stopped to go through the videos, then it will be better for you to understand. So we have store this one and then the last CD is what we have created is the G8 and B203. May underscore CD is three. So you'll see here that we have seen that the existing CDS, we are putting the select query on the existing cities and we are defining a new cities. Okay, let's go ahead and we'll try to create some more serious with some inner join and all. Okay, so name of the CDS or we are going to give it over here. Nb and G23. Cds. Cds for okay. I'll go to the next and go to the next. We'll choose a simple template defined view only are defined view with a join just they want to show you with the final. So if we know the open stick, well, it's very easy to learn this series here. Let's give some secret name over here. We have understood that this one is the mandatory when atleast we have to pass this secret view name. Okay, So let's give the sequel view name ij something NB and 0311. A demo for. Okay. So it should not be more than 416 characters. Data source. We can give some stake, some example from our Ethan WD and discouraged suitable there. We have lots of data, okay? There we have some sample data in a nice way. So before going over there, I will just try to make you understand. However, IPM data model is, we already know just to maybe having some quick revision that how our APM data model. And so that if I write the select value over there, it will be easy for us to understand. Okay? So EPM data model we are having over here. Okay? So these are some tables that have just taken and put over here our difference, this is not the complete data model with a table which we are going to use frequently. But the table which we are going to use frequently that we have put it over here. So it's an WD underscore ASO. This is similar to the VBA Table which we are having in the ECC sales order header table. In the sales order header table. If you see here, this is the taster table given by the SAP just for practice. So this is the name of the table is in WTO underscores. So in this table, we are having various field. One field is no mode underscore key. This node underscore key is the primary key which is going to identify the records uniquely another field. So underscore ID, if you compare with the table of ECC, there is. So underscore ID, that means the VBE IL-1 is our primary key. But here, node underscore keys the primary key, okay? Here, here. So underscore ID sales order number is the same as the deer, the field VBE L. Okay? So let's try to understand that here. We are having the node key as the primary key then is to underscore ID the sales order number. Then other field created by createdAt changed by change to add, created by BP. All these different fields we're having, then by our grid, it is going to represent the business partner. That means the customer or vendor. And to get the extra information, the detail information about the corresponding business partner we are having. Another table isn't WDN, this could be p. So we can put the inner join with this table and we can find out the result, the corresponding details. We can find out. Similarly, if this BPA or table is having the address grid, this is a unique representation for the address. This is related with the assign WD underscore AD table, and they are node underscore key is the same as the address you would overhear. So the complete information we can find out with this node underscore key corresponding to this address underscore, good. So just underscore grid and node on this key. Voltage, same in the different table, just name is different, but the meaning is same. Here. This is the sales order item table. We're mainly going to consider this table and this table, sales order table and sales order items table. We have taken these tech table for our Reference scenario because it is having the good data and we can analyze it. It is having also the list data as per our requirement, we can populate the data as well. So that's the benefit with this table. Here, you can see that whatever the node underscore key in this S and W Dean Rusk array. So table is there. The same is the parent and discord key. So we can delay to parent underscore key field with the node underscore key field of the WDN rescore a suitable miss. The header table is having node underscore keys, the key field, but the item table is having, you know, you can see that here. Inheritable also note underscore keys, the key feed item to also note underscore keys the key field, but this node underscore key is the unique key for the sales order item table. Here, note underscore keys, that unique key for the sales order header table. So this node underscore key and this node underscore key is not the same. Here parent and is corky is the same as the node underscore key of the sales order header table. If you understand this one actually why I'm focusing over here. So the Futures journey will be easy for you and for me also to make you understand, okay? So here, whatever the node underscore key in the sales order header table, we are having the same field here then named as the parent and it's quirky. Fine. Let's go there and we will put that query now, we are going to define this view. Did MV 0, May 3, see DS4 at select from here left outer join. By default it will o means the other left outer join from the template it is coming. If you want to, you know, if you want to change the template, you can change the template as well. If you want to. By default make it inner join. Okay, you can do so. What you can do that, you can go to this template just behind this, you are having select the template which you want to change. Okay? So define view with joint. This is a template, I'm using this one. The template description you can find how to, over here, just below this, here it is not properly visible. You can click on this edit button. And here you can get the complete description for that template. And now if you want to change this template, for example, energy when you want to put every time. Okay? So you can go and put the inner join. You can save it, click on this or whatever, whatever. It will. Use the template apps they've now, if we're going to use second time this default view with join here, the inner join, welcome. Okay, Let it be like this. Outer join only. It was given by the SAP. However, I have changed, no problem. So left outer join, join data source name. So this is the table which we can give it over here. So sales order, I'm going to put the drain rate is N W D underscore, underscore. This is the header table. This is the item table. We are going to put the left outer join. Join condition. We have to give similar as we give in the opening sequence here, or we can give the filename. So controlling space you can give, and you will see that what are the possible value we're having? It's just taking some time. Okay? So here in a second WD underscore, SO is having the node key, alright? We have seen that node. And this node key is linked to the field of S and WD underscore. Underscore, I have discussed with you. Can anyone of you please tell me which field I will have to change it over here for this joint element them. If you check out this particular information over here. Which this this Yes. Okay. Very good. So yes, the parent underscore key, we'll have the huge it over here. Okay, so hope now you understand the relation between this table. We are going to use it frequently. So now it's good. Here. Suppose don't know the name of the field. You can simply control a space. If you do that, you know the insert all elements it's coming from is underscore. Underscore is all for formal this table, the element is coming. And if I want to double-click over here, automatically, all the elements from both the table away come and populate. Alright, so you can see that. So I'm going to remove some unnecessary field, which I don't want to. Okay. So item ATP status, they say Don't tax amount. Maybe you can keep it this tax amount. And a note underscore. Good note underscore go it is nothing but the description. Suppose some item in having some description. Again, this note underscore ID is the unique field, okay, the unique identifier. And this is having the relationship with another table. There you can go and find out the detail of the description. This is just an identifier. If you want to keep it or just leave it. If letter it is required, we can insert over here. Okay. So now product underscore grid, this so many fields are there. I don't require these many fields. Alright? So I don't require these many fields. So many fields has come. Let's say remove most of the field key, key, key Kiki. Okay, let's have, let's have some field from the sales order item table. From the sales order header table, we have kept some field and some field, we will keep it from the sales order item table. So let's go and send W D underscore. Underscore I dot some of the field like the currency code are net amount. We can give. That's it. I add the item net amount. Item net amount. We can give the alias edge, right edge, created by person ID. So sales order IDs. We can write that sales order. And then the WTO and discord node, this node k is nothing but, you know, sales order header, number, this, sales order, sales ij. So Haider key, we can regulate this. And this client we can remove client is not required. Some four-fifths. I've just taken it over here. And it's going to work in the same way as it works. So here, left outer join you can use, you can also use the inner join. If we're going to use the left outer join, all the field from the ASO. Welcome. And whichever field is matching with underscore, that only is going to come. Okay? Just share the syntax. Above. Syntactic contains warning. It contains wanting. No problem. We can ignore this warning. Or if you want, shaped like to kinda move the warning, go to this problem. Some warning, is there inconsistency, no control and all we can ignore this one. We will see how we can put the access control and all activated this one. And it will activation finished with warning. It got activated. Praise, effort in order to see the preview. And here you go, we are able to see the data. You can see that this is a sales order we are having, right? And this created by Poisson and the item net amount is coming over here. The total number of entries you can find out from here, 122, right? If you want to see the Log of what we have been doing right here, you can see that when I put the total number of entries on this particular number of entries over here, what it has done, actually, it has done generated sequence, select count star from this, okay? This is what it is doing. When I put on this number of entries. Here, you can see 746. The time is here, 746. So it will output mainstay, just app-based F8. So when I have done what actually it has executed internally. So this is what it has executed. And then the finished query, then all of these log it is telling the last is select count star from this. Okay? So from here you can go and check if you want to select some columns, which particular column only want to see. From here you go. You can also put the filter. Okay? You can put the filter on some specific sense order from layer by selecting console, or you can go directly from here to the secret console. It will open in a new tab. So you can see that this is the secret console. From the secret console, it's coming, right. Come over here, close this, close this one. Okay, Now you can also use the inner join. It can also use the inodes, right? So just to check it activated. Okay. So also here, the right outer join, it also supports, okay, right outer join. That's the beauty of cities. Earlier in the open sit well, before NetWeaver 7.40. Okay. It was not supporting the right outer join. So now in open secret lawsuit support the right outer join. And here in cities also supports the right outer join. Okay? So this is the important one. And then here, like suppose if you want to use some aggregate function, for example, we are having some net amount over here, right? Right outer join and all we have kept, that is fine. So if you want to use some aggregate function, so what are those aggregate function? Mean, right? Max. Give the column over here. Mean max sum, count. These are the aggregate function. So aggregate function, or we're supposed to use on currency or quantity field, only on numeric field, we can use it. Then only it will make sense. Otherwise there is no sense. Alright? Item, minimum item, net amount. I can keep it. And here we can keep it to the max. I don't need to mount comma. Then we can give it over here. Some gowns or some some function. Okay? So just take this value only and total sum if you want to do it over here, ij, total some. Similarly the account. If you want to count some value. For example, if you want to count this number. Okay. So maybe need to monitor, I'm just going to take, because if you take the node key, that is the unicorn, it will take all the record. Count what it is drilling. Unexpected word is thin WD underscores. So comma we have given count star h. Okay, Let me do, give the star over here. I count number five. So we are given like this over here. And now, whenever we use the aggregate function, we must have to give the group by clause. In OpenCL also, we give the group BY clause and then non aggregate key we are going to keep under the group by clause. What is the non aggregate key? We are having the non aggregate key, the note underscore key. Then we are having E, So underscore ID and give the comma in between. Then come over here and also give that created underscore buy, created underscored by. So this is what we have given. Save, save, save it and submit it. It is telling, Let's see what is there. The NameNode key is not unique. Which NameNode key name we're using it over here. It is telling that that's not unique. Just to go and character the name node. Okay? This is telling that it is not a unique y directly, we're using this mode key because it's not unique. I'm going to take this node key from the S and W, D and discord. So table. Okay, so now it is fine and there is now gone. Just save it, chip the syntax and activate it. So this is how you can use the activists and is successful. The aggregate function you can use. So what is the thumb rule over here? The same thumb rule if we're going to use the aggregate function and then aggregate the columns would be under the group BY clause. And that group by clause should be after this, the CDS element. You can see what are the CDS element we have used over here. You can see that here under the outline for these elements, it is telling that these are the CDS elements we are using your header key sales order created by. So from here actually, you will be having a nice representation. What are the field you are going to select? You can then water the table you are going to use from this outline. If you are having the big cities, it is going to be very useful. Here. Save it. We have already saved and activated pace. It will give us the result and you can see that we are having the result available over here. Okay? So this is how a weekend huge aggregate function. Now, we can also use the, you know, we can also use keys and vein statement over here using the new open secret. Okay, as we use in the new, new open sequence, we can using the same way. Over here. I'll just show you remove all these things. It is now not required. We have just checked out walking. So for example, if some created by Poisson, here it is showing this value, right here it is showing some value over here. Or sales order ID, node and discord key. Maybe we can take some neat amount. We can take some net amount. So give the comma over here is saying WD and discord is so control space. And let us see some amount fields so that I can compare. And I can show you the keys and Venus theta, the case and vein statement, how we can use it over here. Okay. So, so so so so blind chance to abide by a quid status. Let me take this billing status. So it's in WD underscore iso dot billing status. This field I just want to know, put under the case and Venice statement. So case, keep this field over here, copy, paste it over here, and just your right over here, the vein statement. When the billing status, what is the possible value for this billing status that we should know Foster. So let me take that one. What can be the possible value? And similarly, we'll go and variety. We just save it. Some error is direct coma. We have given, that is the two times we have given, so it's still giving the error. Now, I remove this comma or to just drilling the problem. Column billing status is not contained in the group by group BY is now not required because we are not using any aggregate function. Just save it. The syntax now and activate. It. Got activated. They fit the billing status. Nothing is coming for the billing status, right? Nothing is coming for the billing status over here, just it is blank. So we can write the code like this. No problem. We can write the code like this that if it is blank, give the comb over here. And k is the billing status when it's a blank. And blank. Then just give the values something like blank. Some value, conditional value, we can put it and when and when it is some value. For example, it might have somebody like one or two. I'm not sure. Suppose if it is one, then in that case, I'm going to give the value over here at 21. So it's just some dummy example. We are having the ultimate jumper, kind of dummy jumping. We have here. The comma is not required, not necessary to give the comb over here. And end with the end case. Sorry. And edge. They have to give the name for this, for this particular field where it should come either alias. So the new billing status or billing status description. Billing status description we can give. And that's it. This much only have to give some warning teaching literacy case expression without else. Okay, let's give the S over here. Is something like that. Not so in case of blank. Our blank is there, it is blank. In case of one is D. We are going to give the one. In case of, in case of one is Dear, then we're going to give one. In case of it is there then we are going to give or not. No. Okay. So it is n. Let us click on the Save button or we are having some option coming over here that is then not know. Some iterations here. The unexpected word, not know, unexpected word, not know where it's telling, not know. It looks good for me. Or sorry. Then we have given nozzle. So this then is creating the problem. Okay? This then is creating the problem. Okay, Now it's fine. Just click on the Save button and click on this. About syntax check this is fine. And click on this Activate button. It is fine. This effect. You can see that wherever the status blank is there, it is telling blank. So this is how you can use the keys and vein statement. Okay. This is how you can use the case and vanished. It went fine. So this we have seen. Now let's go and try to understand about the association. Dissociation is going to be very powerful concept in the city is very, very powerful. It's a very, very powerful concept. It's very confusing also. Our concept. If we're going to use it perfectly, it is going to be like a performance booster. It is going to work like a performance booster if we're going to use it properly. Okay? So the proper understanding of association is very important. Okay? So a powerful concept, performance booster. And we can tell if used properly. If it was properly. This association, you can relate with the inner join. This association can be related with the inner join. The association and inner join can be compared together, but there are some basic differences. What are those differences? Water? Those differences are differences that we'll try to understand. Let us first see one example, then it will be better for us to meet, you know, to understand that how it's going to walk and supportive are going to learn some theoretical aspect will be better in this situation to correlate. So let's first take some example and we'll try to understand how this association is going to work similarly to the inner join or outer join, something like that. So it is same as it is almost same edge, the giant only. But some basic differences are there. First, we'll create one. Cds via Association will be involved. So CD is using association. We are going to create a jade NBCOT, MAY and discourse city. There's five. Cd is using Association. Go to the next. Next. If you want, you can choose this, define V with association, okay? At this point of time I'm not going to choose, Let's choose this defined view only. And a very tried to create that association. From the basic view only. Write our own code and we'll see how we derive the code. So here, secret view name, we must have to give the sequel. We'll name, we know that nb t as the 11 demo, five. Okay, so this is the secret view name we have given data source or we can take it from SAN WO D underscore. So whenever the association comes into the picture, certainly to table welcome, right? Because it is the same as the join. Join is possible between the two table. Similarly, the association should have minimum two table means one table is going to associate with another table. So define view I select from SN WP underscore is o. Association. The name of the table. You can give a send double underscore, underscore I. So this is another table. Another table. And then the own condition you can give over here isn't WD and discord. So dot Control Space. And here you'll know that the node and discord k equals to n w, d and discord underscore I parent underscored key. Okay, so here this association is now we have created over here. So this is the syntax, this is the normal syntax for the association, how we write it. If we're going to take some field. So I'm going to take the node underscore k. So v2 naught k, they are, do not gain a swirl. So we are having the node key and in item also, we are also having the node k, right? So which node key? Okay, V naught k here in the association by default, it will consider from the left. The difference is just starting now. If it is, if it is the inner join or if it is an outer join, if any kind of drainage over here, you know, any kind of drainage over here, it is going to create the problem. Okay? Here you can see that it's not giving any error or something like that. There is no error. But just if you give over here, the outer join, the left outer join or inner join, let me give the left outer join. Okay? And as soon as I gave the left outer join, it's giving the error over here. It's telling the name node key is not unique. Okay? So here in case of join, we must have to specify the table from this node underscore key. We're going to sell it because this node underscore key field is there in both. The table, isn't WD underscore is, and isn't WT underscore, underscore. But in case of association, such problem does not happen. Okay? This field, if the, both, the, if this field is present in both that table, then what will happen that by default, this field will be considered from the left table important point. This is one important point. Another important point if you want to take the field from the right table, this is your right table, okay? This is the left table, and this is the right table. Okay? So if you want to take the data from the right table, you must have to specify the right table over here. The same WD underscore, underscore i. And you can give the filename over here. For example, I'm going to take the free lemonade amount. If a directly give the net amount field over here, it will not work. It will give you the error rates, not giving the error at this point of time. Because this nato amount field is also present in S and W T underscore. So, so by default it will consider this particular field from this underscore is fulfilled. But the parent and discord key field is only present in this. If you give this parent underscore key, it will give you the error. If you give the parent underscore k, it is telling that this field is not the column parent key is not known. Why? Because this particular field is not defaulted from this particular table. And that's what a system is unable to identify this particular field. And his, it is not understood. So in this case, if some of the field, if you want to take from the right table, in that case, you must have to give the table name. I'm going to give the table and copy this and paste it over here and fully stocked. Okay? So this is your association. This is your association. Now is the association is this much only know. There are so many concepts is there in this association. Okay? So this table is associated with this particular table. Sales order header table is associated with this sales order item table. But how, right, but how it is associated when retail sales order table, each having the join with the sales order item table, you may ask that what kind of joint? Left outer join, inner join, or right outer join or full outer join. There are four kinds of join. Similarly. If we talk about the association issue, season is having the different kinds of association. How your, the first table is going to have the relationship with the second table. Again, how your, this first table is going to have the relationship with the second table. Okay? That a V defined with the help of cardinality, right? That we defined with the help of cardinality. Cardinality defines how one table has been associated with another table. What is the meaning of association over here? The meaning of association means the record of the sales order header table is having how many corresponding reports in the item table? That record in the header table can have how many corresponding report a record in the item table. That's the meaning of cardinality. That's the meaning of cardinality that we will understand. Okay, let us check the syntax. Activate this one. It's now activated. And then click on this F8 button and you can see that the result is coming. The result is coming over here. Now, before seeing the result and having a proper understanding, Let's go and understand the contained in that table so that it will be easy for us to differentiate Behavior in the result, how the result is going to impact in the different scenario. If we having the proper understanding about the data, we can understand it. Okay. Let's log into the system and we will open the table. Isn't WD underscore? So and isn't WD underscore? Underscore. I bought the table we are going to open. It's taking some time. Just to hold on. Come to see 16 is in W, D and discord. So run this. And here you can see we are having 20 entries, Okay, just absorb that. We are having 20 hundreds. I've just created yesterday night 20 entries. I have removed all the entries. It's very easy to create the entry now in this table, you can go to CPM underscore d z, right? We already know this transaction we have been using earlier also many times, right? So just time making the device, this is the place from where you can go and create the entry. Okay, so 2023 have just created so that we can differentiate the behavior in the result. We can identify easily. Just absorb over here, this is the node k, This is the scholar. I think this is the blue color. Okay? In this color, we are having the key for this particular record. So unique identifier for this node and this quirky under this sales order header, this is our sales order number. This is a created by this is the person name who has created. This is a created at timestamp. This is a changed by who had changed the same person and we can see created and changed by genes at a time the same. The note grid. This is the description would not wisdom is some note you are going to keep it somewhere. For that it is the identifier by GUID, that means nothing but your business partner number. It's an WD underscore BP. You can go over there and you can put it over there. You will get the complete detail currency called gross amount. All these things we already know, okay? So why am I talking about all these things? Just absorb this 20 records we are having over here. And then we are having in another table is so underscore i is in w d underscore, underscore. F7. We're having over here total 122 records. Here. This is the parent key through which it is associated with this and WD and discord is suitable. This is the filter through which it is connected with that. So for a single sales order header, it is having the multiple item. You can see for 602560 to five, it is having the dean items. It is having that teen items, right? 10203040, similarly 6026 cities having again, the ten items like that. The item is there somewhere, it is having only eight items here. You can see that it is only 1020304050607084, same sales order. It is having eight items. So here 122 records we are having. Okay. Here we are having. 122 records. Now. Now, now if you see the output over here, how many output you are getting over here, okay? If you check out the maximum number of rows is a 100. I have written over there. So a 100 arose additivity steering. I'm just going to give 500 over here. Okay. Give the 500 and press Enter. Because either 120 rows it has retrieved. That means for all the sales order header value, the item is there. And all the item data has been taken from the right table. All the item data has been taken from the right table. For this field. That's why 122 is coming. But, but, you know, as we have told how the association has been defined from this table to this table, right? With the help of cardinality, where we have given the cardinality, I have not given any cardinality over here, we have not given any symbol over here. So actually System by default text the cardinality system, by default text, 5. CDS Table Function and Inbuilt Functions: This conference will now be recorded. Okay. So yesterday we have seen in detail about the association, right? So we have seen over there, and that association is a very powerful concept which is going to improve the performance. A lot tougher, going to use in the right way. We will see the power of an association with the help of fury app. We try to create one, your Wi-Fi AP, and there we will see that how so EG, we can implement a CDS with the help of association and we can create a master detail page. So there it will become very useful when we will see that particular example. That example we will see under the next some classes where we are going to integrate the CDS view of it, the SAP wave five or 40 app there we will see how we can consume the CDS where we have used the association in a effective way and show that we will be able to use under there in the Fourier wave have app. Okay? So there we will also realize the power of association. It becomes very easy and it becomes very effective as well. When we are going to use the CDS with Association in fury or a wave, that means that development becomes very easy. You don't have to write the code so much and all those things simply, you have to integrate this. The backend CDS. We have to use another annotation whenever we are going to use the CDS, whenever we're going to create the CDS annotation called r, the rate of four Datadog publish colon true. So as soon as we are going to give that particular annotation, the CDC is going to have its own OData service and that audit is service we can expose to the E wave five or fury app that we will see how we can do that one in detail. Okay. Now, steady also we have seen that how we can huge associates and in a select query using the path expression, right? That portion we have seen yesterday. Also, if you want to use this association like an inner join, that also we have seen how we can use that one in the inner join. Let's go to the system. Let me close this. Come to this system. I'm going to the about perspective. We are, we are doing our development and go to this local object. And the coordinator services we have in which we have developed a store their data definition under this data definition, Jade, MB, MB. So these are couple of CDS we have created the study. And now here, this is the association using the path expression. This we have seen, right? This is how we are putting the select query here. You can see that we are putting the select query on this association which has been defined under the city's, the current CDS is the different one CD86. We are using the association demo underscore association from the CDS five under the select query. Okay? So this also can be done, and if you want to use this Associates and I say inner join, that also we have seen under the CDS five. Okay. So here's whatever you were going to do. Miss what you are writing the code, just to write it like that only normal code. What you will have to do it over here, that you'll have to give the name of the association. And inside the rectangular bracket, just we have to give the inner over here. Once you will give the inner over here, it will be hard like no inner join. It will be have like an inner join. Okay. Now we will go ahead and we will see, we will go ahead and we will see some user-defined function over here. Sorry, inbuilt function. We are going to look into the inbuilt function. Let's go ahead and we can use the inbuilt function. How we can use the inbuilt function insidious. Okay, So it's similar to the OpenStack. Well, how we have been using in the new open sequel over there. In the same way, we can use the inbuilt function over here also, let's go and use over here. One thing more in inodes vein, I'll see you. If you want, you can put the where condition in this inner join. If you want, you can put the where condition that is possible. Okay? So this is due to the comma it's giving the reader. Now. It's gone. This is fine. Okay, so let's go and create one more CDS. Right-click new data definition. Material. May the score CDs and seven, this is my seventh. And here we are going to see that in funk son demo. Let's go ahead and we'll define one CDR. So simple CDS, let's go and create over here. And we will see that how we can use the inbuilt function, what are the inbuilt function? Some of the history we have seen the aggregate function. And today we will look into the inbuilt function. We are having the inbuilt function called absolute. Okay, so what's the meaning of absolute? You know that absolute of minus five or plus five, it's going to give Edge same, right? So if you want to see this value, absolute value, it will be getting its result, Azure plus five. Only. Now we are having the ceil function, so C, E, C. So we know that when we talk about the ceiling fan and all, everything attached with that roof root means the upper denotion of the upper value. So whenever we are going to use the ceil function, for example, we are having nine find five or 9.6. So it's the seed value is going to have just the next integer. So what will be the next integer? What is the next integer for this seal value? Ten, right, so we'll get the answer as ten. Now, we are having the division inbuilt function. You can use this division to find out the quotient supportive are going to define the seven by three. You can do present like this. And its value is going to have the div quotient I'm just giving over here. And then this division comes under the two flavors. One is div function and another is division function. So division, if we're going to divide the seven by three, and if you want to get it up to three decimal places or up to four decimal places, so that four, you can give it over here. Okay? So ij, dV underscore TO decimal places. Decimal places, demons, decimal payments. Okay? Comma. Now, if we talk about some, another inbuilt function, we are having the mode, which will give you the remainder value. Mode means the modulus function bottlers is nothing but it's going to give the remainders. For example, if we're going to divide seven by three, it's going to give the reminder edge one mod reminder. I'm just going to give a reminder value. We can give it a commander. Now, the another we are having the floor function float is nothing but here we are having the seal means upper value, floor Mr, lower value. So for example, we are having 3.4, it's going to give the answer ij three floor a value. Then we are having another function called the round function. Okay? We are having another function called round function. So whenever we are going to use the round function, we must have to use the currency field or quantity field. Then only this round function will work properly. Okay? So what I'm going to do data define this v, I select from this, select from Mara, am going to keep it over here, Mara. And then this is the value which are really presenting. And under this round function, we can give NTD W, which is the quantity field, right? N d z, w is the field from the model, which meaning is the net quantity in Tg EW. And I want to round up, up to two places, this value. Okay? So this is how we can write our whenever you require, you can use this inbuilt function over here. If you wanted to put some field over here, you can put some failure. It is giving some error. Let us see what is the error over here, an alias must be defined. Yes, here let's give some ideas around no need to wait. Net of it. Like a click on this Save button. Here will have to give the sequel view. The important parameter over here will have to pass. I'm going to give did something like Git and be JMB. Judo three is C, 11 and demo or we are having, this is the seventh one. Okay. Some error. It is telling. Select a shorter name. So now it is fine. It's working fine. I'll just save it and click on this Activate button. After that, we praise effort and will be able to see the data preview over here, right here you can see that absolute value I have given the minus five over there. It's coming five. The seal value, you can absorb that. It's 9.6. It's coming the dean over here under seal value division quotient, we're dividing seven by three. So two is coming perfectly. Division quotient up to the four decimal places there. It's coming up to the four decimal places. Remainder is 17 divided by three. Obviously it will be a one. And the floor value over here, we have given over there 3.6, something like that, 3.4. So the floor value is going to have a lower value. Means just to the, for the two-point for the three will be the integer, the floor value rate, and the round. Nate. Wait, this is the neat way to just we are rounding up to three places, up to two places over here. And that's why it's coming up to here, up to three places. It's coming, right, it's coming up to the three pluses. And here we are giving that to. Suppose I'm going to give up to five pluses. Okay? Let us see how it's showing or not, okay? This effect, and up to five plus ij. What is that meaning of up to the round the position, up to how many positions we have to give this while loop correctly, right? So as per my understanding, the five-minutes up to five places, it should give the value correctly. If I'm going to give the two up to two places, it give, it should give the value correctly, right? I'm going to just activated, activated, activated. And once again, I'm going to try and let us say up to two places, 0.25, That's fine. 0. But it's giving, giving, giving, giving a 100 triple 0. It should give up to two places. It should give up to two places. Maybe my understanding is wrong in this case. We can go and check it under the SAP standard documentation. Let me go and check around inbuilt function, round inbuilt function in SAP hana. So round in Blake function, round function. This is over what we are having. Let's try to understand what is the meaning of the round function over here. And then we will go on. Okay. So round ceiling and all it is fine here, up to two to reel, up to 2.616 round from dummy. Okay, So for example, if we're going to use this round function over here, if you're going to use the round function. But bitter, we could have seen under the round function, around function under the above cities. So it is every where in like inoffensive will also it is there. Here in the sequel escaped also it is there. We will look into that for the CDS view, how it's working around inbuilt function in CDs. So exactly we are facing in the CDH, so bitter to go and check in the CDS. This is showing from the script. You can see here it is showing from the script. I'm not bothering about the script at this point of time. This is again, it is the lingual or the SQL script only. I'm looking for the CDS round function above CDS numeric this one, it looks the correct one. App CDS here, yeah, argument, position, argument. We can give it an integer, one integer to integer for all such kind of currency and quantity field, position, literal field of a data source or input parameter of type int 12. This is the data type of integral of our variant one and into our transform to int for. Okay. I want to look into some example, decimal three to edge around. So this is some example given by this is the standard one. We can be able to find it directly over there. Let's go and find it. Control V. Demo CD is equal function number, so this is a series entity. I'm just opening it and just we'll run it and we'll check how it's working over here. This is a table, demo expressions. This is the table. If you want to see the value. And what you can do that you can press the Control, select this, press Control and click over here. It will take you to the demo exploration table. Okay? Yeah, it is there. So now it has come over here. And if you want to see the content directly over here in the Eclipse, you can press F2. There is no data over here. Will not be able to see the output. No problem. This is not a big problem. I will check and I will let you know. But you can just explore yourself. It's not yellow. Here. There is no data that say, we are not able to see, right? They have given one example, but because in that table there is no data, we are not able to see anything. However, it should, as per my understanding, whatever the value is there, up to two decimal places, it to be rounded correctly. But in my case, it's not happening. So either you can do yourself or I will do and latrine. Let's go ahead. And it will function. We have seen how it's working. Now, what we will do that we will check about some important aspect of the CDS and how we can achieve that one. Actually, CVS is having some limitation. Cds is having some limitation. What are those limitations? Cds having some limitations already I have listed down over here. So the limitation, if you talk about over here in the CDS, the very first limitation is that let me write it so that it will be better able to focus over here that you will not be able to write the complex logic, complex logic. Suppose if you wanted to write a complex logic, digit possible complex logic, is it possible? No. You can go and check in the CDS. You will not be right. If l, something like that. If you wanted to write, if condition, if you write one to port low pad or something like that. If you wanted to put something, something, something some complex logic, some imperative logic, if you want to write, it, will not be able to do so. Then how we can achieve this one, right? This is one question. This is one equation, complex login. Is it possible that each not possible? Not possible. Another thing, can you write the imperative logic? That means if else kind of logic, right? Imperative logic. You can write up to some extent using the case and various tests statement as we have done yesterday, right? We can use some cases statement when this is that then that you can write. But complex logic is not possible. Very much complex logic is not possible. Okay? So the imperative logic, imperative logic, like if, else, low part, something like that. Hello pad and modification means kind of imperative logic is not possible. Not possible. Then it is having some, another limitation. It is having some another limitation in terms of datatype. Then you are going to put the Inner Join, going to put the inner join on two tables. And, and if it is having that different data type, it will give you the problem. It will give the error. What is that problem? Let me show you what is that problem. So to show that problem, you know, we have to take when a jumbled. So we should have some functional knowledge so that we can understand about the table content and all. Let's login into the system. And I will see you that you will see a lot of such example over here. For example, if you go and check into the table called AC DACA, This is a new table, AC DACA here you are having the field called. No. You are having the fleet guard. Let me check out. What is that failed. Okay. First go to the F table, which is related with the finance be KPF, press F7 and GJ HR. Here you can see that Nancy is four over here for this big KPF. And if you see over here that GJ HR here also Nazis for fine, this is not the correct one. This is book goes below ART. Okay. Okay. Okay, fine. Here I'm not able to shave actually. Here also, one problem comes, but the field exactly, I'm not able to remember that. But we are having the several examples. We are having this several examples. This is the very first example. When I watch, started using the CDS and real-time I faced over there. But I'm not able to remember the exact field. Here. It is the AC, DACA num C4 and somewhere it will become numb C5. So if it is having the different field, it will just give you the error. Okay. Okay, no problem. But we are having some, another table. Another table we are having the BUT tuples 0, let me go and check. But triple 0, this is the CRM table where you are having all the business partner information, the business partner data via having over here. This is having a field called partner underscore grid. If you go and check somewhere, it will be there. The partner underscore, grid, partner underscore in equate. Let me search from over here. Partner underscore. Go ahead. Yeah. You can see that it's all 16. Okay. This field is of around 16. On the other hand, if you go and check, there is one more table called. The name for that table is CRM D underscore partner, see RMD underscore partner table of having over here, click on the Display button. Here we are having a field called partner underscore number. Partner underscore number. This is the fade here. This is off car 32, right? But the meaning of both the field partner is called guid and partners go number both the same. So many attempts you will come requirement where you have to do the inner join to find out the relevant information from both the table at the same time, you must have to pull the inner join kind of stuff. So I'm going to put the inner join in the CDS on both the table and it will be able to see that it will give you the error, come over here and put the inner join. Select from 881 more CDS maybe. Here itself I can show you, okay, here itself in the existing one itself, I can show you name of the city is going to be the same. But I don't want to stop this one. I will have to put the code. I will have to copy the code and paste it in the notepad. So I don't want to stop this one. Let's go to the Project Explorer. Right-click over here. And I will create one new data definition. The name of the new data definition. I can keep it the CDS and the description. I'm going to give. Cds. Problem on inner join, CDS problem while doing the inner join when data type mismatch. Okay? But at the same thing if we're going to do in the open sick, well, it is possible that it will not give you the error like a 62 characteristics seeded. Click on this Next button, click on this Finished button and it will create a CDS for us. So this is the name of the cities. Come over here and I'm going to give this name underscore S 11 demo, demo, demo. But it will be more than 16 characters. Didn't visit or three like that we have given over here, select star from. Now. The name of the table we are going to give. The name of the table is what? But tupled 0. But to put 0 dot the field name is nothing but we are having the partner underscore, grid. Partner underscore, great. Going to give inner join supportive are going to join the name of the table we are having. That's the name is the CRM D underscore part. Okay. And what is the field for the CRM telescope partner which is getting the problem that is the partner number. Partner underscore in. All right, let me check what is the field. It's not giving the wrong one actually, I'm reading it. I'm doing the scope partner, the field. We are having a partner underscore number. Partner underscore number. Let me go and copy from their CRM doing a scope partner. Partner underscore? No. Okay. If some problem will be there, it will get me there. And some field I'm going to select from the table. So inner join, of course we will have to give the study. I'm doing the wrong that so it's not giving me the option on condition we have to give. And here also I'm doing the wrong thing, right? On, BUT triple 0 and the partner gray area here, it's coming. This watch. I was expecting actually this. But I was using wrongly. That's right. Well not coming. So dot and cmd part by another. Control the space. And here it's coming the partner underscore number. By underscore number. So here the partner is good greed and partner disco number both the same. Okay, So just I'm trying to get the data from this, some of the field I'm going to take from this dot, sum of the field, for example, blind eye contact. Eye contact. So this will be the sufficient, there is nothing to write more. It's fine. A single field I'm just going to select. And here you can see that it's giving their, its stilling the datatype conflict in a selection condition or unconditioned for this. So here it's giving the datatype conflict. That's the problem we are having. Okay? So how do we avoid this problem? How to avoid this problem? Generally, if you go and check with this opens equal, it should not create any problem. But in the CDS, the CDS engine has been written in such a way that it performs the strict check and there it creates the problem. So such kind of problem you will frequently used. Okay. So another one with the AC, DACA and be KPF, I believe I'm not able to exactly remember the field and all. But one more example, which are via having that table is LIP and IP is if we're going to do the same things with the LIP S, This is the sales document delivery item data delivery item data, that table. And another table we're having over here is the mad dog. This is a new table introduced in S4 hana. Here you can see that my dog we're having, and in this mad dog, you are going to have one more field called E B ELP. Let's go and search EB ELP. Both is the same. Both is the same. Here. It's an MC5 over here, PLP Item number of purchasing document. Okay. It's an Item number of the preceding document and earlier in the LIP is whatever the field we are having, that is having the same meaning. Let me close this one. Come over here. Matt dark. I'm going to give LIP S over here. And here you can see that in this, in this VG pos, pos Alypius, VG, BOS vCPU is, this is the field here we are having the num C6 and they are in the EB ELP, you are having the num C5. This will also create the problem. This will also create the problem. It will tell that datatype mismatch on the inner join. So how do we avoid this kind of problem? If we're having such kind of problem, what you can do that you can use the table function concept, a very powerful concept introduced innate. We were 7.50. Okay? So here you are having three problems. You cannot write the complex logic. The second problem, you cannot do the imperative logic tree when you are going to have the datatype mismatch, it will give you the error. So to overcome this problem, you are having the solution, and that solution is nothing but CD's table function, solution of all the above problem. Cd table function. Let's go and create a CDS table function. So insidious they will function is nothing but, you know, CD's table function is nothing but two. Implementation of sequel script in the MDP class. Table function is nothing but we are going to create our MDP class, and then we are going to create one method. And that method is going to be called inside. The method is going to be called inside the CDS table function. Let's go and do that. How we can do here, this problem is coming. So now we're going to create a CDS with table function. Ok. Going to create a CDS with the table function. Right-click over here. New data definition. And we'll give that JMB 03. Main city is nine and C, D is a weight function. Click on this Next, Next, and it will get one option over here. Fine table function with parameter defined, devil function with parameters. I'm going to choose this option because it will give me the template. And here you can see that this is how your CDs with table function looks like. We have to give the name of the table function over here. That's fine. Or we can give it With parameters, parameter name, parameter type over here. You must have to define the parameter over here, right? This parameter is required. The reason behind this is actually this code. You are going to write a script global. And you know that in the sequel escaped, we have to manually handle that client, client field. We're supposed to handle manually in the, in the sequel escaped. So because we have to we have to minus the client filled manually. We must have to provide one parameters called client fee. Okay? So what I'm going to do that we are going to enable, we are having one environment parameter, okay? We're going to use that environment parameter. That environment, environment dot system fails this one. And you can give it a value. If you put Control plus a space, it will give the value. So give the client, if you give this one, the meaning of this means it will consider only the current client. Okay? So we are interested in only the current client, right? That's why we are using this system variable, the system variable. Now, the client handling, we don't have to bother about the client handling. Now what are the fields we want to return? So let us suppose we want to return the client field. Okay? I'm just going to give the client over here. Then. What are the fields you want to return from your CD's table function. So the name of the field you can give over here. So for example, I'm going to give the partner, partner underscore in o column. That is fine. Again, to come back over here and we can get some, another table. Partner underscore, FCT, each one more field that we can give CRM. And the datatype for this is CRM D underscore, partner, underscore, FCT, semicolon, and then the name of the partner. If you want to give name one underscore, d x d, and b, you underscore name one, D is the, I will just check if some, give some error, then we'll go and check from the table if all this data element and all its character not. Okay. So client EBI above dot client element and disco type CRM to endoscope partner underscore FCT. These four fields as they want to turn. This fulfilled. They want to return here some error. It's giving a list of input parameter is expected a width parameters. Okay? With parameters, it's asking to pass the field. So we can pass the field, the client field. We can pass B underscore C N T and a B, a P dot C. So a parameter is just to have pasta and this parameter will automatically, the parameter handling will be automatically taken care by these things. Okay? Now the client feel just want to get to return from the CD's table function the partner number. So just after colon l, hard to give the name of the datatype just after column. So this is the name of the field. And after giving the colon will have to give the name of the data type, name of the datatype. So we are just defining a structure. We are just defining a structure type table of data structure. We will be able to determine the internal table in the output. Okay? So here's some error distilling. Data. Element does not exist, okay? Element and discord type. What we're having partnered Discord number. And this partner underscore number is having the data type CIMT underscore partner under score number. Okay. So just save it. And now it looks good. And here we can give the class name. It will have to give the name of the class over here. I'm going to create one name of the class did NB three MAY table function demo. And then the method name, method name, I'm going to give a return, return CRM, or something like that. I'm just giving this, this particular MDP class and this table function method will have to create, let's go and create this particular class. Copy this class name, class name. Now, let me just try to check the syntax. You can see that there is no syntax error or something like that. Click on this Activate button. Let's see, it activation is successful now. But this table and all is not there. So it will give at runtime the error. You can see that because it's not there, that's why it's giving the air. So what we'll do that we'll create this class and we will clear this corresponding method, then it will not give any ADR. Now, go here, go to this file New, and go to this other. And we'll create one class about class. Next to give the name of the class. We'd already that description, table function demo. Table function demo. Click on this Next button, click on this Finish. And now automatically that template has been created. So half, more than half work has been already done by the SAP. So under the public section, you'll know that when we are going to create some MDP class, we must have to provide the interface called MDP marker underscore HDB. Okay, we'll have to provide the interface. And the name of the interface is the MDP underscore marker underscore SDV. Then only the system will be able to understand that this particular Class is the MDP class. So let's go and include that interface. Give the name of the interface IF underscore a MDP, DP, underscore mark or underscore HDB for hana database. So for hana database, if you want to create the MDP class, this is the interface we're supposed to include. So this is the mandatory one. We must have to include this interface. Now, as of now, sep only supports the hana database for this MDP. So table function is only possible in hana database, not in any other database. Okay, So this is one important point. Interviewer may ask this question. This is a tricky question, right? So if they are going to ask the question that table function can be created in any other database or not as of now, we're supposed to tell no, currently we cannot create because the MDP class is not supported currently by any other database than the hana database. Okay, fine. Then we will also have to create one method, right? So for a stored procedure, if you remember that when we're creating the MDP class and method and when we will have to call the stored procedure at that time. Also, we will have to create one method. Generally we create the class methods, but we can create the instance method. Also. We can use the methods that, that is also possible. I'm going to use the static method. That means the class methods, the name of the class methods, or we can give the same name as we have using over here. We are using over here the same method name, returns CRM values, copy this, come over here and paste it over there. And after this, you will have to give some addition. What edition for table function? For which table function, what the name of the table function we have given over here. The name of the table function is this one, Jade MPEG-2 three, my CD19 copy this one and paste it over here. So at this point of time, everything is clear, right? Everything is clear. So when I have activated this one, actually, when I have activated this one, white layer have activated. I have activated because this artifact would have been created in the database layer. And the same artifact when I'm going to use it over here, it will not give their sum problem easier. Let me check what is the problem implementation missing. That's the, another problem. So we can add the implementation. Returns CRM values, okay, click over here and the implementation has been added over here, and that error is gone if it would have not activated this particular CDS and nine, which is the table function over here. It will be giving the air to you that I have just activated so that it will not give the error. Now let's go and write the code over here. So inside this method, actually what we're supposed to write the table UDF code. Table UDF code. If you remember that the sequel escaped when we were learning over there, we have learned about the anonymous block. We have learned about the stored procedure. We have learnt about the UDF, UDF, Scalar, UDF, and table UDF. Here I'm talking about the table UDF. So the table UDF, you can write inside over here. If else, if else, you can write, you can write, it fails. You can write do Endo, you can write a for loop, any kind of logic, modify and update, right? So what is the benefit of table function? What is the benefit of this CD's table function is that you can implement, you can have wide all the limitation what we are facing over here, all these three limitation, you don't have to go and create a MDP because with the help of MDP, you are going to achieve in series itself the functionality of sequela script. A script is also here, becomes so powerful. So what we have learned in the sequel escaped is going to help a lot if we're going to get some kind of requirement, okay? If we're going to get some kind of requirement. So you can do, you can do all kinds of imperative logic, loop and loop. Do Endo, foreign for loop and loop is not possible over here because this is not the, what about code? This is a sequel is cared for and for a while. And if endif, modify, update, all those things is possible over here using this. Okay, now, now what to write inside this? What to write inside this? Heroes, they'll have to write some. You know that when we are going to define this method will have to write by database. Dear we were writing the procedure in the MDP when we'll have to implement over here, the sequel escaped code, the stored procedure code. Right there we were writing by database procedure over here. This is the table function. What we are going to write it over here. We'll have to write by database function. By database function for HDB language. Did remember there we have written by database procedure. There we have written by database procedure for SDV language. Here we are writing by database function. We are going to write here table function, that's right. Okay? The syntax for the table function we're going to write. Okay? So now I will show you, I will just open where I've written all the table function code and all. Yeah, it's already here. So you can see that how the table function code we write this time trying to make you divide how we actually rewrite the code. So here you can see the table UDF function, right? It was possible from Hannah 15006, right here. This is the code console we write generally, right? So I'm just going to copy this one. And if you go and write this code over there, right? Go here, go here, go into the administrative mode. Go to this open sick console Control V. And I'm going to give some another name because this would be already existing over there. Okay. 23, something like that I have given I'm going to execute. It's giving some error T and three schema. Here, SAP hana DB, so that the schema is not correct. I've corrected the schema name. The entity schema does not exist in the system, but SAP hana DB exist like it. I'm going to execute. And this time he's got successfully executed. So this is how we create the table function. Create function, return cable, eyes begin this that we write like that over there. Okay? Same code you are going to write over here. Same code, you are going to write it over here. Come over here. And we'll be writing the same code. Come, come, come here. Control V, function for SDV language, return table, BP underscore id, var, car, all these things is not required over here because our hour is different. Why this is coming in this color? Is dv language sequel escaped. Okay? Now it's fine because the error was there that way. 6. OData with CDS using Annotations and VDM(Virtual Data model): Seen last couple of classes. We have been looking into the association we have understood about the cardinality, right? These are the stuff we have seen. We understood what is the meaning of the different, different cardinality. What is the default behavior? So many stuff we have understood and all the stuff. We are very, very important point in order to understand the CDS in detail. We also saw that what's the limitation of CDS right onto the wire? That limitation SAP has given. After NetWeaver 7.5 onwards, we got a tool called table function. It's a very powerful whatever logic we want to invade. We can embed in our table function open item analysis scenario. Also a we can write the logic for the open item analysis. Anything, anything we can do, anything we can do over there with the help of CDS table function. Okay? Then we have seen what are the different inbuilt function? Right? Under the inbuilt function, we have seen sea floor, right? This is kind of stuff we have seen over there. We can also use the aggregate function like some min-max CTC. Then we try to understand that one or two points when the last class we got stuck, it was not working. But when again, I tried, it, started working. I didn't do anything over there. Sometimes it happens due to some memory issue or some buffer issue. I don't know exactly what creates the problem behind, but at the same thing started running. I just show you that same, once again that was there in the different system. Now this is another system, that system is not working. So I will show you over here. I will create one CDS quickly. Ok, Right-click New. And we're going to other cells here for CDS and give the data definition. Click on the Next. And then the package dollar TMP, I'm going to give TMP. Then the name of it can shoot some CDS. Mb. Got may underscore a demo for the description. Here, I'm going to show the CDS. First we will see this C2 is association that exposed association was not working properly. So I really saw this 1 first. And then we will go further. Then we will go for the OData part or data was also, we were not able to activate the surveys in the last class that women see. First, you will see this one and then we'll go next. We'll choose a template for the Association defined. Click on this finish. And automatically, this is the template via having over here. Let's put the table over here as the data source will give some good name over here. I'm going to give named NB is 0311. A day more five. Okay. So secret name will have to give over here. The other things we're just going to keep that agitates. And then the level is also fine. That define view name, yes. Okay, I select Form. Here. We are going to choose the table WD underscore, underscore item. Simply we can choose SAN WD underscore. So we're going to put the association between sales order header table and sales order item table. And come over here, give the, another table limb is in W D underscore, underscore Association for us. Single entry in the SN WD underscore a suitable, we can have one or more than one entry. It is also possible that whatever the entry here in this isn't WD underscore. So is there corresponding to that, we may not have even a single entry. Also, it can have 0 or multiple entry, right? This is the header table, this is the item table. Item table can have 0 or multiple entry depends. Okay, So all the header table it is not necessary to have, but generally it will be having at least one entry because that is the concept of item, right? If you have created some header data, certainly it must have some, at least one. So keeping that in mind, I'm just going to give one dot dot star, right? And we can give the association, association name Via start with generally as a gold standard, starting with underscore header item, the name of the Association. I have given it over here. On dollar projection. What is this dollar prediction? Prediction is nothing but whatever you are going to predict the field. From that field, you can choose the field for purpose of join, right? So this dollar prediction, you are looking this for the first time. So generally what we had been using that if this is the double we were giving over here like right, like this. And here we are having the node k gnawed underscore case. So Haider table is having the node underscore k. And here the table is in WD underscore, underscore I, the relationship between these WD and disgraceful. And this has been defined as this. So we can use these to seize a name. Over here. It's already there. And here. Or we can give the, we know that it's apparent underscore key, right? Parent underscore k. Now here, the node underscore t equal to parent and discord. Kate's giving some error. Let's see what is the error? The column node key is not contained in the Entity Selection list. Okay? So as a thumb rule, we know that whatever the inner join, sorry, whatever the join condition we are having over here, that key field, that field must be over here in this selection list. So that's what it is telling. Node underscore t, I'm just going to give and Haider node key, hidden node k comma, and then header underscore, header underscore item. This is the issue she is, and this is known as the exposed associates. And there are two types of association. We know when is the adult Association and other is the exposed associates and adult association will always a join between the tables. Here we are having this table and other table is dense. It is going to have all the join in case of addDoc association. So ad orchestral session when it works. Remember when it works. Header underscore item, if we're going to access any data directly from the SOCs and then it's going to work every time is every time. Suppose for example, you are going to display this particular amount field, right? So because it has to display the amount field every time, what it will do that it has to put the inner join, right? It has to put the Join associates and whatever Association we're having over here. By default it is the lift outrage when by mistake I'm telling the inner join, okay. It is by default the left outer join. If we're going to give the condition, it must has to follow the condition is true, execute the condition, then only every time it will go and display this data. Okay, So let me check the syntax. Some warning is there, we can ignore, activate this one. And this activation looks good over here. Finished activation, finished, it's fine. There is effort. And you can see that data is coming over here. Gross amount, the header node K and gross amount is coming. So what actually I mean to take, because here we have to display the data every time from this Associates and it must has to execute the join every time. So this is, this is not good from the performance point of view. Suppose if you want to get the related item detail for a specific header, you want to sit on item data. At the time of demand. At that time, we can use the exposed association. Okay? This association is known as the Ad Hoc association. And this is position. If you are going to use are the time of requirement, then it will go and put the left outer join only when it is required. Okay, check the syntax. Activate this one. Okay? And now this effort here, all the hidden data is coming, right. And if you want to see, if you just right-click over here and follow association. So we need to, you can see that it's in WD underscore, underscore. So that particular header data, it will fist from this table and that will be shown to you. Okay? So here, let me show you that data. The second parent and discord, 167, I think now I will say it's not working something wrong, is there? Let's see here. Header underscore item, this is fine. Parent gate that is also okay. Let me give some more field over here, naught k and control the space. Give some bio gate. I know the customer we can give as a buyer grade then comma. And it looks good here. It's in WT underscore. One dot dot star is send WD underscore, underscore header, underscore item. Okay? So from this table, I'm expecting whatever the parent key each over here that it should take and it's going to, it should work, right? Like that, it should work. One thing, what I will do here, instead, directly giving the table name over here. Let's give the field from here. Okay? So we can use the dollar prediction. In that case, it shows yes and because in this case it's not working correctly, we will try with that dollar projection. Just save it and check the syntax. This is another way of writing. This is another way of writing. So whatever the list is over here from this table, that same field we can use from by using the dollar prediction. Okay, let's check the syntax. I activate this one, this effort. And now, right-click, follow association. Right-click once again, click on this button, double-click over here, and the message here, the parent key. Let's see the parent key over here. I'm clicking on the 168. It should display only the ones 68. Again, something is going wrong. Something is going wrong. The node k, naught parent key, it is fine. It looks better. Okay, I've created one. This theme. I have created this data. Let me check if I'm doing something mistake over here. So I'm having core data services, data definition. And some where I have created this one, I can double-click sonata key, one dot, dot star. That is fine. Here. Auditor publish that is okay. This is fine. This is sin WD underscore ASO to S and W D underscore, underscore. Underscore item underscore, this is fine. This is fine. This is fine. Recent fit. And now, for example, 168 is there right? Right-click follow association. And here it's coming frying. See that? Here it's working fine. What's the mistake I'm doing over there? Let me check. Header underscore item, right? This is what we are giving. Let me see this. The name node k is obscured by an LES. Ok, OK, OK, OK, OK, OK, OK. What actually we are doing the mistake over here. Here we are using the alias, right? This alias we're supposed to use over here. That's what we would have looked into this. No warning. So that's why this particular joint is not working properly. Okay. I'm going to give this header underscore note underscore key over here. State. And now that error is also not there, right? Seaweed. Check the syntax and activate this one. And now right-click over here, and we'll follow the association. Double-click here also. This is not working. What's the wrong is going over here. 167. Can you check over here? Right. What is the problem? Are you able to identify some Here, which one we are running? This is working fine, right? This is working fine. This one. Let me close this. Once again. I may run it and we will see what is the problem. Man. And we are having this door. Okay, good. So hatred is gone. Node k, This also we have given that warning is also now it's fine. Underscore header dot item dot parent key. This key is missing, means node key, report we have to put key. Okay? But I think this should not be a big problem. Let's check. That is the issue. This effort. And here we are having some different sets of value. Right-click, follow association, double-click. Yeah, now we just started working. Okay. That is the problem. Okay? I've never absorbed this one. This after giving these key to started working. Okay. I'm good. Okay. Fine. So when we are giving the kids walking, so key is very important, right? Is very, very important because without key, it is not working properly. Alright? This association is not working properly without gay. So that's the, that's the significance of key over here. We can realize that what is the significance of K? I never absorbed this one. And thank you Others. It's really, this key is walking over here. And when we are removing this k, Let, let's take, let's cross verify. And then we will see how it's working. Alright, click and follow association and double-click. And it's not working. That's the only difference and which was causing the problem. So generally we give the key and that's why we could not realize this difference. Okay? I have been using many at times, but I never face this kind of problem. And this guy is making such a big difference. Okay? So this can be also one important point that if we are using the exposed associates and we must have to use the key, whatever we are putting over here, you know, for the join condition we're supposed to use, I just keep it must have to define that as a key, then only it will work properly in last class also, that was the problem. That's why the association was not coming properly. Generally, as a future dollar projects. We can we can directly use this one also. It will work fine. Isn't WD underscore? So you can use Control V. Control is okay, header underscore node underscore k. What is the problem over here? The column header node key is unknown. It's telling white stilling unknown because we're going to give the table over here. You must have to use the table feed. Okay? So Control V. Now if you click on this Save button at check the syntax, activate this one. It is God's successfully activated. So this is actually also going to give you the same result if you right-click over here and click on this follow association, right-click, follow association, double-click. And you can see that it is also giving you the same region. So that is a different way of representation, actually. The different way of writing. That is a different way of writing nothing else. Okay? So if we're going to use the prediction, if we're going to use the prediction. I will show you some important stuff related with this prediction. Prediction means whatever you have listed out over here from that, you have to choose it. So what we have listed node underscore k and what note underscore key under here. This is the alias. So here you must have to give the alias name if we're going to use the projection. Either way it will give you the warning. Okay? If you don't give these Northerners quirky, we'd be able to activate and all. But that will give the warning. So better to use the alias name. And whatever under the prediction is over here or that field must be here. Even miss whether this is a dollar prediction or if we're going to use this table. In both the cases, the condition, the join condition field must be listed over here inside the CDS entity list. Okay, civic and different way of writing. If you, if you want to select from another table like gibberish. Eugene. Dissociation of music, exposed to six years and ended underscore underscore item. The item from another I can use another table also. Yes. Yes. We can use from another table also. You can use from another table also, you should know what is the relationship between this table and that table. That's it. Correct, is really sensitive. Here. We are supposed to specify in order to get the correct result. You can use anything over here. Only the main thing is that the relationships would be the correct between this table. Okay. Fine. So this is the exposed SOCs and this is also known as the ladies join, the join on demand whenever we required to have the Join. With this table. It's in WD and the score is so underscore that time. It's going to put the joint and it's going to give you the data. So you can see here that currently it's going to give you data only from the WD underscore. So table right here you can see because in the list, in the cities element list we have given only in the selection field, we have given only two header node, key and customer. So this two is coming over here. This two is coming over here. And if you want to see the specific item, we can double-click over here. And we were able to see all the item detail for that particular header, for that particular header node. So that's the important thing over here. Now. The same thing. We can, you know, huge here, here. We know the concept of OData service, right? We know the concept of OData service. Why the OData services required? Odata services required, as we have seen in our last class, that if you want to communicate with the external world, if you want to communicate with the external world. So in order to communicate with the external world here you are having the CDS, right? Here, you are having this CDS. And if you want to represent your data to the external world, for example, you know, your wave five or 50 or dotnet, java based application, anything. If you want to expose. In that case, what actually will have to do. We must have to use the OData because directly it will not be able to consume the CDS. To this external world. Not only the city is any abab, any above related artifact that the series is also. What about party fact? This is developed on the application layer. So the CDS or suppose if you want to consume the RFC are some bumpy or some data from the table. If you want to consume, it, will not be able to directly get the data from this particular data source to this external. They will not be able to understand directly. They understand the OData service, that's the Open Data Service. That's why the open data. That's where the open data comes into the picture. Okay. So to create the OData via having the several way, how we can create the OData. One is that we have seen in our last class that using the s EJW, this is again a separate course. How there are different way of there are different types of OData services we are having. Here. We are having the function import, association and navigation. So the beauty of actually the CDS with association is that here we are creating this association. You don't have to write any code either. This association and navigation is tricky when you are going to create the enthusiasm and navigation related stuff like for a particular header, you want to get the item, list of item. If you want to get. For that purpose, we will have to create the association and navigation into this. By going into this is easy W and the implementation, the writing, the code and all the concept is little tricky. But here with the help of cities, hysteresis and you don't have to do anything. It's simply what actually have to do. What, what annotation we have to do. Or the rate of OData dot publish colon through this only we have to use. And once you save and activate automatically, it will create a OData service in backend. Who don't have to do stuff over there, right? So one way is using the ZW. Another way, there is a cidal way of creating is ADL. Another another way is a RESTful API. Restful abab is full. So if you know how to create the RESTful web application. So that way also, you can clear the auditor surveys and that A-bar artifact or ABAB object can be consumed by the external world because you are going to kick it to the auditor. So this is the popular way is easy. We generally we go and create through this. Alright? So here, if you come and click on this control six also you can praise and this GUID to form here. Also we can open, go to a CCW. And we have seen in our last class how to create the project and all everything. Alright? Again, will not see that one. But here I will show you that once you use this, Add the rate OData dot Paul obliques colon, true. Automatically. The service auditor service will have been created. It has been created. So if you put the cursor over here, I've already activated. If you put the cursor, what it's telling just to absorb the NameNode key is obscured by the alveolus. Where we are doing here, okay, here we are doing right? Remove this, close this one. Close this. Okay. This is the one. Once again, I'm going to take it and activate it. It's got activated, activates and a successful put the cursor over here and see what it's telling that multiple markers or this line, you had generated the objects, right? It is telling view had generated the objects, but service is not active. So we have to manually go to the T code. The code is there. And there we have to go and we have to manually activate the service. That is the onetime activity that we'll have to do. Alright? So when we create through a CCW also, we have to activate the service rate. We have seen that how we can know how we can how we can register and resisting the service means activating the service. Okay. So we have seen that we gone way over here. We went into this service maintenance and double-clicked over here, are registered the service like that. We have done directly what you can do that there is a T code if you click on this register, so it will take you to that t could only are the te code name is nothing but the slides I, W, F, and D underscore MA, AND Gore scores are only meant to underscore survey thing. Let me check if it is working correctly. Code is C 93. We'll go and we'll give slice IW. If Andy underscore MATIN, this one, remainder underscore service, run this one. It will open that particular system over here only and click on this Add Service. And the technical service name over here. You will have to give the name of what will be the name of that service. What will be the name of service? The naming convention of that CDS service will be the name of the series. Copy this, and paste it over here. And under score CDs, I add one extra. I add this underscore. Cities add this extra. This will be your presenter. And we're not able to see, let me select this local maybe and press Enter. Now we're able to see that this is the service we have created. What we have to do that this service will have to add, we have to register this one. Once they will register, you automatically, it will be activated or manually you will have to activate to see that one. So just to absorb the name name is correct, right? This is the same this one is the same service, right? Underscore CDC is there, so that's the correct service. Select over, click over here or this select and click on this Add Selected service. Once you will do, it will ask that you want to activate the service. Support. If you want to transport into the another system, you must have to provide the productive package over here or else you can use the local object if you don't want to transport, click on this okay, button. Once it will click, you can see that the service was created and it's the metadata was loaded successfully, right? Service has been created and metadata was a loaded successfully. This onetime activity we have completed and now from here, Services gone. That means it has been registered. Go back and click on this filter button or you can search it as you put the filter. We can use it over here. Click on this external surveys and I'm going to search my surface over here. This is the surveys, now is over here. Let's see if it is activated or not, right? This ICF notes, you can see over here, this is actually responsible for external communication. This node, this node, ICF node, internet communication framework nodes. This particular, if it is turned green, it is fine if it is not done gain what you can do that you can come and activate over here. You can come and activate over here. So generally, it will be activated if it is in yellow or red color, something like that. You can come and try activating form here. This must be in the green status then only it will work properly. Then only it will be consume this auditor service from your favor application or application like that. Okay. Now I want to taste the services. We can use this SIP gateway client. Click on this button and it will open the SIP gateway client and click on this allow. This is a big Gatwick client has been opened. And now around this one, to see if it is loading the metadata or not. It's loading some data or not. Once it will load something, we'll see about the metadata. Also, you will see that whether how it's going to display the data, the same service, what we can do that we can utilize from the F5 application or from the foodie application. And here you can see that it's working fine. The status code is two hundred, two hundred miles successful. That means it's working properly. There is no problem. Alright, there is no problem. If you want to see in the JSON format, we can see, we can look into the JSON format also. Right. Click on this. I'm just giving equal to Jason and pressed enter its formatting the data into the jason format. Okay. And some erase the IR format equal to Jason. Let me do one thing. Here. It's seems case sensitive. Press Enter and let us see. Yeah. And this time it is fine. So we're supposed to give into their INR, small, this on capitalists does not, because all this is the case sensitive. This is the case sensitive. So now here you can see that it's telling that entity sets, what is the entity sets it has created is in W D underscore, underscore I. And this one, this is the list of entities set with has been created. List of entity set has been created to entity set has been created and which is responsible for giving the data to you. Okay? Now, if you want to see the metadata, we can just use the meta data center. And you will be able to see the metadata. Yeah, some problems here. Let me do one thing. We'll take this option. And from here we'll see that dollar metadata spilling some spelling problem was still some type of problem is there press, click on this Execute button, and this time it's going to load you the, the metadata. Metadata is nothing but if you want to see what are the data inside that entity, say what has been exposed to the association? All this information you will be able to see over here. Okay? So let's put into the JSON format. It will be good. So dollar format equal to Jason. Okay, It's telling that metadata is only available in XML format. We can't do anything over here. So let's do one thing, come over here. And now I will just show you this metadata. Okay? So here you can see that entity type name. What's the entity type? It has automatically created association name. Also it will show you your association and also it will show you, you can see that association. Alright, so what's the SOCs? And it has created automatically, like to know the association and automatically it has created everything for you. You don't have to do that much exercise. That's the reason CDS is so popular and this can be consumed in master detail page application of the fury. I will take one example. I'll show you in the, maybe in next class or next to next class. So just do understand here like how you can create this OData, the same auditor service we can consume in our fury application or eBay for replication. It's very easy. It's very easy to consume. Okay, now, going forward to another topic that's the hot topic for the today. And that name is the VM Virtual Data Model. That's a very important topic nowadays. And this has been the standard when we are going to create any CDS. We have to keep in mind that we have to keep in mind that we are supposed to follow the standards. So we were looking into the EDM for that. Let's summarize what we learned over here. So if you want to expose the OData, if you want to expose the CD is to OData, know what annotation? This is also very important interview question. What annotation is used? Hotel or the rate of OData, Dr. Publius colon. True? This annotation, we're supposed to Mecca. What one time activity, what one times d v, d v are supposed to follow? What onetime activity we are supposed to follow after publishing and the OData. Okay? So your answer should be it will have to register, register the service, the service, and activate it. Awaited. So this should be your answer is to the service and activated. How to do this? What is the T cold over T is the T code to register and activate the service. So this should be, at least you should be able to slice I, WO, F and D. It's less meant underscore services, advice, service. These are some important the code from this chapter, what we have discussed, the association one important point just we have seen that we must have to use the key in order to work it properly. Also, you can use the dollar projection. That is the, another way of doing the writing the code. So if you see the standard SAP, you know, if you see the standard SAP application, a standard SAP CD is, it will be able to understand or know these are the gold standard, how VI using over here for example. I'll just show you over here. It's every time opening this one. To close. This canceled. Okay? So here, Control Shift a. By pressing Control Shift a, that means we're just opening from here, okay, controls safety. So here, if you see some standards, CDS for example, I underscore material or something like that. Okay, double-click over here. It will be able to see that everywhere they are going to use this, you know, prediction. They could have used this one also, Mara, alright? Because from the Mara they're going to you. But the benefit of this dollar prediction salmon to semantically, it's a more meaningful way, more meaningful because whatever here we are giving that material, right? We are giving the alias over here. This alias, if we're going to use it over here, it will not give you any error rate, means it will not give you any warning. And the meaningful also. But if we're going to use the model over here, right? The Mara, if you write the mara dot material, the system will not able to understand the material system will be only able to understand this. Meitner, Amara dot Martinelli will have to write, you must have to write. But in prediction. It gives you the flexibility to write the material. You can use the Meitner also, there is no problem, but it will give you the flexibility to write the material. This is more semantically meaningful. This is more flexible. That's why it is one of the gold standard which SAP follows everywhere in SOP standard CDS, if you check, they use the dollar projects and dollar predicts and dollar prediction, right? So we're also supposed to follow them standards. So our coding code looks better and more meaningful. Okay, fine. So this is the region why we are supposed to use the dollar prediction. Now, the very important this V d m, What is this? Vd? Vd M stands for Virtual Data Model. Cdm stands for VTE stands for Virtual Data Model. What is the meaning of virtual data model? A data model. Okay, what is the meaning of virtual data model? We know that we are having the virtual memory, right? We are having the virtual world. So virtual memory means the memory which does not exist. Actually. Virtual world means just the imagination that world does not exist actually. Similarly, the virtual data model is the model, is the data model which does not exist actually. But we can achieve a data model with the help of CD is if we are going to, if we are going to I raise the CDS, we're going to follow some rules and regulations for a CDS while development of the CDS, if we're going to use some annotation, if we're going to use some instructor and recently is nothing but our instruction, right? Some of you are providing the metadata, you are providing some properties. We're defining some properties. If we're going to define some certain property to a CDS, that CDS is going to be hard like a, you know, a data model. The CDS is going to be half like a data model. So V d m is nothing but the CDS only button. Defined in some certain ways, defined with the help of some specific annotation. And that rotation is going to make the CDS azure Data Model. That annotation is going to make that CDS as a data model. That CDS, you know why that CD is someone is having any question. Okay. Fine. Yes. What is that? We are using for virtual data model? Yes. Yes. So I say animals you just view, is there association? Is that when I saw him on it? Yes. Yes. I got your question. I will answer this question. Okay. So virtual data model, virtually determinancy if you are having the CDS, if you are having the CDS over here, for example, it is suppose we are having the CDS. Cds, we can use the association, we can use the inner join also. We can use the outer join and left outer join, right outer join, every kind of flexibility we are having overhead. And the CD is we can exposed to the external world using the OData services. We can expose that this CDS to the external world using the OData services, using the annotation called the rate of OData dot publicist we have seen, right? So using this we can, again, what is the need of this virtual data model? This is a good question. Why is virtually data model isn't needed? So there are several leads actually. Write CDS. We haves specifically as a data source, right? Cds is nothing but a data source because CDS view, if we're going to create some CDS V, I'm talking incense of view. Cds is having the broader meaning. I'm talking in terms of view. When I'm talking CDS, when I'm telling cities, that means I'm talking about the CDS view. Okay? So when CDs view, we have a data source, then what is the need of this virtual data model? Benefit of this virtual data model is that one is the Beta D presentation of the CDS. Earlier, before this video concept, the CDS was hodge-podge, okay? It was not represented in the beta, means it was not modularized. It was not, you know. Specified in the nice way. Okay, it's design was not the good. But with the concept of virtual data model, some certain rules and regulations come into the picture which improve the readability, which improved the maintainability, and which improved the performance as well, right? All this factor is going to know, all this factor was the cause of getting the new concept of this virtual data model. One is the better the presentation, better representation. So better representation means if you are going to follow this rule, everybody can understand what kind of CDS is there. Maintainability is also one of the key feature of this video. We'll see with the help of an example, you will be able to understand how beneficial disease like better representation, maintainability, and the performance. Performance also we can improve. In the cities. Many cities is very, very, very bad with respect to performance. If we follow this video model over there, we can achieve, we can, we can. Why did that performance issue? So that's why the video becomes the powerful at that particular place if we want to get the performance. So from the performance point of V, battery presentation, men stabili 7. VDM - Transient Provider: So let's start over today's session. And in last class, let's have a quick recap. Mostly we have discussed the theoretical part in our last class. We have seen that some couple of questions which is important, we discussed like if you want to expose the cities to audit or what annotation we're supposed to use this notation. We're supposed to use what onetime activity we have to follow after publishing the auditors. So we have to register the surveys and activate it using the transaction, this one. So what is the name of that transaction? This is onetime activity, this one you will have to follow. Then we started the virtual data model. We came to know about the virtual data model. This data model is based on the CDS. The main thing behind this is the CDS only, there is nothing else. Just the way it has been designed, it has been organized. The way of organization is making unit, and that's why it's known as the virtual data model. There are several advantages to having usability, modularization, better understandability, and maintainability, better performance, right? So such kind of stuff that we have seen, we try to define that it is nothing but a proxy for the city is, right? And this is one of the gold standard. If you're going to huge. If we're going to create the CDS for the purpose of analytics we're supposed to use, even for the normal proposal. So we're supposed to you for the simple Developmental, so we are supposed to follow this approach only this is the better one. Okay? So video we have seen an iterator of three types, private, interface and consumption. Private we're not supposed to use anywhere, right? Interface it off again, two types, basic and composite under the composite there now, when we are having off type cube, okay? The analytics category. When it is going to have the analytics category, edge cube, at that point of time, it becomes the transient providers. So cube is nothing but this is the terminology used by BA or BW people. It is a Info provider, like a cube is a Info provider. So generally it is using the warehousing data warehouse, a data warehouse terminology cube, so that Q we can export from here also. And if you have billions of record, you don't have to go for the BA or BW system. This is going to do our work effectively even better than BA or BW system. Because we are having the hana system. Okay? Consumption, consumption we will mainly for the purpose of suppose if you want to export your data to the fury application, or B, a or B W2 like Illumina, there are many other reporting tool so that if you want to expose them, conduction comes into the picture. The important part is this interface. If we know the interface will, this consumption view is easy. Right here in this diagram, we tried to take when it jumps. And we're going to implement this example today, and we will see how we can implement this one. Okay, fine. So here you can see that view type is basic for this first we're going to create the basic view. In basic view, mostly what we're going to do that we're going to put the direct query on the database. In a composite view. We are not supposed to put the direct select query on the database view. So that's the basic difference between the basic view and composite view. Both comes under the interface view. Okay? Both comes under the interface view. We know that both comes under the interface with this, the second interface here. So let me mark with some color. This is this also and the cells. So the difference between both is this. You can directly put the select query on the database. That is the recommended approach. Here for the composite view, it is not recommended to put the select query though if we're going to put the select query on the database table, it will not stop you or something like that. It will give you some error or something like that. Maybe it will give the warning, but it will not give the error. Okay? But the best way is that foster, if you want to put the select query on the master data table or the fact table, right? So master data table or the transaction table. First create a prediction on that table like we create now prediction view in a bath. If you remember in a bath, we create the prediction view, right? So similarly first to create the prediction view over here. In terms of that, that view here in CD is known as the basic view. This annotation we're supposed to you detect categories, the master data we are going to use the diamonds and if data categories that text. In basic, basic, basic, we are having the, mentally, these three kinds of, four kinds of actually want to have missed over here. One is the higher the rate of object modeled or data category column and fact. Here diamonds and here diamonds and he had texted. And one is fact and another is hierarchy. So for this purpose, if we are using the transaction table, using the table like a sales order header cells order item, invoice, invoice item. This is kind of table, transaction data table for using for that purpose this data category we can mark as a fact, okay? Then there is a concept of hierarchy also. And this is used for the hierarchy. We will see this one under the hierarchy. This is also possible, but here, in this case you can see that I'm putting the select query on this and a blue dendrites score, bd. So this is a product table of product is the master data table, right? It is same as the material master. Here we are using the demons and area we'll see in the action. Now, let's go. And these are the frequently used annotation for the video. Write that video m dot view type. So this is the most important, the first one is the most important. This is going to identify that which kind of VM you have, whether this is a basic or it is a composite or consumption data category, we have diamonds and fact cube dimens in fact kill these different character data, category, text, and hierarchy right here. Here we are having the text and hierarchy for the object model. Here this is, this comes under this text and hierarchy comes under the object model. On the other hand, this data category comes under the Analytics semantics, but both is the data category basically. And analytics dot query. This is three. This we are going to use under the conjunction view. This also we are going to use everywhere analytics dot data extraction, dot tenable colon true in composite view. Basically everywhere. We'll see, Let's go here and we'll start creating the basic view first. So the first basic view we will create, let it connect. We will create a let us see what we have written. It's in the blue TBP and S and W D underscore Eddie. Okay, so you're going to create that basic view from the table. It's in WD underscore bp and isn't WD underscore 82nd. And you know that all the interface we start with the Jade eye or sometimes we give the naming convention like this. We give this. Generally we are going to start with Git I. Underscore are some name, again, underscore, underscore and again some name. So either I underscore, underscore, underscore, select that the naming convention is going to be so that anyone can understand that. Okay, this is the interface with, and if it is the interface will either it can be basic view or composite view. This is the naming convention which we are supposed to follow as a gold standard. Okay. Just hold on. Okay. Fine. Let it Logan. So these are the different level. We all know that we're already familiar with this table. We have also created one diagram over there. What is a different kind of relationship, how it is associated, that you can directly go into the table and check with the help of checkable how the data is there, right? It's taking some time. Let me try 171909 system. And it seems it is down at this point of time. Maybe I will try with this brown I wanted to 09 any of the system is fine. Yeah, some problem is there. Let me try with this. Okay. This is working fine. So we can use the one at 09. So let's go and create the project in 1809. Okay. So that's the second canceled column over here about projector. And this is the system which is good to one wanted to 09 and instance number, everything is going fine here. 800. No, I didn't give the user ID and password. This is okay, this is good. Here. You have to create from scratch, right here, right-click new and study. Other about repository objects, CDS. It's not saying Core Data Services. Let's do like this. So the first series we are going to create over here, right? So let's start the name. We are going to get the data from the two database table. Isn't WD underscore AD and AS and WD underscore BP. Bp. So the name of this particular CDS, what we can keep it because we are going to get the customer information kind of stuff. So J2, I score customer info or I understood we have written fine customer underscore info someone has created already with the same name, Double-click and the description. Customer info information. Okay. So if it is already there, 7M is there. I think we will not be able to create a customer detail. Let me write like this customer detail. Go to this next, next and choose the simple defined view. Okay? Okay, fine. If the association is required, we will do what is the data source here? We have the two table, right? We have the two table. One H, the SN, WD underscore. Hannah is in W D, the first table. We are going to use S and W T underscore bp. And we can give some alias name, BP business partner associates and do what is the another table? S and WD underscore Eddie. So you want to get there. Inflammation and here cardinality if you don't define it will take by default or else we can do one to one cardinality, right? I think we have created already, this is 30, okay, no problem. Once again, we are going to create a customer detail as select from this interview dendrites could be P SBP, Association to send WD underscore AD as the association name. We are going to give the association name, we are going to give some meaningful limb, right? So business partner to address it is their customer address. We can give customer address. And on condition, you have to specify what should be the only condition. So here we are using the BP. So either you can use the BP or you can use the dollar prediction. Okay? So this is the better practice to use the dollar prediction. Prediction and dot, the common field name between the both each one needs to address. I think address ID equals two and the other we are having from this underscore customer underscore address. That means from this table, Control V, fully stocked. And here the different Here the node key here, the node give you haven't. So let me select the node k, naught, this one based on this. And now we are going to get some data over here. Let's define what a start with key, node underscore key as this node underscore k. So by default, if you don't specify anything, it will take from the left table. What is the left table? This is the left level, so data is going to come from the left table. Wd underscore BP data will come in. So a BP underscore, underscore key, we can right-click this RB peak is simply we can give the BPG, fine, then give that comma or other BP underscore a role we can use or we can directly put the controller space. It will give the required field, BP underscore roll comma control space. And all this field is coming the PID maybe we can select BP underscore ID. Check if the BP ID as it is here. So be PID, this PID, this business partner ID. As BP underscore ID, we can use a different term also, the richer, based upon your convenient. And then let say some company related company name. If we have the company name, we have the company name. So just we are going to create some meaningful in camel case. We can use the CamelCase notation so that it will look a little better company than we have. And then address the address id comma. And obviously this annotation, this customer address, you know, we can, we can use it controlled way. This association we can use. Now, let us see it's giving some error. Let's try to understand what is the dealer id is not contained in the Entity Selection list. Okay? I just underscore ID here and what we are giving over, I decide to give the same whatever here the name is the same name. We're supposed to put it over here. Okay, because we are using the dollar prediction here. Let's give them a meaningful name. Hi, sorry for discipline. Yes. Let me explain everything now. These workplaces, Right? Right. Yes. Okay. Yeah. Okay. Yeah. Okay. So here we have seen all these things. The Save it. Now, activate this one. Summated is there, let's see what is this error contains error C problem before detail, some error here. Okay, let's give this name. We have not given this name. Now. J2, m, b, and 03 is 11. And this name we can give, let's give some meaningful and maybe demoed seven like that. In the sequence we are using customer information, this is fine, it looks good. Click on this set, check syntax and now activate this one. Okay? The activation is successful and this view is now created. We will keep it open. Okay, click once again, and we're going to create another CDS view, another basic view. But one thing over here is that until and unless you give the view type, it will not be your basic view. So let's give the view type. So what view type? V d m dot view type. Press Enter and the view type have to give the control especial So and select this basic. Now, go here and one more annotation. We can use that data category analytics. Though it is not required. This analytics one is not required, but support if we're going to use in the analytics, that purpose, it is going to be useful. So analytics and data category and then control the space. And here you can see that different option it's coming. I'm going to use the dimension over here because this is the basic view. And here are the devil is a master data table. For that purpose, I'm using the diamonds and over again, the analytics, the data extraction or is there no data extraction? Colin controlled airspace and gondola space has and will have to give the truth. Simply we can give through here. Okay. The data for analytics data is not something I'm missing here, a half to give the control, control space and then enable this one. Last one we'll have to use like this. Okay? So these three annotation that we have given, which was important. So the syntax activated this one. It is now successfully activated once again, let me activate this. Yeah, It is now activated. Okay. And now let's go and create the and other cities. Neil, other above repository object CDS, data definition. And here we are going to create another series. This is the customer detail which we have created. Now the second one, we are going to put the select query on the table so that this basic view we can use in another CDs and other basic CDS, okay? Another basic view. In basic view, you can use another basic view. Also. In basic view we can use the another basic view. We can use the another association. We can use the database table. So mostly we are going to use the database table over here. In the basic view. In the composite view, we will be having only the a, we are going to reuse the basic view. There will be no database hit over there in the composite view. Data underscore. Now, Dexter, what texture? We can give some extra detail or something like that. Did I info? And here, the text information, all text information, all Dexter information. Now click on this next. Next that define, we'll click on Finish. And now here this is the name of the view here, that was the demo seven. And here I'm going to give you 23. What the naming convention is. 11, is 11. Okay. The data source, we are going to put the select query on there. Wd underscore text. This is the text table. So texts actually, not the text texts now control the space and we can choose some field over here. So node we can, let me insert all the elements. All the elements we have inserted. Client is not required, okay? By default, CD is decks gears of the current client because it runs on the application layer. Okay? Nordic Edge, node G, calmer, the parent key, I and k. And then this language, language, we can give the text and we can give no product text. Text. So generally the product description is going to have over here, okay? So data adding all these things is not required here. Just we are going to have for our purples over here, just that three annotation here also, we are going to copy and I paste it from here to here. But here you see that this basic type is view, but the data category over here is the texture. Okay? So here the data categories, the text. But text is the data category of what object model. So you'll have to use the Object Model Data category colon text. Okay, let's tell it to sharing some error. Let me check what is the problem. Remove this model, actually model. Now it is fine. And then analytics, dot d tech stacks and dot enabled Colorado. This is good to now save it and check the syntax. Activate this one, and it will be activated. Activation got successful, right-click. New. And one more insidious know. Multiple basic view we're supposed to create. On top of that, we're supposed to create composite view. And on top of that, we're supposed to create a conduction will Core Data Definition next. Give over here the GID. Another basic city is what? I'm going to create j, starting with Jade. I underscore. This time, we are going to get the data. We are going to get the product information, all kinds of product information we are going to get. Combining, combining the two basically we have created no one is for customer detail and another is for the product text. So combining both together, we are going to get the complete product info from the WD underscore PDA table. So let's find gave this producting for here the product information. Click on this next. Next simple defined, that is fine. Come over here and copy this. And here I gave nine. Another notation. This also will be required. Come over here, control V, basic text here, this is the product in full we are having. I'm going to mark this as a diamond. Okay. Has demonstrated here are the data analytics and analytics. Okay. So this, you can also keep it together. Here you can see that at the rate analytics dot data category or the rate analytics dot data extraction. Alright, so in a bar, people remember that we are using the chain operator, data multiple. We have to define type again data using a single data. Also we can define multiple variables, right? So in the same way, heroes or the rate of analytics. And we can use the chain operator. How we can do that, and that takes spelling is correct, It seems out of their analytics. Okay. And now here we will have to use a chain operators. So give the chain operator, and then they have to start the curly braces. Once you've started the curly braces, these two you can give separated by one is the data category. One is the data category. And then comma, what is this? This one, the data extraction dot enabled, copy this and paste it over here. Like that. Also. We can give fine, come over here and now it's fine. You can remove this one. So this is another way how we can give them both having the same impact. Come over here. And mostly we are going to face the data from the assign WD underscores. Our base level is going to have over here ascend WD underscore Pd. And for this product we are going to get the information from the different sources like, you know, who is buying this product, right? What is the product description from this text info like that. Okay, so we must have to use the association to give the association, by other way it will take the by default association. But the thing is that before that, we'll have to define from which particular this thing you want to put the associations. So Jedi text the input I am going to use so as to season to date, underscore text, underscore info. So generally one product can have the multiple description, right there only one product can have multiple description. We can use the one dot dot star association to this edge underscore product description desk or description. Something like that. This association name of the distances in what product description. Again, we can create multipolar association. You can get, but before starting this decision, you must have to define the unconditioned. Define this unconditioned. What is the on condition over here that you will have to check? They have to go into the table and from there, you will have to find, let me see if I'm able to identify over here projection dot control space. It will not give you anything because the reason behind here, we have not given at this point of time. Nothing we have given. So what maybe do insert all the elements we will use. And latter, I will check whichever is required that we will put. Now it's coming here. Description grid. Let us check for some. Good kind of field. Check for that description. Good controller space. Yeah, this one. So this description good in this particular table is going to relate with what? This this product description that means J J underscore texts, underscore info. Okay, so come over here, copy this, give over here and fullest of control space. And let say this is the Nordic. A little hard to use. Naught k here. Note key over here, and the description would be same. I'm a little doubtful. Let me check once. This lesson is C6 n and send up Lu De underscore text to come over here. This is the node k, right? Language and text. Okay? So it's in W D underscore texture, node key, language and texts. We're having a layer that looks good. Wd underscore, BPA, come over here and description is in W D and rest good PD product we are looking for not productive. And the description will this go here and check for this is in W D underscore, text, underscore key. That is fine. Come over here. Text T naught, original language, data aging. So this is the MSN WDN does for texture, same and come over here. So this is the node k. Actually, we are using character. It is absolutely right. This description with and this node k, same association, another association. What we are going to use that with this customer detail if we want to get now for the customer detail this day, day underscore customer underscore detail. So let me copy this and we're going to use this one copy. Come over here, Association. And here if you see one product can be supplied by multiple customers. So one dot, dot star, we can do Control V ij. Here. The association name we can give, what is the name of dissociation? We can define the product to customer, buyer. Maybe we can define our supplier. Okay. Product supplier. So the valid name gave the on condition dollar projection data control space here, what is going to be the key field? Maybe supplier grid over here, this supplier grid. So supplier grade here will be having the supplier, but okay, let's give this a name as supplier ID. Here we'll keep this one. Supplier ID. Okay, come over here and give that supply underscore grade is not looking good. Let's say that I have changed its name. So dollar projects and our supplier ID. And then this underscore supplier. And for this underscore supplier already we have defined this field over here, right? So we are going to choose the field formula. So let us see which field we can be PID and we can choose it from here, right? So be PID, be payroll node k, naught Q will be there here. Okay? So choose the naughty kid. Be picky nutcase be peaky over there we have defined, so I have two didn't like this on projection, it looks good now. And some warning is coming. Will remove that warning and we'll keep now the required for your client. We can remove. So you can see that automatically the WD PD is coming way because the very first table is going to come if you don't provide anything automatically, all the field will be coming from this end WD endoscope PD, right? So the supplier id will keep node key. We can keep this node k naught k. It's better to give the alias. It's a good practice to give the Ali as always. So product id and then the type code as type, something like that we can remove all so it is not required. Category, category. And then the createdBy is required. Then we can keep it created by product creation, like to keep this on. Createdat is not required, changed by disease also. Not required. Change that name, ID, product name. Okay. That's fine. Maybe we can keep this on edge. Product description grid. Okay. For Dr. description grid, description weight, something like this. I'm giving the name here also. This is the name *****. Actually, this is the name, good. I'm going to keep the same name. Otherwise it will be confusing. This is the description grid. This is the this three underscore, good. Remove the centre score. Mark this as a supplier ID. It looks good. Tax tariff code and all. If you want to convert this price, all these things is their depth. Remove. I don't want so many things. Now, obviously, all the association which we had defined, now we are, we will be using either exposed dissociation. So underscore supplier, we're having control C ported over here and the product description Control C and paste it over here. Comma. Now just save it and let's see if it is any error. So I'm wondering is there let me see if we can remove this warning. If it is this no match on the uncondition Gardener, just fine. The name description which is obscured by an alias. Okay? So here, description, great. Description grid, what we have given this we are using so better to use this description, good Control V, That warning has been gone. Now. The third warning, what it is coming that cardiologist artifices and does not match on the, on condition. Okay, So the cardinality, what we have given, Let's try to, you know, Let's try to remove this warning. Correct? It's telling that what we have given the cardinality is not the correct one. Let's try to give the correct and we will then able to remove this one. So this is the texting for eight. This is the text in fovea having, okay, here we are having the j dy, dx in full text in boys getting the data from the same WD in this context. Okay? So the product, one product can have multiple texts. Mostly if there is no description. No description is also possible, right? No description is also possible. That is fine. So as per my understanding, this is fine, but still it is giving this warning. We can ignore them because this is right at minimum one or maximum estar. And here, now, here the customer detail, all the product can have the multiple customer. This is also perfect. So technically it is checking. That's fine. No issue. We can ignore this one. This is a warning. Economic growth. We have double cross that it's a fine association is correct, we can emerge, it occurs activation is now successful. Three basic view we have created. Now. Now we are going to create the basic VBA related with the fact that table. Here we have created with diamonds and text and diamonds. And right now we are going to create for the factor, what factor will also will require, Right? Then only we will be able to create the q. Q means three-dimensional view of any data, any set of data so that we will be able to analyze, right? So if you remember the analytic view, right, under the Information Model we were learning about the attribute view, analytic view, calculation we'll write. So in attribute to view, we were facing, we were emphasizing that we're supposed to use under that attribute we only the master data table. In the analytic view, we're supposed to use master data and transaction data, both, right? Because we will have to create the queue in the analytic view. So similarly over here also, if you observe in the basic view, basic view, it is like analytic view. This basic view it is like analytic view here you can use the master data table. You can use the transaction data table both together. You can huge. Okay, so let's come over here and we're going to create one more coordinate services. Click on this next. And J2 I underscore name of this. We can keep something like header info header. We're going to use the invoice header to fit the data from the invoice shader. Invoice header. Good. Okay, because we will require, right? We want to see how many total, how much total product has been settled. And it is possible only through the invoice. It a total how much total cells? It is possible from the invoices only assign WD. And a score is So underscore INV, underscore head is the table from where some few fields we're going to, let me first complete this basic requirement, Control V. Okay? One more interesting thing. I will share with you that in above net we were 7.5, five. This is the CDS view. Now there is a concept of CDS entity. So all what we are discussing now, this will allow fall under the classical CD. Classical CDS, whatever we are discussing and whatever, you know, as of now, this all is, this all falls under the classical CDS. Way. If something new comes, the existing one falls under the classical CDs. So now our new CDS concept come, has come into the picture. Their name is CDS entity. In the CDS entity, This is the baby's not mandatory. This equal view is not mandatory. In the classical CD is this sequel view is mandatory. This is the mandatory, but then the new CDS means above 7.55, above 7.55. Now above 7.55, they seek will view is not mandatory. And from performance point of view also, the new CDS is better than the earlier. Okay? So this is the latest Neo4j. We will discuss that one also. Now, SAP, What is trying to do a brief CDS trying to convert into the new CD is where sequel view is not mandatory, but every CDS is not possible to convert you to the technical challenge. But they're also preparing some tool. If we're going to use that tool and give the name of the classical CDs. And if you execute that tool, it will convert automatically into the new CDS. So they are preparing the two like that. Okay, fine. So here defined view data, you underscore Hadrian's going for it, select from a send-up lutea and the squares on the screen, Weiser ahead, some field let us select from here, insert all the elements. All the elements is not required from this end WD underscore S on the screen. Why is it some, I require some few fields. Maybe. This is five at select from. This also looks good. And create one association. Association with what? Association with the customer info. Okay, we are going to create the customer input, right? We would like to get a list of all the invoices along with the customer because the customer is there. Because this is a customer is there. So heater and customer, how the relationship will be defined. One. Here you can see that this header, h1 header can have only one customer. Unique invoice header can have right? One. So one dot dot one is a default one, okay? So automatically it will take, if you don't give this condition, we are going to give dollar prediction. We can use as a better practice data. And here we can use the controller space by a grid column equals two. And for this JD customer detail, Let's define some association them as underscore. What is the association them from the header info, that's fine. Invoice header, it can give something like Meyer. We can give something like buyer. It looks good over here, underscore B U R dot. Now control space. And the buyer GUID, which it will match with what to be PID at this IDP, peaky, be picky, be picky. It will match with the BPG. Choose this be PKA. And let's remove this client. They don't require this client invoice header. This header and gory detail. So I simply required node under school and one buyer inflammation. So where is the buyer, this buyer grid, remove all this. Remove this. Two fields suddenly require basically by an underscore, but let me mark it little better. So buyer, go ahead and hear i's node key. Okay, remove this underscore. Now it looks good. And this is a season. You can keep it over here so that we can do it. Okay. Now some error is there. Let's see what is the air on prediction, the column, but we're not contents in the Entity Selection list by our grid. By a grid, we can put a copy and paste it over here. Now it is gone. This is also fine. Let me see what is there of already declared. Okay? So here are the ten. This is fine and the basic unnoticed and which is a mandatory one, we can give it away here. Control V. But now this is the, this is the header info. Header in fluid depends see if your data is going to change frequently under the header. So generally the header item, this all comes under the transaction data. So you can mark this as a fact. Okay? So under the diamonds and here we have either damage doesn't send data, domains and control space. This fact we can use it. Okay, just save it and check the syntax and activates the PDM know BDM dot CSS. Now good, good catch, VD view type and controlled airspace. The basic view, this is mandatory. This is the mandatory analytics. This is fine. We have done this, activate this one. Now, the four view we have created, right? We have the full view. One more, Let's create. And because here we have created only from the header, header. So I'm going to create from the item. So right-click over here. So multiple basic view we are creating a can see that we are creating the multiple basic view Core Data Definition next to it here, Jade eye. And maybe we can give it some name, invoice details, something like that. Invoice detail, description. Invoice detail. Next to. Next. Click on this Finished button and select from the datasets what it is. So here we are going to have, the main table is going to have over here is then WD, guess in WD underscore, underscore, INV, underscore item, invoice item table, and the multiple association obviously. But the one thing would the control space and get all the element, latter, we will remove whatever required. Now come over here. And we will give the association. So multiple is position here. We'll have two huge multiple assertions. The first association, which we are going to use, that maybe we can use the product in for this product in for a start with this product info for this association to and by default one dot 11, it will be Let's see what it wil 8. VDM - Consumption View RSRT: In the last couple of classes, we have been looking into the medium. A very important concept that the virtual data model, it's having three types, basically, the private interface and consumption. Again, the interface has been divided into two parts, basic and composite view. This medium data model is generally exposed to the outside environment of their SAP where it can be consumed. Okay? So generally we use this consumption view to be exposed to the outside environment. Okay? This composite view, this as a transient provider with the help of a D chord. That's the coordinates image. Here we have written artists, RTKs, underscore, ODP, underscore DISP with the help of this T coder. Or we can use either transient provider, this particular VM, where the view type is the composite and the datatype is the cube. So this also we can expose this type of interviews. We can expose at a transient provider. We can analyze the data. Okay? So in last class we have seen like what is the private view? We have created many basic view. We have also created this composite view on top of this busy vesicle view. And that view we have exposed to this transaction artists ITS and escrow DP underscored display. And then we have seen how we can analyze the data. Today we are going to create this conjunction view on top of this composite view. Okay, just to give me a second. Okay. Today we will be looking into this consumption. When consumption view comes into the picture is more embedded analytics. There is a concept of S4 embedded analytics when we taste pore Hannah, that also comes into the picture because we can use one of the pillar. We can expose one of the pillars of the S4 embedded analytics with the help of this conjunction. So let's try to understand about the S4 embedded analytics little bit. And then we will go and try to pay into that conduction. Is four in the data. And it takes, as its name suggests, embedded analytics. Analytics, which is inside the S4 hana, already invade, okay, with this concept. With this concept BAR BW system is now getting kind of obsolete with the S4 hana embedded analytics. And also BA or BWP is now losing their job due to this innovation. Or else they have to learn the CDS view and they have to migrate their data scale. The region behind the people started using this S4 hana embedded analytics. And the customer also, because here no extra cost and they don't have to pay extra anything. They don't have to purchase. The extra license if someone is buying is for Hannah automatically. This is for embedded analytics or no. There will be a given. Then the second thing it is having that it's very easy to create. This is for embed data analytics is very easy to create. You should know how to write the whole thing squared, correct? You don't have to create the fact table. We doing the B or BW, they create some different, different types of tables. Then again do the join and dog. But here we don't have to do all those things. So just to CDS view concept, if we know, then it's easy to implement. This is for embedded analytics. Is fully embedded analytics is having four pillars. Is for embedded analytics. He's having four pillars. Four pillars in the sense it can be used in affordably. Using the S4 embedded analytics feature. The huge in affordably. We can explore the things in affordable. One is the query browser. This query browser is also known as the trend x and RS RT. This will be the error in our S4 hana that, that means is for this system only one decision we are using over here. We can access through this Julie, The clicking over here. And just we can go to the transaction. And here itself, this is nothing where they're very browser. So this is known as the query browser. This is the one. The second thing, what we have is the key PA modular. Be a modeler. Then the third thing, what we have is the a, b, a b effort. It be if in nothing but it's full image analysis Bot Framework. So let me know. Don't listen. Bought frame. Work. With the help of APF also, we can expose this one. And there are two more. One is all VP and other rich API. Or BP stands for Overview page, and AAP stands for analytical bit. Let's go and list those. All VP. And a one-inch all VP. He's the one view page. Overview page is nothing but I didn't web didn't Pro via having been Paul. So we created the OPP in the same way here also in fury also we are having the overview page in fury with the help of theory also, we can export very beautifully. This is for immediate analytics and in the nice formatting pie, pie chart and graph and all those things will be there. Okay? Then this is the analysis list page, digit, API, city. It, PHA, an unlisted analytically speed. So these are the five pillars it is having an it can be exposed. We are going to learn about this pillar. This is different topics which are also not aware about all this. But this all comes under the deserves a different way of exporting days for embedded analytics. Okay, So mainly the fury pupil use or maybe other beer VW people will be using all of these things. This also, we're also not going to use this RS RT. But because I know about this, I'm having bit idea about this RS, RT, how to use. So we'll just see how we can create a consumption view and we can create, we can use that one inside this query browser. So it is similar to what we have learned ideas and it's called ODP underscored display. Only the difference over here is the one which I have used over here earlier. This one, with the help of this composite view and data category has a cube, whereas the new one, we are going to be huge as you type edges, the conjunction will have, will be the consumption. And here, one more, you have to add. So at the rate of v d m dot view type, this is one annotation and another annotation. If you want to make consumption view this extra annotation. These two specific annotation with must-have to build type it's pending option and add the date and 18 dot query equal to true. This, we're going to go and do that. Okay, go here. This is our system already I've opened last class. I created over here all the, all the basic view, composite view I've created over here. But this system is done. Okay? Take Chem to know this one in mourning. The system is done. In morning. I have created, again all those view which we have created in our last class. So it is there, the system is working 1909. Here we have created, so jester created over here the customer info, the basic view we have created in our last class, then the product in four we have created, and then the header info we have created, right? And then the invoice detail, you can see that invoice detail we have created the same what we have created in the last class. The same, again, I have created a hole here. And then where is this composite view we have created same as we have done. Okay? Now we're going to clear the conjunction view on top of this composite view. Okay, right-click over here. And no data definition. Recreate. Ceo. Then we can give the invoice analysis something like that. And the description. Invoice uses. Finish. Here the secret view name. We must have to give some view them as 11 view now. So usually what we have in giving the same thing, I'm going to give it away here that M B to C, 11. Okay, more than 16, it will not allow. So let's restrict its length. And on top of that composite view, which we have created in our last class, that is nothing but the name might be different, okay? But here all these things is set almost seven. So here control V. And on top of that I'm creating, I'm totally space. And in fact, all eight minutes here, I can give LES or it is not required, but just as a best practice, I'm giving over here company, name, country, and then language, then product, then gross amount. Let's see here. Similarly here Let's see what is there to select a shorter name. It seems it's more than 16 character. And let me give this a, save it. And the two just we have discussed over here that are the V d m dot view type. Okay? Please enter Control Space and here give this consumption. And then the second one is the rate of analytics dot data category. Okay, sorry, analytics dot quick query analytics, Dr. Grady, Godwin. True, this must, must have to provide this one. This bolt is important. The Save it over here. And now we are done with the consumption view. Okay? No, we're done with the conjunction view. No. No. Let me activate this one and we will go to the transaction RS, RT, and we will see that how we are going to get some error is there. Let me check what is their unknown city as view. Only CDS view from the name to watch. Okay. This is the city's funeral. Actually copy this one and paste it over here. This is actual CDS villain. I did the mistake. A copy from the sequel view and paste it over there that we're not supposed to do, right? So I've just copied and pasted CDS view and this is their check the syntax. Syntax is fine. And click on this Activate button. It will get to activate it and got activation is now successfully. Now control six. With the help of control, you can open the SAP GUI. And then you can come over here and write our SRT is the decode here under the gritty. What we'll have to do, copy this one control C, the secret view name. Remember that you have to give the sequel view name in beginning and add to see, same as that transient provider we have seen. Okay? And click on this Execute button. Here, it will come like this, okay? And here it will come like the same as earlier. It was coming the same way, but this will not be able to open in RS. Rt is underscore that index and it was there no party is underscore ODP, underscore DSP. Alright. Okay. I think our RSD maybe. Okay. Whatever this something I'm missing over there. So let's see 93 artist, ITS underscore ODP underscored this. Ok cannot display, actually does. Okay. So this press Enter and it will open this one here. If you'll give that name. No, it will not work. Here. It will not work. It does not support. Okay. You can see that it does not exist, it just telling. But in Addis RT transaction it supports, okay. So for embedded analytics, this each for embedded analytics, this is the query browser where we can come in Malaysia or data. Okay? So let's suppose I want to see the row of h, okay? Country, I'm clicking away. So all the country will come as a row h over here you can see that countries coming. And the key figures here under the key figures in nothing is coming right under the key figures. I think it's coming. Why nothing is coming? Can you tell me why nothing is coming? Because the reason behind why nothing is coming under the gross amount, right? That KPI figure. Under the KPI figure, nothing is coming. So here you have to add some annotation. What denotation? Denotation we have to add in last class for the composite also we have added the same annotation. This will add the date of default aggregation. So the same annotation we have to add that default. I agree. Okay. Sorry, default Data, Aggregation, Control Space. Something is wrong. Let me copy from here. It's case sensitive. Copy and paste it. Okay? So default aggregation equals to the sum. Can you tell me this aggregation will be applied for which particular field? On gross amount or on currency code. Okay? So as we know that whatever the aggregation we use, it, we'll just apply to next field. Okay? So this aggregation is only applicable for this failure gross amount. For this currency code also, I have to kill what aggregation it has to use. For this. Just to make understand the system that it is a currency code. We can use that at the red semantics daughter currency code, colon, true. This particular annotation. Everybody we can ignore it over here because already we are using this, right, this tendency code. But this will have to give it because it's not taking from there. Okay? So let me try with this. Just save it and activate it. Okay? Activation is now successful and go over there. And go there. So then I will have to open that our SRT center, give that value and execute this one. And now under the key figure, now, so nothing is coming, okay? Nothing is coming under the key figure. What is the problem? Default aggregation we have chosen, and that is fine. Right? Or the rate of analytics dot query that also, let me check once again over here and add the rate of analytics dot query. This is also fine. View each consumption, this is also good. Okay, my view each conjunction, that's why it is appearing over there. Ronnie, I'm trying to default aggregation is some for the gross amount. I'm using it over here. It also looks good to me. Let me do one thing. We will use that without Come over here. Let's go to that place and use this. The gross amount. Gross amount is not coming at all over here, right? Company, country, currency, code description, language key, and not gay. Okay. So I don't know, It should come, actually. It should come because we are using this default aggregation columns. Alright? And it may try once again, I'm going to copy this and just go back. Control V. Given beginning to see and query display, it looks good. This is fine. Execute this one. And under the key figures actually that should come. Okay, that should come. But it's not coming. Default aggregation. I need to check what is the problem over here at the rate of default aggregation. It some that is fine. It looks good to me. I will check offline and I will show you what is the problem. Some problem might be there. But I think this is how I really have to do this default aggregation for when to do. That should come under the key figure edge earlier, like, you know, when we were using, Let's lasso. Our SRT is underscore ODP, underscore DIS, and they're not going to use this one. Which one is that? To copy the correct name. This is the name. Copy this and paste it over here. Control V to C will have to add and read without a buffer. So here you can see that under the key figures it's coming, right? So when we are giving over here Lake already we have given it away here. That default aggregation, It's some over here, right? So it's coming nicely, correct? It's coming nicely. So we have to give this also. Let me check by giving this. There it's coming, but here it is. I cannot call me in this embedded analytics. Okay? Activation is successful. Once again, I'm going to save and activate. Okay. Now, it looks so let me check if some warning or something is there. Some problem is here. It will help us to identify it finds some warning. Is there some warning bargaining? Okay. That's fine. That's fine. Come over here. And once again, recall and artists RT. Let's execute this one. Now also it's not coming. Okay? Okay. Fine. I will show you some. I will check it and I will let you know. I will show you some another important annotation which is very useful. Here you can see that when we have to see the company data, for example, I want to see the company-wide. Now you can see that gross amount is automatically coming over here. Okay? And it me, you will discover in C code. And now it's coming under the key figures, however, it is not showing, but when we are selecting the currency code and just when we have selected, as soon as we have selected that company code, automatically, that particular, you know, that the gross amount earlier, like if you remove this, if you remove this currency can right-click and just remove from here, we get an option to remove, maybe remove, drill down. When p or removing this one, it is suing a status turnstile because it is not able to understand in which currency will have to the display. So when I'm selecting this currency code, right? So maybe from column-wise, we can select, okay? So when we are selecting the currency code, we are able to see that total sum. So it's working fine over here. But under the key figure, it is not showing. I think it does not show I'm not export of these are not used. This one. Here, the output was coming fine. Another thing what I would like to discuss over here is that suppose, if you don't want to select anything from here directly, want to get it over here. Likely to want to get it over here. So what you can do that you can remove this one and you can just remove from here also, it is possible to remove that remove option. Click on this. The key figures in poetry comes, everything is now removed. And what's your requirement is when you open your application or another list view page or whatever, or this query browser, automatically, the default field should come over here. You don't have to come over here manually and select. So for that purpose, again, we're going to use the annotation. Okay, That's the CD is known as the semantically rich data model that everything we can perform with the help of annotation. But remember that, that all those annotation which we are going to use, that is possible only this conjunction view. And that also when you are going to use this actor it analytics dot query, colon true. Okay? So all those annotations are going to depend on these two annotation. So this must be included, okay? This, this at least must be there. I have seen that when I don't use this one, it gives the error. And even in the documentation also it tells that we must have to use this one or the rate of analytics dot query colon true, very, very important annotation. Now, I want this company name to be displayed without selecting over there. So for that, we are having the annotation, that annotation, image and text, analytics details. And then dark gritty. I think its axis. Let me control space and we will get some query dot axis, this one, this annotation will have a huge here. Control space, if you give it is columns and rows three option, it's coming, right? So I want to display this company name as a row wise. Okay, so I'm using this row. Now. I want to this gross amount to be displayed by default. Okay? So again, I can use this one at the rate in details analytics details, query axis, Garland and this and this gross amount, how we want to display each column, which I would like to get in display column-wise. So just I'm going to use this as a column by a row is all depends what you want to display. Based upon that. We're good in pivot table in Excel. Here it will be easy for you to know. In beginning you can give any rows or columns or whatever it will display will be able to understand semantics dot currency code, this is fine, it is, okay. And this columns. And the currency code also, this also will have to give, because without currency code it was not displaying the data is coming in, star, star, star. So this is fine to save it and check the syntax and then activate it. Okay? Now come over here in this, really just paraphrase it. Okay. It's not happening anything. Let me go back and go back once again from beginning, early start so that everything will load properly. I can come over here, click on this Execute button. By default, dodge, column, row, all these things should come. This is my expectation over here. Let us see how to approach it sticking some time. Let's leave some time. So there can be several regions. And you can see that here automatically without selecting or listing system in the currency code also he's coming and the company is coming row and the currency code is coming, the column white. Alright, so that's the power of annotation. Annotation is very powerful. We have seen the power of annotation lake or the rate of OData dot published. We don't have to write even a single line of code. And it creates, it creates the What OData service for us, so powerful. So if something we're going to expose to the fury, you must have to use this annotation. We have already seen this annotation. Okay? If something you are going to expose to the outer, provided you must have to use this or the rate of auditory or publish anything to the outer world will not be able to understand this particular coding. And all. They only can understand the web services. Web services can be created. That means the row data services here, that web service name is the OData service. Auditor service can be created with the help of the rate of audits that are published colon through annotation then only will be able to use this as we have seen many times. This query axis also we have seen now supports. You want to see the product wise. You want to see the product wise sum, the maximum tax at how much of one customer has paid. The tax amount. Maybe we can get the tax amount here, gross amount we're having. And we can also get that tax amount in this composite view itself. So control of space. Let me check tax amount we're having over here, right? They can use this one as taxa amount, save it and activate it. Now come over here and give the comma. Then what actually have to give that? First I will give the tax amount. So controlled airspace tax amount, sintered tax amount. And now for this, I will use the default aggregation. Default aggregation as max maximum, which customer has paid the maximum tax less than 12. So this will work like as m. Similarly, we have many default aggregation or min-max count, such kind offer. So we can use like that. So this is one annotation, this frequency, and one more annotation. So these are the frequently used annotation which we're having, which we are discussing about over here. Suppose you want to calculate the difference between the total gross amount minus the tax amount. Just to want to find out the difference. Let's do one to find the net amount. Okay? Let's do want to find the net amount. For this purpose, you want to calculate. And we want to get into that particular environment. Okay? So for that purpose actually here, you have to take to the system that this is a kind of calculation, right? This is what we're doing, is nothing but a calculation. And calculation. It's being done with the help of formula. What is the formula over here? Minus, minus is the operator. And this is a kind of a formula. So we have to take to the system. So if we're going to use any such kind of formula or any such kind of expression or arithmetic operation. Anything such as kind of things will have to give analytics. It's something like let me check analytic control space and some formula kind of things will come and take details dot formula maybe. Okay. Let me check that one. Planning, planning, planning, analytics details. Okay, Let's take the default aggregation there itself. What are the different option? Default aggregation? And totally space. And here we are having the formula this time looking about this formula. This formula will be responsible for calculating this one, gross amount minus tax amount. Now, those fine. We have, we have done this one. We have done this one. Now, let's go and run this and just save it and check the syntax. And activate this one. It is activated and go here. Very monitor. Go back again. They have to depress every time. Okay. So let's run this and let's see the output object output. Dearly It's very fast. But the system, I don't know. It's taking some time to detail, so very less. It's sticking some time. Now, our expectation is that it should show the maximum tax amount, also customer wij. For each customer, it should show the maximum tax amount. Okay, This is the customer and the gross amount, right? You can see that this is the gross amount and the tax amount. We are not able to see here tax amount or graphite. You can see that 1039, that means here, might be at right-side. That tax amount will be there. Okay. Here the tax amount is the right tax amount is coming. And now we are looking for the calculated amount, okay? So this is the calculated amount, no label specified for Selected Query on position. Right? Now, you might be thinking that all of these things is coming here. It is not coming, right? So this all comes from the data element. The element. Okay? So here for this Nate amount, I have given it over here, need to mount here the calculation of disease net amount. And for this, there is no data element. For the other field. If you see the currency code and all, it is having the database name and description. And from there, it takes this value from the data element description. But for the net amount because it is not a data element anyhow related with, so it is not taking the value. But what I want to display this, I want to display some label over there so that my user will be able to understand. So for that, we have one more annotation. And that's a notation name is end user or the rate. At the second system is very slow. Actually. The second tax amount we're given another it aggregation formula. We have given gamma. That's fine. Please enter again, tony. Okay, I'm going to close and open and once again, it's nothing is happening. It is just frozen. I'm going to close. And once again, we are going to open. So which one we have created the HCO invoice analysis come over here once again. And it's just getting open. Now It's fine. Default aggregation formula over here. Now it's working good. Or the rate. In the future. End user text dot literally, is there no, just use this and give the net amount of a here. And this name amount will be coming over here. Similarly, you have the several cellular cell phone restored and it was your text level. You can see that also we are having the quick info like this quick and four. If you put the cursor over there, it will take like gross amount minus tax amount. Okay. So here I don't know, here it will show or not, but in fury, I have seen that. It showed. Okay, if we put the cursor over there on the field, it will tell you that gross amount minus tax amount. Okay, so save it. And we'll check the syntax, and then we will activate check the syntax. Then we have activated it. And let's see if it is getting successfully activated or not. Okay, syntax check is successful. Now, activation is taking place probably. And after sometimes it will send a message over here. Okay? So here you can see the error and three wanting city showing it's getting activated. Maybe it will take some time. By the time let's go and go back. Go back. Let's run 1 second. If that would have been properly activated, our data will come properly with the level and all. Okay. What do we have given over there based upon that, the data will come. So this here, it has come, go to the right. And the tax amount is now coming. I'm looking for the net amount need to mount. You can see that now it's coming the net amount over here. Okay? So the default, how we can get it over here in the same way, this is also going to work in fury also. You don't have to select some field from others purely configuration in fury from the configuration, from the settings we select the field which we have to display. But if you don't want to select the field, by default, you want to see the field populated automatically. Just this annotation is going to help us find with this our videos. We have completed our video. We don't have anything over here in the iridium and CDs also. I have completed with this. Now we are having the AAV idea, okay? So Avi idea today will not be able to cover due to some important Voc. Maybe tomorrow or I really need to know if tomorrow will be having the class or not. Ab idea already, I'm having the recorded session from the previous class or Liddy. I have uploaded that one on the YouTube. You can go and check out from there. Okay. Movie ID. So it can be seen from there. The, another topic idea. This, this is the video. I can be sitting the link of this in the PPT and maybe you can go and watch out. Okay? So AAV idea of it this way, probably I would like to complete idea. Fine. So here just by clicking that we do open and can be seen from here in the integration. And then this is very important nowadays it is very much in demand. Then another thing is that CDS performance. These two topic is left on me. One more topic is called lateral replacement object. This I will discuss now itself. What is this replacement object? Okay? So this topic, I will just let you know when I'm going to cover almost our class for the CDS is completed for this about Bonanno also. Today. Today we have completed for these two topic. Either I will share with the help of YouTube video, or maybe once I get the time and I'm available with the content, I have to prepare the content also am not ready with the content. That is also on point. I'm not waiting the time also nowadays. But these two top CDs performance and this is left on me. So next week probably, I will let you know. Okay, we'll complete this to topic and then our class will be completed tomorrow. There will be no any class. I will not be able to take any class tomorrow. Next week our class will be completed. If you have any question, you can ask me, please. Pud application region C, D is here. We'll see that in a CDS and BOP of integration. So actually here I need to arrange the system also, system connectivity and all with fury and back-end integrated, all these things I'll have to know. I have to prepare these things just to showcase how it's going to. That's why it will take time. I don't know when it will be able to do this. I have to check the proper server. Then I have to taste myself first, and then we'll be able to show you the Furies should be there in the system. The connectivity from the Fury to the backend should be also there. That's why I'm not able to show. I tried to explore and my current system, but I was not able to do successfully. Some, I just need to check if it is having all the required component. Is there or not. Okay, Then that's where it's taking some time. The CDS performance, this is fine. We can complete this one. Next, next class. We can complete, or maybe tomorrow also we can complete. That will inform me if I get time tomorrow. Okay. So we can complete at least the CDS performance and the placement object. I'm going to complete this. And if any topic is left this please let me know. I will cover that one, but almost we have everything completed and ALB idea, please go and watch out from that YouTube. That replacement object. What is this replacement object? So the placement object is nothing but vector. With the S4 hana concept. For S4 hana, we all know that ECC came to the business suit on hana. Ecc replaced with a business suit on hana. And this business suit on hana velocity placed with the S4 hana. Currently, the organisation is moving towards S4 hana. So D here, everything was fine. Everything was fine. But with the haze for hana, in order to improve the performance, is it B has done the changes or the, the data model layer at a lot. When we talk the data model, that means or the data dictionary layer, they have done a lot changes. For example, we have discussed in the beginning also that Martha Marcy and there are several more 26 tables. 26 tables, they are combined together into a single table called my doc. Okay. So what is it? What does it mean if they have changed? If they have, it removed all these tables and converted into the single table. Similarly in the finance, the finance domain, alright, they are having them be KPF. There are so many table, right? I don't know All this table, but it is having a lot of money table in finance. And around ten to 20 tables has been converted into the tables AC DACA. Okay, this is a table in the S4 hana. So what does it mean though? The earlier indistinct table has been removed? Earlier existing table has been removed. No, that is not possible to remove away the region behind. In SAP application layer. Lot of code has been written based upon this model, say based upon this big APA, based upon the model, right? Lot of select query, lot of modifies statement, write select star from Madison value like that. It has been used. If there are going to remove that Mara everywhere, it will give the error. Everywhere. It will give the air. They will not be able to activate. And to the place everywhere this Mara, I don't know. And to make the system consistent, it's a big task. Okay? So keeping those things in mind, that code pseudo also walk properly. This Martha Marcy, everything is there but in form of replacement object. Okay. I will sue the example of Marcy. I've seen a lot of these Marci. So let's go and check this Marcy, this is the S4 hana system. Let's go and verify that it's S4 hana system. Go to their status and come over here. And you can see that this is the S4 hana 1909. Okay? So now if you come over here and go to the database table, and let's try to open this mad dog. In our legal system, this mark dog will not be there. Click on this display water. It's not opening way. For this is my deductible. Is there? Okay. Display. Not displaying, none at all. It should display actually. Some problem is there in the system. Let's go here and open. Okay, through here. I'm just going to try to open. My dog is pseudocode. All these tables would be open and it gets opened actually. Here. You can see that here actually it's opening in the foot. It's not getting open over there. Okay. There it's not getting open, but here it's the opening. Just come once again, slash n is c 11 mart dark. Let me yeah, here it's not getting up and why it's not getting open. The reason behind app open through this, this hana Studio. That's the reason it seems it's not getting open. Let me open this epilogue on from here. That's opening, but in the Harness Studio, it's opening in the hana Studio gates opening. Okay. I log in here. Other than c less than it's 11. My dog, hips seven. And Haritsa opening. You can see that it's opening over here. Click on this Content button. Okay, so mad dog, all those table when no. Replaced with, we cannot tell that replaced with. But in deed of that combining all those table, SAP has created this map doctor will also, okay. And here it will be able to. So now if we're going to create any material, that material will be, you will be able to see that material in this mad dog 9. HANA text search: Let's start our today's class. Last class we have seen about the various performance improvement related annotation, service quality, the site's category and data class. These are the main annotation which we are supposed to huge. This is supposed to use a standard best practices which will improve the performance. So it's very, very important in DL temporary octal. So we use this particular annotation. And from interviewed point of view, also important. We try to understand like what we're supposed to put the sites, particularly if it's less than 1 thousand and lift than one lakh. Accordingly, we have to decide the size category and we have to put for that annotation for the data clusters. So you understood what holds. We can categorize various data class and here like how the performance is going to have, how we can expect. This is the charter for our expectation. Okay, In today's class we are going to learn about the Hannah's savage. Okay? So Hannah said actually a, we know about the search from the basic above, from the core. We know the concept of classical search. Help me go to a C 11. And there we create some such, right for jumping. We go here. And there are two types of such help available under the classical science health fair. That element to sell, sell panda. One is the element T cell help, and the other is the collective search. So the video is searching for what we have, is actually show you the researcher. What do we have generally is the one which we create through they see live in element T cell help and collective search, right? That's Churchill. To be assigned either at the data element level Are we can directly assign her the field, deliver the insert itself also populate from the chapter. Alright, then if we want to use that salts help in our, in our program, then we use the match object keyword. Okay, so various V of using the search helps, right? Vsv offer using the search help some of the way. I would like to till it over here. For example, if we go here, I will create some j in the GOT and search help. Click on this Create button. Search. Tutorial programs save your file object. So here the different sides help option we use for the parameters. For example, if I'm going to give p and discord matter type model, suppose if you're going to give them at night. So this is also going to take the data subject, for example, efforts. I'm going to take this action from where it's going to take the seltzer, It's going to take this archer from the Self-Help associated or the data element level. So you can see that search here. Help is here. C occurred, then the above section. So similarly, like if we are going to give them Mara I format now, right? This will also give the sergeants, this searcher. Like if we can see that here, we can activate and heroes, we are able to get some weird. These are champions coming. This self-help is coming. The shelf attached if the results helper attach directly at the table level, for example. So that here Martha is here and under the input help with checker, you can see that for this mandate, T1 thousand is there. For this material number, explicit search interface field, that is the mat one each assigned directly at field level. So if this is not assigned, then it will take from the data element level. If data element level also it is not as signed, then it will take from the fixed value or it will take from the check table. So they are the president's level defined for the searcher. Search help also we can define through the dynamics itself as a concept we know, like for that dynamic search, we know that we do that at selection screen on a request for it. Here. For example, P underscore matter. If we want for this particular material, if suppose this is my trigger, your car, 40 characters. So if we directly use this car for D, it will not populate any Charlottesville because car 40 is the plane data here, the original searching. Alright. But with the help of dynamics herself also, we can enable the searcher, right? Suppress FSH and LH surge help is coming, but the data will not come here at this point of time because inside of this, we're supposed to write that code. So these are all things we have seen in our quarterback. Now, the problem with this classic search help is actually the problem. And other thing is that this text, the highest precedence, these dynamics are dxa high gradients precedence. Here. Let's take one example. For example, if we're going to take the example of Meitner, their camp when to use this magnetic element so that the star will appear over there, press effect and receive for their support. Let's see what kind of data is here. So this material, material description is like that. Okay? So here for example, you have the star chocolate, okay? It will have this dark chocolate over here. So just expand this and come over here. Close this. Run once again. Now, star chocolate. If you want to search with the estar chocolate, star chocolate and press Enter, you can see that no values for this election. Alright, this dark chocolate. We are, we are passing over here. It started chocolate. The same thing, what it is there, but still it is not showing. What's the reason why it's not showing the region we have that actually these salts help either case sensitive. Here, the data we are parsing, if you observe over here, for example, this is dark chocolate. Is there. Let me copy this. And once again, maybe I'm doing some spelling mistakes. For that purpose. Let's double verified Control V. And it's dark chocolate. Here in capital we are passing. And here give this styling beginning and start at last. Here it is swaying because we're giving it the capitals. Okay? If you mark it the same thing in a small, Let's see. Same thing. Just market is dark chocolate. Remember they're spilling a star chocolate. So S-T-A-R, CHO, see Deutsch chocolate. So let's start chocolate. Same. And we can give us data Stein beginning. And let's try searching this, this term also it is able to find, generally, it seems, the harness that enabled on this particular field that's very teachable to find other ways it was not possible. Okay, That's what you can see that this star chocolate when I was searching, when I'm trying to search it with this dark chocolate out of the runtime itself here, directly destroying this, all these possible due to the Hannah's search. Okay. This all is possible to the church. If you take any plane search example, if you take any plane search example, for example, have been search example P underscore text. Maybe. Here we have a table called SAN is n WD underscore text. This is a table. It is having one field called Hello text. Okay? It is having a field called text. So check the syntax now activate this one. Activate and press F it. Here. You can see that at this point of time they reach no salts help each coming right here. At this point of time. There is no such help is coming right? Back, back to what we can do that we can create one search helper for this particular WT underscore text, hyphen texts for this particular table, we can create the searches. So we can create a custom search. And we can use with the help of match code object, we can create one custom search and we can try using the help of a match God object. So let's go and create one section. So if 11 over here and 881, such jade elementary search help the three-way such demo on this Create button and when t-shirts and that's fine. Such help. The selection with that we are going to take from this table itself is end up with the underscore texts, right? This table, we are going to get the data, press Enter. And here, really take some of this language and that text language and text input, we can select them both. And export is the one. 1212 is browse and all things is okay. The Save it. Local object. Check the syntax. Termination message. Save it, check the syntax fine. This is with 256. A parameter list is too big for the personal health, okay? That's okay. That we tried to activate it. Some warning is there. We can ignore this warning element to search shelf. And now we can give that element Research Help name over here. Or we can give. So check the syntax now activate this one. Should precede fit. The stereotype is coming over here. If you press the foot over here, the language is audio, all distinct language and description we have taken. Here. Here we are using the classical search option. Here we are using the classical option over here. If I type something over here, you can see that nothing is happening, nothing is coming, right? But in case of mara, in case of Mara, be underscore math type, MAT NR, full stop with two pins searching the syntax activity, this one, activate this one. In this case when our using this, what it was happening when I give them anything and start giving it is automatically start searching over here because the hana thirds is enabled for this particular fade. So how do we enable the hana cells that we will see in our today's class? What are the different types of cells that also will see with respect to Hannah? Here, if writing anything, that thing is coming. Another problem over here is, or you can say to another limitation of the classical search help is that it's a case-sensitive. Here. For example, we are having, here are the different, different text is coming over here. Astro laptop, is there. Astro laptop, for example, I'm going to solve Astro over here. So exactly in the same Astro, I have given a capitalist yarrow, and if I click on the Enter, it will search. It is possible to search, but if you give it no capital everything, for example, by mistake you have given, you will not able to remember that you have given in capital at a smaller house, right? So if you do that, it is telling that no values for this selection. So this is the limitation of the classical side shell. It's case sensitive. And other problem is that, you know, sometimes what will happen in case of Astro, Astro suppose you have given by mistake, then in that case also it will not be able to such. But the Hannah's. The hammer search over here, for example, a smart chocolate, dark chocolate, it was their, right. And if you like this also star, this AST SDR is there. So for example, ASD, the biliary for also giving, it's able to take WAV or you can just observe over here, just single. So such kind of. Mistake, it's ignoring and it's showing. That's what actually, it's, the more, it's better than the previous search help with more functionality. But the thing is that kinda should be installed in back-end or some database which should support this one. And also not only supporting things, it should be fast also, because it's a big go over it at runtime, we know whenever we start typing anything need to start searching into the database to database would be fast enough also. It should provide the support also, and it should be fast enough also. So Hannah meet both the criteria is provide the supports and it's fast and a fall. So that's where it is. It is now more popular. Okay. So now what actually, I'm trying to tell it away here that this search, the search helper, what exactly the scene behind this decides how to get the searcher. So let's go to the high studio in Harness Studio. And let me show you from beginning. So here my system is actually connected. I'm showing you in this system can factor. This is my system. This is the system and this is a 189 is 41809 system. This system is one, is for one it is 09. And here the SAP hana DB. But unfortunately in this, in this current system, what we have the hana DB connected over here, this SAP hana DB schematics as they haven't given me. Okay? So directly I will not be able to show you over here. But one another is schema. Schema is sepia Barb. One is also there, which contains this WT underscore texts table. Okay. So you can check in your company system maybe if you have that region generally in companies system, hana DB Access will not be having that radiation, so that is not possible. Okay? But if you have some, another good demo system where you have all the accesses right there you can check. So if you double-click over here on this table, you will having one tab over here called indexes. Under the indexes, all the index will be listed over here. So suppose so to enable them, to enable the full text search functionality, that means the harness or text functionality. The indexes would be created on that particular field. Okay? So for example, for this text field A1 to create this be underscored text. You can see that I'm trying to create the search on that text field and then this search help also what happened? I'm using this text only, right? So on this text I want to create the side shell. So the predict visit, the very first periodic receipt is that on that text field, there must be created the full text search index. Okay? Very important. There must be created the full text search index, that is the prerequisite. So how to create that one? How to create that one? So for that, we have a syntax. We have the syntax or what is the syntax. To create this, for example, I want to create the index on this particular material. You don't have data that is a problem. Right-click over here. I'll go to preview, or here we don't have the data. So here it's not possible to see like how it's going to size and on back there. But I can show you how we can create that. How we can create the index over here using the syntax. For that. We have. The syntax create. The full text will have to give the full-text. This full-text is the TAE buffer index. Create full-text. Here. After that, we'll have to give the name of the index. Let's suppose the name of the indexes, NB, IoT desk or something like that. Dexter search on. We have to give the name of the table. So it's in W, D and discord texts. And apart from this, you will have to give the name of the field on which you want to create that text. Okay? So this is the name of the field, and this is how you can create that. In just a second. Yeah. So how to create the start till we have to give the name of the name of the index, the name of the type of the index, what kind of index we are going to create a full text index we are going to create, so full-text, we're given name of the index we're given on which table and on which field. After this, we have option over here called a faster processor. Faster pre-processor of this is one addition we are having faster the processor. Okay? So if you don't give these fast pre-processor off option, if we don't give this fast P processor off option, what will happen that fast pretty processor on will be automatically there. What's the meaning of fast pre-processor on what the meaning of fast pre-processor on the meaning of fast pieces pre-processor on means. Actually, whenever we are going to be available, we are going to create this search Helper. It takes place of the certain things like tokenization. Then also it takes place when different terminologies there that normalization sits kind of stuff. It takes place if we're going to enable that faster pre-processor on, are faster processor of, if we're going to do that off that normalization and it tokenizes and does not take place. But if you just keep it on both these particular things, normalization. And so if you are going to enable this faster processor on that, two things take place, normalization, normalization. And the second is tokenization. What is this normalization and tokenization? Normalization is nothing vector C, when we are giving any kind of case-sensitive things are not, means normalization is responsible for making the third E sensitive. I mean, it's a case insensitive. Suppose we are going to search either a room or a wrong, no, room like that. So what normalisation do that text, all the text it will make in the different possible combination of a small and tapping, different possible combination of capital and small. And then it starts searching in that we create the index, okay? So all the possible ways. First it can vote and then it creates the index on that. So that's the normalization. What is this tokenization? Tokenization is nothing vector. Splitting, splitting the sentence into words, splitting the sentence into Word. So how this sentence is going to be split into words, what will be the separator? Here? Separator is a space only. This is one important point to note, two separate storage space only. Low comma, nothing. Every time Hannah searching when you are going to keep on that fast pre-processor on, in that case, separator will be considered either a space. So what happens is that suppose a string is there, what is my name? So this will be converted into what? Age? The different different, you know what, separately. Each separately. My separately. Unlike that. And then it will be indexed. Okay? Then it will, each word will be separated. Then it will be index. So the starchy searching will become because if all on all the words, if we are having the index, then, then the surgeon will become fast. So that's the tokenization. So these two important steps takes place if the faster processor, each option is enabled. By default, fast pre-processor on will be when we are going to write this create, that create we have written over there in the studio right here. So by default that fast the preprocessor will be on. By default. By default, that processor is going to be on. So if you want to offer it, will have to write it. That faster. At last actually will have to write a faster processor of a have to write like this, lab direct like this, then only it's going to work if you want to off. But generally it's better practice to keep it on. Redo it off in case of linguistic salts will see that what is linguistic search? Let's see dr. What linguistic search is. Let's discuss here itself. This is the right time to discuss that linguistic search. So, linguistic search, nothing. Vector linguistics searches nothing but suppose you want to search something like, you know, for, for example, you were searching for a term called going. Okay. He was searching for a term called going or you were searching for a term called event, are gone, right? Like that, you are going to start. So what the system will do that it is having a dictionary maintained inside it. We find out its original wide. The system will identify the original words. So what will be the original word for this going? The original four word for the going will be go. Okay, so suppose you have given a wind, are going, are gone, anything of this. So it will find the original word go, and then it will find all the related word with gold. So deleted one word, we'd go, We'll be right. Go, went, gone, going. All these things is going to be the related words. It will look into all these words. It will look into all leisure awards. So whatever word you are going to start at, the root world. And generally in the hana SAP documentation for this world, they have used the esteem or what? Steam. Steam, what they have written that it looks for this team. What is teamwork is nothing but the root word. For that specific root word, it goes to the point and from there it starts pointing all the related what with the goal. Let's just start searching into that. That is actually the linguistic search. Okay? That is the linguistic cells. In liver cells, the limitation is that the fast processor on the field on which we're going to create must be off. So linguistics or certainly we are going to create on the some text field only, write on text field only that is possible. So the first criteria that is, it must be the extra field. That it must be that the extra field. And another criteria is that the second criteria is that the faster processor, the procedure should be off, then only the linguistic searches possible. Now, let's go to the system and see how we are going. Okay, so for the linguistic search, if we're going to create the index, but you will have to do that. Fast pre-processor of index should be created, but faster pre processor should we off? We have to do like this. This is in case of linguistic cells, but in common for further fuzzy search for the hana cells for the full-text search in common, generally, apart from the linguistic cells for the other kind of search, we are going to use the indexer with the pre-processor on options. So by default, that pre-processor on option will be there. Here we are going to create this, okay? We're, we're going to create this. You can see that current ischemia above one. So it will automatically consider this ischemia and here it will create. So click on this button and let us see it's giving some syntax error or full stop. I have either I don't have to give anything or Gibbs semicolon. Run this and this time it got successfully executed. And let's go and check in this table if that has been created or not. It's not showing it should actually ascend WDN risk or SAP above one. Come over here and let me check. It's telling the rows affected, create full text, index name. I've given it away here. Alright, then on, this is fine. This statement, statement, statement successfully executed. This looks good to me. Full-text index on S and upload text. Okay? Actually, we are having the text table over here and we are creating on the text table. Okay, so let's give the character name over here. And now let's execute this. One could not execute this, this, this, this. Okay, It's telling that cannot use duplicate index name or constraint name. Okay? This is some other problem. Let me do one thing. Great. Give the name one, full-text, a one on this table. And let's try once again. So this is telling that could not execute index on this SAP DB SQL syntax error on line one column. Sorry, this is a type of the search here not we're supposed to do here. We can do some things. The name we can MDG three, Dexter search, index, name of the index. I'm going to give this and run this, this debit card successfully executed. Now, I'm expecting to have the two indexes over here. Let me rephrase it and see if I get up. And you can see that here the index has been created. Here. After refreshing, it is showing that index has been created. Now, once the index is created, what we can do that we can, we can, we can implement this search mechanism in program, also. In program also, we can put this search mechanism in our program. Okay? So what the select query we have to write. For that? We have to write the select query. We can implement this search help with the help of select query as well. That's the meaning of saying over here. So for example, select star from SN, WD, underscore texts we're having and have to give here the where condition and after where it hard to give the contents keyword. And inside a small bracket, have to give the name of the field on which we are going to apply the searcher. And then a give the string for which we are searching. The string for which let us suppose I'm searching some Notebook, notebook and give the comma. There are three types of source type. One is the exact search, so it will match exactly this notebook. It will match exactly this notebook. Another, each linguistic. Just we have discussed what is the linguistic. But for the linguistic that pretty processors should be off and it should be under text field. So this is a text field. We can use this linguistic over here. What are the p processor is on, so it is not supposed to use. Another is the fuzzy search. Here. Here you can give the fuzzy search option and how much percentage it can tolerate. So suppose 20% error, you want it to tolerate. And that's why when I'm giving know, if you remember that the smart star chocolate when I was giving a speech, WE are also, it's ticking, right? Double a, it's ignoring its considering a only SDA are only. So how much percentage you want to show accurate. So for 80% will have to Like this, point it, okay? So for D point D, we have to tell like this and now it will be lighter fuzzy search. So this is one syntax for the fuzzy sets. This is the syntax for the fuzzy search. Then this is the syntax for the linguistic. So this is this for this algae also known as the tolerance, error tolerance. Tolerance. So this fungicides is also known as the error solid in search. And here the another what we have the adapt sets. We have the exact same. So there are three types of harnesses. One is a fuzzy, another reason linguistic and another editor at Jack with the same sequence, we can implement all these tree search only here type, we have to do that. We have to give the different tab, that's it. Other thing is going to be same. So let's try searching over here. But the problem is that here we don't have any data. At least we can check how the syntax is pressed effect. It's giving some error. Select star contains this, this, this, do we have to give this space digit? Perfect. Clear, this contains, this is the text. This is a string which we have to search. Let me try giving in double-quotes. For G 0.8. It looks good. Is Cindy select star from I missed over here, this is the culprit. Actually, other thing was fine. Even we can put this one in single quote also that is not a problem. Okay? This also can be put in single quotes. So brace if it invalidate column name, way x to the column name is the column length. This is fine. This should not create any problem. There is some Dexter. Dexter. This is Dexter for G select star from its end up with the underscore texts. We're contents base, rallied column name, notebook, line to this notebook it is considering, Azure. Considering. Okay, let me take other way round. Control X, Control V. And I will search extent putting it away here. Select star from this notable x2. See clearly incorrect syntax near text. Calmer. More diabetic coma. Valid column name, whites dealing in a column name. Chewed, not. Okay. At least syntax should work properly though. The data should not be, the date should not give anything but the syntax and all it should work fine. But some problem with their selected start from, let me do one thing. I kept it and I will start writing. Once again, select star from isn't WD and discord texts. The mall displays, they fit and here it looks, okay. The syntax is there. Select star from Freudian discord texts. The contents. This is the syntax we have. And here we are supposed to the field name and then the value which we are searching. So for example, let's say I'm searching for this notebook. And then we have over here the exact search. Let's suppose then successfully executed this time, but could not execute this from this, we are contents this rallied column name, not a book. Every time it's giving me that same error. Let's suppose I'm given a, B, C over here. And in that case, okay, star, a star. I don't know, It should not give this. Let me do one thing. I will go to that detail over here. And in this editor directly, we can go to SDG four. You can directly go to the isdigit of four. And here we can go to the diagnostic and SQL editor because they are, we don't have the data here, we have the data. So under this digital fall, we have a functionality like in this system. You can see that in this system, the current system. Here we have lot of data that's in WDN is Kotex. I wanted my system, this particular schema, SAP, hana DB, to get connected. But I'm not able to see there. So this is a kind of walk around. I know this is a kind of working or whatever we are going to write in SDG four. It is the same as we are going to write under that schema because the system is connected with SAP hana DB Schema. And whatever query will fire over here, it will be connected through the AD BC. It will be connected through the AD BC and it will fit the data and with soils. So here we have, right, here we have to write the sequel only. So select star from SAN WD underscore. Texts fit. And here we have the data. Okay, So Notebook and all it is having over here. And Dexter is the column name over here. So suppose on this, on this S and W underscore texts. Let's go and write the contains. The field. This is the field. It should have been capital comma. And I'm going to give this notebook. And we'll see that if it is giving the output or not. Okay? So for g, Let's give this a fit. And this time it's giving here, it's giving the output. Here it's giving the output. But the same. At least it should be correct over there, right? You should not give any ADR. Now. Pretty safe it yeah. Here it is. Now working. I think. I don't know what I was doing. The mistake. It's working fine. It's working fine. So do you see the previous one? Some mistake I have done over here contains jagged text. Select the star contains text. Book. It looks fine. I don't know. This quote says making some impact digit. Just let me verify. Not to book. Suppose I'm giving this control expressive. And if I gave in to the single code. Okay, so here, here actually, but as per my understanding, this, if we given the single quote or it should work fine. No, it's not ticking. So here, one thing, okay, here one thing is that every time the field we must have to pass into the double-quotes every time. Okay, Here, this is rarely used. Frequently with but the field, what? We have to pass this, we have to mind that in the double-quotes. And these here they string which we have to search. We have to pass into the single quote. Because I was passing into the double-quotes both it was considering either field. Okay, so now I came to know what was the issue. And here also it's working fine. But here we don't have the data in this particular schema. So it's not giving the data in this schema. By default schema. This by default schema already the index has been created on this text, so we don't have to create the texture here. What we created the index over here. We have created the index over here. On this end WD underscore tax. It is in SAP above one, a schema, right? But my system is associated with SAP hana DB Schema. Already. On this SAP hana DB Schema, the index has been created, so I don't have to create some other person or someone that people have created. Okay? Because here is a working. If it is not created, we can just verify also how to verify if it is. If it was not here, No, it was not working. It will not give you any proper output. Is then WD underscore texture, press F7, and you can go to utility. And from here also we can check what are the, what are the index has been created. So let's check if some indexer, so this is the field of the table. So what, what it is showing that at the database level, how the index and how the field is still the same table is having the data type. At the database layer, this is the data type lemon convinced and we know that n where they use over there. Your indexes on this one is the client in node k. That is fine. Here the index, you can see that here. Here the index is there, FTI, okay? This is, this seems to be the full text index. It seems to be full text index. Okay. So that index has been created here also from here, you can see that here EPM full-text index for the enterprisers from here also we can watch out that somewhat body already created and that's where it is working. Okay, So actually, if you want, you can delete this. Okay? You can delete this one. And you can again create your own index over here. That is possible. Fine. Come over here. And so for this, as we have seen, how it's working, actually the notebook over here. So let me first show you how the data is. Here we have the large amount of data. That is a very good thing. So select star from SAN WD and discord texts. So here I'm going to choose some field, maybe language, okay? So press fit and I will just take some toe failure. Different different things is coming. I don't want a language and text, okay? So language and text, language and text field, I want to select from this effort so it will be easy for us to visualize now the notebook each year, right? So we can write here, we're contains and here the name of the name of the field on which we want to put the data which I want to search book. And if we're going to market a jack, sorry, It's okay. If you weren't going to Marketing Jack cells. Let us see how it's working. Praise effort, but exact sensitive showing, right? Not work because notebook is exactly I've given it the same way. Let me do one thing. I'm going to give not working capital and we will observe. Then also it is coming because it is not case sensitive. If we give the notebooks over here, press F8, because that was the notebook. All the notebook related is now not coming. Only the notebooks is coming because it's the exact search. Okay. So that Thursday is not case-sensitive on leader, little sensitive. Okay. It's a little sensitive, objective. It should match. Now, linguistics as every not be able to show you over here. Because for linguistic search, pre-processors would be awesome. Maybe we can, we'll have to delete that one so you can try yourself this particular things. But the fuzzy search here, it is possible we can seat for dessert so foggy. And how much the tolerance level generally 0.8. We give 80, 80% percent accuracy, 20% error. It can be acute. It can, you can tell it, it find seven minutes, 30% error you can tolerate. Generally. I've seen many weird 0.8.8. So let's give the 0.8 only. But we can give over here based upon our requirements. Okay? So the Notebooks is over here, right? Notebooks are given it over here. And this is in capital. Alright, let's see, fit all the notebooks. Judiciary. This is expected. And now I'm going to do some air, for example, Tupelo, notable literacy. Then also it is showing this, so it is tolerating the error. So that's the meaning of for deserts and how we can implement. Okay, so let's go to the slides. The same thing I have documented over here. This is the such precedents in the normal above what we have, right? So the very lowest precedence goes to the value table than that. Then the search table and then the dynamic search. Again, the search help you have the cell tell part of the data element level and then the search field level, right? Field level is having the highest precedence. So this is here. I have written down just what we have discussed. The same thing is over here. Here in the classical Celsius. What is the problem case-sensitive and no fault tolerance easier. That is a two. Biggest problem. Another also it is having, you know, that the large amount of data, like support, if