SAP HCM - IT0000 - zapytanie o rekord istniejący w zakresie pn-beg/pn-end

Jeśli programujesz, administrujesz, integrujesz i masz wątpliwość lub obawę, to właśnie najlepsze miejsce dla Ciebie. Pisz śmiało...
ODPOWIEDZ
emil
Posty: 133
Rejestracja: pt gru 27, 2019 11:02 am
Has thanked: 29 times
Been thanked: 42 times

SAP HCM - IT0000 - zapytanie o rekord istniejący w zakresie pn-beg/pn-end

Post autor: emil »

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 :D
emil
Posty: 133
Rejestracja: pt gru 27, 2019 11:02 am
Has thanked: 29 times
Been thanked: 42 times

Re: SAP HCM - IT0000 - zapytanie o rekord istniejący w zakresie pn-beg/pn-end

Post autor: emil »

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.
Załączniki
daty.jpg
daty.jpg (35.59 KiB) Przejrzano 1772 razy
ZETKA
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

Post autor: ZETKA »

lv_od <= ennda AND lv_do >= begda

LUB

lv_od BETWEEN begda AND endda OR lv_do BETWEEN begda AND ennda
Pozdrawiam,
Krzysiek
emil
Posty: 133
Rejestracja: pt gru 27, 2019 11:02 am
Has thanked: 29 times
Been thanked: 42 times

Re: SAP HCM - IT0000 - zapytanie o rekord istniejący w zakresie pn-beg/pn-end

Post autor: emil »

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.
ODPOWIEDZ