Welcome to Part 2 of this blog series on Dual Write, the Global Address Book solution and the impact on D365 first party applications.
As a quick recap, at the end of Part 1 we have an environment in which we can create company records (legal entities) that allows us to create records in the system.
So that's great but it's only one part of the puzzle from a data perspective. We could go ahead and look at the different new tables that have been created and muddle through creating elements of the master data as we go. The challenge here is that you won't necessarily know the data that you are creating or have examples of what the data usually looks like or means.
To get some meaningful data into out environment we are going to delve into D365 Finance & Operations. This will help us to enhance and bring our environment to life a little bit and make it representative of real life data.
Model Driven App Site Map Extension
Before we do delve into the data side, lets make life a little bit easier for ourselves and make some enhancements to the model driven application.
I would suggest creating a new area on the site map named Dual Write Master Data or similar. In here we are going to add in tables that we will be using to populate data and update/create a view to make the process more efficient.
I have sectioned my area into the groups to cover miscellaneous data, customer and vendor data, contact data, address data and unused data (more on that one later).
I have then updated the views to show the relevant fields that we require, this will enable us to user the Export to Excel either Open In Excel Online or Export and Import processes to get data into the system. I will leave which method you want to chose to your own personal preference, manual entry may give you an understanding of the data links. It's worth noting that GUIDs will need to be used for records of the same name for different companies. I am assuming a level of understanding of getting data into the system as these area's won't be covered. Also be aware that some form modifications may be required if going down a manual data entry route.
For each table I've shown the view that I created below and the field order that was most beneficial for record creation via the Export to Excel or Import/Export feature.
Companies
Company Code
Name
Default Owning Team (system populated)
Is Enabled for Dual Write
Currencies
Currency Name
Currency Code
Currency Symbol
Exchange Rate
Currency Precision
Customer Groups
Company
Customer Group Id
Description
PaymentTermId
Time between invoice due data and payment date
Is Sales Tax Included in Price
Write Off Company
Write Off Reason
Customer Payment Method
Company
Name
Period
Description
Grace Period Days
Payment Status
Payment Type
Last File Number
Last File Number Today
Account Type
Bridging Posting
Postdated Check Clearing Posting
SEPA
Bill Of Exchange Type of Draft
DirectDebit
Invoice Update
Name Affixes
Affix
Type
Description
Payment Days
Company
Name
Description
Payment Day Lines
Company
Payment Day
Line Number
Frequency
Day of Week
Day of Month
Payment Schedules
Company
Name
Description
Allocation Method
Payment Frequency Unit
Payment Frequency
Number of Payments
Sales Tax Allocation Method
Fixed Payment Amount
Minimum Payment Amount
Note
Payment Schedule Lines
Company
Payment Schedule
Line Number
Periods After Due Date
Percent or Amount
Percent of Amount Value
Payment Terms
Company
Name
Description
Payment Method
Cash Payment
Number of Months
Days
Payment Schedule
Payment Day
CutOffDay
Default Terms of Payment
Customer Due Date Update
Certified Company Check
Payment Type
Credit Card Check
Vendor Group
Company
Vendor Group
Description
Payment Terms
Time Between Invoice Due Date and Payment Date
Vendor Payment Method
Company
Name
Description
Grace Period Days
Payment Status
Payment Type
Allow Payment Copies
Last File Number
Last File Number Today
Account Type
Bridging Posting
Postdated Check Clearing Posting
Promissory Note Draft Type
Direct Debit
Payment Method
Complimentary Closings
Company
Complimentary Close
Decision Making Roles
Company
Decision
Description
Employment Job Functions
Company
Function
Description
Loyalty Levels
Company
Loyalty
Level Description
Personal Character Types
Company
Character
Description
Sales Contact Person
Company
Title
Person Title Alias
Salutations
Company
Salutation
Address Roles
Name
Is Postal Address Role
Obtaining Finance & Operations Data
Now we need to go and get some data to put into our environment, but before you do it may be worth reading this Microsoft Learn module named Navigate finance and operations apps. If you don't want to do this then look at the image below from the module for a high level view and pay attention to the company (legal entity) picker.
We also need to get access to a Finance and Operations environment. Microsoft seem to have closed off the demo route I used previously so we will utilise one of the F&O VM instances available for Microsoft Learn lab exercises. Here is one such module that has a lab exercise. Note these expire after 2 hours.
I've hyperlinked the dual write map links to each of the headings for ease of reference, here you can check the data used if required. Data will either be displayed on screen in forms or in a table within F&O, if data is in a table then use the export all rows functionality (right click on the header) to speed up the process and copy the data to a local spreadsheet. When the data is in forms either key this in via the forms or use the Open in Excel Online to create data and import it.
There are some elements you will need to sequence, I have purposely not called these out to allow you to get more familiar with the data.
I'm sure some D365 CE users will feel this way, but there's nothing to fear!
I personally chose to take data for these three legal entities, but if you have more time then feel free to do more but three should be the minimum.
USSI
USMF
USRT
USSI is the only one that I found with a data set for each table, so I suggest using this as a base.
Use the search bar at the top and search for legal entities and select the option below.
As you will see legal entities are complex but in Dataverse we only require the minimum data set so just capture the code and name.
Use the search bar at the top and search for currencies and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Currencies are not company/legal entity specific so this only needs to be done once.
Use the search bar at the top and search for customer groups and select the option below under accounts receivable (customers = accounts receivable and vendors = accounts payable).
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Customer Groups are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for methods of payment and select the one below under accounts receivable.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Customer Payment Methods are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for name title and suffix and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Name Affixes are not company/legal entity specific so this only needs to be done once.
Use the search bar at the top and search for payment days and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Payment Days and Payment Day Lines are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for payment schedules and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Payment Schedules and Payment Schedule Lines are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for terms of payment and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Payment Terms are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for vendor group and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Vendor Groups are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for methods of payment and select the option below under accounts payable.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Vendor Payment Methods are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for complimentary close and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Complimentary Closings are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for decision and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Decision Making Roles are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for job functions and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Employment Job Functions are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for loyalty and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Loyalty Levels are company/legal entity specific so this only needs to be done multiple times.
Use the search bar at the top and search for character, and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Personal Character Types are company/legal entity specific, so this needs to be done multiple times.
Use the search bar at the top and search for contact person titles and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Sales Contact Persons are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for salutation and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Salutations are company/legal entity specific so this needs to be done multiple times.
Use the search bar at the top and search for address and contact information purpose, and select the option below.
The data required will be on the screen below (check the mapping table referenced in the title hyperlink where required).
Address Roles are not company/legal entity specific so this only needs to be done once.
Internal Organisations
I mentioned these sections earlier when they were added under unused in the site map. When you try in D365 CE to create these records you get the same kind of error that we got on the company record, unfortunately when we try to disable the offending plugin step we get the below error message.
These elements aren't critical to the functionality that we are going to cover in subsequent blogs but for completeness I will cover what they are later in the series.
So there we have it, two blogs down and if you've followed the series so far you will now have a D365 CE environment not only populated with company/legal entities but also now with master data for the various tables. Having this data in the system in a structured meaningful manner is far more beneficial than creating data on the fly and it not representing the process.
Thanks again for taking the time to read this article and I hope you have found it useful. Next in the series we will start to explain the new data structure in more detail and bring it to life with the data that we have just added.
Dan