Hello Team!

Recently we had a typical project for us - international company has come on Russian market and needed an implementation of RU Business Central as accounting system because they already used BC in head office. Also they needed to consolidate data from RU database to global.

As global tenant they use cloud Business Central with US localization. RU localization planned to be on-premise Business Central Spring'19 release.

October'18 release of Intelligent Cloud looked like prototype and we never mind about using it as a solution for live environment. But Spring release already not required 1 to 1 strict fields mapping on both databases so we decided to try it.

1st step:

I created test Azure VM with RU on-premise Business Central (Source) also with on-premise SQL and Cloud US Business Central Sandbox (Target).

After that - I made Intelligent Cloud Setup (Read here how to do it) and easily got the ready replication. Unbelievable!, I thought. Everything works from 1st try and seems to be OK! (Spoiler: How much I was wrong)

2nd step.

I created new VM for customer and as they wanted, made on-premise database migration to Azure SQL. After that i made Intelligent Cloud setup again (by the way - for Azure SQL it's much easier than for SQL Server), setup completed successfully, I pressed Run Replication Now action and BOOM! - “Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Cyrillic_General_100_CI_AS" in the equal to operation”.

I tried to run it with different ways - but always with the same result. After migrating on-premise RU database to Azure SQL it looks good, but replication with Intelligent cloud become impossible due to collation conflict.

3rd step.

We decided to roll back to on-premise SQL. New IE (Intelligent Edge, not Internet Explorer) setup - and first completed replication run. About 300 successfully replicated tables and about 30 failed. Some with warnings that table does not exist in destination database (That's ok - it's tables of RU localization and tables created with extensions - we don't need to replicate them to US database). But about 7-8 tables were failed due to different field size in the same tables. Some fields in RU database were bigger than in US - and this was a reason. I expected that bigger text and code values will be cut - but not - It called an exception.

All failed tables were not important - so we continued our work thinking that everything is OK. After couple of days our consultant decided to setup Vendor bank accounts - and after clicking on needed page got an error like "It can't be accessed because replication completed unsuccessfully" BOOM! All tables those replication completed with errors (not warnings) become inaccessible. They still contained all the data but you couldn't open them from any client.

4th step.

I wrote an Issue on GitHub, firstly it was registered like a bug, but after that I've got an answer from Microsoft - "We do not consider or support this scenario. Why do you need this?". BOOM!

I wrote an email to Microsoft managers about this scenario - and got another one clear answer - scenario is not supported.

I understood that I even could work with different fields size - the only thing I needed is to remove an exception on it and replace it with value cut - but I had no influence on that.

So I decided to commit a crime.

5th step

Yes, I made the only thing I could - I reduced needed fields size  in on-premise RU database (1-3 fields in each of 8 tables). Database was new and contained no important data - so I had no risks. After that - you make Intelligent cloud setup again and all errors are disappear. All data replicating and you have an access to all pages. But on the other hand you have potential problems with version upgrade in future.

I hope that due to that time Intelligent cloud will be working necessary way because it gives huge potential for international companies - they could easily and without any development consolidate data from different localizations in one cloud tenant.

Also I hope that my experience will help you in your projects.