cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
MikeS2023
Frequent Visitor

Dataverse - Import related data - Alternate Keys

Hi All,

I am coming from an MS Access background and trying to figure out the best way to import related data.

I can create tables in Dataverse, create look up columns to link tables and I can create alternate keys to prevent duplicates.

I understand that the primary key is a GUID which is populated in the many table when the header record is selected.

My understanding is that the Primary Name column  from the header table is the column that presents when selecting data in the look up column of the many table.

This is all good if I want to start from scratch and manual enter data and manually link the data via the look up column.

And based on this I can create views with the related data.

 

However, how would I go about setting up the tables to be able to import the following that automatically creates the lookup.

I have been searching everywhere and can't seem to figure it out. I see a lot of tutorials on line but no one appears to be addressing this scenario which I would have thought would be common.

 

The columns with red text are the primary keys (Composite)

 

Purchase Order Header

Vendor IdPurchase OrderPurchase Order DateDelivery By Date
V10002333333301-Dec-202314-Dec-2023
V10003777777701-Dec-202314-Dec-2023


Purchase Order Line Items

Vendor IdPurchase OrderItem CodeQuantityUnit PriceTotal Line Value
V100023333333ITM1111110110
V100023333333ITM22222205100
V100023333333ITM333333010300
V100037777777ITM444444012480
V100037777777ITM55555506300

 

Vendors

Vendor IdVendor NamePayment Terms
V10002Apple30
V10003Microsoft30

 

Please let me know if I need to come at this from a different angle and disregard the use of composite primary keys.

Do I need to create a single column in each of these tables to define the KEY?

 

Any help will be very much appreciated.

 

Thanks for your help.

Michael

 

2 ACCEPTED SOLUTIONS

Accepted Solutions


@MikeS2023 wrote:

Hi Fubu,

I looked at creating GUIDs but that would only work if the upload was a one off. If I wanted to load some invoice data and link it to the PO table at a later date I would need to look up the GUID for each record which I think would be quite slow for large data sets.data and the relationships are working. I just used the manual import function.

 


It depends, if it were a once off you might consider exporting to Excel from Dataverse using a Model Driven App (you can export 100,000 rows to Excel at a time off the Command Bar and hidden column A will contain the GUID),  then with the Excel use VLookup or XLookup to get the GUID's into your your other data.

 

Alternate Keys are useful to hold the ID from another system, and both the Web API (custom code) and Dataflows can use them for Updates/Upserts (rather than having to use the guids).

 

If you end up with the correct outcome and everything is linked how you need it, then it was a correct way (and there is usually more than one way to achieve things with Dataverse).

View solution in original post

MikeS2023
Frequent Visitor

Thanks mate.

I really appreciate your help.

 

View solution in original post

7 REPLIES 7

Morning Mike I know what you mean I had the same type of issue recently. For your data structure it looks like there are no GUIDs but general ID's like V000001? Etc. If you imported vendor for example, your vendors dataverse table would generate guids, but...linking them back to joined tables would be painful however you do it.

 

If it were me I would generate guids in some way like here:

 

https://stackoverflow.com/questions/7031347/how-can-i-generate-guids-in-excel

 

Get my vendors into excel, add column for vendorGuid, generate guid for each vendor and import into dataverse. Then in excel for the other joined tables use vendor as a pivot table and attempt to link it altogether.

 

There may be a better way. I offered the guid way because it just makes for better relationships between tables.

MikeS2023
Frequent Visitor

Thanks for taking the time to help me out Kristian. I really appreciate it.

I was hoping for a more elegant solution than this.

However, I will follow the VBA examples in the link and see if I can get it up and running. If I'm successful I might then try and create a flow that uses the Power Query interface to generate the GUIDs so that I am keeping everything in Dataverse rather than using VBA and separate systems to manipulate the data before importing. Hey I don't really know what I am doing yet but that is my thought process.

It's evening time here in Aus so I will take a look at it in the morning and circle back.

You're a good man Kristian. Thanks heaps.

 

 

No worries Mike, as soon as it gets complex it never gets elegant lol!!! Glad I could help in some small way.

Fubar
Multi Super User
Multi Super User

Exactly what you need will depend on the method of Import and your import is a once off versus continuing into the future (i.e. will likely involve updates in the future). 

If updates in the future then look into using Dataflow, if a once off then can be done with either standard Data Import or Dataflow.

 

For the PO table in dataverse, you would add a new Lookup field for the Vendor 

For the PO Line Item table in dataverse, you would add a new Lookup field for the PO (and possibly one for the Vendor if you intend to carry it through into Dataverse)

 

Standard Data Import

  • Import your existing Primary Key values into new fields in Dataverse as part of your import.  when get to importing will import Vendor, then PO, then PO line items
  • When you import, you can change the mapping so that rather than using the default Name, id (guid) fields you use your new field that holds PK value (there is a symbol to the left of the field (when they are Lookups and Options sets) and when you click it you can change the default.   You'll see the symbol in the screen shots here against Primary Contact https://community.dynamics.com/blogs/post/?postid=0df12597-0d43-4bd3-bb57-42824d459b60
  • For PO you would change this mapping on the PO import so that the Vendor lookup uses your new field.
  • The PO Line items can be more complicated as at the moment you have both Vendor and PO (Dataverse would usually just link via the PO).  If you are not going to carry the Vendor through to Dataverse, then you can just do the mapping change like for the vendor on the PO, but for PO on the PO Line Item.  If you are going to carry the Vendor then you would still do mapping of PO on the PO Line Item, but also do a mapping for Vendor on the PO Line Item Item

(no Alternate keys etc needed as long as you Vendor and PO have uniques in Access)

 

Dataflow

Would require Alternate Keys to be defined. But has the benefit that it is easier to do future updates with the Alternate Keys defined (can also do the update via Web API using Alternate Keys)

  • Import would still be Vendor, PO, then PO Line Item
  • Vendor/Account table in dataverse, create an Alternate Key on the Vendor ID (needed so you can see the lookup when you import the PO)
  • PO table in Dataverse, create an Alternate Key on Purchase Order
  • When you Import PO you will select the Alternate Key for the Vendor ID to populate/link the Vendor.
  • PO Line Item Table in dataverse, when you import you will select the Vendor ID and Purchase Order (alternate keys you have created earlier) to populate/link the lookup fields.

 

Hi Fubu,

I looked at creating GUIDs but that would only work if the upload was a one off. If I wanted to load some invoice data and link it to the PO table at a later date I would need to look up the GUID for each record which I think would be quite slow for large data sets.

 

What I did was create primary keys in the PO Header and Line Items tables. (Is this necessary as I see the primary key option when importing which appears to pick up the alternate keys that I set up)

Made them be the Primary Name Column.

I set up alternate keys on these tables to ensure no duplicates. I know this is not necessary as we have the Primary Key field being a concatenation of these columns.

I added a lookup to the PO Line Items and referenced the PO Header Key.

I created a lookup on the PO Header to the Vendors table.

 

POHeaderKEYVendor IdPurchase OrderPurchase Order DateDelivery By Date
V10002-1055648V10002105564803-Dec-2316-Dec-23
V10003-1056658    

 

        
POLineItemsKEYVendor IdPurchase OrderItem CodeQuantityUnit PriceTotal Line ValuePOHeaderLookup
V10002-1055648-ITM11111V100021055648ITM1111110110V10002-1055648
V10002-1055648-ITM22222V100021055648ITM22222205100V10002-1055648
V10002-1055648-ITM33333V100021055648ITM333333010300V10002-1055648
V10003-1056658-ITM44444V100031056658ITM444444012480V10003-1056658
V10003-1056658-ITM55555V100031056658ITM55555506300V10003-1056658

 

I was able to import data and the relationships are working. I just used the manual import function.

 

Is this method correct?

I will check out the link you provided and your notes on Dataflow.

 

Thanks for taking the time to take a look at this. I really appreciate it.

 


@MikeS2023 wrote:

Hi Fubu,

I looked at creating GUIDs but that would only work if the upload was a one off. If I wanted to load some invoice data and link it to the PO table at a later date I would need to look up the GUID for each record which I think would be quite slow for large data sets.data and the relationships are working. I just used the manual import function.

 


It depends, if it were a once off you might consider exporting to Excel from Dataverse using a Model Driven App (you can export 100,000 rows to Excel at a time off the Command Bar and hidden column A will contain the GUID),  then with the Excel use VLookup or XLookup to get the GUID's into your your other data.

 

Alternate Keys are useful to hold the ID from another system, and both the Web API (custom code) and Dataflows can use them for Updates/Upserts (rather than having to use the guids).

 

If you end up with the correct outcome and everything is linked how you need it, then it was a correct way (and there is usually more than one way to achieve things with Dataverse).

MikeS2023
Frequent Visitor

Thanks mate.

I really appreciate your help.

 

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!   This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions in the Forums to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersNumber of SolutionsSuper UsersNumber of Solutions @anandm08  23 @WarrenBelz  31 @DBO_DV  10 @Amik  19 AmínAA 6 @mmbr1606  12 @rzuber  4 @happyume  7 @Giraldoj  3@ANB 6 (tie)   @SpongYe  6 (tie)     Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersSolutionsSuper UsersSolutions @anandm08  10@WarrenBelz 25 @DBO_DV  6@mmbr1606 14 @AmínAA 4 @Amik  12 @royg  3 @ANB  10 @AllanDeCastro  2 @SunilPashikanti  5 @Michaelfp  2 @FLMike  5 @eduardo_izzo  2   Meekou 2   @rzuber  2   @Velegandla  2     @PowerPlatform-P  2   @Micaiah  2     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 3:Community MembersSolutionsSuper UsersSolutionsPower Apps anandm0861WarrenBelz86DBO_DV25Amik66Michaelfp13mmbr160647Giraldoj13FLMike31AmínAA13SpongYe27     Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 4:Community MembersSolutionsSuper UsersSolutionsPower Apps DBO-DV21WarranBelz26Giraldoj7mmbr160618Muzammmil_0695067Amik14samfawzi_acml6FLMike12tzuber6ANB8   SunilPashikanti8

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages