Here’s a comprehensive solution for eliminating UDO access delays during user provisioning:
Understanding the Problem:
JDE maintains separate security caches for standard objects and UDOs. When you assign a role containing UDO permissions:
- Standard object permissions (tables, forms, reports) activate immediately
- UDO security mappings are written to database (F98UDOSEC, F98UDORL)
- UDO security cache refreshes on a scheduled interval (default 24 hours)
- Users can’t access UDOs until cache refresh pulls their new permissions
This architecture causes the 24-48 hour delay you’re experiencing.
Solution Strategy: Three-Tier Approach
Tier 1: Optimize UDO Security Mapping (Immediate)
Verify your role’s UDO security is correctly configured:
- Navigate to Security Workbench (P98OWSEC)
- Open the real estate role assigned to new users
- Check UDO Security tab - ensure UDOs are mapped with explicit permissions (Read, Write, Delete)
- Verify role assignment propagation is set to ‘Immediate’ not ‘Batch’
Many delays stem from roles that reference UDO security groups instead of direct UDO mappings. Direct mappings propagate faster.
Tier 2: Automate Security Cache Refresh (Recommended)
Integrate cache refresh into your provisioning workflow. Since your HR system uses JDE APIs, add this sequence:
Step 1 - Role Assignment (existing):
POST to /jderest/v2/dataservice/table/F0092 (User Profile)
Step 2 - Submit Cache Clear (new):
POST to /jderest/v2/orchestrator/batch_job_submit
Payload:
{
"jobName": "R98403",
"version": "ZJDE0001",
"processingOptions": {
"CacheToClear": "UDO",
"Scope": "AllUsers"
}
}
Step 3 - Poll Job Status:
GET /jderest/v2/orchestrator/batch_job_status/{jobId}
Wait for status = “D” (Done), typically 60-120 seconds
Step 4 - Verify Access:
Have your HR system trigger a test API call to a real estate UDO endpoint to confirm the new user can access it
Tier 3: Configure Proactive Cache Refresh (Long-term)
Reduce the default cache refresh interval to handle edge cases where automated refresh fails:
Edit jde.ini on all enterprise servers:
[SECURITY]
UDOSecurityCacheRefresh=7200
UDOCacheRefreshMaxThreads=4
UDOCacheRefreshTimeout=300
This sets 2-hour automatic refresh (down from 24 hours). Even if API-triggered refresh fails, users wait maximum 2 hours instead of 24-48 hours.
Performance Considerations:
- 2-hour refresh interval adds ~0.5% CPU overhead on enterprise servers
- R98403 execution takes 1-2 minutes and locks security tables briefly
- Running R98403 per user (10-15/month) has negligible impact
- System-wide cache clear affects all active users (they might need to re-login)
Alternative: User-Specific Cache Refresh
If system-wide cache clear is problematic, implement a custom solution:
- Create a custom UBE that clears security cache only for specified user IDs
- Use SQL to delete from F98UDOCACHE WHERE USER_ID = :newUserId
- Call this custom UBE via API instead of R98403
- Users get immediate access without affecting other users’ cached permissions
This requires custom development but provides surgical cache refresh.
Implementation Checklist:
- Verify UDO security mappings are direct (not group-based)
- Update HR provisioning workflow to call R98403 via API after role assignment
- Implement job status polling with 5-minute timeout
- Reduce UDOSecurityCacheRefresh to 7200 seconds in jde.ini
- Test with new hire - verify UDO access within 5 minutes of role assignment
- Monitor R98403 execution times and adjust if needed
- Document the automated workflow for IT team
Expected Results:
- New users get UDO access within 2-5 minutes after role assignment
- No manual intervention required
- Fallback 2-hour cache refresh handles any automation failures
- Property managers can start work immediately upon hire
This solution eliminates the 24-48 hour delay while maintaining security cache integrity and system performance.