Skip to main content

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:

  1. Removes duplicate bi-directional relationships
  2. Uses numeric IDs for tables and fields instead of repeating strings
  3. 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 table
  • find-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 tables
  • list-tables: List all tables in the dataset
  • stats: Show statistics about the loaded relationships
  • optimize: 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

d365_relations_cli-0.1.1.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

d365_relations_cli-0.1.1-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file d365_relations_cli-0.1.1.tar.gz.

File metadata

  • Download URL: d365_relations_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.14

File hashes

Hashes for d365_relations_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 79856f951d48add36293154a37267aac28f786f9448d190d3350cb5ce1b92903
MD5 624986ed0db6797df125532b76c3efde
BLAKE2b-256 c4298f725db140a40ecb90340d876b188e6faa72162066739ac73b27b4beabe1

See more details on using hashes here.

File details

Details for the file d365_relations_cli-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for d365_relations_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0dc6689f1c320c6dc5ca711519c8692bc40c6e03856200eaae765570ab2472dd
MD5 f715c0475957488457b16ceaeb8c8df9
BLAKE2b-256 681f011d902372e12d8cef568b6304bb552ccd8833ac4a73ad6356739320cf13

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page