Comparing Named Event Rules vs Business Functions for access control in project accounting

Our team is designing enhanced access controls for project accounting in JD Edwards 9.2.1. We need to implement rules that restrict users from modifying project budgets based on project status and user role combinations.

We’re debating between two approaches: Named Event Rules (NER) versus custom Business Functions. NER seems more flexible for dynamic conditions, but Business Functions might offer better auditability. Here’s a simple comparison of what we’re considering:


// NER approach - event-driven
IF Project.Status = 'APPROVED' AND User.Role != 'PROJECT_MANAGER'
  THEN Prevent budget modification

// Business Function approach
ValidateProjectAccess(projectID, userID, operation)
  Returns: Allow/Deny with audit log entry

What are your experiences with each approach from a security compliance perspective? We need full audit trails and the ability to quickly adjust rules as business requirements change. Does NER flexibility compromise security, or do Business Functions become maintenance nightmares?

From a compliance standpoint, Business Functions win hands down. They provide explicit audit trails through work center logging, version control through OMW, and clear code review processes. NER is powerful but can become a black box - rules scattered across multiple events make it hard to trace why a particular access decision was made. For SOX compliance audits, we need to show exactly what code ran and when. Business Functions give us that through source code and compilation logs.

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:

  1. Source code in version control (OMW) with complete change history
  2. Work Center logging captures every function call with parameters
  3. Unit testing frameworks validate security logic before deployment
  4. 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.

We use NER extensively for project access control. The flexibility is unmatched - you can modify rules without recompiling code or deploying new objects. For audit purposes, enable NER logging in the event rules workbench and all rule executions get captured with timestamps and user context. The key is proper documentation of your NER logic in the description fields.