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