Get and explore relationships between Dynamics 365 tables
Project description
Dynamics 365 Table Relationship Finder
A tool for finding relationships between Dynamics 365 tables based on their field associations. This tool efficiently identifies direct and indirect relationships, enabling better understanding of data models.
Features
- Find Direct Relationships: Quickly find all tables directly related to a specific table.
- Find Relationship Paths: Discover paths between two tables through their relationships, with control over search depth.
- Memory Efficient: Designed to handle large relationship datasets efficiently.
- Command-line Interface: Easy-to-use CLI for quick access to relationship information.
- Case-Insensitive Lookups: Table names can be specified in any case (uppercase, lowercase, mixed case).
Installation
pip install d365-relations-cli
Optimizing the Relationship File
You need to create an advanced optimized version of the tablefieldassociations.json file before using the tool. This significantly reduces file size and improves performance:
# Using the CLI
tr optimize -i tablefieldassociations.json -o tablefieldassociations_opt.json
The advanced optimization performs the following:
- Removes duplicate bi-directional relationships
- Uses numeric IDs for tables and fields instead of repeating strings
- Creates lookup dictionaries for table and field names
Command-line Usage
# Find all tables directly related to a specific table (case-insensitive)
tr find-related companyinfo
# Find direct relationships between two tables (with no intermediate tables)
tr find-relationship table1 TABLE2
# Find relationships with intermediate tables (specify max number of intermediate tables)
tr find-relationship table1 TABLE2 --levels 2
# Get detailed information about the direct relationship between two tables
tr get-relationship-details Table1 table2
# List all tables in the dataset
tr list-tables
# Show statistics about the loaded relationships
tr stats
# Specify a different optimized JSON file
tr -f custom_tablefieldassociations_opt.json find-related companyinfo
# Save results to a file
tr find-related companyinfo --output results.json
CLI Commands
find-related: Find all tables directly related to a specific tablefind-relationship: Find paths between two tables (default is direct relationships only, use --levels to include intermediate tables)get-relationship-details: Get detailed information about the direct relationship between two tableslist-tables: List all tables in the datasetstats: Show statistics about the loaded relationshipsoptimize: Create an advanced optimized version of the relationships file
Run dynamics365-finder --help for more information about the available commands and options.
Python API Usage
from dynamics365_relationship_finder import AdvancedTableRelationshipFinder
# Initialize the finder with the path to your advanced optimized JSON file
finder = AdvancedTableRelationshipFinder('tablefieldassociations_opt.json')
# Find all tables directly related to a specific table (case-insensitive)
related_tables = finder.find_related('Customer')
print(related_tables)
# Find paths between two tables (with no intermediate tables by default)
paths = finder.find_relationship('Customer', 'SalesTable')
print(paths)
# Find paths with up to 2 intermediate tables
paths = finder.find_relationship('Customer', 'SalesTable', levels=2)
print(paths)
# Get detailed information about the direct relationship between two tables
details = finder.get_relationship_details('Customer', 'SalesTable')
print(details)
# List all tables in the dataset
tables = finder.get_table_list()
print(tables)
# Get statistics about the loaded relationships
stats = finder.get_stats()
print(stats)
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file d365_relations_cli-0.1.4.tar.gz.
File metadata
- Download URL: d365_relations_cli-0.1.4.tar.gz
- Upload date:
- Size: 217.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
238dea2bad34be377c8b32d00a3e8393844f71651b1cbea9679daa3ace185f65
|
|
| MD5 |
3155c18a5aaf1593cfcf70524d90d13f
|
|
| BLAKE2b-256 |
cd7e8196a14b29dbc615a2a71186f64f06673d0716434376deafcf2a585d6b0e
|
File details
Details for the file d365_relations_cli-0.1.4-py3-none-any.whl.
File metadata
- Download URL: d365_relations_cli-0.1.4-py3-none-any.whl
- Upload date:
- Size: 219.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
154d8e5c053dd8ac4e666b1be58b4b8da3a4cbd69b5bbf6aefeabc2983eee941
|
|
| MD5 |
e15081eb79db57602eb96dd62ca32c53
|
|
| BLAKE2b-256 |
b4d298cc2d4a45224bb2618c4c117a27527b9409b2a6a1ff14a77b7252e2f70b
|