CAD validation rule not triggering on check-in for new revisions in validation management

Our custom CAD validation rule is not executing when users check in new revisions of CAD documents. The rule works perfectly when checking in brand new parts, but completely fails to trigger when checking in a revision of an existing part. This is causing validation to be bypassed for design changes, which is a serious quality issue.

We’re on Windchill 11.2 M030 with custom validation rules implemented for our CAD workflow. The validation rule checks for required attributes and naming conventions. I’ve verified that the rule is active and properly configured in the validation management preferences.

I suspect this is related to how validation rule event triggers work - maybe there’s a difference between check-in events and revise events that I’m not accounting for? The rule configuration seems correct, but clearly something is missing for the revision scenario. Has anyone encountered this behavior?

Another thing to watch - the rule execution order matters when you have multiple events configured. If you have other rules or workflows that modify the object during the revise process, they might interfere with your validation rule. Check the rule priority settings and make sure your validation rule has high enough priority to execute before any modification rules.

I’ve debugged this exact issue multiple times. Here’s the comprehensive solution covering all three configuration aspects:

1. Validation Rule Event Triggers:

The core issue is that check-in and revise are distinct lifecycle events with different trigger points:

Navigate to your validation rule configuration:

  • Go to Validation Management > Rules > [Your Rule Name]
  • Edit the rule properties
  • In the ‘Event Triggers’ section, you need to add multiple events:
    • Check In - for initial check-in of new parts
    • Revise - for creating new revisions
    • Update - for in-place updates to checked-in objects
    • Promote - if you want validation at state transitions

The key insight: ‘Check In’ only fires when an object transitions from checked-out to checked-in state. When you revise an object, you’re creating a new iteration, which triggers the ‘Revise’ event instead.

For comprehensive coverage, configure your rule to trigger on all relevant events:


Trigger Events: [Check In, Revise, Update, Promote]
Execution Timing: Before (to block invalid operations)

2. Check-in vs. Revise Events:

Understanding the event lifecycle is critical:

Check-In Event:

  • Fires when: User checks in a checked-out object
  • Object state: Transitions from checked-out to checked-in
  • Typical scenario: Completing edits on an existing revision
  • Event context: Has working copy context

Revise Event:

  • Fires when: User creates a new revision (new iteration)
  • Object state: New iteration created, typically in IN_WORK state
  • Typical scenario: Creating B revision from A revision
  • Event context: Has both previous and new iteration context

Your validation rule must handle both contexts. Update your rule’s event handler code if you have custom validation logic:

For Java-based validation:

public class CADValidationRule implements ValidationRule {
  @Override
  public ValidationResult validate(Validatable target, ValidationEvent event) {
    // Handle both check-in and revise events
    if (event.getType() == ValidationEvent.CHECKIN ||
        event.getType() == ValidationEvent.REVISE) {
      return performValidation(target);
    }
  }
}

For expression-based validation rules, ensure your applicability expression doesn’t inadvertently filter out revisions:

  • Avoid: iteration.version.identifier = 'A' (only matches first revision)
  • Use: iteration != null (matches all revisions)
  • Avoid: state = 'IN_WORK' (revisions might start in different state)
  • Use: state != 'CANCELLED' (more flexible state checking)

3. Rule Configuration:

Complete rule configuration checklist:

Applicability Settings:

  • Object Type: Include all CAD document types (WTPart, CADDocument, etc.)
  • Context: Ensure rule applies to all relevant product contexts
  • Lifecycle State: Don’t restrict to specific states unless necessary
  • Iteration: Remove iteration-specific conditions

Validation Logic: Structure your validation to work regardless of how the object was created:

  • Check required attributes on the current iteration (not working copy)
  • Validate naming conventions against the object’s current name
  • Don’t assume specific iteration patterns (A.1, B.1, etc.)

Execution Settings:

  • Priority: Set to HIGH (e.g., 100) to execute before modification rules
  • Blocking: Enable ‘Block operation on failure’ to prevent invalid check-ins/revisions
  • Error Handling: Configure clear error messages that specify what failed

Advanced Configuration for Revisions: If you need different validation logic for revisions vs. new parts:


Rule 1: CAD Validation - New Parts
  Trigger: Check In
  Condition: iteration.version.identifier = 'A'
  Validation: [Strict validation for new parts]

Rule 2: CAD Validation - Revisions
  Trigger: Revise
  Condition: iteration.version.identifier != 'A'
  Validation: [Validation for changes, may be less strict]

Testing the Configuration:

  1. Test new part check-in:

    • Create new part, check out, make changes, check in
    • Verify validation rule executes and blocks if validation fails
  2. Test revision creation:

    • Select existing part, create new revision
    • Verify validation rule executes during revision creation
    • Try to save revision with invalid data, confirm it’s blocked
  3. Test revision check-in:

    • Check out the new revision, make changes, check in
    • Verify validation executes on this check-in as well

Common Issues and Solutions:

  • Rule not firing at all: Check that rule is Active and not Suspended
  • Rule fires but doesn’t block: Verify ‘Block operation’ is enabled
  • Rule fires on new parts but not revisions: Add Revise event trigger
  • Rule execution errors: Check method server logs for validation exceptions
  • Performance issues: If validation is slow, consider async validation for non-critical checks

Monitoring: Enable validation rule logging to diagnose issues:

  • Add to log4j.properties: `log4j.logger.wt.validation=DEBUG
  • Monitor validation execution: Check MethodServer logs for rule execution traces
  • Review validation results: Check Validation Management > Audit Trail

After implementing these changes, test thoroughly with both new parts and revisions to ensure validation consistently triggers across all scenarios. The key is understanding that different operations trigger different events, and your validation rules must be configured to handle all relevant event types.

This is a common gotcha with validation rules. Check-in and revise are actually different lifecycle events in Windchill. Your validation rule is probably configured to trigger on ‘checkin’ event only, which doesn’t fire for revisions. You need to add the ‘revise’ event trigger as well.

I checked the validation rule configuration and found there’s a ‘Trigger Events’ section where I can select multiple events. Currently only ‘Check In’ is selected. Should I add ‘Revise’ as a separate event, or is there a combined event type that covers both scenarios? Also, how do I verify what iteration the rule is checking against?