Data Set Definition
Overview
DataSets create navigable views of your data model, defining how users will access and navigate through related information. They establish hierarchical structures starting from a root entity and enable users to move seamlessly between connected data. DataSets are essential for creating user-friendly interfaces and defining specific business rules for data access.
DataSet interface showing entity configuration and hierarchical structure
What is a DataSet?
A DataSet is a specific view of your data model that:
- Creates Tree Structure: Organizes entities in hierarchical views starting from a root entity
- Enables Navigation: Allows users to move between related data seamlessly
- Applies Business Rules: Implements specific visibility conditions, field requirements, and access controls
- Supports Reusability: Same entities can be used in multiple DataSets for different purposes
- Defines User Experience: Determines how data is presented and accessed in the application
DataSet Configuration
DataSet Name
- Purpose: Unique identifier for the DataSet
- Requirement: Must be unique across all DataSets in the system
- Usage: Referenced when creating flows, pages, and user interfaces
- Best Practice: Use descriptive names that indicate the primary entity or purpose
Data Set Entities
Data Set Entities define which entities from your data dictionary are included in the DataSet and how they relate to each other. Each DataSet Entity represents a specific use of an entity within the DataSet context, allowing for customized behavior and rules.
Core Properties
Alias
- Purpose: Name given to the entity within this DataSet context
- Flexibility: Same entity can have different aliases within the same DataSet
- Example: Entity "Address" might have alias "Delivery" and "BillingAddress" in the same DataSet
Include Another DataSet
- Purpose: Reuse another DataSet within the current one
- Benefit: Avoid duplicating DataSet definitions
- Use Case: Include a DataSet created in an included solution into your data model
- Modularity: Promotes reusable DataSet components across different solutions
Entity Name
- Purpose: Reference to the actual entity in the data dictionary
- Example: "Customer", "Project", "ProjectTask"
- Requirement: Must exist in the Data Dictionary before use
- Relationship: Links the DataSet Entity to the underlying database structure
Relationship Configuration
Link From Entity
- Purpose: Define the parent-child relationship within the DataSet
- Tree Structure: Creates hierarchical organization of entities
- Requirement: Mandatory except for the root DataSet Entity
- Example: "ProjectTask" entity linked from "Project" entity
Link Name
- Purpose: Specify which link defines the parent-child relationship
- Requirement: Must be a valid link where "Entity from" matches parent and "Entity to" matches child (or vice-versa)
- Validation: System ensures link compatibility with selected entities
- Example: "CustomerProject" link connecting Customer to Project entities
Advanced Configuration
SQL Filter (Optional)
- Purpose: Apply additional filtering to non-exclusive links
- Limitation: Only works with non-exclusive relationships
- Use Case: Filter which customers can be selected through a Contract relationship
- Example:
Status = 'Active'to show only active customers
Read-Only
- Purpose: Make the entire DataSet Entity read-only
- Scope: Applies to all attributes of the entity within this DataSet
- Alternative: Field-level read-only rules can be set via Attribute Rules
- Use Case: Reference data that should not be modified through this DataSet
No Cache
- Purpose: Prevent caching of entity data in memory
- Behavior: Data reloaded from database on every page refresh
- Use Case: Database views or frequently changing data
- Performance Impact: Increases database load but ensures fresh data
API Configuration
Is API Input
- Purpose: Include DataSet in REST API request data model
- Usage: When accessing flows via REST API
- Integration: Defines structure for incoming API data
- Data Flow: External systems can send data using this structure
Is API Output
- Purpose: Include DataSet in REST API response data model
- Usage: When returning data via REST API
- Integration: Defines structure for outgoing API data
- Data Flow: External systems receive data in this structure
API Block Name
- Purpose: Override default REST API block name
- Default: Uses the entity alias if not specified
- Customization: Allows API-specific naming conventions
- Integration: Matches external system expectations
Attribute Rules
Modify Attribute Rules
- Purpose: Customize field behavior for the selected DataSet Entity
- Capabilities: Control visibility, mandatory status, and read-only behavior
- Context-Specific: Rules apply only within this DataSet context
- Flexibility: Same entity can have different rules in different DataSets
- Detailed Guide: See Data Set Attributes Rules for complete configuration instructions
Practical Examples
Customer Management DataSet
- DataSet Name: CustomerManagement
- Root Entity: Customer (alias: "Customer")
- Child Entities:
- Project (alias: "CustomerProject", linked from Customer via CustomerProject link)
- ProjectTask (alias: "ProjectTask", linked from Project via ProjectTask link)
Project-Focused DataSet
- DataSet Name: ProjectManagement
- Root Entity: Project (alias: "Project")
- Child Entities:
- Customer (alias: "ProjectCustomer", linked from Project via reverse CustomerProject link)
- ProjectTask (alias: "Task", linked from Project via ProjectTask link)
API Integration DataSet
- DataSet Name: CustomerAPI
- Configuration:
- Customer entity: Is API Input = true, Is API Output = true
- Project entity: Is API Output = true, API Block Name = "projects"
Best Practices
DataSet Design
- User-Centric: Design DataSets based on how users work with data
- Logical Hierarchy: Create intuitive parent-child relationships
- Performance: Consider caching implications for frequently accessed data
- Reusability: Design for reuse across different parts of the application
Entity Configuration
- Meaningful Aliases: Use aliases that reflect the entity's role in the DataSet
- Appropriate Filtering: Apply SQL filters judiciously to maintain performance
- Security: Use read-only settings to protect sensitive data
- API Design: Plan API structure for external system integration
Attribute Rules
- Context-Specific: Tailor field behavior to the DataSet's purpose
- User Experience: Hide irrelevant fields and make important ones mandatory
- Data Integrity: Use validation rules to ensure data quality
- Performance: Minimize complex rules that impact loading speed
Getting Started
Ready to create DataSets? Follow these resources:
- Your First Application - Part 3: Step-by-step tutorial for creating DataSets
- Entities & Attributes: Create entities before defining DataSets
- Links / Relationships: Define relationships before creating DataSets
Related Topics
- Data Dictionary Overview: Understanding the complete data model
- Data Set Attributes Rules: Configure field visibility, mandatory, and read-only rules
- Basic Concepts: Fundamental Opadeez terminology
- Links / Relationships: Define entity relationships