Infor SyteLineFree checklistPDF, Excel, Word exportInfor SyteLineAll Infor SyteLine (CloudSuite Industrial) tools

SyteLine Crystal Reports to SSRS Migration Checklist

Older SyteLine sites often carry custom Crystal Reports written against the database years ago, while SyteLine 9 and CSI 10 use SSRS RDL report definitions run through TaskMan. This checklist takes each custom report from inventory to retirement without losing numbers on the way.

0%

0 of 27 items complete

6 critical items still open - these are the highest-risk gaps.

Download checklist:

Inventory

Data source

Rebuild in RDL

SyteLine integration

Validate

Retire

Critical items are where converted reports usually give wrong numbers: direct _mst table reads that skip site filtering, translated formulas, and totals never compared against the old output. Do not retire Crystal until every critical item is ticked for every kept report.

Send us your Crystal report inventory

Share the exported inventory and we will flag which reports have standard equivalents and which need a rebuild.

Optional. The tool and every export work without this. No spam.

Was this tool useful?

How to use it

Start with the Inventory group as a spreadsheet exercise and export it to Excel: one row per .rpt file, with run counts and owner. Most sites find a large share of reports are unused or duplicated by a standard report in the new release, and those never need converting. Then work through the remaining groups per report, not per group across all reports, so each converted report is validated and signed off before the next. Keep the exported checklist with the report in source control.

The data source is where conversions go wrong

Crystal reports written for SyteLine often linked tables directly, including the _mst base tables. In a multi-site database those tables hold every site's rows, keyed by site_ref, while the views SyteLine forms use filter to the current site. A converted report that copies the old table links can silently show another site's data. Move the logic into a stored procedure or view that applies the site filter, keep parameters in the procedure signature, and let the RDL only lay out the result.

  • Prefer stored procedures for anything with business logic
  • Filter by site_ref or use the site views
  • Map every parameter to a report option form field
  • Read-only login for the data source

Worked example

A plant runs a Crystal open order backlog report with two subreports: open lines and shipped quantity. In RDL this becomes one stored procedure returning lines with shipped quantity already joined, one dataset, and a group by customer. The Crystal formula that calculated days late becomes a DATEDIFF in SQL. The new report gets a report form with customer range and due date parameters, a background task definition, PDF output on Report Options, and a validation sheet comparing totals for three closed months.

How to check the result in the system

Run the new report from its form so it goes through the background queue, then open Background Task History to confirm completion. Compare totals to the archived Crystal output for the same parameters. Run it as a user in a different site to confirm site filtering works. Time it at month end. Only then remove the Crystal version from desktops and schedules.

Frequently Asked Questions

Can SyteLine 9 or CSI 10 run Crystal Reports?

Standard reporting in SyteLine 9 and CSI 10 is built on SSRS RDL definitions run through TaskMan. A Crystal runtime can still read the database from outside SyteLine, but such reports bypass report forms, background tasks and SyteLine security groups, so most upgrade projects convert the ones still used and retire the rest.

How do I build custom reports in SyteLine?

Write the data logic as a stored procedure or view that respects site filtering, design the RDL in Report Builder or Visual Studio report designer, create a report form for parameters and a background task definition so TaskMan runs it, then set the output format on Report Options and grant access through groups.

Why do converted reports show the wrong site's data?

The old report probably read _mst tables directly. Those tables hold rows for every site in the database, identified by site_ref. Unless the new stored procedure or view filters by site, the report returns all sites. Fix it in SQL, not in the RDL, so every consumer of the data gets the same filter.

Should every Crystal report be converted?

No. Count runs in Background Task History and ask owners which reports they still use. Check whether a standard report in your release or a saved form filter already answers the need. Converting only reports with real use and no standard equivalent usually cuts the job sharply and reduces long-term maintenance.

If many of these reports are really questions people ask every week, we can let them ask SyteLine in plain English on your own servers instead of maintaining another report.

ArchRay builder
Design the on-prem AI stack for Infor SyteLine: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

Guides

Comparisons