Value Lists
Overview
Value Lists provide standardized dropdown options for attributes, ensuring data consistency and improving user experience. They define predefined choices that users can select from, eliminating data entry errors and maintaining uniform data across your application.
Value Lists interface showing configuration options and entry management
Value List Configuration
Value List Name
- Purpose: Unique identifier for the value list
- Requirement: Must be unique across all value lists in the system
- Usage: Referenced when associating the value list with attributes
- Best Practice: Use descriptive names that clearly indicate the purpose (e.g., "ProjectStatus", "CustomerType")
Table Name (Optional)
- Purpose: Use database table data instead of manual value list entries
- Alternative Approach: Values come from database table rather than "Value list entries" definition
- Required Table Structure:
- Value: The value stored when option is selected
- Description: The text displayed to users
- DependencyValue: The dependency value for cascading dropdowns
- Use Cases: Dynamic lists, large datasets, frequently changing options
Save Value Lists
- Purpose: Save changes to value list definitions
- Requirement: Must save before using value list in attributes
- Alternative: Use "Save all" action button to save all solution changes
- Best Practice: Save immediately after creating or modifying value lists
Value List Entries
Entry Properties
Value
- Purpose: The actual data stored in the database when option is selected
- Requirement: Values must be unique within the value list
- Best Practice: Use short, meaningful codes (e.g., "A" for Active, "P" for Pending)
- Storage: This is what gets saved to the database field
Text
- Purpose: User-friendly text displayed in the interface
- Display: What users see in dropdown lists and forms
- Best Practice: Use clear, descriptive text that users will understand
- Example: Value "A" with Text "Active" - database stores "A", user sees "Active"
Dependency Value
- Purpose: Enable cascading dropdown functionality
- Function: Links multiple attributes with dependent value lists
- Flexibility: No limit to the number of linked attributes
- Use Cases: Country/State/City relationships, Category/Subcategory selections
Dependency Implementation Example
Project Status/Sub-Status Cascade
Here's a practical example of implementing a two-level dependency system for project management:
Step 1: Create ProjectStatus Value List
- Value List Name: ProjectStatus
- Entries:
- Value: P, Text: Pre-sales
- Value: I, Text: In-progress
- Value: C, Text: Complete
Step 2: Create ProjectSubStatus Value List
- Value List Name: ProjectSubStatus
- Entries with Dependencies:
- Value: P_LEAD, Text: Lead generation, Dependency Value: P
- Value: P_PROP, Text: Proposal, Dependency Value: P
- Value: P_NEGO, Text: Negotiation, Dependency Value: P
- Value: I_PLAN, Text: Planning, Dependency Value: I
- Value: I_DEV, Text: Development, Dependency Value: I
- Value: I_TEST, Text: Testing, Dependency Value: I
- Value: C_DELIV, Text: Delivered, Dependency Value: C
- Value: C_MAINT, Text: Maintenance, Dependency Value: C
Naming Strategy: Prefix sub-status codes with the parent status code to ensure uniqueness and logical grouping.
Step 3: Create Attributes with Dependencies
Create two attributes in your Project entity (see Entities & Attributes for details):
Status Attribute
- Type: String, Length: 1
- Value List: ProjectStatus
- Value List Dependency: <blank>
SubStatus Attribute
- Type: String, Length: 10
- Value List: ProjectSubStatus
- Value List Dependency: Status (refers to Status attribute)
Additional Geographic Example
For more complex hierarchies, you can implement Country/State/City cascades:
Country Value List
- Value: USA, Text: U.S.A
- Value: AUS, Text: Australia
- Value: CAN, Text: Canada
State Value List
- Value: USA_NV, Text: Nevada, Dependency Value: USA
- Value: USA_CA, Text: California, Dependency Value: USA
- Value: AUS_NT, Text: Northern Territory, Dependency Value: AUS
City Value List
- Value: USA_NV_LasVegas, Text: Las Vegas, Dependency Value: USA_NV
- Value: USA_CA_LosAngeles, Text: Los Angeles, Dependency Value: USA_CA
Best Practices
Value Design
- Short Codes: Use concise values for database efficiency
- Meaningful Codes: Choose codes that have some logical meaning
- Consistency: Use consistent naming patterns across value lists
- Uniqueness: Ensure values are unique within each value list
Text Display
- User-Friendly: Use clear, understandable text for users
- Consistent Formatting: Apply consistent capitalization and formatting
- Descriptive: Make text descriptive enough to avoid confusion
- Localization: Consider multi-language requirements
Dependency Management
- Hierarchical Structure: Plan dependency chains carefully
- Unique Prefixes: Use prefixes to ensure uniqueness across dependencies
- Logical Grouping: Group related options under appropriate parent values
- Maintenance: Plan for easy updates and additions
Performance Considerations
- Table-Based Lists: Use database tables for large or dynamic lists
- Static Lists: Use manual entries for small, stable lists
- Indexing: Consider database indexing for table-based value lists
- Caching: Opadeez automatically caches value lists for performance
Common Use Cases
Status Lists
- Project Status: P=Pre-sales, I=In-progress, C=Complete
- Project Sub-Status: P_LEAD=Lead generation, I_DEV=Development, C_DELIV=Delivered
- Customer Status: A=Active, I=Inactive, P=Prospect
- Order Status: N=New, P=Processing, S=Shipped, D=Delivered
Category Systems
- Product Categories: Electronics, Clothing, Books
- Service Types: Consulting, Support, Training
- Priority Levels: L=Low, M=Medium, H=High, C=Critical
Geographic Data
- Countries: ISO country codes with full names
- Regions: Business regions or territories
- Time Zones: Standard time zone identifiers
Dynamic Value Lists
Table-Based Implementation
For dynamic or large value lists, use database tables:
- Create Database Table: With Value, Description, and DependencyValue columns
- Populate Data: Insert your options into the table
- Configure Value List: Set "Table name" to your database table
- Benefits: Easy updates, large datasets, external data integration
Maintenance Advantages
- External Updates: Update options without modifying the application
- Integration: Connect to external systems for option data
- Scalability: Handle thousands of options efficiently
- Real-time: Changes reflect immediately in the application
Getting Started
Ready to create value lists? Follow these resources:
- Your First Application - Part 3: Step-by-step tutorial for creating value lists
- Entities & Attributes: Learn how to associate value lists with attributes
Related Topics
- Entities & Attributes: Configure attributes to use value lists
- Data Dictionary Overview: Understanding the complete data model
- Basic Concepts: Fundamental Opadeez terminology
Pro Tip: Start with simple value lists for status fields, then implement dependency chains for more complex relationships like geographic hierarchies.