www.tres.pl - Baza wiedzy Trawers ERP - Spis treści


Przenoszenie danych do baz SQL 1. Opis ogólny 2. Format utworzonych danych 3. Funkcja przenosząca 4. Przygotowanie bazy SQL 5. Skrypt przenoszący 6. Przykład zestawienia 7. Uwagi i zastrzeżenia 8. Tematy powiązane 1. Opis ogólny Program przenosi dane Trawers ERP do wskazanej, zewnętrznej bazy SQL. Baza zewnętrzna ma charakter hurtowni danych. Może służyć jako źródło informacji do tworzenia raportów, statystyk i analiz. Raporty i analizy Popularny generator raportów Qlik może sięgać po dane do bazy SQL. NOTE: W programie Trawers jest wyspecjalizowana funkcja, która przygotowuje do raportowania w Qlik. Qlik. Analizy. Raporty Tylko do odczytu Baza SQL służy tylko do odczytu. Ew. zmiany w bazie SQL nie będą przenoszone do zbiorów (tabel) w bazie danych Trawersa. Baza ma strukturę informacyjną zgodną z bazą Trawersa, tzn. zawiera takie same tabele (zbiory) i kolumny (pola) w tabelach. Program zapisze dane w postaci umożliwiającej wczytanie do bazy SQL. W katalogu /trinout program utworzy skrypt SQL, a dane umieści w katalogu /trinout/sql Do przenoszenia danych zastosowane zostały specjalizowane polecenia SQL: ------------------------ PostgreSQL: COPY FROM PGSQL PostgreSQL Server MS SQL : BULK INSERT MSSQL Microsoft SQL Server MySQL : LOAD DATA MYSQL MySQL Server ------------------------ 2. Format utworzonych danych Funkcja przenosząca dane tworzy 2 elementy: ---------- *.dat ---------- Dane użytkowe (pliki danych), które skrypt SQL użyje do wypełnienia (załadowania) bazy sql. ---------- skrypt SQL ---------- Skrypt, który wypełnia (ładuje) bazę sql danymi użytkowymi *.dat Domyślna nazwa skryptu: trawers.sql Pozostałe czynności powinien wykonać administrator bazy danych SQL. Powinien wykonać skrypt, sprawdzić ew. skorygować i wykonać powtórnie. Skrypt SQL, np. trawers.sql, używa specjalnych poleceń SQL do ładowania danych: ------------------ PGSQL: COPY FROM MSSQL: BULK INSERT MYSQL: LOAD DATA ------------------ Takie rozwiązanie jest dużo bardziej wydajne, niż zastosowanie polecenia INSERT dla każdego wiersza. Zapisane dane mają strukturę i zawartość zbiorów Trawersa. Ze względu na to, że struktura tabel może się zmieniać, w skrypcie przenoszącym dane zastosowano polecenia usuwające i następnie tworzące tabele na nowo z aktualną strukturą. Dlatego, aby zachować spójność danych pod względem powiązań między dokumentami, kartotekami i tabelami, w przypadku powtórnego ładowania, należy załadować wszystkie zbiory od początku. 3. Funkcja przenosząca AD > Dane dla Baz SQL > Przenoszenie danych do SQL [AD_PGZ92] Funkcja przenosząca dane ma opcje: * Nazwa skryptu przenoszącego: trawers.sql * Formaty bazy SQL: PGSQL, MSSQL, MYSQL * Kodowanie: ISO / WIN / UTF8 * Katalog zapisu danych: %SQL% * Zbiory do przeniesienia: Domyślnie: Wszystkie Funkcje przenoszącą dane można wykonać w trybie AutoRun, np. w nocy. AutoRun Procesy automatyczne Parametry procesu AutoRun (przykład) --- Nazwa parametru ---------- --- Wartość ------ Zapisz SQL do pliku trawers.sql Format PGSQL Kodowanie ISO Katalog %SQL% Polecenia księgowania N Scalać zbiory okresowe N Zakres O Ostatnie 1 Rok od 2020 Miesiąc od 01 Rok do 2020 Miesiąc do 02 [WYBORY_OPERATORA] KIM + KSOM + DOK MG Parametr: [Wszystkie zbiory] ma stałą wartość [T] Oznacza to, że domyślnie przenoszone są wszystkie zbiory. Aby przenosić tylko wybrane [*] zbiory należy zapisać parametry jako wybory operatora. Parametr [WYBORY_OPERATORA] zawiera nazwę wyborów operatora, tu [KIM + KSOM + DOK MG] Parametry odczytane z wyborów operatora mają priorytet nad parametrami AutoRun. Jeżeli nie ma lub nie uda się odczytać wyborów operatora to przyjmowane są parametry AutoRun. Ostatnie wybory operatora 4. Przygotowanie bazy SQL Przed przeniesieniem do bazy SQL, trzeba zainstalować wybrany silnik bazy danych SQL oraz utworzyć bazę. 5. Skrypt przenoszący Aby zautomatyzować przenoszenie, warto utworzyć skrypt przenoszący dane, który będzie uruchamiany np. w nocy. Skrypt ten wywoła funkcje zapisującą dane programu Trawers w trybie AutoRun, a następnie wywoła polecenie wczytania danych do bazy SQL. tr2sql.bin -------------------------------------------------------------- #!/bin/sh # 01/2011 # Przeniesienie danych z Trawersa do bazy SQL # -baza SQL musi być wcześniej utworzona # -w Trawersie proces przenoszący musi być zapisany w tabeli # procesów automatycznych TR_DATABASE=trawers TR_KATALOG=/opt/trawers5/dane TR_FIRMA=FP TR_OPERATOR=AA export TERM=linux cd $TR_KATALOG/bin echo 'kopiowanie dbf --> dat ' ./tr5x.exe //gtnull --operator=$TR_OPERATOR --firma=$TR_FIRMA --proces=AD_PGZ92 cd $TR_KATALOG/trtres/trinout # Import dla bazy PostgreSQL #psql -f trawers.sql # Import dla bazy MySQL echo 'kopiowanie dat --> sql ' mysql -u root $TR_DATABASE < trawers.sql -------------------------------------------------------------- -> uruchomienie zapis cron -------------------------------- crontab -e 5 0 * * * /trawers/bin/tr2sql.sh -------------------------------- 6. Przykład zestawienia W celu kontroli poprawności przeniesienia, można sprawdzić stany magazynowe: widoki.sql ----------------------------------------------------------- # # Indeksy potrzebne do widoku # CREATE INDEX mg00glft_indeks on mg00glft (indeks) CREATE INDEX mg00imft_indeks on mg00imft (indeks) CREATE INDEX mg00cnft_indeks on mg00cnft (indeks) CREATE INDEX mg00cnft_mag_indeks on mg00cnft (mag,indeks) ----------------------------------------------------------- -------------------------------------------------------------------------------------- # # Widok wartości magazynów (w trawersie realizowane przez MG_WARTOSC()) # CREATE VIEW TrfpMagazynIndeksWartosc (mag, indeks, wycena, milosc, mcena, mwartosc) AS SELECT gl.mag, gl.indeks, im.wycena, gl.milosc, gl.mcena, gl.milosc*gl.mcena FROM mg00glft AS gl, mg00imft AS im WHERE gl.indeks=im.indeks AND im.wycena REGEXP '[ESD]' UNION SELECT cn.mag, cn.indeks, im.wycena, sum(cn.pilosc), 0, sum(cn.pilosc*cn.pcena) FROM mg00cnft AS cn, mg00imft AS im WHERE cn.indeks=im.indeks AND im.wycena REGEXP '[LF]' GROUP BY concat(cn.mag,cn.indeks); -------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- # # Wartość bieżąca magazynów # select mag,sum(milosc),sum(mwartosc) from TrfpMagazynIndeksWartosc group by mag union select '',sum(milosc),sum(mwartosc) from TrfpMagazynIndeksWartosc; -------------------------------------------------------------------------------------- 7. Uwagi i zastrzeżenia * Funkcja przenosząca nie przenosi pól memo do bazy MySQL. Memo. Notatka o dowolnej długości tekstu, która podczas wyświetlania przywijana jest (skrolowana) w oknie na ekranie. Opisy: Memo i Remark W definicji struktury zbioru pole >memo< oznaczone jest: M 10 0 Baza danych. Słownik. Opis 8. Tematy powiązane Raporty i analizy Wymiana danych z innymi programami CSV Tabela def CSV. Przykłady Wysyłanie danych do Excela (CSV,KE) Qlik. Analizy. Raporty AutoRun Procesy automatyczne Opisy: Memo i Remark Baza danych. Słownik. Opis Słowa kluczowe #Raporty-Generatory


www.tres.pl - Baza wiedzy Trawers ERP - Spis treści

Polityka prywatności Ustawienia Cookies