Dzisiaj kilka słów o nowym narzędziu dostępnym w BPA Platform = Transformation Data, w przykładzie integracja PrestaShop. Narzędzie pojawiło się w nowej wersji TaskCentre 4.7. I jest już dostępne. Narzędzie umożliwia transformację danych z systemu wejściowego na dane pożądane przez system docelowy.
Przydatność, czyli po co to robić?
Po krótkim wstępie, to właściwe miejsce, aby określić czemu taka transformacja danych może służyć. Źródła danych mają różnorodne struktury danych. Dane w polach są identyczne, ale nazwy i typy pół, a także ich umieszczenie w bazie danych jest przeróżne.
Dla przykładu w Subiekt GT dane kontrahenta mieszczą się standardowo w tabelach: kh__kontrahent i adr_ewid, dodatkowo jest informacja dotycząca grup i typów zawarta w słownikach, ale tym się w tym przykładzie nie będziemy zajmować.
BPA Platform/TaskCentre Transformation Data służy transkrypcji danych z struktury źródłowej do struktury docelowej, według ustalonego raz mapowania pól.
Co zrobimy, na przykładzie integracja PrestaShop?
Aby przybliżyć możliwości narzędzia posłużę się przykładem, w którym przekształcimy dane zamówień z PrestaShop do bazy demo MSSQL. W szczegółach skupimy się na danych kontrahenta takich jak:
- nazwa (imię, nazwisko, firma),
- adres (unica, numer, kod pocztowy, miejscowość, państwo),
- kontakt (adres email, numer telefonu).
Do dzieła!
Krok po kroku, czyli jak to działa?
Dane wejściowe
Posłużymy się danymi zamówień z PrestaShop, aby przekształcić je do docelowej struktury w bazie MSSQL. Zatem na początek pobieramy dane zamówień z PrestaShop i zapisujemy je na dysku w wybranym miejscu, ja wybrałem:
C:\DEMO\import .
Do łatwego pobrania danych posłuży PrestaShop Connector Tool dostępny w BPA Platform/TaskCentre jako dodatkowe rozszerzenie.
Nasz proces na początku wygląda tak:

Pobieramy zamówienia i zapisujemy je w kroku Save As File do pliku xml. Dla przypomnienia poniżej ekrany z poszczególnych kroków.
Pobieramy zamówienia:

Pobieramy szczegóły zamówienia:

I zapisujemy we wskazanym katalogu jako plik xml.

Na razie na tym kroku kończy się nasz proces. Idziemy zatem dalej:
Dodajemy narzędzie XML Document Import, aby wczytać pobrany XML,

podajemy folder, gdzie jest plik XML,

oraz wskazujemy plik. Oczywiście przypominam o wczytaniu i walidacji schematu xml. Oraz przeciągnięciu Save As File na Import Document XML, celem połączenia kroków.

Przyjrzyjmy się fragmentowi pliku XML, gdzie znajdują się potrzebne nam dane:

Przygotujmy docelową strukturę danych:
Na serwerze MSSQL utworzyłem 2 tabelki: tabela KONTRAHENT będzie zawierała dane Klienta i tabela DOSTAWA będzie zawierała dane miejsca dostawy zamówienia.

Teraz zabierzmy się za transformację danych. Przeciągamy narzędzie Transformation Data na panel taska:

Otwieramy narzędzie i wskazujemy źródło danych, w tym przypadku OutputXML z kroku XML Document Import. Na liście rozwijanej zauważysz, że jest możliwość bezpośredniego wskazania wtyczki PrestaShop, co polecam przetestować samodzielnie.

Wjdź na chwilę na zakładkę Mapping, a zobaczysz, że pola danych z źródła XML są już widoczne. Przełącz się na zakładkę Main, gdzie zdefiniujesz pola docelowe danych, które potem trafią do bazy MSSQL w określone tabelki.
Najpierw dodaj główny element przyciskiem Add Node, nazwij go jak chcesz pamiętając, aby nie zawierał znaków specjalnych i spacji.

Dalej dodaj kolejne elementy, pola dla danych, przyciskiem Add Element. Możesz określić w prawym panelu oprócz nazwy również typ pola.

Czas na zmapowanie pól danych. Na zakładce Mapping po lewej stronie masz strukturę danych z PrestaShop, a po prawej strukturę Twojej bazy danych. Wystarczy, że odpowiednio przeciągniesz z lewej na prawą stronę pole, na pole docelowe metodą przeciągnij-i-upuść. Po zmapowaniu zapisz krok i połącz poprzedni z Transformation Data.
Teraz potrzebujemy zapisać otrzymane dane. Wykorzystamy narzędzie XML to Recordset do przygotowania danych, dla procedury bazy danych. Przeciągamy narzędzie na pulpit taska,

i ustawiamy źródło danych na Output XML z kroku Transform Data. Zaznaczamy dane, które chcemy wykorzystać do zapisania w bazie danych, w panelu poniżej.

Przygotowaną procedurą T-SQL możemy wskazać tabele i pola, gdzie mają trafić dane. Przykładowa procedura poniżej, wprowadza dane do obu tabel: KONTRAHENT, DOSTAWA. Przygotowaną procedurę wywołamy za pomocą ostatniego kroku Call Procedure (OLEDB). (Należy pamiętać, aby dodać wcześniej źródło danych.)

Wybieramy bazę danych oraz stworzoną procedurę składowaną, (w opisywanym przykładzie nazywa się dodaj_dane).

Następnie mapujemy pola XML to Recordset do poszczególnych pól procedury składowanej.

Kompletny proces wygląda następująco:

Efekt działania jest następujący: do bazy DEMO zostały dodane dane kontrahenta w tabeli KONTRAHENT oraz dane dostawy w tabeli DOSTAWA.
Tabela KONTRAHENT zawiera dane:

Tabela DOSTAWA zawiera dane:

Podsumowanie
Opisany przykład jest prosty w istocie, ale skutecznie pokazuje, proces przetwarzania danych. Myślę, że już widzisz jakie dane i jak możesz przetwarzać, aby zaoszczędzić czas w Twojej firmie.
W razie pytań, uwag, refleksji zapraszam do kontaktu.