SAPFree checklistPDF, Excel, Word exportSAP Business OneAll SAP Business One tools

SAP Business One SQL Server to HANA Migration Checklist

This checklist covers moving SAP Business One company databases from Microsoft SQL Server to SAP Business One, version for SAP HANA. The heavy work is not the data move itself but rewriting SQL in queries, stored procedures, reports and integrations, so most items sit there.

0%

0 of 32 items complete

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

Download checklist:

1. Pre-assessment

2. Rewrite

3. Migration

4. Validation

5. Cutover

Tool names and supported versions change between feature packs. Confirm the migration procedure in the SAP Business One, version for SAP HANA Administrator's Guide for your exact version before you start.

Get your SQL inventory sized

Send us your list of queries, stored procedures and reports and we will estimate which need a rewrite for HANA.

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

Was this tool useful?

How to use it

Start with the inventory in group 1; it decides the effort. Every place where SQL is written by hand needs review: saved queries, formatted searches, alerts, SP_TransactionNotification, Crystal reports and integration code. Do a full trial migration of a copy, run the validation group on it, then fix and repeat until the numbers match. Keep the exported checklist per company database.

T-SQL to HANA SQL differences

HANA is stricter about identifiers: unquoted names are upper-cased, so B1 columns such as ItemCode need double quotes. Square brackets do not exist. Common function changes are ISNULL to IFNULL, GETDATE() to CURRENT_DATE or NOW(), DATEADD to ADD_DAYS or ADD_MONTHS, and DATEDIFF to DAYS_BETWEEN. SELECT without a table needs FROM DUMMY. Variables and procedural code in SBO_SP_TransactionNotification become SQLScript: declare error and error_message as local variables, assign with :=, reference them with a colon, and return them at the end with select :error, :error_message FROM DUMMY.

  • SQL Server: SELECT ISNULL(T0.[ItemName], '') FROM OITM T0
  • HANA: SELECT IFNULL(T0."ItemName", '') FROM OITM T0
  • SQL Server: SELECT GETDATE() HANA: SELECT CURRENT_DATE FROM DUMMY

Worked example

A distributor has 2 company databases, 120 saved queries, 40 formatted searches, a 600 line SP_TransactionNotification, 25 Crystal reports and a DI API order import. The inventory shows the stored procedure and 15 reports with SQL commands are the main effort. After rewriting, the first trial migration finds a difference in open purchase orders caused by a custom view; once fixed, the trial balance and stock values match, and the final migration runs over a weekend.

Common mistakes

Migrating between different B1 versions or patch levels, forgetting SP_PostTransactionNotice, testing queries only as a superuser, and leaving Crystal reports on the SQL Server connection. Another frequent issue is integration code that still sets the SQL Server type, so connections fail after cut over.

Frequently Asked Questions

How do I migrate SAP Business One from SQL Server to HANA?

Install SAP Business One, version for SAP HANA at the same version and patch as the source, rewrite custom SQL, stored procedures and reports for HANA, run the migration tool from the HANA Administrator's Guide per company database, then validate counts, balances and integrations before cut over.

Do I need to rewrite SP_TransactionNotification for HANA?

Yes. On HANA SBO_SP_TransactionNotification is a SQLScript procedure, so T-SQL code cannot be copied over: variables use := and a colon prefix, and the result is returned with select :error, :error_message FROM DUMMY. Rewrite the logic, test each validation and also convert SBO_SP_PostTransactionNotice if you use it.

Do Crystal reports work after the migration?

They work after you change the data source to the HANA ODBC driver and convert any SQL commands inside the report to HANA syntax. Test each report, since joins and functions in commands often need changes.

What changes in DI API code?

Set the server type to BoDataServerTypes.dst_HANADB and use the HANA server and port in the connection settings. Any direct SQL your code runs through Recordset objects must also use HANA syntax with quoted identifiers.

If you want your team to ask SAP Business One on HANA questions in plain English with data that never leaves your server, we can set up that private AI layer after the migration.

ArchRay builder
Design the on-prem AI stack for SAP Business One: 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

Runs with your ERP

AI on your ERP

Integrations

Comparisons

Software