Artificial Intelligence, Uncategorized

Executive Summary
Crystal Reports is aging out. Talent is shrinking. The modern stack has moved on. Yet migration projects stall because they are manual, error-prone, and slow. This article introduces a multi-agent AI pipeline — six specialist agents, each evaluated before advancing — that automates the Crystal-to-Power BI conversion end to end.
Six Agents, Six Evals
The pipeline is an assembly line of six autonomous AI agents coordinated by a Master Orchestrator. Each agent has a defined role, produces concrete outputs, and is evaluated against specific criteria before its work becomes input for the next. If the first agent’s output is wrong, everything downstream will be wrong. The architecture prevents that.

Each green ✓ EVAL gate verifies the agent’s output before it becomes input for the next. Here is what gets checked at every gate:
| Agent | Eval Checks | Pass → | Fail → |
| 1: Extraction | Schema complete? Fields match TTX? Data source found in C#? | Advance to 1B | Retry; fall back to TTX-only |
| 1B: Data Access | Alignment ALIGNED/PARTIAL? SP executes? Params mapped? | Advance to 2 | Document blockers; warn downstream |
| 2: Analysis | All formulas translated? Layout mapped? Dataset aligned? | Advance to 3 | Flag untranslated as Manual_Review |
| 3: Visual | Corrections identified? 15 acceptance criteria defined? | Advance to 4 | Apply default criteria template |
| 4: RDL Build | All E1–E3 rules pass? XML schema valid? | Advance to 5 | Fix and recheck before writing |
| 5: Validation | V0–V6 sequence; 10 MUST + 5 SHOULD criteria scored | CERTIFIED | Fix → re-run (max 2x) → Manual Review |
Inside Each Agent
Agent 1: Extraction Specialist
Performs lossless extraction from three authority sources: SDK extraction from the .rpt binary (primary structural authority), TTX field schema (type metadata), and C# source code (runtime data flow). Produces 14 JSON artifact files covering every structural element.
Agent 1B: Data Access Layer Specialist
Performs a three-way alignment — TTX fields ↔ C# code ↔ SQL stored procedure — to produce an authoritative data mapping. This catches discrepancies no single source reveals: field names that don’t match the SP output, parameter transformations in C# code, or dataset tables the report expects but the SP doesn’t return.
Agent 2: Formula and Layout Analyst
Translates Crystal formulas into Power BI RDL expressions and generates a pixel-level layout blueprint. Examples of what gets converted:
| Crystal Reports Formula | Power BI RDL Expression | Type |
| Sum({Orders.Amount}) | =Sum(Fields!Amount.Value) | Aggregate |
| If {Status} = "Active" Then "Yes" Else "No" | =IIF(Fields!Status.Value = "Active", "Yes", "No") | Conditional |
| ToText({Date}, "MM/dd/yyyy") | =Format(Fields!Date.Value, "MM/dd/yyyy") | Formatting |
| WhilePrintingRecords; count({ID}) | =CountDistinct(Fields!ID.Value) | Running total |
| If IsNull({Phone}) Then "N/A" | =IIF(IsNothing(Fields!Phone.Value), "N/A", Fields!Phone.Value) | Null handling |
Agent 3: Visual Fidelity Analyst
Uses the reference PDF as ground truth. Compares pixel-level output against the layout blueprint to generate correction rules (column widths, font rendering, row spacing, group breaks). Critically, defines the 10 MUST MATCH + 5 SHOULD MATCH acceptance criteria that Agent 5 validates against.
Agent 4: Power BI RDL Builder
Generates the complete Power BI paginated report XML. Before writing a single line, loads a curated error prevention ruleset — institutional knowledge from previous conversions encoded as code:
| Category | Example Rules | What It Prevents |
| E1.x — Structure | PageHeader must be child of Page; ReportID must be valid GUID | Report Builder crashes on file open |
| E2.x — Artifacts | No XML comments; no empty ReportItems or Style elements | Silent rendering failures |
| E3.x — Tablix | Row count = leaf count; TablixHeader not Header; sibling consistency | Data grid corruption |
After generation, a pre-write validation scan checks every rule. Only when all rules pass does the agent write the RDL.
Agent 5: Validation & Certification Specialist
Runs a comprehensive end-to-end validation across seven sequential phases:

V6 produces the acceptance scorecard against 15 criteria. If MUST MATCH criteria fail, the agent fixes issues and re-runs the full V0–V6 sequence — up to 2 iterations — then stops and documents what needs manual attention.
| Certification Status | Meaning |
| CERTIFIED | All 10 MUST MATCH pass. Production-ready. |
| WITH LIMITATIONS | All MUST pass, some SHOULD fail. Functional with documented cosmetic differences. |
| MANUAL REVIEW | MUST MATCH fail after 2 iterations. Documented root causes + manual fix instructions. |
What Gets Delivered

No proprietary format. Standard SQL + Power BI .rdl. Full artifact trail from all six agents preserved and auditable. Your team owns everything.
The Master Orchestrator
The orchestrator enforces three rules: (1) evaluate every agent’s output before advancing, (2) retry failed agents once (max 2 attempts) before escalating, and (3) resume from the last completed agent if interrupted — no re-work. Pipeline state is tracked in PIPELINE_STATUS.json throughout.
The philosophy is graceful degradation. If the Crystal SDK isn’t installed, Agent 1 falls back to TTX-only. If source code isn’t provided, alignment becomes two-way. If the reference PDF is missing, Agent 3 is skipped. The pipeline always produces the best possible output given available inputs, and always documents what it could and could not do.
Error Handling: Graceful Degradation
The pipeline is designed to be resilient, not brittle. The philosophy is graceful degradation — always produce the best possible output given available inputs, and always document exactly what could and could not be done.
| Error Condition | Response |
| Crystal SDK not installed | Agent 1 falls back to TTX + manual extraction; pipeline continues with reduced fidelity |
| Source code not provided | Three-way alignment becomes two-way (TTX + SP); continues with warnings |
| Formula cannot be translated | Marked Manual_Review_Required; other formulas continue |
| Reference PDF not provided | Agent 3 skipped; Agent 4 runs without rendering corrections (lower fidelity) |
| V6 fails after 2 iterations | MANUAL_REVIEW_REQUIRED.md with root causes and fix instructions; pipeline ends gracefully |
The Business Case
Speed: 3–5 developer-days per report compressed to hours. Multi-year programs become quarterly.
Consistency: Same six agents, same evals, every report.
Auditability: Complete artifact trail from extraction to certification.
Risk reduction: Error prevention + seven-phase validation catch what manual migration misses.
Based on a production multi-agent AI pipeline. Architecture, evaluation protocols, error prevention rulesets, and certification workflows drawn from real pipeline definition files including the Master Orchestrator, Extraction Agent, Data Access Layer Agent, Formula/Layout Analyst, RDL Builder Agent, and Validation/Certification Agent.
Getting Started
Identify 5–10 Crystal Reports spanning your complexity range. Run them through the pipeline. The certified output — with acceptance scorecards and deployment guides — is the proof point for a full portfolio migration.
Let’s talk. Still migrating Crystal Reports by hand? We’ll walk you through the six-agent architecture using your actual reports — no pitch deck, just a working demo.
Or start with a pilot: send us 5–10 reports, and in 4–6 weeks we’ll return certified Power BI reports with full acceptance scorecards. No commitment beyond the pilot. Reach out to us.
Share this:

CloudIQ AI Engineering Series — Part 5 Most teams picked a model and called it a day. The teams shipping faster and spending less are learning that model selection is only one part of the equation. In a multi-agent pipeline, orchestration design can matter just as much — and is often overlooked. There's a bill […]

The QA report came back clean. The developer had migrated an approval workflow module from a legacy stack to a modern stack. Parity check passed. Functionality verified. The page looked right, behaved right, and matched the spec. The bug report came in the next day. Data entered in that module wasn't propagating correctly to a […]

Six months into AI-assisted development, something predictable happens. The team has gotten good at prompting. The spec workflow is running. Output quality is solid. Then the codebase crosses a threshold — too many files to reference manually, too many interdependencies to hold in a session — and the approach that worked at month two stops […]
Partner with CloudIQ to achieve immediate gains while building a strong foundation for long-term, transformative success.