changes
This commit is contained in:
81
scripts/debug_workflow_trigger.py
Normal file
81
scripts/debug_workflow_trigger.py
Normal file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Debug script to investigate why the settlement workflow isn't triggering
|
||||
"""
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Add the project root to Python path
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
from app.database.base import get_db
|
||||
from app.models.document_workflows import DocumentWorkflow, EventLog
|
||||
|
||||
|
||||
def debug_settlement_workflow():
|
||||
"""Debug the settlement workflow trigger conditions"""
|
||||
print("🔍 Debugging Settlement Workflow Trigger")
|
||||
print("=" * 50)
|
||||
|
||||
db = next(get_db())
|
||||
|
||||
try:
|
||||
# Find the settlement workflow
|
||||
workflow = db.query(DocumentWorkflow).filter(
|
||||
DocumentWorkflow.name == "Auto Settlement Letter"
|
||||
).first()
|
||||
|
||||
if not workflow:
|
||||
print("❌ Auto Settlement Letter workflow not found")
|
||||
return
|
||||
|
||||
print(f"✅ Found workflow: {workflow.name}")
|
||||
print(f" - Trigger Type: {workflow.trigger_type}")
|
||||
print(f" - Trigger Conditions: {workflow.trigger_conditions}")
|
||||
|
||||
# Get recent events
|
||||
recent_events = db.query(EventLog).filter(
|
||||
EventLog.event_type == "file_status_change"
|
||||
).order_by(EventLog.occurred_at.desc()).limit(5).all()
|
||||
|
||||
print(f"\n📋 Recent file_status_change events ({len(recent_events)}):")
|
||||
for event in recent_events:
|
||||
print(f" Event {event.event_id}:")
|
||||
print(f" - Type: {event.event_type}")
|
||||
print(f" - File No: {event.file_no}")
|
||||
print(f" - Event Data: {event.event_data}")
|
||||
print(f" - Previous State: {event.previous_state}")
|
||||
print(f" - New State: {event.new_state}")
|
||||
print(f" - Processed: {event.processed}")
|
||||
print(f" - Triggered Workflows: {event.triggered_workflows}")
|
||||
|
||||
# Test the trigger condition manually
|
||||
if event.new_state and event.new_state.get('status') == 'CLOSED':
|
||||
print(f" ✅ This event SHOULD trigger the workflow (status = CLOSED)")
|
||||
else:
|
||||
print(f" ❌ This event should NOT trigger (status = {event.new_state.get('status') if event.new_state else 'None'})")
|
||||
print()
|
||||
|
||||
# Check if there are any workflow executions
|
||||
from app.models.document_workflows import WorkflowExecution
|
||||
executions = db.query(WorkflowExecution).filter(
|
||||
WorkflowExecution.workflow_id == workflow.id
|
||||
).all()
|
||||
|
||||
print(f"\n📊 Workflow Executions for {workflow.name}: {len(executions)}")
|
||||
for execution in executions:
|
||||
print(f" Execution {execution.id}:")
|
||||
print(f" - Status: {execution.status}")
|
||||
print(f" - Event ID: {execution.triggered_by_event_id}")
|
||||
print(f" - Context File: {execution.context_file_no}")
|
||||
print()
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Error debugging workflow: {str(e)}")
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
debug_settlement_workflow()
|
||||
Reference in New Issue
Block a user