System SZARP - dokumentacja techniczna: SZARP v.3.1 | ||
---|---|---|
Poprzedni | Rozdział 5. IPK - konfiguracja systemu SZARP | Następny |
Programem służącym do konwersji konfiguracji z formatu SZARP 2.1 na IPK jest program szarp2ipk, znajdujący się w dystrybucji SZARP'a. Opis korzystania z programu można uzyskać uruchamiając go z opcjami '-h' lub '--help'. W szczególności program może przyjmować do dwóch parametrów - katalog w którym ma szukać plików konfiguracyjnych SZARP 2.1 oraz ewentualnie także plik wyjściowy. Domyślnie przyjmowany jest odpowiednio katalog bieżący i plik params.xml w katalogu bieżącym. Tak więc w najprostszym przypadku należy zmienić katalog na katalog z konfiguracją i wywołać program bez parametrów - powstanie plik params.xml zawierający skonwertowaną konfigurację.
Program wypisuje na standardowe wyjście błędów komunikaty o napotkanych błędach i ostrzeżenia. Część z nich może dotyczyć nieobecności pewnych plików (co niekoniecznie musi oznaczać błąd - np. plik sender.cfg nie musi istnieć we wszystkich konfiguracjach).
Często zdarza się, że konfiguracja, która jest poprawna z punktu widzenia SZARP 2.1 powoduje błędy przy próbie konwersji na IPK. Można wyróżnić kilka podstawowych rodzajów błędów:
Błędy składniowe w plikach - parsery używane przez bibliotekę IPK są w pewnych przypadkach bardziej restrykcyjne niż te w programach SZARP'a. Ponieważ program podaje miejsce wystąpienia błędu, powinien on być dość prosty do zlokalizowania i poprawienia - najczęściej chodzi o brak pewnych elementów (np. nazwy jednostki parametru), czy też o niezgodność liczby linii pliku z zadeklarowaną na jego początku (np. w raportach).
Istnieją pewne rodzaje błędów, które program wykrywa, ale stara się naprawić. Są wśród nich takie, jak brak nazwy parametru (program przydziela nazwę typu "Unknown:Unknown:Unknown 1"), czy odwołanie w pliku PTT.act do nieistniejącego indeksu IPC (wtedy program stara się dodać pusty parametr definiowalny).
Błędy typu podwójne wystąpienie parametru o jakiejś nazwie czy też wielokrotne zapisywanie (pod różną nazwą) tego samego parametru do kilku rekordów w bazie nie są poprawiane automatycznie i wymagają ręcznych poprawek przed konwersją.
Najtrudniejsze do poprawienia są błędy wynikające z rekurencyjnych odwołań w strukturze parametrów definiowalnych. Program parcook przetwarza formuły w takiej kolejności, w jakiej są one zapisane w pliku parcook.cfg. Umożliwia to wielokrotne przedefiniowanie parametrów definiowalnych, w tym korzystanie z wcześniej wyliczonej wartości definiowanego właśnie parametru. Tego typu zależności nie da się zapisać w strukturze pliku IPK, gdyż wymagałoby to przechowywania dodatkowej informacji o kolejności formuł, oraz używanie wielu formuł dla jednego parametru. W związku z tym, jeżeli program wykryje tego typu błąd, przerywa pracę. Konwersja takiej konfiguracji wymaga ręcznego przepisania parametrów definiowalnych, tak aby nie korzystać z wielokrotnego przedefiniowania parametrów i wzajemnych odwołań do parametrów. Formuły należy pisać tak, aby nie trzeba było przyjmować żadnych założeń co do kolejności obliczania formuł (w praktyce będą wyliczane w kolejności indeksów IPC).
Wynika to ze struktury IPK, ale warto może w tym miejscu przypomnieć, że używane w SZARP 2.1 indeksy IPC w IPK nie są nigdzie bezpośrednio obecne, ale wynikają one z kolejności parametrów. (Biblioteka IPK pozwala na znalezienie parametru korzystając z jego numeru IPC, oraz obliczenie numeru IPC dla parametru - dla zachowanie kompatybilności wstecz.)
Wygenerowany przez program plik wyjściowy jest w kodowaniu ISO-8859-2. Jeżeli SZARP był skompilowany z użyciem starszej wersji biblioteki libxml2 może się zdarzyć, że polskie znaki diakrytyczne będą podane za pomocą encji z kodami tych znaków. Aby uzyskać polskie znaki w "normalnym" zapisie, można przepuścić wygenerowany plik przez program xmllint:
# xmllint params.xml > params2.xmlZobacz też Sekcja 5.3.2.
Uwaga! Zaleca się uruchomienie programu szarp2ipk tylko raz, przy pierwszej konwersji konfiguracji na IPK a następnie dokonywanie wszelkich modyfikacji na pliku IPK. Jest to konieczne np. dla obsługi nowego formatu bazy SZARP'a czy użycia dodatkowych opcji do demonów linii.
Program szarp2ipk nie wykonuje konwersji plików konfiguracyjnych programu analiza (analiza.cfg). Zadaniem tym zajmuje się narzędzie analiza2ipk. Analiza2ipk dołącza do istniejącego pliku IPK konfigurację programu analiza. Program analiza2ipk operuje bezpośrednio na dokumencie XML, co powoduje, że program nie modyfikuje oraz nie traci dodatkowych informacji np. komentarzy. Opis opcji programu można uzyskać uruchamiając go z opcją -h lub --help. Do istotniejszych parametrów przyjmowanych przez program należy nazwa katalogu z konfiguracją (katalog musi zawierać pliki: params.xml, analiza.cfg, PTT.act) oraz nazwa pliku docelowego. Gdy katalog z konfiguracją nie został podany program będzie szukał w/w plików w katalogu bieżącym. Domyślną nazwą pliku docelowego jest params.xml. Gdy plik o takiej samej nazwie jak nazwa pliku docelowego istnieje program odmówi jego nadpisania. Można usunąć to ograniczenie uruchamiając program z przełącznikiem -f lub --force. Uruchomienie programu w katalogu z konfiguracją z podaną jedynie opcją -f lub --force spowoduje nadpisanie istniejącego pliku params.xml.
Poprzedni | Spis treści | Następny |
Narzędzia do plików XML | Początek rozdziału | Konwersja konfiguracji IPK na SZARP 2.1 |