Introduction to Dataverse inside of Power Automate || Power Platform Virtual Conference
Nov 6, 2023
The Microsoft Dataverse lets you securely store and manage data that's used by business applications. Data within Dataverse is stored within a set of entities. An entity is a set of records used to store data, similar to how a table stores data within a database.
Learn how the Dataverse ties into Power Automate (Flow), what Triggers and actions are available and how you can use this all.
About Speaker:
Dave has been developing database applications for over 30 years. An MCT since 2001, he has taught many classes from Intro to Visual Interdev to Advanced SharePoint Development. Dave is a four time Microsoft MVP and runs three user groups, MAD SharePoint, www.madsharepoint.com, the Mid Atlantic Cybersecurity Experts MeetUp, www.meetup.com/MACEME, and the Baltimore Cloud Meetup, www.meetup.com/Baltimore-Cloud.
Dave does SharePoint training and development for DSA, Inc., a DoD contractor that does great work for the Army over at Aberdeen Proving Ground. Dave has a bunch of certifications, including MCSD App Builder, MSCE for SharePoint, and MCSA SQL Server certification.
Conference Website: https://www.2020twenty.net/power-platform-virtual-conference/
C# Corner - Community of Software and Data Developers
https://www.c-sharpcorner.com
#dataverse #powerplatform #virtualconference #csharpcorner
Show More Show Less View Video Transcript
0:00
Welcome, everyone. As Simon mentioned, my name is Dave Patrick. This is my talk, Introduction
0:07
to Dataverse Inside of Power Automate. I'd like to thank our sponsors. Without those
0:13
folks, this wouldn't be possible. We really appreciate C Sharp Corner, Mindcracker, everyone
0:20
that's really helped out. What is that? MC something solutions. I apologize. But really
0:26
These folks have made this available, made it not free, even though it's free to attend
0:34
It's not free. And by the way, we are running that fundraiser
0:40
So check out the donate here. I put up a cool little link to find it easily
0:45
If you go there and you have some funds to donate, they'd really appreciate it
0:50
So, again, I've been doing this talk for a little while. When I first started it out, it used to be called Intro to CDS
0:55
And then Microsoft, as they like to do, changed the name. Then it was intro for about a minute
1:00
It was intro to DataFlex Pro and then changed the mind on that. Now it's intro to Dataverse inside of, wait a minute, it's not Microsoft Flow anymore
1:08
It's now called Power Automate, which contains Flow. So there's a reason I left this up there
1:13
As you're going, as we go through some of the demos, you'll see in this couple of places, the old naming convention still persists
1:19
So it's important to kind of know the history so that when you see certain terms, you go, oh, no, okay, we're still in Dataverse
1:25
It's just they haven't gotten around to changing that part yet. So as I mentioned, what is Dataverse
1:32
Why would you want to use it? And then how would you use it in a flow with Power Automate
1:37
These are my three main takeaways. After this talk, I'd like you to understand what it is, central database, out in the cloud, why you want to use it, how easy it is to use, how it helps you centralize your data
1:47
And then I love to be – I'm a big hands-on person. And whenever I teach any of the courses at the university, I'm always saying, you know, it's better if you actually do it
1:55
Let's get your hands on. Let's try it. Let's do a lab. Let's do a tutorial. Let's walk through and actually write some code. Or in this case, this is one of those low code, no code solutions
2:04
Let's configure something and see it run. That, I think, really helps to, you know, doing the how helps with the why and what
2:12
So, as I mentioned, used to be common data surface. So we cross that out
2:16
Now it's Dataverse. It's no longer DataFlex Pro. It is Dataverse. Again, just hammering the point home that we have changed the name, but we've settled on Dataverse now
2:24
So that's exciting. If you want more information on that, you can go to this link and it will have tons of information
2:29
We're actually going to reference some of the information. This information, some of the tutorials and hands-on labs and exam prep is all part of Microsoft Learn
2:39
So Microsoft Learn is a great link out there on the Microsoft site
2:43
It's more than just documentation. As I mentioned, it's pre-exam prep tutorials
2:49
Sometimes you have sandboxes you can use. So I'm going to reference some of that when we go through some of the information that we're talking about today
2:57
So Dataverse is part of the Microsoft Power Platform. I mentioned low-code platform
3:02
It talks to Office 365. It talks to Azure. It talks to Dynamics 365
3:06
It can talk to your standalone applications. It works well with Power BI
3:11
It's integrated with Power Apps, Power Automate. There's the new Power Virtual Agents
3:15
All that know about Dataverse. And it's one of those, you know, you've got different data connectors you can use to talk between the different data sources
3:22
There's the AI builder that's out there that plays nice with all this
3:26
And, of course, Dataverse is one of the main components. So what is the Dataverse
3:30
Again, it used to be called the Common Data Service. It's been renamed
3:35
They even put a note on their Microsoft Learn homepage about what is Dataverse
3:40
to let you know that we're updating the articles to reflect the latest technology
3:45
One of the things they mention here is that Dataverse lets you securely store and manage your data
3:50
So your business applications have a place to centrally locate the data using the cloud securely
3:57
They do this through, you know, role-based access. The data is stored in a set of what they're now calling tables
4:03
which I think is a real user-friendly term. Previously, they called them entities. If you're in the data administration, data design space, relational databases, all that
4:13
entities and attributes, that's, you know, you're very familiar with that. But for some users that are just new to this, those power users, a table makes more sense
4:20
So a table, entity, really the same thing. Fields, attributes, same thing, column
4:25
That's what we're talking about. We're talking about data that goes in like an Excel spreadsheet
4:29
You know, you're going to have things like your name, your age, your salary
4:34
These are all attributes of a table, which might be the employee table or a customer table or an account table
4:40
Dataverse has a base set of standard tables that covers most of your typical scenarios like account, customer, employee
4:49
You can also create your own. I make my students create their own custom entities or custom tables
4:56
They might create like a pet. In fact, I think we'll do that in one of our demos. We'll create a pet entity to keep track of the employee's pets or the customer's pets
5:02
So even if the typical standard tables don't meet your needs, you can extend Dataverse with your own custom tables
5:12
This is an example of what Dataverse looks like. I talked about getting hands on and actually seeing, you know, going to the portal
5:19
So in this particular view, we're looking at the Power Apps portal. And I've clicked over on the left-hand navigation
5:26
The under data used to be called entities. This has been renamed. Now it's going to be tables. When we do the actual demo, you see it says tables
5:34
But this shows you all the different, out of the box, the standard, as well as if there was any custom
5:40
We don't see any custom ones, but the standard entities here, things like account and address and other ones, too
5:47
There's a bunch that support the AI builder tool set. So when you go to your data version, you have your database first created
5:54
You can have all these standard entities available to you. Once you click on one of those entities or tables, you have the columns or fields or attributes
6:03
things like the account name, which might be identified as the primary field, the unique identifier for that, for a row in that, for an account in the account table
6:12
account number, address, name, latitude, longitude, all these are attributes that are part of an entity or table in Dataverse
6:24
So why would you use this? So the first thing I mentioned, very easy to manage
6:30
You've got the metadata and the data stored in the cloud in one central place
6:34
Now, wait a minute. Dave, you said metadata. What the heck is metadata? Let me back up. Metadata is that data about data, right
6:40
So if we've got the account table and we have, well, what's part of an account record
6:46
Well, the account name is part of that record. That's a piece of metadata. The account number is also a piece of metadata
6:53
What about, you know, is that text? Is that a number? Well, that's additional metadata, right
6:58
Maybe it's an option or maybe it's a number, you know, maybe it's unique
7:01
Whatever the different data types, whether it's required or optional, whether it's searchable, all that is metadata about your data
7:10
And it's all in one place. That's why Dataverse is so easy to manage and easy to use
7:16
Another reason, easy to secure. Data is stored using Microsoft Cloud technology
7:21
You got role security so you can control access to the table for different users You know you can have some users that have read some only have read Whatever configuration you need it available very easily to create using your database
7:36
Another reason, accessing your data using 365. If you're using Microsoft 365 Dynamics 365, which is Microsoft's set of financial applications
7:47
customer relationship management, inventory management, those typical applications, I used to be a Microsoft Great Plains MVP
7:54
I used to work in this field a lot. A lot of companies, very popular, use these tools and they want to access that data in other places
8:03
For example, maybe you're using Dynamics 365 to keep track of all your accounts, and you'd like to grab some of that data and put it somewhere else, maybe in a SharePoint list to make it easily accessible to users that aren't using your Dynamics 365 applications
8:17
You can do that using some of the tools and techniques we talked about, using a flow that talks to Dataverse and pulls that data out
8:24
So, again, really easy access to that data. Some other reasons, rich metadata
8:29
So not just, you know, numbers and strings. You can have numbers
8:33
You can have choices. You can have required and optional. Just a lot of different data types, a lot of different kinds of relationships, one to many, many to many, different kinds of rich set of metadata and powers
8:47
Logic and validation, you can do things like define calculated columns, create business rules for validating. Hey, is this address an actual real address? Is this phone number matched? The format of phone numbers should match. You can have workflows. Hey, a new account's been created. Let's go alert somebody. Business process flows to make sure the data is quality and not, you know, remove any inconsistencies or inaccuracies. So really, really flexible in the sense that you can build this logic around your data
9:14
And then finally, productivity tools. So things like Microsoft Access. I know there's people out there that love Microsoft Access and we're able to use that. There's actually add-ins built into Microsoft Access or that were created that are easily activated in Microsoft Access to talk to things like data in Dataverse. And we'll do a demo of that. So a lot of great reasons why we want to use Dataverse
9:38
Now let's talk about an example. I mentioned earlier, you could create an automated flow in Dataverse to do something like
9:44
if I get a new account, let's go put it into SharePoint so people without a license to Dynamo 365 can see
9:50
get notified of that new account. So in order to do that, we need to use a data connector
9:56
And there's a bunch of different data connectors. And this article goes through, this is one of those tutorials that I talked about that's part of Microsoft Learn
10:02
that help us to go through and create this connector. What you'll do is you'll go into Dataverse
10:08
and you'll initiate, or excuse me, you'll go into Microsoft Power Automate
10:12
and create a flow that will, when data comes into Dataverse, a new account, for instance
10:18
gets created in the Dataverse, we want something to happen. So we have to define what's called a trigger
10:23
that's going to initiate this action, right? So what triggers are available
10:28
Well, in Dataverse, you've got triggers for when a record is selected
10:32
it, create it, delete it, update it, and you can choose one, you can choose them all
10:36
The interesting thing is this represents the four basic database operations, right, known
10:41
as CRUD, create, read, update, delete. So create is obviously created, read is select, update, delete it
10:49
You know, if you haven't heard the term CRUD before, as a database professional, you should
10:53
learn it. CRUD, create, read, update, delete. Those are the four main database operations that any database application should support
10:59
And Dataverse absolutely supports that. It has triggers on each one of those
11:04
So when you go and you create a new flow and say, I want, you know, define a trigger
11:08
you can select one or more of those for your trigger, for your flow to be triggered from
11:13
So let's take a look at this. Let's go out there and do a quick demo. We'll jump out to our Power Automate window
11:22
So this is, I went over here to Power Automate, which for those of you who don't know, it's just flow.microsoft.com
11:27
that redirects to the Power Automate, in my case, the English US version
11:33
And this is my portal. I'm logged into my environment and we'll talk a little bit more about environments
11:38
in a minute, but you can have multiple environments. So I'm in my developer environment
11:42
which is called the environment from my Mad SharePoint tenant. And then in that environment
11:48
I can do things like look at the data and look at the table
11:52
So earlier, I mentioned that on the left-hand side, it was entities and now it's been updated
11:56
So that's good news there. They're making progress, getting all the new terms in there
11:59
So by clicking on the left-hand side and clicking on tables, it's going to show me all of the tables, also known as entities
12:08
that I have in my database. So you see there's the account that we talked about
12:15
There's things like activity, address, appointment, all standard ones. Look, I actually added a custom one called for cats
12:23
I want to actually keep track of different cats. Looks like I have another custom one for dogs
12:27
So depending on what your needs are, what your business requirements are, you can create new tables for your custom entities or you can use the existing one
12:36
So let's look at the account one first. That's the standard one that's existing. I think I have some data in here
12:44
The first thing we're going to see when I click on this is it's going to load up that metadata that we talked about
12:48
So these are all the columns that are associated with an account in my accounts table
12:56
You can see if there's any relationships that have been defined. You can see there's some one-to-many ones
13:02
So things like there's an owner team, might be multiple teams that own this account
13:09
Any business rules, any views, different views of the account. And we want to see active accounts versus inactive accounts
13:16
You can see different forms that are used to interact with the account, like the main
13:20
form to add a new account or view account data. You can see different dashboard
13:25
I didn't define any for this one, but you could define dashboard to give you things like KPIs
13:29
knowledge performance indicators. You can define charts, keys, and then the last one is the actual data
13:37
So all of this prior to this is sort of the metadata, and then we'll finally click the last one
13:41
Here's the accounts that I have in this particular database, and this is just demo data
13:47
When I talk later about how to get started with Dataverse, I'll talk about signing up for a demo account
13:53
and one of the options is the load demo data. So this is some of the demo data that I loaded
13:58
But yeah, clicking on any one of these, I should be able to edit the record
14:02
right from the Dataverse portal inside of Power Automate. And I can go in and make changes and look at the data
14:10
and add new accounts, delete accounts, whatever I need to do. All those create, read, update, delete operations
14:16
that you would expect to be available in any database, I can do from this portal
14:20
So I'll come in here and let's just update this guy. I will say this is maybe they moved up
14:25
Now they're at sixth coffee. No, I guess if they move up, they would go the other way, right? Fourth coffee
14:29
We're trying to get to be first. Right now they're fourth. So let's go ahead and save
14:33
That's how easy it is to go in there and be able to access one of the entities
14:38
one of the records in my account table, make a change using the Dataverse
14:43
Portable Insider. I said I got here from Flow, but you'll notice that when I clicked on data
14:49
from Flow, it did redirect my URL to the Power Apps portal
14:52
So that the integration that we talked about Power Apps and Flow are so integrated that even if you go to Flow first and then you click on data it going to move me over to the Power Apps portal just because they all work together
15:06
all point at the same set of data. So I come here to Flow. As soon as I click on data, it's going to take me in my URL to Power Apps
15:14
So just be aware of that. It's not like I did, you know, there's any sleight of hand there
15:18
That's the integration that makes everything so kind of smooth and run pretty easy
15:23
all right so let's go and let's see grab this guy here let's go and create a new flow so we'll come
15:31
over here to our flows and see what if I've got any flows already created what I want to do again
15:37
taking that scenario of a manager came to me and said Dave we've every time a new account shows up
15:44
in Great Plains all the people who use Great Plains knows about it but we'd like some of these other
15:48
users that don't use great planes to be aware. Put that data out on SharePoint. Yes, I can do that
15:53
So I'll use flow inside Power Automate to make that happen. I'll come in here and I'll do a new
15:58
flow. And what I'm going to do is you'll see when you've never created a new flow before, there's
16:02
lots of different options. And this can be a little overwhelming. It's great, lots of power, lots of flexibility. But the con to this is that sometimes you're like, wow, where do I start
16:10
So there's templates you can start from. This is really nice when you're not sure, you know
16:16
all the actions that you need to do with triggers what actions and you can read
16:20
through these and see all there's one for posting MSN whether that one for you
16:23
integrated out there's one for integrating with Gmail so again great to
16:29
have all this flexibility a little overwhelming right sometimes you have to kind of you know hey I'm just trying to do something from SharePoint you know
16:36
or this helps a little bit by filtering some of the things filter some of those
16:42
templates you can also too but it's a little tricky and the reason I point this
16:49
out so let's put in data so we got a couple here email blah blah blah blah
16:57
let's start let's keep it simple we're going to come back to our flows the
17:02
particular example oh yeah it said it couldn't find any matches based on
17:07
data verse it hasn't quite been updated so let's go create a new flow we're
17:11
going to create it from blank. We're actually going to create an automated cloud flow. Automated
17:17
means it's going to be triggered by some action. In this case, it can be triggered when someone
17:21
creates a new account. We could also do an instant cloud flow where, you know, someone requests the
17:27
flow, you know, manually starts the flow. You can do one based on a date and time, a scheduled
17:31
flow. You could do a desktop-based flow or a business flow. We're going to just do an automated
17:37
cloud flow and give this a name we'll call this new account notification and
17:46
now we say okay what's the trigger and we mentioned we want this whenever
17:50
someone adds a new account so the tricky part here is to figure out well if I type
17:55
account oh I know it's data right so I've been data verse here and the frame
17:59
triggers based on data verse so again this is in those situations where the
18:03
documentation or in this case the tools are not quite up to date so common data
18:09
I'm going to get the actual triggers I'm looking for remember common data
18:14
service is data verse so when the records delete it well that's not what I
18:18
want but that is one of the four when the records update it when the records created there's the one I want right when a record gets created I want to do
18:25
something I want to put it create a new item in SharePoint so let's select that
18:29
one we're going to create that so now the next step is we're going to say what uh what what
18:39
environment are we reading data from and i mentioned earlier that i was in my my development
18:44
environment so i'm going to make sure i match that right i'm in the david patrick environment
18:48
so down here when we pick environments it's got to be the same one now later when i move this to
18:53
production i'll have to obviously make sure they're both you know mad sharepoint so just be you know
18:59
during development make sure you pick the right environment that you're working in the same environment that you started out in so the data that I was
19:06
looking at was from David's Patrick's here and my flow I'm gonna read from
19:11
that same environment the next thing is to choose one of the and then here's another example where you said you know we know it's table now but this still
19:18
says entity so it's got to remember that terms table is the same as entity so
19:23
what do we want we want accounts and then finally what scope do we want this
19:28
to business unit a single organization a each job you know job business unit or at one user I want
19:37
this for everyone right so I want this from everyone anyone in my organization if they add
19:42
a new account this is going to trigger this so now the next thing I've got my trigger configured
19:47
is to configure in flows you have triggers and then you have actions this when a record is created
19:54
what are we going to do we said we were going to put a new item in a SharePoint list that someone
19:58
can see so we'll go and again kind of over overwhelmed by all the choices here
20:04
but again we can type in SharePoint and find just you know SharePoint action so
20:10
in this case this can't a example we can scroll down here we can see you know
20:14
what are some of the different actions and what might we want to do in our case
20:18
we said we want to create a new item so that's what we're looking for there creating a new item doesn't say new but creating an item in SharePoint that's
20:25
That's the actual action that we want. So go ahead and select that. And it's going to come up and say, okay, what address do you want to connect against
20:34
and what list do you want to connect against? Now, if we want to go against an existing SharePoint server, we can go ahead and choose some
20:42
And I've got one called accounts already. I've got a whole bunch of others
20:46
But let's go create a new one. Let's pretend this is a new requirement. So I'm going to go out to my SharePoint site
20:50
This is my SharePoint site, Mad SharePoint. and I'm going to create a brand new sub-site that's going to contain these new account notifications
20:57
So I'm going to go out to my site contents and create a new sub-site
21:04
And we'll create new. And we'll call this, again, new account notifications
21:22
preview nan if you've never created a sub site or in SharePoint you've got
21:28
different templates you can choose from team site projects like me I'll keep it simple we'll just go with team site we can always change this later if we need
21:37
to so I'm just creating a new sub site on my SharePoint online instance and it
21:44
doesn't have to be a share from online lessons I could have used on premises I
21:48
could have used a different tenant but in this case I made it the same tenant
21:53
just keep everything pretty simple so in this new site I'm going to add a new
21:59
list so typically in the classic SharePoint I might go over to site
22:03
settings and do add an app and that's fine because when you comes up with add
22:08
an app it's really apps or lists it always been a pet peeve of mine though
22:12
because apps are slightly different than lists what I do like is now here I can
22:16
actually say oh I want an app or I want a list so in this case we want a new list
22:21
and what list are we going to create we're going to create what just do a
22:24
customer so we go a blank list this would be new account notifications Accounts It new accounts
22:38
And, yep, yep, yep, create. And when I create a brand new list in SharePoint, it's going to give me, what, a title column, an ID column that's hidden
22:47
Maybe I'll add one more column, right? I've got one column now. That's the name, the title
22:52
That'll represent the name of the account. and maybe I want to know the phone number
22:57
So we'll add one more single line of text that will just represent the account phone number
23:05
And do that and save that. All right, so we've got a real simple list
23:09
that's going to be who the account is and what their account phone number is. So now we can tell our SharePoint folks
23:14
go to this list. Whenever we hire up a new account, whenever we get a new account in Dynamics
23:20
Flow will run and we'll put it here. So let's make that happen. Go back to our flow now. We've got that that site address
23:35
Now notice it's not if I scroll through here you won't see that because
23:40
the trigger when I first created it went out there and it looked at my existing sites and
23:46
Enumerate it through them. It says this is you know, here's your choices. That's okay
23:49
I can put in the new one it's going to now go and look at that site make all
23:53
for that and then you know verify it's actually a site out there again value I
24:01
offer I forgot I have to make sure I take custom value so that that tells flow
24:06
hey this is a new you know this is one new not in the in the list you've got to
24:11
go visit it and then get a list of lists that I can access that's what happened
24:17
But when I put in this new address, it did go out there and say, oh, there is a bunch of them
24:23
Well, there's not a bunch. There's one list that you can use, new accounts. So that's what I want. So we'll go ahead and select that
24:29
Any advanced options? If I needed to limit the columns, you know, maybe there's too many columns I could use
24:34
a view to not access all the columns. This is what I'm really interested in
24:40
What am I going to put in the title when this new item gets created? This trigger is saying create a new item
24:44
What are you going to put in the title? and what are you going to put in that other field I created, the account phone
24:50
So in the title, I want the account name. So notice under here it says account dynamic content
24:56
These are all those columns, also known as attributes, from my table slash entity
25:04
So you've got things like the account name, the account number, the city that is in their address
25:11
So I want the account name. Let's go pick that. And I'm going to map that to title
25:16
And I also said I want the account phone number. So that's a little trickier. Let's type phone in this list
25:21
There's a lot of choices. There's address one phone, address two phone
25:26
And sometimes it's, you know, when I first did this, I picked the first phone
25:30
And then when I entered new data, it didn't show up because it wasn't really the first phone
25:34
The form that I was using to enter data was actually showing the main phone
25:38
So through trial and error, I learned this is the phone I want to choose. If I want the phone, it's on the main form
25:44
We'll go ahead and select address phone to put into the main phone. So that looks good
25:49
We'll go ahead and save that. And now we have our flow fully filled out
25:54
What environment, which table slash entity, which work, you know, who's this for
25:59
It's ready to go. We recommend you test it. So let's go ahead. Now, there is a couple things up here that are kind of neat
26:04
This flow checker is cool. It will help me to make sure I've got all my inputs put in there correctly
26:10
So if I had left something blank, it might have showed an error or a warning
26:14
But I filled in everything, so no problem. Give me a little red dot if it was a problem
26:18
The other thing is this test, which says, hey, prep this to go
26:22
We're ready to test it. So let's do that and say, hey, we're ready to test this. We're going to manually perform the action
26:29
So I'm going to go out there into Dataverse and enter a new account that will trigger this flow
26:35
If I had run this flow previously, I could do an automatic test and reuse a previous run
26:41
This is the very first time I'm doing it, so there's no previous run. to do but that helps that way you're not constantly entering new test data just
26:48
to test out your flow you can just run it over and over again with the previous values in a previous flow so we're going to start off manually let's go ahead
26:55
and we're going to test it so act out to our portal and there's our account data
27:02
let's add a new record so we're gonna add a record and let's see so we got a
27:07
new account maybe maybe we hired we're working with McDonald's now right it's
27:11
near lunchtime I'm thinking of food so McDonald's sounds good we're gonna go
27:15
and add the McDonald's and their phone number is five five five one two three
27:22
four and all right I could fill out all the other information we're keeping it
27:30
real simple let's go ahead and save that everything was put together correctly
27:35
we had this new account in our data verse which shares the data with dynamic
27:40
CRM it should have gone to our flow and kicked off a new flow so let's go see
27:47
let's go to our flow overview page that shows us the name of the flow who
27:53
created it what the status it's one we didn't turn it off who it connects you
27:58
the different connections and down here we'll see the runs now it does take a minute I just created this oh there it goes there's my first my first run and
28:06
And it was succeeded. It took about a second. Awesome. And if I really want to click on that and get even more details about the run
28:13
I can see things like the inputs, you know, what environment did it go against
28:19
what entity or table did it go against. It actually has the output shown in JSON notation
28:25
If you're not familiar with JSON, JavaScript, object notation, it's basically attribute value pairs in this, you know, curly bracket
28:33
quoted, delimited notation here. But this is helpful sometimes when I was looking, when the first time I did this and the phone number was, you know, I went into the JavaScript and I saw the phone number was blank because I had chosen the wrong phone number and I had to go back and do it
28:47
So sometimes it's helpful to go through and look at it, you know, and see what data is being passed
28:51
And you get similar information down here to the action, you know, what site did it use, which list did it use, what data actually got put into the list and who was it put in there by
29:05
so really great information when it works maybe not that useful when it
29:09
doesn't work definitely useful to go in here and help you debug what might have went wrong so let's see in SharePoint did it add there it is so there's a new
29:18
McDonald oh look I did get the account phone did I mess up on the phone maybe I chose the wrong phone so refreshing here it looks like I got the wrong phone
29:28
let's go see what went wrong with that so back to our flow and see if we can
29:33
and see where the phone went wrong. So let's edit our flow
29:40
Let's look at the mapping that we did. Oh, look at that
29:50
You can see it says address one telephone, so that's not the one we want
29:54
Let's get rid of that. We want the main phone. now I chose the other one that's the main right what I chose so before I chose address phone but
30:07
I meant to chose mainframe but again a great way to to debug right now I guess what I could have
30:14
done is gone into that JSON and seeing that was blank I kind of glossed over that but yeah so
30:19
after we ran our flow did our test its flow executed successfully but it did not fulfill
30:25
the requirement in this case we thought the phone number should came through we didn't so we had to go back through, make a change
30:31
Now let's rerun it. So everything's still looking good. Let's do a test
30:35
And this time we're going to do it automatically with the data that we just did previously
30:39
So we don't have to go and enter a new record. Let's go run that test
30:45
Looks like it's running okay. Give it a second. That loan also looks running
30:50
Now let's go into those outputs and make sure the phone came through okay
30:59
we'll go over here to the there we go so now we can see in the body in the JSON
31:09
that the phone number actually was passed as expected and if we go over here to
31:14
the second run hey we created our flow we did it wrong the first time then we
31:21
fixed it we did it right the second time all right that's exciting news what are
31:27
some other things that we can do with flow you know I mentioned you can create
31:31
new entities so if our list of tables and keep using tables and entities
31:36
interchangeably but I've got a new table I need to keep track of I can certainly
31:40
come in here and say hey they want me to keep track of bonuses so let's go in
31:45
here and create a new bonus right bonuses that people have notice I gave it
31:50
to the display name of bonus and it comes up with a plural name the account
31:54
the database gurus out there loved it hey you should use the table name whatever so there's my
32:01
bonus this is also bonuses we're going to create the bonus name will be the main display notice it
32:11
uses a special prefix that indicates its custom I can choose whether I want to enable attachments
32:16
or not but this particular one maybe there's a letter or a picture that you know this is why this
32:20
a person getting a bonus and then there's all sorts of other settings I can fill out if I need
32:24
to we'll go ahead and just create that just give an example what a brand new entity or table might
32:29
look like so there we are we've created our new bonus it's got just one column if it had some
32:34
additional columns I could go into that and add additional columns so we can come infected there
32:40
are some standard columns that come along this is that system metadata right things like who it was
32:45
created by when it was created on one who was modified by so there's some
32:50
standard system data that you're going to get with any table that you add but if
32:55
I want to add a new column I could come in here and say you know the bonuses you know maybe the reason for the bonus so that's optional or maybe we make it
33:05
required right because you can't don't be given bonuses for no reason so
33:10
whatever you know why did you give this so just like we if we were designing you
33:23
know the set of data that we want to capture I was gonna say doing database
33:29
design this is very similar if you're familiar with database design and other
33:33
systems like access or sequel server we're coming in here and work you know
33:38
of creating these new tables and adding columns to the table and defining whether they're required
33:43
or optional and the different data types and all that good stuff. So Dataverse has all the capability that
33:47
if you're familiar with those other types of data design tools, they're all available in Dataverse
33:52
So let's go in and look at this data using one of our favorite tools, which is Microsoft Excel
33:59
So back to my set of tables, let's use accounts because I didn't enter it
34:03
Well, let me show you entering a new bonus and then we'll come back. So if I wanted to enter a new bonus here
34:07
Again, we could come to our data, and now we could add some bonuses. And let's go
34:15
Let's do data. Let's edit in Excel if we can. So we'll open this up in Excel
34:25
So when I click open in Excel, what it's doing is it's opening an Excel document
34:29
that has an add-in that's smart and knows how to talk to Dataverse
34:34
It's also even configured with my credentials and it's connected. So Excel popped up over my other screen I just drag it over here and I enable editing This is the data verse add for Excel that going to now that I enabled it is going to go and load it going to try to sign into a data verse over power apps or flow you
34:58
know the whole office 365 environment and then it's going to connect to my
35:03
environment specifically to the bonus name entity or table that I just created
35:09
and that's what it's doing here is this little wheel spins it went they made that connection so let's add a few records here we'll go ahead and click
35:15
new and add we'll say we're good and maybe what we'll do is we'll define
35:19
over to say you know there's a thousand dollar bonus this is for showing up one time
35:28
Maybe there's a $500 bonus for giving a talk
35:39
Maybe there's a $250 bonus for passing an exam. And you get the idea
35:50
So we can make up these bonuses here. I put that in the wrong column. There we go
35:54
And the different reasons. once I've added my records I can post them or publish them to dataverse right so I'll go ahead
36:10
and say publish it went out there and this is the one of the things that surprises people a lot of
36:14
times when you're working with data in Microsoft Excel it's read-only you put it down you play with
36:19
it you do different graphs but you never write data back there are some situations where you can
36:25
I didn't miss my daughter Sarah she showed me not too long ago how you can
36:29
there's an add-in in Excel to take data and create a new SharePoint list it's
36:34
not really an add-in something the ribbon you had the secret is you have to create the table first and then it knows how to send that up to SharePoint but
36:40
this is another situation where you can write back to your data source using
36:44
this add-in so let's go see if we did that we'll go and close this and go back
36:48
to our data source and see if we have any data we'll just click off and click
36:52
back on and look at that so now in our custom table we've got three rows of data because
37:01
we use excel to enter the data and publish it back up to dataverse so dataverse is very flexible
37:07
you can go to the portal and and add different data you can do it from applications like dynamic
37:13
crm you can you can do it through excel using the add-in that's built in when you when you uh
37:19
yeah I could send that Excel spreadsheet to other folks and they could reuse that as well so a lot of cool a lot of different options let's do one more
37:27
thing let's go back to our account and let's add let's see that in Excel so
37:32
let's open that data in Excel and what I want to do is when I add a new account
37:38
we should see our flow still trigger because it doesn't matter if I add the
37:43
record through the Dataverse portal from power apps or Excel using the add-in
37:48
Either way, the Microsoft PowerWrite flow trigger that we created can be triggered any way that the data gets in there
37:57
So this time when we're editing, now we're editing the existing accounts table
38:03
And we should see a ton of accounts. This one, this particular entity or this particular table has hundreds of rows
38:10
It might take a second as it pulls down all the different data. And I can do more than just add data
38:16
So I could come here, I can do create, read, update, delete. so if I want to I could come in here and change this maybe there now finally
38:22
first coffee they did that work maybe this guy is delete it so we get rid of
38:27
a lit where they're gone and then down here let's add one new one not only is
38:35
McDonald's on the account but Burger King as well all those changes so we're
38:43
going to create one row Burger King we're going to update six coffees or
38:47
fifth coffee to first coffee and we're getting rid of Litware so do it do all
38:52
three of those operations so we did read when we read all the data down and now
38:58
we've done update delete let's go see the change in our account table so good
39:05
or a data here and look at that first coffee lit where's gone and if we scroll
39:10
down here to Burger King there's Burger King all by using Excel using a great
39:15
that talks all of our updates to Dataverse very easily. All right hopefully that demo gave you a real good taste of creating a new flow looking at the different tables in the Dataverse triggering your flow seeing the results in SharePoint looking at the flow looking at the results getting into the JSON exporting and importing the flow
39:40
I skipped that. Let me jump back to that. So if I want to share my flows, there is an opportunity if we go to our flows back in Power Automate
39:50
So you know what? This is great. I want to send a copy
39:54
I can email a copy to someone. I could now I should have mentioned that in my development environment that
40:01
features disabled so if I want to share I'd have to move this out to a production environment my match sharepoint environment then I would that
40:08
would actually allow me to send a copy to someone but developments just for me so wait I can't really do it that's a game you the warning I can I can save it
40:16
as a template I can save it as a different name for what I have a copy of
40:20
the flow just to work on maybe I saved this one but now I want to make a new and it's an add to it so one of the really cool things I go back to my flows
40:27
is to export it right so you can come in here and you can say hey I'm gonna
40:31
export this flow as a zip and that way I can then really just take it and email
40:35
it to someone and then they can take it and import it into their own environment
40:39
right so if I export this flow as a zip it's gonna allow me to download that zip
40:44
file and then do whatever I want with it so we'll give it a name we'll call it
40:48
man you know what environment was this one my environment here point something like that down here is all the package content the
41:00
different settings you know when I when someone imports it you know what's going
41:04
to know the name what maybe give that this it says I give them an opportunity
41:10
to either update the name or update the package that already exists or create a
41:15
a new one so whatever you know whatever I want that import step to to be
41:19
configured as also the the connections right they have to select the
41:25
connection during import they're gonna have one if someone else takes my my
41:29
package and import it they have to define who would you know I use my
41:33
connection but they're gonna have to find their own connection so once this is as I like it I can do an export and that's actually going to create that zip
41:40
file that I can download and and share with people so there it is out there
41:44
there where to put there put it in up I think you put it in my downloads folder
41:49
yep it's out there my downloads folder so let's now let's see if we can import
41:53
it back in so back to my flows and now let's import one and actually what I
41:57
should do is switch my environment so let's see if we can do that let's go back to close this guy go back to my environment so I'm going to switch to my
42:07
production environment mad SharePoint and when I switch environments I'm I'm actually switching databases, right
42:13
So in my previous, in my development database, I had McDonald's and Burger King and all that
42:18
When I switched this environment, I've got a whole different set of flows here. I've got a different set of data in my Dataverse
42:24
So if I go to my tables and accounts, you won't see McDonald's, you won't see Burger King
42:29
In fact, I think I have very little data in my production environment. This is my Mad SharePoint user group site
42:34
so we don't really use it for anything. So in my production environment, if I go to accounts and look at data
42:39
I think I've got like six rows of data. Yeah, so not a whole lot of data
42:49
But that's the important. So when you switch environments, you're switching all different flows
42:54
all different copy of Dataverse. It's a completely different environment. So in this environment, if I want to go to my flows
43:01
I can see if I can import that other flow that I just exported, right
43:06
Because it won't exist here. So let's go to my flows and we'll see if we can do an import
43:11
So we'll say, hey, let's see. Let's go to, well, go back
43:26
And it looks like I have that turned off in this environment. That's OK. Let me switch back just to show the import steps back to my developer environment
43:34
Go to my flows. so once I'm in my flows let's go over there to my data make sure I got it just
43:51
not just verifying I switched to my new environment yep it looks good and then
43:55
this should have all the data yep okay great so back to my flows
44:08
and let do this I sorry I turn off my import import okay well I running a little time so I save that for another demo but basically what I would
44:22
do is I'd grab that zip and import it and then when you import the flow it
44:26
comes up with options to say choose your connections choose your environment you
44:30
know choose all the different options that were defined when we exported it
44:34
and then it would show up under my flows as a new flow with a new name
44:38
potentially if I chose a new name on the import. All right. Talked a little bit about a demo
44:49
environment and the production environment. You can also have trial environments. Trial environments
44:53
are nice because they can be converted to production. So you can start off working with
44:58
Flow. You get 30 days. They don't cost you anything. And if you like what you've built
45:02
spend time in that environment and you want to start using it for real, you can upgrade your
45:07
trial environment to a production environment if you want to get started
45:11
just testing power apps testing data verse there's the power apps community
45:16
plan all my slides have links it brings up the site where you can sign up and
45:24
get started for free you can get that developer environment and and you get
45:29
everything that I had where you know sample data you're able to create flows
45:33
and the one thing you can't send a copy share and but you can still export flows
45:37
and do all that stuff so that's really generous on Microsoft to be available
45:44
for free so it's not just power apps and flow but you get the data verse you get
45:51
data connections you get pretty much you know almost a complete office 365
45:56
environment in the dynamics 365 administration center is where you can go
46:01
in as one of the places you can go in and see different types of environments so I mentioned
46:06
that you know you production environments there's a development environments there's trial environments
46:11
there's even a sandbox environment that you can create where when you go create sandbox again it's
46:16
a way to do some testing and then later you can say hey I want to do something else with this
46:21
environment what are some tips and tricks we'll watch out for that missing data verse when you go
46:28
when you're looking for a trigger and you type Dataverse and nothing shows up
46:32
you have to type in common data service. It may still say entity even though it's table
46:37
So just be careful that some of the terms and technologies may not be updated just yet
46:43
Using that flow checker helps. So if you've got any trouble with your flows
46:47
you can use the flow checker to see if you're missing a value or invalid value
46:51
One thing I forgot to mention was team flows versus my flows, where if you share a flow with someone
46:56
it will be it'll move from the team flows to the my flows tab and sometimes
47:00
when you're looking for flows that can get confusing this is just some of the
47:06
examples I'm you know you're looking for you know depending on what you're choosing you might not see the right trigger so just try a couple different
47:11
things another thing I ran into is when you first get started when you first sign up for that community plan you might when you click one day to get no
47:18
solutions found you've got to create your new environment if you just get started make sure you create the new environment and when you create that new
47:24
environment you've got to then create your database right so trial you do your
47:30
30-day trial if it's you use the community plan you'll do a development
47:34
environment you'll sign up all this you'll create your solution create your
47:38
database one last tip don't do it too quickly so here I chose my my currency
47:44
and all that created my database I went to my solutions looking for my database and said hey something went wrong I was just too fast just got to give it a
47:50
minute I you know waited a minute I think I went up and got a drink I came back hit refresh and then it was created so when you're working with these cloud
47:57
based solutions resources you got to give everything a minute to provision
48:03
don't expect it to be instant you know I created my database give it a second you
48:07
know I was too too hasty there give it a second it works just fine another
48:12
resource the office 365 developer plan which has been renamed to the m365
48:16
developer plan is really great that gives you power apps office 365
48:20
SharePoint online. So you get a sample developer sandbox. It gets renewed every 90 days
48:25
It's good for 90 days, but as long as you're using it, Microsoft will renew it. I've had one for years, and it's free
48:30
It allows you to do all sorts of testing and playing out. It even allows you to load sample data packs
48:36
So another really great resource from Microsoft is Office 365 or M365 developer plan that they're calling it now
48:44
So that's my talk. Hopefully, now you know why or what is Dataverse
48:50
why you would want to use it, and how you can get started using it
#Data Management


