śledzenie zapytań do bazy przez DB Monitor

0

Witam. Mimochodem dowiedziałem się u mnie w pracy, że aby program kadrowo-płacowy naliczał pracownikowi urlop wypoczynkowy w wymiarze 26 dni, powinien być uzupełniony w tymże programie tzw. słownik poziomów wykształcenia. Dopiero wtedy, jeśli dany pracownik będzie miał na swojej kartotece wpisane np. wykształcenie wyższe, a w słowniku poziomów wykształcenia przy opisie "wykształcenie wyższe magisterskie", będzie wypełnione pole "Rodzaj" jako "Wyższe", to system będzie naliczał pracownikowi wymiar urlopu 26 dni.

w DB Monitorze widać, że program wywołuje jakąś kwerendę związaną z poziomami wykształcenia, ale w uszczegółowieniu nic nie ma.(zrzut)

screenshot-20200228132552.png

Przy czym nie wiem w jaki sposób program potrafi na formatce wpisywania urlopów, wziąć dane z tego słownika poziomów wykształcenia, skoro na bazie tego nie widać.(zrzut) bo jest tylko dodany kolejny urlop dla danego pracownika.

screenshot-20200228132641.png

Mam nadzieję, że wyraziłem sie jasno i wiadomo mnie więcej o co chodzi. Moje pytanie brzmi: jak sprawdzić, w którym miejscu/momencie program sprawdza te poziomy wykształcenia, przy naliczaniu pracownikowi urlopu?

0

tzn. mam rozumieć, że ten moment jest w jakimś innym środowisku, z którego korzysta programista (Delphi czy coś w ten deseń?)

1

Moje pytanie brzmi: jak sprawdzić, w którym miejscu/momencie program sprawdza te poziomy wykształcenia, przy naliczaniu pracownikowi urlopu?

To jest pytanie do producenta, a nie na forum.

0
Panczo napisał(a):

Moje pytanie brzmi: jak sprawdzić, w którym miejscu/momencie program sprawdza te poziomy wykształcenia, przy naliczaniu pracownikowi urlopu?

To jest pytanie do producenta, a nie na forum.

Zgadzam się w całej rozciągłości. Tylko, że wolałbym na razie nie roztrząsać tego problemu u producenta. Dlatego pytam tutaj na forum, licząc na jakieś rady mądrzejszych ode mnie.

1
malwersant napisał(a):

Zgadzam się w całej rozciągłości. Tylko, że wolałbym na razie nie roztrząsać tego problemu u producenta. Dlatego pytam tutaj na forum, licząc na jakieś rady mądrzejszych ode mnie.

Jak wszystko zawiedzie to może czas zerknąć do dokumentacji produktu? Nie wiem czy ktoś ma pojęcie o jakim programie piszesz i tym bardziej jak ów program działa. Kontakt z producentem wydaje się najrozsądniejszym kierunkiem działania.

Być może silnik bazodanowy, z którego korzysta program, zapamiętuje N ostatnich przetwarzanych zapytań i da się wypruć jakie zapytania leciały do bazy i przeanalizować, że w tabelce X brakuje wpisu, dlatego pojawia się NULL w zapytaniu Y.

Jako ostateczne rozwiązanie logowałbym ruch sieciowy od klienta do bazy (zakładając, że klient komunikuje się z bazą po sieci, a nie przez mechanizmy IPC) i patrzył co faktycznie jest przesyłane do bazy. Można skorzystać z narzędzia Wireshark. Tyle, że to schodzenie niżej niż poziom pracy DB Monitora. Takie podejście wyłapie wszystko i wyeliminuje ryzyko, że nie posługujesz się DB Monitorem swobodnie i jakieś zapytanie Ci "uciekło"

0

Moje pytanie brzmi: jak sprawdzić, w którym miejscu/momencie program sprawdza te poziomy wykształcenia, przy naliczaniu pracownikowi urlopu?

Podałeś screeny, ale nie podałes najważniejszego, z jakiego silnika korzysta baza

Mimochodem dowiedziałem się u mnie w pracy, że aby program kadrowo-płacowy naliczał pracownikowi urlop wypoczynkowy w wymiarze 26 dni, powinien być uzupełniony w tymże programie tzw. słownik poziomów wykształcenia. Dopiero wtedy, jeśli dany pracownik będzie miał na swojej kartotece wpisane np. wykształcenie wyższe, a w słowniku poziomów wykształcenia przy opisie "wykształcenie wyższe magisterskie", będzie wypełnione pole "Rodzaj" jako "Wyższe", to system będzie naliczał pracownikowi wymiar urlopu 26 dni.

Czegoś nie rozumiem, wiesz co trzeba zaznaczyć, aby było 26 dni, a szukasz tego w bazie, zakladam, że ta wiedza wynika z dokumentacji programu. Co da Ci wiedza, gdzie to siedzi w bazie?

Zgadzam się w całej rozciągłości. Tylko, że wolałbym na razie nie roztrząsać tego problemu u producenta. Dlatego pytam tutaj na forum, licząc na jakieś rady mądrzejszych ode mnie.

Skoro dzialanie jest niezgodne z dokumentacją to tylko producent Ci pomoże. Chyba, że nie masz wykupionego abomanemntu/wsparcia (co w przypadku KadrPłac jest strzałem w stopę).
Oczywiście można śledzić skąd te dane się biorą, mozna nawet zmodyfikować bazę, aby działała wg. Twoich oczekiwań, ale nigdy nie wiesz co zepsujesz po drodze i raczej nie jest to dobry kierunek.

Przy czym nie wiem w jaki sposób program potrafi na formatce wpisywania urlopów, wziąć dane z tego słownika poziomów wykształcenia, skoro na bazie tego nie widać.(zrzut) bo jest tylko dodany kolejny urlop dla danego pracownika.

Moze te słowniki pobiera wcześniej, albo caschuje je gdzieś lokalnie, albo są zhardkodowane w programie? Wiele mozliwości.

0
Panczo napisał(a):

Podałeś screeny, ale nie podałes najważniejszego, z jakiego silnika korzysta baza

Kolega założył, że jak ktoś rozpozna IBExperta to będzie wiedział, że używa na 95% Firebirda ;)

Moim zdaniem najlepiej by było to sprawdzić za pomocą takiego narzędzia jak FBScanner ewentualnie jeśli mamy Firebirda 2.5+ to udostępnia on odpowiednie API do tego celu.

0
Panczo napisał(a):

Czegoś nie rozumiem, wiesz co trzeba zaznaczyć, aby było 26 dni, a szukasz tego w bazie, zakladam, że ta wiedza wynika z dokumentacji programu. Co da Ci wiedza, gdzie to siedzi w bazie?

Generalnie chodzi o to, że na przykład user zgłasza błąd, że w program źle działa, bo nie nalicza urlopu w wymiarze 26 dni. Ja-jako wdrożeniowiec-muszę zweryfikować, czy błąd jest rzeczywiście po stronie programu, czy nieprawidłowego działania użytkownika, czy środowiska na jakim user pracuje. W tym przypadku było tak, że opisałem ten przypadek jako błąd programistyczny i przekazałem do programisty. Programista mi to odrzucił, bo wskazał że program działa prawidłowo, tylko user nie wypełnił odpowiednio tych słowników, o których pisałem wcześniej. Czyli zasadniczo to był mój błąd. I stąd moje pytanie, żeby na przyszłość wystrzegać się takich błędów. Niestety nie jestem informatykiem, ani specjalistą ds baz danych, dlatego próbuję to rozumieć po swojemu. Niestety programista nie przekazał mi informacji gdzie mam szukać tych powiązań, a może szkoda mu było czasu na takiego laika.
W instrukcji obsługi programu też nie ma takich informacji.

Mr.YaHooo napisał(a):
Panczo napisał(a):

Podałeś screeny, ale nie podałes najważniejszego, z jakiego silnika korzysta baza

Kolega założył, że jak ktoś rozpozna IBExperta to będzie wiedział, że używa na 95% Firebirda ;)

Chyba rzeczywiście tak pomyślałemm;)

1

Generalnie chodzi o to, że na przykład user zgłasza błąd, że w program źle działa, bo nie nalicza urlopu w wymiarze 26 dni. Ja-jako wdrożeniowiec-muszę zweryfikować, czy błąd jest rzeczywiście po stronie programu, czy nieprawidłowego działania użytkownika, czy środowiska na jakim user pracuje.

Czyli wiemy, że wdrażasz program i ludzie zgłaszaja Ci błędy

W tym przypadku było tak, że opisałem ten przypadek jako błąd programistyczny i przekazałem do programisty. Programista mi to odrzucił, bo wskazał że program działa prawidłowo, tylko user nie wypełnił odpowiednio tych słowników, o których pisałem wcześniej. Czyli zasadniczo to był mój błąd.

Skoro poznales juz jakie słowniki i wartości musisz wypełnic aby to było 26 dni urlopu, to nie szukasz tego w bazie tylko w programie. W końcu musisz wiedzieć gdzie to jest, aby przekazać użytkownikowi w którym konkretnie miejscu ma to wypełnić, aby naliczało mu te 26 dni

I stąd moje pytanie, żeby na przyszłość wystrzegać się takich błędów. Niestety nie jestem informatykiem, ani specjalistą ds baz danych, dlatego próbuję to rozumieć po swojemu. Niestety programista nie przekazał mi informacji gdzie mam szukać tych powiązań, a może szkoda mu było czasu na takiego laika.

Zaczynasz od złej strony, jak pisałem wyżej nie jest Ci do niczego potrzebna wiedza gdzie to siedzi w bazie, tylko jak to uzupełnienić w programie już wiesz co:

Dopiero wtedy, jeśli dany pracownik będzie miał na swojej kartotece wpisane np. wykształcenie wyższe, a w słowniku poziomów wykształcenia przy opisie "wykształcenie wyższe magisterskie", będzie wypełnione pole "Rodzaj" jako "Wyższe", to system będzie naliczał pracownikowi wymiar urlopu 26 dni.

Jak uzupełnisz wg. tych wytycznych i nadal nie będzie 26 dni to zgłaszaj jeszcze raz.

W instrukcji obsługi programu też nie ma takich informacji.

Jeżeli jest jakiś support to zgłoś do nich, że przeczytałeś instrukcje obsługi i nie możesz znaleźć gdzie to wstawić w programie i poproś o materiały. Bazę jednak zostaw w spokoju.

0
Panczo napisał(a):

Zaczynasz od złej strony, jak pisałem wyżej nie jest Ci do niczego potrzebna wiedza gdzie to siedzi w bazie, tylko jak to uzupełnienić w programie już wiesz co:

Niby masz rację, ale tak jak napisałem, chciałbym wiedzieć czy po stronie bazy danych jest możliwość sprawdzenia tego, żeby na przyszłość nie popełniać tego rodzaju błędów. Jest wiele miejsc w programie, gdzie są wykorzystywane słowniki lub jakieś inne parametry i user zgłasza coś jako błąd, a okazuje się że to jest jego błąd. Znając powiązanie w bazie danych-o ile takie są (tak jak w tym przypadku)-mogę sam rozwiązać problem, a nie angażować w to programistę.

1

Wdrożenie programu polega na tym, że ma on działać, Jako wdrożeniowiec masz mieć wiedzę co i gdzie wpisać w programie, aby działało zgodnie z oczekiwaniami. Pewnie można sprawdzić jakie wartości są wybrane bo na 99,9% siedzi to w bazie. Pytanie tylko po co?

Jeżeli w tytułowym wątku odpowiesz użytkownikowi np. tak:

To nie działa bo w tabeli KD_Pracownicy w polu P_Poziom_wyksztalcenia ma byc wpisana 2, a jest 1 to nie przybliżysz go do rozwiązania problemu. Mam wrażenie, że zbyt się przejmujesz, że popełniłeś "błąd". W praktyce dojdziesz do sytuacji, że poprowadzisz użytkownika "za rękę" po interfejsie programu, aby Ci sprawdził wpisane wartości.

Znając powiązanie w bazie danych-o ile takie są (tak jak w tym przypadku)-mogę sam rozwiązać problem, a nie angażować w to programistę.

Nie, jako wdrożeniowiec posługujesz się tymi samymi narzędziami co użytkownik, tylko bardziej świadomie. To jest wiedza z tego, jak dziala system, a nie jaki jest projekt bazy. I tu rola wdrożeniowca: sprawdza czy ustawienia w programie są poprawne, jeśli tak to zgłasza błąd bo coś nie diała zgodnie z dokumenacją. Nie mart się nie ty jeden zgłaszasz błąd, który nim nie jest

0

OK.dzięki za info. Chciałbym tak na to patrzeć, ale z drugiej strony wiem że tyle zmian się wykonuje u usera po bazą, więc też chciałbym wiedzieć co i jak. I to nie dotyczy tylko i wyłącznie programu kadry i płace, ale wszystkich modułów tej firmy, a jest ich około 40.

0

Spokojnie, dojdziesz do takiej wiedzy, ale najpierw poznaj program, później przyjdzie czas na zagłębianie się w DB

1 użytkowników online, w tym zalogowanych: 0, gości: 1