Reporting is where implementations get complicated, because SAP has multiple tools in this space and their boundaries overlap. Teams that start "just wanting some dashboards" end up with Crystal Reports doing things Embedded Analytics should own, or trying to build enterprise cross-system analytics in a tool not designed for it. This article defines each tool clearly, explains when to use which, and shows how they connect to the SAP HANA Database data layer.
The Reporting Landscape: Three Tools, Three Jobs
| Tool | Primary Job | Data Source | Output |
|---|---|---|---|
| SAP Embedded Analytics | Interactive dashboards, operational reporting, self-service analysis | Live SAP HANA Database via Calculation Views | Charts, KPI tiles, tabular reports in-browser |
| SAP Crystal Reports | Pixel-perfect formatted documents | SAP HANA Database (direct) or SAP SuccessFactors IM data | PDF, Excel, precisely laid-out printable reports |
| SAP Datasphere | Cross-system data integration and enterprise data fabric | Multiple source systems (SuccessFactors IM, S/4HANA, CRM, HR) | Unified data models for BI tools and SAP Analytics Cloud |
SAP Embedded Analytics: Built-In Reporting on HANA
SAP Embedded Analytics is the native reporting capability embedded inside SAP SuccessFactors IM. It is part of SAP Analytics Cloud (SAC) and connects directly to the SAP HANA Database that powers the platform. Because it reads directly from HANA, it can query live calculation results, participant data, and pipeline outputs without an intermediate ETL step.
Embedded Analytics ships with a set of pre-built content — standard dashboards and reports that SAP builds and maintains for common ICM reporting needs:
- Quota Attainment Summary — shows attainment percentage by participant, region, and plan across the current period. The first report every sales leadership team asks for.
- Pipeline Run Audit — logs of recent pipeline runs, row counts, durations, and statuses. Operational monitoring for the calculation engine.
- Incentive Earnings Distribution — distribution of incentive amounts across the participant population. Used to validate that calculations are producing expected spread.
- Plan Assignment Coverage — which participants have active plan assignments, which don't. Critical pre-period check before running calculations.
Writing Queries Against SAP HANA Database for Embedded Analytics
Custom Embedded Analytics reports are built on Calculation Views or direct SQL queries against the SAP HANA Database CSC_ tables. The same SQL knowledge that applies to operational queries applies here — the difference is that these queries are designed for repeat execution by business users, so performance and NULL handling matter more.
-- Quota attainment dashboard query -- Designed for Embedded Analytics consumption SELECT p.NAME AS PARTICIPANT, mgr.NAME AS MANAGER, cp.NAME AS PLAN, r.PERIOD_ID, COALESCE(q.QUOTA_AMOUNT, 0) AS QUOTA, COALESCE(r.RESULT_AMOUNT, 0) AS RESULT, COALESCE(r.INCENTIVE_AMOUNT, 0) AS INCENTIVE, CASE WHEN COALESCE(q.QUOTA_AMOUNT, 0) = 0 THEN NULL ELSE ROUND( r.RESULT_AMOUNT / q.QUOTA_AMOUNT * 100, 1) END AS ATTAINMENT_PCT, CASE WHEN r.RESULT_AMOUNT >= q.QUOTA_AMOUNT * 1.2 THEN 'ABOVE TARGET' WHEN r.RESULT_AMOUNT >= q.QUOTA_AMOUNT * 0.8 THEN 'ON TRACK' ELSE 'BELOW TARGET' END AS ATTAINMENT_BAND FROM CSC_RESULTS r JOIN CSC_PARTICIPANT p ON p.ID = r.PARTICIPANT_ID LEFT JOIN CSC_PARTICIPANT mgr ON mgr.ID = p.MANAGER_ID JOIN CSC_COMP_PLAN cp ON cp.ID = r.PLAN_ID LEFT JOIN CSC_QUOTA q ON q.PARTICIPANT_ID = r.PARTICIPANT_ID AND q.PERIOD_ID = r.PERIOD_ID AND q.PLAN_ID = r.PLAN_ID WHERE r.PERIOD_ID = :period_id AND r.STATUS IN ('APPROVED', 'PROCESSED') ORDER BY mgr.NAME, p.NAME;
-- Pipeline run monitoring — last 30 days SELECT r.ID AS RUN_ID, r.PIPELINE_ID, r.PERIOD_ID, r.STATUS, r.START_TIME, r.END_TIME, SECONDS_BETWEEN( r.START_TIME, COALESCE(r.END_TIME, CURRENT_TIMESTAMP)) AS DURATION_SEC, r.ROWS_PROCESSED, r.ERROR_MESSAGE FROM CSC_PIPELINE_RUN r WHERE r.START_TIME >= ADD_DAYS( CURRENT_DATE, -30) ORDER BY r.START_TIME DESC;
SAP Crystal Reports: When Layout Precision Matters
Embedded Analytics excels at interactive exploration but is not designed for precisely formatted document output. When an enterprise needs compensation statements with exact margins, font sizes, logo placement, signature lines, and section breaks — that is Crystal Reports territory. The tool has been in enterprise use for decades and the formatting engine is unmatched for pixel-perfect output.
In SAP SuccessFactors IM implementations, Crystal Reports is typically used for:
- Participant compensation statements — the formal document that a sales rep sees showing their period earnings breakdown. Often needs to meet legal or HR formatting standards.
- Audit and reconciliation reports — finance teams need evidence that the numbers are correct. Crystal Reports produces the structured, signed-off document trail that spreadsheets can't replicate.
- Exception and dispute reports — formal output of dispute cases, decisions, and adjustments. These become legal documents in some organisations.
Crystal Reports connects to SAP HANA Database using a HANA ODBC or JDBC driver. Queries are written against CSC_ tables directly — the same queries you'd write for Embedded Analytics, but Crystal Reports executes them at report render time and flows the results into a designed template.
SAP Datasphere: Cross-System Analytics
SAP Datasphere is not a reporting tool. It is a data integration and data fabric platform — its job is to pull data from multiple source systems, harmonise it, and make it available for analytics. In the context of SAP SuccessFactors IM, Datasphere becomes relevant when you need to answer questions that require data from more than one system:
- Sales performance vs pipeline data from Salesforce or SAP Sales Cloud
- Incentive cost vs revenue from SAP S/4HANA Finance
- Headcount and plan coverage from SAP SuccessFactors HCM
- Territory performance vs market data from external sources
Datasphere exposes a virtual data layer — the underlying systems don't need to replicate all their data into a central warehouse. You define connections, virtual tables, and data flows, and SAP Analytics Cloud queries through Datasphere to assemble the cross-system view.
Reporting Architecture Decision Guide
| Requirement | Right Tool | Why |
|---|---|---|
| Sales leadership quota attainment dashboard | SAP Embedded Analytics | Interactive, self-service, live HANA data, no IT required to refresh |
| Monthly compensation statements for participants | SAP Crystal Reports | Pixel-perfect layout, PDF output, legal document quality |
| Commission cost as % of revenue (needs Finance data) | SAP Datasphere + SAP Analytics Cloud | Requires cross-system join: SuccessFactors IM + S/4HANA Finance |
| Pipeline run audit log for ops team | SAP Embedded Analytics | Operational monitoring, tabular, live data |
| Formal dispute resolution audit trail | SAP Crystal Reports | Structured document output, archivable, printable |
| Incentive spend vs market compensation benchmarks | SAP Datasphere + SAP Analytics Cloud | External data source integration, cross-domain analysis |
| Participant self-service earnings history | SAP Embedded Analytics | Built-in participant portal views, no separate tool needed |
The Callidus Commissions Reporting Comparison
If you're migrating from Callidus Commissions on Oracle Database, the reporting architecture shifts significantly:
| Reporting Layer | Callidus Commissions (Oracle) | SAP SuccessFactors IM (HANA) |
|---|---|---|
| Primary BI/dashboard tool | Crystal Reports or custom Oracle views | SAP Embedded Analytics (SAP Analytics Cloud) |
| Compensation statements | Crystal Reports (CS_ tables) | Crystal Reports (CSC_ tables) — same tool, new schema |
| Ad-hoc SQL | Oracle SQL Developer / custom reports | SAP HANA Studio or HANA Database Explorer |
| Cross-system integration | Custom ETL / Oracle Data Integrator | SAP Datasphere |
| Table schema | CS_ prefix (Oracle DATE, VARCHAR2) | CSC_ prefix (TIMESTAMP, NVARCHAR) |
Crystal Reports queries that ran against Callidus Commissions Oracle Database tables need the same SQL rewrites covered in Article 04 (HANA vs Oracle): CS_ → CSC_ table names, Oracle DATE functions → HANA equivalents, NVL → IFNULL, ROWNUM → LIMIT. The Crystal Reports designer and formatting templates themselves carry over — the SQL driving them needs updating.