Configurable column definitions for flexible reporting. This guide covers dynamic column configuration, calculated fields, conditional formatting, and more.
Dynamic column configuration
Key Components
Configuration Pattern
Windows can be configured for mobile through Application Dictionary properties:
Window Configuration:
├── Show on Desktop: Yes/No
├── Show on Mobile: Yes/No
├── Show on App: Yes/No
├── Interaction Pattern: Focused Entry
Document Review Line Verification Quick Edit
└── Mobile-specific field visibility
Four Interaction Patterns
1. Quick Edit: Update a few fields across many records (price updates, status changes)
---
Pillar 2: Real-Time Analytics
The Problem with Traditional Reporting
Traditional ERP reporting:
- Runs overnight batches
- Generates PDFs nobody reads
- Requires IT to create new reports
- Shows what happened last month
Predictiv analytics:
- Updates in real-time
- Embeds in workflows
- Self-service configuration
- Shows what's happening now
Materialized View Pattern
For large datasets (100k+ records), Predictiv uses a hybrid approach:
-- Materialized view: Fast, pre-computed, refreshed daily
CREATE MATERIALIZED VIEW mv_sales_summary AS
SELECT. preddp)
Date: 2025-11-01
Purpose: Document critical lessons learned during Application Dictionary metadata creation and deployment
---
Executive Summary
Successfully deployed a complete Application Dictionary metadata configuration for the Draw Promotion module. Table Identifier Columns
Issue: WAD validation error: "Table PREDDP_PROMOTION_PRODUCT has not identifier. "
Lesson Learned: Every table should have at least one identifier column for display purposes.
Calculated fields
Quick Edit: Update a few fields across many records (price updates, status changes)
---
Pillar 2: Real-Time Analytics
The Problem with Traditional Reporting
Traditional ERP reporting:
- Runs overnight batches
- Generates PDFs nobody reads
- Requires IT to create new reports
- Shows what happened last month
Predictiv analytics:
- Updates in real-time
- Embeds in workflows
- Self-service configuration
- Shows what's happening now
Materialized View Pattern
For large datasets (100k+ records), Predictiv uses a hybrid approach:
sql
-- Materialized view: Fast, pre-computed, refreshed daily
CREATE MATERIALIZED VIEW mv_sales_summary AS
SELECT. THEN all other metadata (tables, windows, tabs, fields, etc. Column Metadata Requirements
Issue: Multiple entity generation failures due to NULL values in required column fields. Lesson Learned: ALL boolean-type fields in AD_COLUMN must have non-NULL values. Critical Fields:
issessionattr- Must be 'N' (not NULL)
issecondarykey- Must be 'N' (not NULL)
isselectioncolumn- Must be 'N' (not NULL)
istransient- Must be 'N' (not NULL)
istranslated- Must be 'N' (not NULL)
isusedsequence- Must be 'N' (not NULL)
isdesencryptable- Must be 'N' (not NULL)
isencrypted- Must be 'N' (not NULL)
isexcludeaudit- Must be 'N' (not NULL)
isautosave- Must be 'Y' (not NULL)
is_child_property_in_parent- Must be 'N' (not NULL)
Solution - Apply to All Columns:
UPDATE ad_column c
SET
issessionattr = COALESCE(issessionattr, 'N'),
issecondarykey = COALESCE(issecondarykey, 'N'),
isselectioncolumn = COALESCE(isselectioncolumn, 'N'),
istransient = COALESCE(istransient, 'N'),
istranslated = COALESCE(istranslated, 'N'),
isusedsequence = COALESCE(isusedsequence, 'N'),
isdesencryptable = COALESCE(isdesencryptable, 'N'),
isencrypted = COALESCE(isencrypted, 'N'),
isexcludeaudit = COALESCE(isexcludeaudit, 'N'),
isautosave = COALESCE(isautosave, 'Y'),
is_child_property_in_parent = COALESCE(is_child_property_in_parent, 'N')
WHERE c.
Conditional formatting
Conditional formatting is a core capability within Predictiv, designed to streamline operations and improve visibility. The implementation follows best practices while remaining configurable to meet your organization's specific needs.
User personalization
Pillar 1: Mobile-First Experience
Why Mobile Matters
Traditional ERP assumes users sit at desks with large monitors. Solution:
sql
-- Set the most meaningful column as identifier
UPDATE ad_column
SET isidentifier = 'Y', seqno = 30
WHERE ad_table_id IN (SELECT ad_table_id FROM ad_table WHERE tablename = 'PREDDP_PROMOTION_PRODUCT')
AND columnname = 'M_PRODUCT_ID';
Guidelines:
- Choose the column users would recognize (product name, customer name, etc. Missing
SHOWINRELATION, ISENCRYPTED, or ISFIRSTFOCUSEDFIELD will cause NullPointerExceptions during window rendering at runtime - errors that only appear when users access the window, not during deployment.
Saved views
Detail Views
The "header-lines search problem": How do you find an order line when you don't know the order number. Detail Views solve this by flattening header-lines into searchable grids:
Traditional: Search Orders → Find Order → Open → Search Lines
Detail View: Search All Order Lines → Filter by product, date, status → Click to open parent
Every header-lines entity should have a corresponding detail view. ### Dashboard Architecture
mermaid
graph TB
subgraph "Dashboard"
KPI1[KPIs]
CHART1[Charts]
GRID1[Grids]
end
subgraph "Data Sources"
MV[Materialized Views]
RT[Real-time Queries]
EXT[External Data]
end
KPI1 --> MV
CHART1 --> MV
GRID1 --> RT
---
Pillar 3: Intelligent Automation
Workflow Engine
Documents flow through defined states with automatic transitions:
mermaid
stateDiagram-v2
[*] --> Draft
Draft --> Submitted: Submit
Submitted --> Approved: Approve
Submitted --> Rejected: Reject
Approved --> Processing: Process
Processing --> Complete: Complete
Rejected --> Draft: Revise
Complete --> [*]
Each transition can:
- Check preconditions (is budget available. Valid UIPATTERN Values:
UIPATTERN Meaning
STD Standard tab: full edit (insert, update, delete) in grid or form
RO Read-only tab: not editable (use for views or system-generated data)
INS Insert only: allows creating new records (no editing)
DEL Delete only: allows deletion but not editing (less common)
INSUPD Insert or Update: allows new/edit but perhaps not delete
TREE Tab uses tree-view (hierarchical) layout
GRID Tab behaves primarily as grid/list
Important Notes:
- If underlying table is a view (
AD_TABLE. [CDATA[N]]>
Field-by-Field Explanation:
Hidden Fields (not shown by default, but displayed in special views):
- Set ISDISPLAYED='N'
to hide from standard form view
- These fields appear in developer/technical views only
- Still require ALL boolean fields set to prevent template errors
Common Field Sequence Numbers by Location:
- Standard fields: 10-1000
- Extension fields (existing window): 3000+ (avoids conflicts with core)
- New module fields (new window): 10-100 (can use lower numbers)
Verification Query After Deployment:
-- Check for NULL boolean fields (ALL must return 0 rows)
SELECT ad_field_id, name
FROM ad_field
WHERE ad_module_id = 'YOUR_MODULE_UUID'
AND (
isencrypted IS NULL
OR showinrelation IS NULL
OR isfirstfocusedfield IS NULL
OR isfieldonly IS NULL
OR isshowninstatusbar IS NULL
OR em_obuiapp_showsummary IS NULL
);
Post-Import Fix (if needed):
-- If you imported fields without complete metadata, fix with:
UPDATE ad_field
SET
isencrypted = COALESCE(isencrypted, 'N'),
showinrelation = COALESCE(showinrelation, 'Y'),
isfirstfocusedfield = COALESCE(isfirstfocusedfield, 'N'),
isfieldonly = COALESCE(isfieldonly, 'N'),
isshowninstatusbar = COALESCE(isshowninstatusbar, 'N'),
em_obuiapp_showsummary = COALESCE(em_obuiapp_showsummary, 'N')
WHERE ad_module_id = 'YOUR_MODULE_UUID';
---
Metadata File Cross-References
Critical UUID Cross-References
These UUIDs must be consistent across all files:
``
MODULE_ID=6C05EB8B4CF84C6DA7723A3804D72F9F
# Used in:
- AD_MODULE.
Getting Started
To implement dynamic columns in insite analytics in your Predictiv environment:
1. Assess your current state - Review existing processes and identify improvement opportunities
2. Configure the module - Work with your implementation team to set up the required components
3. Train your team - Ensure users understand the new capabilities and workflows
4. Monitor and optimize - Track key metrics and continuously improve
Related Resources
For more information on related topics, explore our other guides in this collection.
Need Help?
Our team of experts is available to help you get the most out of Predictiv. Contact us to discuss your specific requirements and how we can help you achieve your goals.