Edytor konwersji formatu tekstu pozwala zaprojektować konwersję dowolnego formatu tekstowego do bitów magistrali danych. Zapewnia możliwość wskazywania pozycji danych w formacie tekstowym oraz określania granic struktur zagnieżdżonych.
Edytor dostępny jest w następujących operatorach w systemie GRAVITY
INFORMACJE PODSTAWOWE
Konwersja tekstu do bitów magistrali danych odbywa się poprzez wprowadzenie dowolnego tekstu przez osobę konfiguracyjną. Do tekstu wprowadzone są znaczniki, dzięki którym tekst będzie mógł być interpretowany przez operator w trakcie przetwarzania. Do dyspozycji masz znaczniki grup oraz bitów.
Wyróżnione są dwa rodzaje znaczników:
- znaczniki grup (zagłębień) → pozwalające na wprowadzenie grup w tworzonym formacie danych (bloków powtarzających się).
#S-nazwa_grupy#
→ znacznik rozpoczęcia grupy np:#S-G1#
#E-nazwa_grupy#
→ znacznik zakończenia grupy#E-G1#
- znaczniki bitów (danych) → znaczniki bitów określają miejsce w tekście gdzie występuje wartość, która może być zmienna (nie jest stałą częścią tekstu). Z tej wartości powstanie bit na magistrali wyjściowej. Znaczniki bitów mają postać nazwy bitów, jakie mają zostać utworzone na magistrali wyjściowej, ujęte w separatorach początku i końca. Domyślne separatory to
{
i}
, ale możesz je zmienić na operatorze wywołującym edytor. Przykład znacznika bitów{bit_name}
.
Edytor konwersji zbudowany jest z pola roboczego edytora, gdzie będziesz konfigurował format tekstowy oraz podglądu bitów jakie zostaną utworzone w trakcie konwersji tekstu.
Obszar User format definition jest właściwym obszarem gdzie będziesz budował konwersję tekstu do bitów magistali. Na obszarze tym znajdują się przyciski wspomagające budowę.
- Loda from template → Wczytuje tekst do konwersji z pola Text template na operatorze wywołującym edytor.
- Load file → Wczytuje tekst z pliku.
- Create group → Wstawia znacznik grupy danych. Jeśli zaznaczysz dany tekst w edytorze to obejmie znacznikiem cały zaznaczony teks. Wymagana jest chociażby jedna grupa danych w budowanym formacie.
- Ungroup → Usuwa znacznik grupy z zaznaczonego tekstu.
- Inser empty token → Wstawia pusty znacznik bitów magistrali.
- Show specifikators → Pokazuje podstawowe formatowania bitów. Formaty bitów można przenieść na obszar edytora tekstu. Zostanie wówczas wstawiony znacznik bitu z wybranym formatowaniem. Konieczne jest uzupełnienie ręczne nazwy bitu.
- Save → Zapisuje schemat formatu do komponentu wywołującego edytor.
- Save to file → Zapisuje format do pliku.
PRZYKŁAD KONWERSJI TEKSTU
Załóżmy, dla uproszczenia, że chcesz konwertować dane z tekstu w formacie XML, ale może to być dowolny format tekstowy np: HTML, EDI, EPP, CSV lub tekst zupełnie nie ustrukturyzowany.
Przykładowy tekst
<?xml version="1.0" encoding="utf-8"?>
<root>
<order>
<order_id>202325</order_id>
<order_year>2023</order_year>
<order_nr>25</order_nr>
<number>25</number>
<order_date>2023-02-13T00:00:00</order_date>
<customer>9</customer>
<customer_name>Company Id 9</customer_name>
<position>
<position_no>1</position_no>
<article_id>8</article_id>
<article></article>
<quantity>2</quantity>
<unit_price>10</unit_price>
<total>20</total>
<currency>PLN</currency>
</position>
<position>
<position_no>2</position_no>
<article_id>9</article_id>
<article></article>
<quantity>2</quantity>
<unit_price>50</unit_price>
<total>100</total>
<currency>PLN</currency>
</position>
</order>
<order>
<order_id>202320</order_id>
<order_year>2023</order_year>
<order_nr>20</order_nr>
<number>10</number>
<order_date>2023-02-22T00:00:00</order_date>
<customer>9</customer>
<customer_name>Company Id 9</customer_name>
<position>
<position_no>1</position_no>
<article_id>2</article_id>
<article>Jogurt Naturalny Krasnystaw</article>
<quantity>10000</quantity>
<unit_price>1.95</unit_price>
<total>19500</total>
<currency>PLN</currency>
</position>
</order>
<order>
<order_id>202319</order_id>
<order_year>2023</order_year>
<order_nr>19</order_nr>
<number>9</number>
<order_date>2023-02-22T00:00:00</order_date>
<customer>5</customer>
<customer_name>Company Id 5</customer_name>
<position>
<position_no>1</position_no>
<article_id>6</article_id>
<article>Cebula</article>
<quantity>3000</quantity>
<unit_price>0.5</unit_price>
<total>1500</total>
<currency>PLN</currency>
</position>
<position>
<position_no>2</position_no>
<article_id>7</article_id>
<article>Marchew</article>
<quantity>1950</quantity>
<unit_price>0.8</unit_price>
<total>1560</total>
<currency>PLN</currency>
</position>
</order>
</root>
Pierwszym krokiem jest uproszczenie tekstu jaki wstawimy do edytora.
Ponieważ jest to tekst zawierający dane zamówień i ich pozycji możemy zauważyć, że jego struktura się powiela. Wystarczy zatem, że użyjemy jednego elementu z każdego poziomu. Pamiętaj, aby użyć każdego elementu struktury.
Uproszczony tekst będzie wyglądał następująco:
<?xml version="1.0" encoding="utf-8"?>
<root>
<order>
<order_id>202325</order_id>
<order_year>2023</order_year>
<order_nr>25</order_nr>
<number>25</number>
<order_date>2023-02-13T00:00:00</order_date>
<customer>9</customer>
<customer_name>Company Id 9</customer_name>
<position>
<position_no>1</position_no>
<article_id>8</article_id>
<article></article>
<quantity>2</quantity>
<unit_price>10</unit_price>
<total>20</total>
<currency>PLN</currency>
</position>
</order>
</root>
Możemy oczywiście użyć przycisku Load from template lub Load file aby wczytać tekst i uprościć go w edytorze.
Kolejnym krokiem jest wyznaczenie grupy nagłówka zamówienia i jego danych. W tym celu zaznacz tekst odpowiadający za definicję nagłówka i wstaw grupę używając przycisku Create group.
Zostaną wstawione znaczniki danych, a na mapie bitów zobaczysz pierwszą grupę danych.
Następnie zaznacz wstaw znaczniki bitów w dane nagłówka. Znacznik bitu musi się znaleźć dokładnie w miejscu gdzie spodziewamy się danych w przetwarzanym tekście.
Możesz zaznaczyć miejsce wartości w tekście i użyć przycisku Insert empty token, a następnie wprowadzić nazwę znacznika bitu.
Wykonaj tą operację dla wszystkich danych w tekście niezależnie czy potrzebujesz wartości czy nie.
Zauważ, że w mapie bitów masz informacje z jakich bitów będzie się składać magistrala.
Te same czynności wykonaj dla pozycji zamówienia - oznacz grupę pozycji i wprowadź znaczniki bitów w miejsce wystąpienia wartości.
W ten sposób konwersja tekstu jest kompletna. W tekście nie pozostał żaden element, który jest zmienny i nie został ujęty w znacznik bitów. Magistrala wyjściowa będzie się składać z bitów jakie widać ma mapie bitów, a ilość rekordów ma magistrali danych będzie sumą wszystkich pozycji zamówień (grupa 2). Bity reprezentujące nagłówek zamówienia będą miały powieloną wartość dla wszystkich swoich pozycji.