W każdym wdrożeniu systemu CRM spotykamy się z koniecznością migracji danych. Albo jest to migracja danych z zewnętrznych systemów, albo z istniejących baz, albo z plików płaskich. Dynamics CRM daje mnóstwo możliwości na przeprowadzenie dobrej migracji danych, w tym:
- Najprostsza operacja importu z pojedynczego pliku XLS danych „płaskich” dotyczących jednego obiektu
- Import danych dotyczących kilku obiektów, ale wciąż zgromadzonych w pliku XLS
- Import danych z plików XML, albo innych typów plików płaskich
- Import danych złożonych z zewnętrznych systemów poprzez CRM SDK (web services)
- Import danych złożonych z zewnętrznych systemów poprzez pakiety SSIS
- Import danych złożonych z zewnętrznych systemów za pomocą gotowych szyn danych, albo narzędzi (Scribe, Dynamics Connector, Riva)
- Cykliczna integracja danych złożonych w jedną, albo w dwie strony
Wszystkie metody poza pierwszymi dwoma z listy wyżej wymagają znajomości programowania. W tym poście zajmiemy się importem danych (nawet złożonych) do Dynamics CRM, który można wykonać bez konieczności programowania i znajomości CRM SDK / API. Oczywiście możemy pewne proste dane importować za pomocą wbudowanego mechanizmu importu w CRM 2011-2015, ale co jeśli chcemy importować dane ze sobą powiązane? To będzie możliwe dzięki całkowicie nowemu narzędziu wprowadzonemu w Dynamics CRM 2016 (Fall’15) – Data Loader Service.
Po co nowe narzędzie do importu danych?
Dynamics CRM od wersji 4.0 posiada wbudowany prosty mechanizm importu danych z odpowiednio przygotowanych plików Excel. Zaletą tego mechanizmu jest to, że jest ono dostępne wraz z systemem i jest bardzo proste w użyciu. Do wad należą przede wszystkich niewielkie możliwości konfiguracyjne oraz fakt, że o ewentualnych błędach dowiadujemy się dopiero po przeprowadzeniu procesu migracji. Efektem tego może być sytuacja, w której tylko część danych zostaje zaimportowana prawidłowo, co docelowo może prowadzić do niespójności danych w środowisku produkcyjnym.
Potrzebny jest mechanizm, który pozwoli planować i uruchamiać importy wielu obiektów na raz i w jakiś sposób opakowywać importy w koncepcyjne transakcje, tj. np. mieć możliwość wycofania zmian, jeśli coś się nie powiedzie. Takim narzędziem jest właśnie Data Loader Service.
Data Loader Service
Użytkownicy systemu CRM 2016 w wersji Online będą mogli niedługo skorzystać z nowego narzędzia. Data Loader Service udostępniany jest na razie tylko w wersji Preview (na tej samej zasadzie, co CRM App for Outlook opisany tutaj). Oznaczenie aplikacji, jako „Preview” wiąże się z faktem, że aktualnie Microsoft nie ponosi odpowiedzialności za błędy w działaniu oraz potencjalne szkody wynikające z użycia tego narzędzia.
Data Loader Service dodaje sporo nowych funkcjonalności i znacznie rozszerza możliwości importu danych wykonywanego „bez programowania” i bez konieczności poznawania CRM SDK. Przede wszystkim Data Loader Service dostępny jest jako komponent Dynamics CRM i dla klientów posiadających subskrypcję CRM Online jest bezpłatny.
Funkcje, które sprawiają, że jest Data Loader Service jest warty rozważenia przy okazji planowania importu i aktualizacji danych do systemu Dynamics CRM Online to:
- Przetrzymywanie danych w szyfrowanej bazie tymczasowej (staging), które za pomocą SDK trafiają do systemu, dzięki czemu nie ma ryzyka związanego ze „zgubieniem danych” w trakcie importu.
- Baza StagingDB pozwala dodatkowo na wykrycie oraz eliminację błędów importu przed rozpoczęciem faktycznego importu danych na środowisko produkcyjne
- Wparcie dla importu danych do wielu obiektów (encji) w ramach jednego projektu. Data Loader Service sam zdecyduje w jakiej kolejności importować obiekty
- Możliwość tworzenia oraz zapisywania projektów importu danych zawierających mapowania oraz reguły związane z danym procesem importu. Możliwość wielokrotnego, powtarzalnego użycia zapisanego w ten sposób projektu
- Wsparcie dla tworzenia i aktualizacji rekordów w ramach pojedynczego projektu importu
- Zrównoleglenie procesu importu oraz gwarantowana przez Microsoft większa przepustowość przesyłu danych dla narzędzia. Operacja importu danych nie jest już uzależniona od wydajności CRM Async Service
- Wsparcie dla nowych funkcjonalności wprowadzonych w CRM 2016, tj. Upserts i Alternate Keys (alternatywnych kluczy głównych)
- Narzędzie oparte na plikach Excel pozwalające na analizę oraz korektę błędów danych wejściowych:
Do braków narzędzia w pierwszej wersji należą:
- Brak wsparcia relacji N:N
- Brak możliwości wywołania operacji w narzędziu bezpośrednio z kodu
- Brak wsparcia dla list marketingowych
Czy Data Loader Service pozwoli na dowolną migrację danych?
Data Loader sprawdzi się głównie w prostszych scenariuszach importu danych złożonych, dla których główną przyczyną uniemożliwiającą użycie pudełkowych narzędzi była kiepska wydajność. Natomiast w przypadku mechanizmów, w których ważniejsza od wydajności oraz łatwości użycia jest logika oraz reguły biznesowe rządzące procesem importu, w dalszym ciągu będziemy używać własnych aplikacji lub dedykowanych platform integracyjnych.