1 / 51

KS-Integracja

KS-Integracja. mgr inż. Tomasz Latko Przedsiębiorstwo Informatyczne KAMSOFT. Omawiane zagadnienia. omówienie podstaw integracji przedstawienie budowy poszczególnych tabel oraz pakietów mających wpływ na system integracji opis funkcji programu KS-INTEGRATOR opis sposobu wdrożenia integracji

anana
Télécharger la présentation

KS-Integracja

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. KS-Integracja mgr inż. Tomasz LatkoPrzedsiębiorstwo Informatyczne KAMSOFT

  2. Omawiane zagadnienia • omówienie podstaw integracji • przedstawienie budowy poszczególnych tabel oraz pakietów mających wpływ na system integracji • opis funkcji programu KS-INTEGRATOR • opis sposobu wdrożenia integracji • częste pytania Spotkanie Partnerów - 2008-04-27

  3. Dokumentacja techniczna Dostępne dokumenty techniczne: KSStd_Integracja_Instrukcja.doc – quicktour, najważniejsze informacje o sposobie działania i konfigurowania, oraz odpowiedzi na najczęściej zadawane pytania Spotkanie Partnerów - 2008-04-27

  4. Dokumentacja systemu jakości Dostępne dokumenty systemu jakości: FO1130_01_02 Projekt wdrożenia integracji.xls FO1130_01_02 Projekt wdrożenia integracji SZABLON-MEDYCZNY.xls Spotkanie Partnerów - 2008-04-27

  5. Cel i metody integracji Cel: synchronizacja danych pomiędzy tabelami różnych systemów KS-Integracja – każdy system pracuje na własnych tabelach lokalnych, których zawartość ma być zgodna z tabelami lokalnymi w innych systemach, dane uzgadniane w chwili modyfikacji – tego dotyczy to szkolenie Spotkanie Partnerów - 2008-04-27

  6. Rodzaje integracji • integracja jednokierunkowa • jeden system główny (MASTER) i wiele systemów podrzędnych (SLAVE) – tylko w systemie głównym można poprawiać, w systemach lokalnych poprawianie danych integrowanych jest zablokowane • integracja dwukierunkowa • jeden system główny (master) i wiele systemów podrzędnych (SLAVE) – w każdym systemie można poprawiać dane • INTEGRACJA = JEDEN MASTER, JEDEN LUB WIELE SLAVE’ÓW Spotkanie Partnerów - 2008-04-27

  7. Podstawowe pojęcia • schemat KS – na każdym serwerze musi istnieć schemat o nazwie „KS”; w wersji minimalnej musi on zawierać tabele z licencjami SLIC i SLIP, najczęściej jest to schemat wspólny – zawierający m.in. tabele konfigurujące systemu integracji • schemat lokalny – schemat roboczy, na którym pracuje aplikacja (np.: ZZL) Spotkanie Partnerów - 2008-04-27

  8. Pakiety • Pakiety standardowe: • KSCVAR - zawierający definicje zmiennych systemowych • KSCORE - zawierający funkcje jądra systemu • KSUTIL - zawierający funkcje narzędziowe • KSINTUTL - zawierający funkcje narzędziowe systemu integracji • Pakiet integracyjny dedykowany dla każdego systemu: • KSINTEGR - zawierający funkcje do modyfikacji danych w integrowanych tabelach, funkcje odczytujący kolejny numer klucza głównego itp. • Minimalny zestaw funkcji dla 1 tabeli: • <nazwa_tab>_zmien, • <nazwa_tab>_get_id, • <nazwa_tab>_get_last_id Spotkanie Partnerów - 2008-04-27

  9. Wyzwalacze i NSYS_INN • Wyzwalacz: <TAB>_INTEGR_BIUD • BEFORE INSERT, UPDATE, DELETE • uczestniczy w procesie nadawania nowego, globalnie unikalnego identyfikatora klucza głównego, oraz sprawdza, czy operacja jest dozwolona ze względu na konfigurację integracji • Wyzwalacz: <TAB>_INTEGR_AIUD • BEFORE INSERT, UPDATE, DELETE • wyzwala proces replikacji po zmianie lokalnej tabeli. • Pole: NSYS_INN NUMBER(10) • W każdej tabeli biorącej udział w procesie integracji istnieje pole NSYS_INN Numer(10), jest to pole wypełniane TYLKO chwilowo podczas wykonywania funkcji <TAB>_ZMIEN pakietu KSINTEGR, zawsze powinno być NULL Spotkanie Partnerów - 2008-04-27

  10. Prawa i synonimy • Wszystkie aplikacje wymienione w SSYS (oprócz KS-ZSI) muszą mieć utworzone synonimy do tabel: SAPP, SPRD, SSYS, STBI, STBC, STBP, STBR na swoim schemacie wspólnym • Wszystkie aplikacje wymienione w SSYS (oprócz KS-ZSI) muszą mieć SELECT, REFERENCE do tabel: SAPP, SPRD, SSYS, STBI, STBC, STBP, STBR na swoim schemacie wspólnym Spotkanie Partnerów - 2008-04-27

  11. Konfiguracja (1/2) - tabele na schemacie wspólnym Spotkanie Partnerów - 2008-04-27

  12. Konfiguracja (2/2) – tabele i widoki na wszystkich schematach Spotkanie Partnerów - 2008-04-27

  13. Działanie KS-Integracji – zmiana w tabeli master MASTER SLAVE 5)Uruchamia procedurę KSINTEGR.<TAB>_ZMIEN 1)Modyfikacja danych 2)Wywołuje się wyzwalacz przed zmianą %INTEGR_BIUD – ew. nadanie nowego ID 6)Pobiera dane o rekordzie z MASTERA 7)Pobiera dane o rekordzie lokalnym i rozstrzyga czy przeprowadzić wstawienie, poprawę czy usunięcie 3)Fizyczna modyfikacja 4)Wywołuje się wyzwalacz po zmianie %INTEGR_AIUD - wywołuje we wszystkich systemach SLAVE procedurę KSINTEGR.<TAB>_ZMIEN 8)Przeprowadza operację modyfikacji z ustawionym NSYS_INN 10)Powrót do wyzwalacza – zakończenie wyzwalacza 9) Aktualizuje w wierszu NSYS_INN na NULL Spotkanie Partnerów - 2008-04-27

  14. Działanie KS-Integracji – zmiana w tabeli slave MASTER SLAVE 3) Zwraca nową wartość klucza 1)Modyfikacja danych 6) Uruchamia procedurę KSINTEGR.<TAB>_ZMIEN 2) Wstawienie -> wywołanie funkcji generującej identyfikator u MASTERA KSINTEGR.<TAB>_GET_ID 7) Pobiera dane o rekordzie ze SLAVEA 8) Pobiera dane o rekordzie lokalnym i rozstrzyga czy przeprowadzić wstawienie, poprawę czy usunięcie 4) Modyfikacja danych 5 )Wywołanie w systemie MASTERA procedury KSINTEGR.TAB_ZMIEN 9) Przeprowadza operację modyfikacji z ustawionym NSYS_INN 10) Aktualizuje w wierszu NSYS_INN na NULL 11) Wykonuje się wyzwalacz po poprawie, który powiadamia wszystkie pozostałe systemy SLAVE o zmianach: wywołuje procedurę INTEGR.TAB_ZMIEN u pozostałych SLAVE’OW. 12)Powrót do wyzwalacza – zakończenie wyzwalacza Spotkanie Partnerów - 2008-04-27

  15. KS-INTEGRATOR Zawsze należy zaopatrzyć się w najnowszą wersję programu dostępną na : Q:\PROJPROD\Ogolne\KS-Integrator Lub w serwisie KS-PARTNER Spotkanie Partnerów - 2008-04-27

  16. Funkcje programu KS-Integrator • Podstawowa i zaawansowana konfiguracja i integracji • Łącząc się programem KS-Integrator do schematu wspólnego należy podać nazwę serwera, która znajduje się w tabeli SSYS. Jeśli nazwa TNS serwera nie jest rozpoznawana lokalnie to należy ją dopisać do TNSNames.ora Spotkanie Partnerów - 2008-04-27

  17. Typowe układy integracji • Szablon wdrożenia medycznego integracji FO1130_01_02 Projekt wdrożenia integracji SZABLON-MEDYCZNY.xls Spotkanie Partnerów - 2008-04-27

  18. Procedura instalacji i integracjiLicencja • Wczytanie licencji (tabele SLIC i SLIP w KS) • Serwer powinien mieć wpisany alias w TNSNAMES.ORA równy polu KS.SLIC.SERNAZW • Pole SSYS.SERW powinno być zgodne z SLIC.SERNAZW • Nie powinno się wykonywać żadnych działań bez poprawnie wygenerowanej, zawierającej wszystkie działające aplikacje i wgranej licencji na serwer • Licencje importuje się: • KS-Integrator, • KSLicImpKS oraz • KS-Instal. KS-Instal założenie schematu KS i konfiguruje kompleksowo system, jest zalecany. Spotkanie Partnerów - 2008-04-27

  19. Procedura instalacji i integracjiInstalacje – tabela SSYS • Zawiera informacje o wszystkich integrowanych schematach • Powinna być tworzona na podstawie SLIC • Pole SSYS.SERW powinno być zgodne z SLIC.SERNAZW, jeżeli pola nie są zgodne, a na serwerze działa jakakolwiek integracja, wtedy nie należy go zmieniać • Pole SSYS.SERW powinno być rozpoznawaną nazwą TNS na serwerze, jeśli jest inaczej to nie jest możliwe automatyczne tworzenie DBLinków w KS-Integrator • Pole SSYS.SERW jest bezwzględnie obowiązującą nazwą podczas łączenia się do serwera programem KS-Integrator • Pola SSYS.NSYS powinny odpowiadać SLIC.NLIC dla odpowiednich schematów • Pole SSYS.INTG=‘T’ oznacza system widoczny w programie KS-Integrator Spotkanie Partnerów - 2008-04-27

  20. Procedura instalacji i integracjiInstalacja aplikacji • KS-INSTAL zainstalować poszczególne aplikacje – wszelkie elementy niezbędne zostaną zainstalowane automatycznie • zaczynając od aplikacji wykorzystujących najnowszą bibliotekę ksinZSI.dll by jednokrotnie instalować / aktualizować schemat KS Spotkanie Partnerów - 2008-04-27

  21. Procedura instalacji i integracjiAplikacje bez KS-MENU • Aplikacje działające bez mechanizmu KS-MENU to: KS-APW (Apteka) i KS-SOMED • Zainstalowanie KS-Integratorem integracji w aplikacjach bez MENU • Poprzez zaznaczenie ich w pierwszym oknie konfiguracji integracji KS-INETGRATOR Spotkanie Partnerów - 2008-04-27

  22. Procedura instalacji i integracjiSprawdzenie tabel integrowanych 1 • Przejrzenie wszystkich tabel, które mają zostać zintegrowane: • tabele powinny być puste (mogą zawierać jedynie rekordy zerowe), ewentualnie w grupie integrowanych tabel może być tylko jedna tabela zawierająca dane i musi mieć ona wypełnione unikalnymi wartościami NOT NULL pole klucza integracyjnego (pole zapisane KS.STBI.PRKY) • gdy więcej niż 1 tabela zawiera dane muszą one być całkowicie zgodne i musi być zapewniony brak modyfikacji tych danych w trakcie wdrożenia • dla rekordów zerowych należy wypełnić identyfikator integracyjny wartością 0 • Identyfikatory integracyjne w większości przypadków są polami klucza głównego tabel. W przypadku większości tabel MEDIS, SOMED, AOW jest inaczej i należy na to zwrócić szczególną uwagę Spotkanie Partnerów - 2008-04-27

  23. Procedura instalacji i integracjiSprawdzenie tabel integrowanych 2 • W przypadku niezgodności nazwy SSYS.SERW z nazwą serwera rozpoznawaną przez serwer Oracle należy utworzyć i sprawdzić wymagane DBLinki między schematami, które są integrowane. DBLinki muszą być nazwane zgodnie z wpisami w polu SSYS.DBLK, sprawdzenie DBLink: SELECT * FROM DUAL@NAZWA_DBLINK • Zmiana hasła do schematu bazy danych oznacza konieczność utworzenie wszystkich DBLinków do tego schematu na nowo Spotkanie Partnerów - 2008-04-27

  24. Procedura instalacji i integracjiKonfiguracja dla 2. serwerów • Aby była możliwa konfiguracja integracji dla 2 serwerów konieczna jest synchronizacja tabel SSYS schematów wspólnych tych serwerów Spotkanie Partnerów - 2008-04-27

  25. Procedura instalacji i integracjiKonfiguracja dokumenty • Opis sposobu tworzenie połączeń integracyjnych wg projektu wdrożenia integracji znajduje się w dokumencie Q:\PROJPROD\Ogolne\Doku\KSStd_Integracja_Instrukcja.doc ftp://ftp.kamsoft.pl/pub/KS-Integrator/doku/KSStd_Integracja_Instrukcja.doc Spotkanie Partnerów - 2008-04-27

  26. Specyficzne tabele integracjiPracownicy wewnętrzni • Istnieją w aplikacjach ZZL, MEDIS, SOMED, AOW, FK, HURT, ST, PRODIS • Jeśli istnieje ZZL to jest on systemem MASTER dla pracowników i tylko ZZL może zmieniać dane • ZZL posiada 3 podgrupy pracowników: • Wszyscy • pracownicy medyczni • lekarze TYLKO JEDNA MOŻE BYĆ INTEGROWANA I MUSI BYĆ MASTER Spotkanie Partnerów - 2008-04-27

  27. Specyficzne tabele integracji Pracownicy wewnętrzni • Problemy: • w MEDIS pracownicy wewnętrzni mogą jednocześnie być pracownikami zewnętrznymi (ten sam rekord w tabeli) – to powinno zostać zmienione • istnieją nierówne więzy integralności w różnych aplikacjach (najsilniejsze w MEDIS), w przypadku integracji unikalność w jednej aplikacja oznacza unikalność we wszystkich pozostałych aplikacjach Spotkanie Partnerów - 2008-04-27

  28. Specyficzne tabele integracji Kontrahenci • Istnieją w aplikacjach FK, HURT, ZSI, MEDIS, SOMED, AOW, ST, PRODIS, CRM • Kontrahenci są podzieleni na 3 grupy: • pacjenci • jednostki zewnętrzne • zakłady pracy Jeśli istnieje MEDIS to systemy medyczne (MEDIS, SOMED, AOW) powinny być integrowane z pozostałymi systemami tylko poprzez tabelę kontrahentów MEDIS: PLTN Spotkanie Partnerów - 2008-04-27

  29. Specyficzne tabele integracji Pacjenci medyczni • Wydzielona podgrupa w aplikacjach medycznych (MEDIS, SOMED, AOW), która nie jest bezpośrednio integrowana z pozostałymi aplikacjami • Pacjent przechodzi do systemu nie-medycznego tylko jeśli pojawi się w tabeli MEDIS.PLTN • Jeśli nie istnieje MEDIS to należy zintegrować SOMED z systemem nie-medycznym Spotkanie Partnerów - 2008-04-27

  30. Specyficzne tabele integracji Podmioty gosp. medyczne • Wydzielona podgrupa w aplikacjach medycznych (MEDIS, SOMED, AOW), która nie jest bezpośrednio integrowana z pozostałymi aplikacjami • Podmiot gospodarczy przechodzi do systemu nie-medycznego tylko jeśli pojawi się w tabeli MEDIS.PLTN • Jeśli nie istnieje MEDIS to należy zintegrować SOMED z systemem nie-medycznym Spotkanie Partnerów - 2008-04-27

  31. Procedura instalacji i integracjiSynchronizacja • Synchronizacja danych w tabelach jest konieczna w przypadku gdy dane istnieją w jednej tabeli danej grupy tabel i nie istnieją w pozostałych • Synchronizacja danych polega na wykonaniu pozornego update’u na wszystkich rekordach integrowanej tabeli co wyzwoli triggery integracyjne i spowoduje przeniesienie danych do wszystkich integrowanych tabel • Niektóre wyzwalacze integracyjne (np. na pracownikach w MEDIS i SOMED) „są odporne” na pozorne update’y i trzeba je czasowo zmodyfikować aby wykonać synchronizację Spotkanie Partnerów - 2008-04-27

  32. Procedura instalacji i integracjiSynchronizacja – procedura PL/SQL BEGIN FOR REC IN (SELECT <identyfikator_integracyjny> FROM <tabela>) LOOP BEGIN UPDATE <tabela> SET <pole_integrowane>=<pole_integrowane> WHERE <identyfikator_integracyjny> = REC.<identyfikator_integracyjny>; COMMIT; EXCEPTION WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20001, 'Nieudana aktualizacja <tabela> o <identyfikator_integracyjny>='||REC. <identyfikator_integracyjny>||CHR(13)||CHR(10)||SQLERRM); END; END LOOP; END; Spotkanie Partnerów - 2008-04-27

  33. Procedura instalacji i integracjiSynchronizacja – kolejność • Należy synchronizować najpierw grupy tabel słownikowych takich jak: • miejscowości • oddziały • ośrodki kosztów itp. • Dopiero potem można przystąpić do synchronizacji pozostałych tabel: • pracownicy • operatorzy • kontahenci itp. Spotkanie Partnerów - 2008-04-27

  34. Procedura instalacji i integracjiSprawdzenie • Po wykonaniu wszystkich połączeń integracyjnych zalecane jest sprawdzenie wszystkich połączeń poprzez testy w aplikacjach polegające na dodaniu, modyfikacji i usunięciu rekordów w tabelach integrowanych. Spotkanie Partnerów - 2008-04-27

  35. Dodanie tabeli do KS-Integracji Potrzebę integracji nowej tabeli należy zgłosić do działu wdrożeniowego poprzez wypełnienie formularza: FO1130_01_01 Zgłoszenie tabel do integracji.xls Projekt zapotrzebowania integracji nowej tabeli (lub modyfikacji) wymagają prac działów produkcyjnych i zmian w odpowiednich procedurach oraz umieszczone zmian w pakiecie KS-Integrator, i pakietach instalacyjnych. Spotkanie Partnerów - 2008-04-27

  36. Częste problemy • System nie jest widziany przez program KS-IntegratorNależy sprawdzić tabelę SSYS, szczególnie pole INTG (powinno mieć T dla integrowanych), pole INTG nie wpływa na działanie KS-Integracji • Cannot insert NULL into (<TABELA>.<POLE>) Zostało dodane do tabeli integrowanej nowe pole NOT NULL bez DEFAULT i nie zostało ono uwzględnione w mechanizmach integracji Spotkanie Partnerów - 2008-04-27

  37. Częste problemy – pakiety się nie kompilują • Nie kompilują się pakiety KSCORE, KSUTIL, KSCVAR, KSINTUTL • sprawdzić nadanie uprawnień ze schematu KS • Nie kompiluje się pakiet KSINTEGR • sprawdzić nadanie uprawnień ze schematu KS • sprawdzić istnienie pól NSYS_INN w integrowanych tabelach • sprawdzić istnienie pól integrowanych w integrowanych tabelach • Nie kompilują się wyzwalacze integracyjne • sprawdzić to samo co w przypadku problemów z kompilowaniem KSINTEGR Spotkanie Partnerów - 2008-04-27

  38. Częste problemy - tabela SSYS • Niezgodność NSYS: należy wykonać funkcję z KSInstal.exe –gui, ‘Synchronizuj NSYS z licencją’ • Niezgodna nazwa serwera: dla istniejących wdrożeń nie należy jej zmieniać, trzeba tylko zadbać o to żeby serwer miał tę nazwę w swoim TNSNames • Nie widać aplikacji w KS-Integrator: należy ustawić pole SSYS.INTG=‘T’ dla aplikacji Spotkanie Partnerów - 2008-04-27

  39. Częste problemy – synchronizacja • Naruszenie klucza unikalnego w zewnętrznej aplikacji: należy poprawić rekord powodujący to naruszenie lub zmienić zasady unikalności • Naruszenie klucza obcego: należy sprawdzić czy zostały zsynchronizowane w pierwszej kolejności tabele słownikowe oraz czy inne nie-integrowane słowniki są zgodne • „Modyfikowany rekord w tabeli <TAB> nie posiada nadanej wartości klucza integracji”: został popełniony błąd w fazie przygotowawczej, nie zostało wypełnione wartościami pole klucza integracyjnego, należy rozłączyć integrację odpowiedniej grupy tabel i wypełnić wartościami pole klucza Spotkanie Partnerów - 2008-04-27

  40. Częste problemy – synchronizacja • Invalid user/password, error lookup for remote object – sprawdzić i poprawić DBLinki lub TNSNames na serwerze Oracle • Package KS<PAKIET> has errors – błąd w fazie przygotowawczej, nie zostały sprawdzone pakiety • Nieprawidłowa wartość NSYS_INN – sprawdzić pole NSYS_INN w tabeli jest NULL, jeśli jest to znaczy, że wyzwalacze poza integracją wypełniają to pole, należy to zgłosić do osób odpowiedzialnych za daną aplikację Spotkanie Partnerów - 2008-04-27

  41. Pytania 1. Ile tabel może być MASTER’em w jednej grupie integrowanych tabel? Spotkanie Partnerów - 2008-04-27

  42. Pytania 2. Czy w integracji jednokierunkowej mogą być zmieniane dane przez system SLAVE? Spotkanie Partnerów - 2008-04-27

  43. Pytania 3. Jakie ustawienie decyduje o widoczności aplikacji w programie KS-Integrator? Spotkanie Partnerów - 2008-04-27

  44. Pytania 4. Jakie pole musi istnieć w każdej tabeli biorącej udział w integracji? Spotkanie Partnerów - 2008-04-27

  45. Pytania 5. Czy klucz główny tabeli jest zawsze identyfikatorem integracyjnym rekordu? Spotkanie Partnerów - 2008-04-27

  46. Pytania 6. Czy aplikacje oparte o KS-MENU i KS-Instal powinny mieć instalowaną KS-Integrację poprzez program KS-Integrator? Spotkanie Partnerów - 2008-04-27

  47. Pytania 7. Jakie narzędzie jest zalecane do wgrywania licencji i tworzenia schematu wspólnego? Spotkanie Partnerów - 2008-04-27

  48. Pytania 8. Czy cała konfiguracja integracji w ramach jednego serwera znajduje w jednym schemacie? Spotkanie Partnerów - 2008-04-27

  49. Pytania 9. Jakie tabele w schemacie wspólnym są tabelami konfiguracyjnymi mechanizmu integracji? Spotkanie Partnerów - 2008-04-27

  50. Pytania 10. Gdzie zazwyczaj znajduje się nazwa aliasu do bazy danych, która odpowiada nazwie z licencji SLIC.SERNAZW? Spotkanie Partnerów - 2008-04-27

More Related