Wymyśliłem sobie rzecz okrutną, połączenie logicznej bazy, motopompy i siatki na owady.
By wszystko ładnie działało, muszę odpytać infotyp 0000 (dane podstawowe HCMa) w sposób, którego wcześniej nie praktykowałem.
Z formularza dostaję pn-begda i pn-endda.
Baza ma w swojej strukturze begda i endda dla każdego rekordu.
Interesują mnie te rekordy, które zawierają się w pn-begda i pn-endda, ale nie muszą całkowicie się z nimi pokrywać, wystarczy przynajmniej jeden dzień zgodności, by warunek się spełnił.
Przykład łopatologiczny:
pn-begda = 01.01.2020, pn=endda = 31.12.2020
begda rekordu: 01-03
endda rekordu: 31.03
Więc rekord ISTNIEJE w okresie pn-begda pn-endda, czyli dla mnie jest prawda i taki przypadek chcę dalej obrabiać.
W zasadzie chodzi o coś, jakby logiczna baza danych: rekord musi przynajmniej raz wystąpić w podanym w zapytaniu zakresie datowym.
Pomocy, skończył mi się papier do rozrysowywania kolejnych osi czasu i przedziałów
SAP HCM - IT0000 - zapytanie o rekord istniejący w zakresie pn-beg/pn-end
Re: SAP HCM - IT0000 - zapytanie o rekord istniejący w zakresie pn-beg/pn-end
Jak tak teraz czytam mój poprzedni post, to może się wydawać nie do końca jasne co chcę zrobić.
Posłużę się grafiką
Infotyp jest czerwony.
Każde zapytanie (zielone, niebieskie, czarne) podaje lv_od i lv_do (w pytaniu 2 lv_od=lv_do).
Zapytanie zielone zaczepia swoją lv_do o infotyp – ma zwrócić true (pokryło się w jakimś zakresie).
Zapytanie zielone całe jest jest w infotypie (jeden dzień w zakresie ważności infotypu).
Zapytanie czarne zaczepia swoim lv_od o infotyp – też ma zwrócić true (pokryło się w jakimś zakresie).
Potrzebuję zapytania, które obsłuży każdy z trzech powyższych przypadków i jeśli wystąpią zgodności w zakresie dat/okresów (zapytanie 2)
lub zazębienia (zapytania 1 i 3), zwróci mi jakąś informację jak np. sy-subrc = 0.
Posłużę się grafiką
Infotyp jest czerwony.
Każde zapytanie (zielone, niebieskie, czarne) podaje lv_od i lv_do (w pytaniu 2 lv_od=lv_do).
Zapytanie zielone zaczepia swoją lv_do o infotyp – ma zwrócić true (pokryło się w jakimś zakresie).
Zapytanie zielone całe jest jest w infotypie (jeden dzień w zakresie ważności infotypu).
Zapytanie czarne zaczepia swoim lv_od o infotyp – też ma zwrócić true (pokryło się w jakimś zakresie).
Potrzebuję zapytania, które obsłuży każdy z trzech powyższych przypadków i jeśli wystąpią zgodności w zakresie dat/okresów (zapytanie 2)
lub zazębienia (zapytania 1 i 3), zwróci mi jakąś informację jak np. sy-subrc = 0.
- Załączniki
-
- daty.jpg (35.59 KiB) Przejrzano 1772 razy
-
- Posty: 69
- Rejestracja: czw lis 04, 2010 10:49 pm
- Has thanked: 1 time
- Been thanked: 71 times
- Kontakt:
Re: SAP HCM - IT0000 - zapytanie o rekord istniejący w zakresie pn-beg/pn-end
lv_od <= ennda AND lv_do >= begda
LUB
lv_od BETWEEN begda AND endda OR lv_do BETWEEN begda AND ennda
LUB
lv_od BETWEEN begda AND endda OR lv_do BETWEEN begda AND ennda
Pozdrawiam,
Krzysiek
Krzysiek
Re: SAP HCM - IT0000 - zapytanie o rekord istniejący w zakresie pn-beg/pn-end
Długo się zastanawiałem, jakim sposobem nie wpadłem na to, by "krzyżować" begde i enddę. Przecież to było najprostsze rozwiązanie...
A już udało mi się zbudować zapytanie na (dosłownie) 3 linie kodu. Oczywiście nie działało.
To jest jednoznaczny sygnał, że pora wybrać się na urlop.
Temat do zamknięcia.
A już udało mi się zbudować zapytanie na (dosłownie) 3 linie kodu. Oczywiście nie działało.
To jest jednoznaczny sygnał, że pora wybrać się na urlop.
Temat do zamknięcia.