Search

Home

Edytor konwersji tekstu do bitów magistrali

Edytor konwersji tekstu do bitów magistrali

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

CONVERT FORMAT TO BITSCONVERT FORMAT TO BITS

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ę).
    1. icon
      Grupę można rozumieć jako blok tekstu (wraz ze znacznikami bitów), który ma zostać zinterpretowany jako powtarzający się w teksie konwertowanym. Operator w trakcie przetwarzania tekstu będzie interpretował tekst między znacznikami grupy jako powtarzający się fragment formatu danych. Możesz myśleć o grupie jak o rekordzie, a znacznikach bitów w grupie jak o kolumnach. Jeśli grupa zawiera podgrupy to ilość bitów wyjściowych ma magistrali będzie sumą bitów z wszystkich grup, ilość rekordów będzie sumą rekordów po drzewie grup (zagłębieniach). Natomiast wartości bitów z zagłębień nadrzędnych zostaną powielone na rekordach pochodzących z zagłębień.
      icon
      Wymagana jest co najmniej jedna grupa w tekście.
    2. #S-nazwa_grupy# → znacznik rozpoczęcia grupy np: #S-G1#
    3. #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}.
  • icon
    Ponieważ konwersja może być wykonywana na danych tekstowych bez określonego formatu, system ściśle przestrzega wystąpienia znaków w tekście, które nie są ujęte w znaczniki danych. W związku z tym tekst, który jest stały musi się zgadzać co do znaku (również uwzględniając znaki białe), a tekst, który może być zmienny musi zostać ujęty w znacznik danych, pomimo że nie chcemy tych danych wykorzystać. Nie jest możliwe konwertowanie tekstu, którego struktura może się zmieniać! Pozostawienie teksu zmiennego bez znaczników danych spowoduje błąd konwersji tekstu, który może być trudny do wykrycia!
    icon
    Każde użycie bitu magistrali w teksie wymaga aby był on użyty w ramach jakiegoś znacznika grupy

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.

image

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.

image

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.

image

Zostaną wstawione znaczniki danych, a na mapie bitów zobaczysz pierwszą grupę danych.

image

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.

image

Wykonaj tą operację dla wszystkich danych w tekście niezależnie czy potrzebujesz wartości czy nie.

image

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.

image

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.