Planning Application Properties
This guide covers the configuration of Planning-specific properties in EPMware for successful integration with Hyperion Planning applications.
Overview
Application properties define how EPMware interacts with Planning applications, including: - Connection parameters - Authentication settings - Deployment options - Performance tuning - Error handling
EPMware Application Configuration
Accessing Application Properties
- Log into EPMware
- Navigate to Configuration → Applications
- Select your Planning application
- Click Edit Properties or right-click → Properties

Planning application properties in EPMware
Core Properties
| Property | Description | Example | Required |
|---|---|---|---|
| APPLICATION_NAME | Planning application name | PLANPROD | Yes |
| SERVER | Planning server hostname | planning.company.com | Yes |
| PORT | RMI Registry port | 11333 | Yes |
| USER | Planning admin username | admin | Yes |
| PASSWORD_FILE | Encrypted password file path | /opt/secure/planning_pwd.txt | Yes |
| ESSBASE_SERVER | Associated Essbase server | essbase.company.com | Yes |
| ESSBASE_APP | Essbase application name | PLANPROD | Yes |
Connection Properties
Server Configuration
# Server connection properties
planning.server=planning.company.com
planning.port=11333
planning.protocol=RMI
planning.timeout=3600000
planning.retry.count=3
planning.retry.delay=5000
Authentication Properties
# Authentication settings
planning.user=admin
planning.passwordFile=/opt/secure/planning/planning_pwd.txt
planning.authentication.type=NATIVE
planning.session.timeout=1800000
Essbase Integration
# Essbase connection
planning.essbase.server=essbase.company.com
planning.essbase.port=1423
planning.essbase.application=PLANPROD
planning.essbase.database=Plan1
planning.essbase.refresh=true
Deployment Properties
Metadata Loading Options
# OutlineLoad options
planning.outlineload.path=/opt/Oracle/products/Planning/bin/OutlineLoad.sh
planning.outlineload.logLevel=INFO
planning.outlineload.delimiter=,
planning.outlineload.loadMethod=/L
planning.outlineload.refreshDatabase=true
Load Methods
| Method | Property Value | Description |
|---|---|---|
| Load | /L |
Add new members (default) |
| Replace | /R |
Replace entire dimension |
| Update | /M |
Update member properties |
| Delete | /D |
Remove members |
Validation Settings
# Validation properties
planning.validation.enabled=true
planning.validation.stopOnError=true
planning.validation.logErrors=true
planning.validation.maxErrors=100
Performance Properties
Batch Processing
# Batch configuration
planning.batch.enabled=true
planning.batch.size=1000
planning.batch.commitInterval=5000
planning.batch.parallel=false
planning.batch.threads=4
Memory Configuration
# JVM settings for OutlineLoad
planning.jvm.xms=1024m
planning.jvm.xmx=2048m
planning.jvm.maxPermSize=256m
planning.jvm.gc=G1GC
Connection Pooling
# Connection pool
planning.pool.enabled=true
planning.pool.minSize=2
planning.pool.maxSize=10
planning.pool.timeout=30000
planning.pool.validate=true
Advanced Properties
Custom Properties
# Custom dimension properties
planning.dimension.Entity.dataStorage=StoreData
planning.dimension.Account.twoPassCalc=true
planning.dimension.Version.securityEnabled=false
# UDA assignments
planning.uda.Entity=CostCenter,Region
planning.uda.Account=Revenue,Expense
Business Rule Properties
# Business rule execution
planning.businessrule.enabled=true
planning.businessrule.runtime.prompts=true
planning.businessrule.sequence=Calculate,Aggregate,Allocate
planning.businessrule.timeout=7200000
Form Management
# Form properties
planning.forms.export.enabled=true
planning.forms.import.validate=true
planning.forms.backup.before.import=true
Environment-Specific Properties
Development Environment
# Development settings
planning.dev.server=dev-planning.company.com
planning.dev.application=PLANDEV
planning.dev.passwordFile=/opt/secure/planning/dev_pwd.txt
planning.dev.debug=true
planning.dev.validation.stopOnError=false
Production Environment
# Production settings
planning.prod.server=prod-planning.company.com
planning.prod.application=PLANPROD
planning.prod.passwordFile=/opt/secure/planning/prod_pwd.txt
planning.prod.debug=false
planning.prod.validation.stopOnError=true
planning.prod.backup.required=true
Property Management
Setting Properties via UI
1. Navigate to Configuration → Applications
2. Select Planning application
3. Right-click → Edit Properties
4. Add/Modify property:
- Name: planning.batch.size
- Value: 1000
5. Click Save
Setting Properties via Script
#!/bin/bash
# set_planning_properties.sh
# EPMware API endpoint
API_URL="https://epmware.company.com/api/v1"
TOKEN="your-api-token"
# Set property
curl -X POST "$API_URL/applications/PLANPROD/properties" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "planning.batch.size",
"value": "1000"
}'
Bulk Property Import
# planning_properties.csv
Property,Value,Description
planning.server,planning.company.com,Planning server
planning.port,11333,RMI port
planning.user,admin,Admin user
planning.passwordFile,/opt/secure/pwd.txt,Password file
planning.batch.size,1000,Batch size
# Import properties
curl -X POST "$API_URL/applications/PLANPROD/properties/import" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@planning_properties.csv"
Property Validation
Validation Script
#!/bin/bash
# validate_planning_properties.sh
echo "=== Planning Properties Validation ==="
# Required properties
REQUIRED_PROPS=(
"APPLICATION_NAME"
"SERVER"
"USER"
"PASSWORD_FILE"
)
# Check each property
for prop in "${REQUIRED_PROPS[@]}"; do
VALUE=$(grep "^$prop=" application.properties | cut -d= -f2)
if [ -n "$VALUE" ]; then
echo "✓ $prop = $VALUE"
else
echo "✗ Missing: $prop"
fi
done
# Validate password file
PASSWORD_FILE=$(grep "^PASSWORD_FILE=" application.properties | cut -d= -f2)
if [ -f "$PASSWORD_FILE" ]; then
echo "✓ Password file exists"
else
echo "✗ Password file not found: $PASSWORD_FILE"
fi
Connection Test
#!/bin/bash
# test_planning_connection.sh
# Get properties
source application.properties
# Test connection
OutlineLoad.sh -f:$PASSWORD_FILE /A:$APPLICATION_NAME /U:$USER /V
if [ $? -eq 0 ]; then
echo "✓ Connection successful"
else
echo "✗ Connection failed"
fi
Property Templates
Standard Template
# planning_template.properties
# Standard Planning application configuration
# Connection
planning.server=${PLANNING_SERVER}
planning.port=11333
planning.timeout=3600000
# Authentication
planning.user=${PLANNING_USER}
planning.passwordFile=${PASSWORD_FILE}
# Essbase
planning.essbase.server=${ESSBASE_SERVER}
planning.essbase.application=${APPLICATION_NAME}
planning.essbase.refresh=true
# Deployment
planning.outlineload.loadMethod=/L
planning.validation.enabled=true
planning.backup.enabled=true
# Performance
planning.batch.size=1000
planning.pool.maxSize=5
High-Performance Template
# high_performance_template.properties
# Optimized for large deployments
# Batch processing
planning.batch.enabled=true
planning.batch.size=5000
planning.batch.parallel=true
planning.batch.threads=8
# Memory
planning.jvm.xmx=4096m
planning.jvm.gc=G1GC
planning.jvm.gcThreads=4
# Connection pool
planning.pool.maxSize=20
planning.pool.minSize=5
# Timeouts
planning.timeout=7200000
planning.operation.timeout=3600000
Monitoring Properties
Property Change Tracking
#!/bin/bash
# track_property_changes.sh
PROP_FILE="application.properties"
HISTORY_FILE="property_history.log"
# Create snapshot
cp $PROP_FILE ${PROP_FILE}.$(date +%Y%m%d_%H%M%S)
# Log changes
echo "=== Property Changes $(date) ===" >> $HISTORY_FILE
diff ${PROP_FILE}.previous $PROP_FILE >> $HISTORY_FILE 2>/dev/null
# Update previous
cp $PROP_FILE ${PROP_FILE}.previous
Property Usage Monitoring
# Monitor property usage in logs
grep -h "Using property" logs/*.log | \
awk '{print $NF}' | \
sort | uniq -c | \
sort -rn
Troubleshooting Properties
Common Property Issues
| Issue | Symptom | Solution |
|---|---|---|
| Missing property | "Property not found" | Add required property |
| Invalid value | "Invalid property value" | Check value format |
| Path not found | "File does not exist" | Verify file paths |
| Connection timeout | Operation times out | Increase timeout value |
| Memory issues | OutOfMemory errors | Increase JVM memory |
Debug Property Loading
# Enable debug logging
export PLANNING_PROPERTY_DEBUG=true
# Run with verbose output
java -Dplanning.properties.debug=true \
-jar epmware-agent.jar
Property Precedence
Properties are loaded in this order (later overrides earlier): 1. Default values 2. Application properties file 3. Environment variables 4. Command line arguments
# Example precedence
# 1. Default: planning.timeout=30000
# 2. File: planning.timeout=60000
# 3. Env: export PLANNING_TIMEOUT=90000
# 4. Cmd: -Dplanning.timeout=120000
# Final value: 120000
Best Practices
Property Management Guidelines
- Use descriptive names - Clear property naming
- Document properties - Include descriptions
- Version control - Track property changes
- Environment separation - Different configs per environment
- Regular review - Audit and update properties
Security Practices
- No passwords in properties - Use password files
- Encrypt sensitive values - Use encryption for sensitive data
- Restrict access - Limit who can view/modify
- Audit changes - Log all modifications
- Regular rotation - Update credentials periodically
Performance Optimization
- Tune batch sizes - Based on data volume
- Adjust timeouts - For network latency
- Configure pools - For concurrent operations
- Monitor usage - Track property effectiveness
- Regular testing - Validate optimal values
Property Documentation
Maintain a property reference document listing all custom properties, their purpose, and valid values for your team's reference.
Production Changes
Always test property changes in non-production environments first. Some properties require application restart to take effect.
Next Steps
- Password Encryption - Set up password files
- Planning Integration Overview - Complete Planning setup
- HFM Integration - HFM configuration
- Troubleshooting - Resolve issues