Edytor konwersji formatu tekstowego w systemie GRAVITY umożliwia przekształcenie danych tekstowych zawartych w jednym z bitów magistrali na strukturę zgodną z wewnętrznym modelem danych GRAVITY, składającą się z rekordów i bitów magistrali.
Edytor został zaprojektowany z myślą o analizie i przetwarzaniu ustrukturyzowanych danych tekstowych, takich jak fragmenty dokumentów, komunikaty EDI, dane w formatach niestandardowych czy teksty zagnieżdżone hierarchicznie, ale może być również wykorzystywany do rozbioru standardowych formatów, takich jak XML czy JSON.
Budując konwersję, należy wskazać przykładowy tekst wejściowy oraz zdefiniować znaczniki:
- określające zagnieżdżenia struktury danych (sposób grupowania rekordów),
- wskazujące fragmenty tekstu odpowiadające poszczególnym danym (bitom) magistrali.
W wyniku działania konwersji dane są dzielone na rekordy zgodnie z pierwszym poziomem zagnieżdżenia. Kolejne poziomy zagnieżdżeń są rozwijane w postaci nowych rekordów, uzupełnianych o dodatkowe bity wynikające z kolejnych poziomów struktury.
Dzięki temu możliwa jest automatyczna interpretacja tekstów o złożonej strukturze i ich przekształcenie w spójną tabelaryczną strukturę danych GRAVITY, gotową do dalszego przetwarzania przez kolejne operatory.
Edytor jest dostępny w następujących operatorach systemu GRAVITY:
CONVERT FORMAT TO BITS
INFORMACJE PODSTAWOWE
Konwersja tekstu do bitów magistrali odbywa się poprzez wprowadzenie przykładowego tekstu przez użytkownika. W tekście umieszczane są znaczniki, które umożliwiają jego interpretację podczas przetwarzania.
Dostępne są dwa rodzaje znaczników:
- znaczniki grup (zagnieżdżeń) – służą do definiowania powtarzających się bloków danych.
#S-nazwa_grupy#– znacznik rozpoczęcia grupy, np.#S-G1##E-nazwa_grupy#– znacznik zakończenia grupy, np.#E-G1#.- znaczniki bitów (danych) – wskazują miejsca w tekście, w których znajdują się wartości zmienne. Z każdej takiej wartości zostanie utworzony bit magistrali wyjściowej. Znaczniki mają postać nazwy bitu umieszczonej pomiędzy separatorami początku i końca. Domyślnymi separatorami są
{i}, jednak można je zmienić w konfiguracji operatora wywołującego edytor. Przykład znacznika:{bit_name}.
Grupę można rozumieć jako blok tekstu (wraz ze znacznikami bitów), który zostanie zinterpretowany jako powtarzający się fragment konwertowanego tekstu.
Podczas przetwarzania operator będzie interpretował tekst znajdujący się pomiędzy znacznikami grupy jako powtarzalny fragment formatu danych.
Grupę można traktować jako odpowiednik rekordu, natomiast znaczniki bitów znajdujące się w grupie jako odpowiedniki jego kolumn.
Jeżeli grupa zawiera podgrupy, liczba bitów na magistrali wyjściowej będzie sumą bitów ze wszystkich grup, natomiast liczba rekordów będzie wynikała z całego drzewa zagnieżdżeń. Wartości bitów z grup nadrzędnych zostaną powielone w rekordach utworzonych przez grupy podrzędne.
Ponieważ konwersja może być wykonywana na danych tekstowych o nieznormalizowanym formacie, system wymaga dokładnego dopasowania wszystkich fragmentów tekstu nieobjętych znacznikami danych. Oznacza to, że tekst stały musi być zgodny co do znaku (łącznie ze znakami białymi), natomiast wszystkie fragmenty zmienne powinny zostać ujęte w znacznikach danych (również pustych, np. {}), nawet jeśli ich wartości nie będą wykorzystywane.
Nie jest możliwe poprawne konwertowanie tekstu, którego struktura ulega zmianom. Pozostawienie zmiennego fragmentu tekstu poza znacznikiem danych spowoduje błąd konwersji, który może być trudny do zdiagnozowania.
Edytor składa się z obszaru roboczego, w którym definiowany jest format tekstowy, oraz panelu prezentującego bity, które zostaną utworzone podczas konwersji.
Obszar User format definition jest miejscem, w którym definiujesz konwersję tekstu do bitów magistrali. Dostępne są następujące przyciski:
- Load from template → wczytuje tekst z pola Text template operatora wywołującego.
- Load file → wczytuje tekst z pliku.
- Create group → wstawia znacznik grupy. Jeżeli zaznaczysz fragment tekstu, zostanie on objęty znacznikami grupy. W formacie wymagana jest co najmniej jedna grupa.
- Ungroup → usuwa znacznik grupy z zaznaczonego tekstu.
- Insert empty token → wstawia pusty znacznik bitu magistrali.
- Show specificators → wyświetla dostępne formatowania bitów. Wybrane formatowanie można przeciągnąć do edytora. Następnie należy ręcznie uzupełnić nazwę bitu.
- Save → zapisuje schemat formatu do komponentu wywołującego edytor.
- Save to file → zapisuje format do pliku.
PRZYKŁAD KONWERSJI TEKSTU
Dla uproszczenia załóżmy, że chcesz konwertować dane zapisane w formacie XML, jednak może to być również dowolny inny format tekstowy, np. HTML, EDI, EPP, CSV lub nawet tekst całkowicie nieustrukturyzowany.
Przykładowy tekst:
Pierwszym krokiem jest uproszczenie tekstu, który zostanie wstawiony do edytora.
Ponieważ tekst zawiera dane zamówień oraz ich pozycji, można zauważyć, że jego struktura jest powtarzalna. Wystarczy więc pozostawić po jednym przykładowym elemencie z każdego poziomu struktury. Pamiętaj jednak, aby zachować wszystkie elementy struktury.
Uproszczony tekst będzie wyglądał następująco:
Możesz użyć przycisku Load from template lub Load file, aby wczytać tekst, a następnie uprościć go bezpośrednio w edytorze.
Kolejnym krokiem jest wyznaczenie grupy reprezentującej nagłówek zamówienia. W tym celu zaznacz fragment tekstu odpowiadający definicji nagłówka i wstaw grupę za pomocą przycisku Create group.
Zostaną wstawione znaczniki grupy, a na mapie bitów pojawi się pierwsza grupa danych.
Następnie wstaw znaczniki bitów w miejscach występowania danych nagłówka. Znacznik bitu musi zostać umieszczony dokładnie w miejscu, w którym w przetwarzanym tekście znajduje się wartość zmienna.
Możesz zaznaczyć wartość w tekście i użyć przycisku Insert empty token, a następnie wpisać nazwę bitu.
Wykonaj tę operację dla wszystkich wartości występujących w tekście, niezależnie od tego, czy będą wykorzystywane podczas dalszego przetwarzania.
Zauważ, że mapa bitów przedstawia wszystkie bity, które zostaną utworzone na magistrali wyjściowej.
Te same czynności wykonaj dla pozycji zamówienia — oznacz grupę pozycji i wstaw znaczniki bitów w miejscach występowania wartości.
Na tym etapie konfiguracja konwersji jest kompletna. W tekście nie powinien pozostać żaden fragment zmienny, który nie został ujęty w znaczniku bitu.
Magistrala wyjściowa będzie składała się z bitów widocznych na mapie bitów, a liczba rekordów na magistrali będzie równa liczbie wszystkich pozycji zamówień (grupa G2). Wartości bitów reprezentujących nagłówek zamówienia zostaną powielone we wszystkich rekordach odpowiadających pozycjom tego zamówienia.