Let me share insights from implementing both approaches across multiple project accounting implementations.
NER Flexibility Analysis:
Named Event Rules excel at configuration-driven security. Their strength is rapid adjustment without code changes - critical when business rules evolve frequently. In project accounting, we use NER for:
- User role-based form access control
- Dynamic field-level security (hide/show budget fields)
- Simple validation rules (status transitions)
The flexibility comes with governance requirements. Establish strict NER naming conventions, document every rule in the Description field, and maintain a separate NER inventory spreadsheet. Enable Event Rules Logging in P00911 to capture all executions. This creates an audit trail showing which rule fired, when, and for which user.
NER weakness: Complex conditional logic becomes unreadable. Multi-step validation with database lookups is awkward in NER syntax. Testing requires manual verification through the UI rather than automated unit tests.
Business Function Auditability:
Business Functions provide superior auditability through multiple mechanisms:
- Source code in version control (OMW) with complete change history
- Work Center logging captures every function call with parameters
- Unit testing frameworks validate security logic before deployment
- Code review processes ensure security standards compliance
For project budget access control, we implement Business Functions like:
- ValidateProjectBudgetAccess (checks multi-level approval requirements)
- LogSecurityDecision (writes detailed audit records to custom table)
- EvaluateProjectAuthorization (complex role hierarchy evaluation)
These functions integrate with JDE’s security framework and can be called from forms, batch processes, or APIs consistently.
Security Compliance Perspective:
SOX and other regulatory frameworks require demonstrable security controls. Business Functions satisfy auditors better because:
- Clear code lineage through OMW versions
- Formal testing evidence through unit test results
- Explicit separation of duties in development/deployment
- Code signing and object deployment tracking
NER can meet compliance requirements but needs additional documentation overhead. Create a “Security Event Rules” document mapping each NER to its business purpose, approval authority, and test scenarios.
Recommended Hybrid Architecture:
For project accounting access control, layer your security:
Layer 1 (NER):
- Form-level access based on user security groups
- Field visibility based on project status
- Simple validation rules (required fields, format checks)
Layer 2 (Business Functions):
- Complex authorization logic (multi-role approval chains)
- Budget threshold validations requiring database queries
- Audit logging with detailed context
- Integration with external authorization systems
Layer 3 (Row Security):
- Data-level filtering by business unit
- Project hierarchy access control
This architecture provides NER flexibility for frequent changes while maintaining Business Function rigor for critical security decisions. The key is clear boundaries - document which security aspects use which mechanism.
Maintenance Reality:
Business Functions aren’t maintenance nightmares if properly structured. Use parameter-driven logic rather than hardcoded rules. Store configuration in UDC tables or custom setup tables. This allows business users to adjust thresholds and rules without modifying code.
NER maintenance challenges arise from proliferation - we’ve seen systems with hundreds of poorly documented event rules. Governance is essential: require approval for new NER, periodic review of existing rules, and retirement of obsolete rules.
Final Recommendation:
For project budget access control specifically, start with Business Functions for core authorization logic. They provide the auditability and testability needed for financial controls. Use NER as a supplementary layer for UI behavior and simple validations. This balances compliance requirements with operational flexibility.