Jak wyciągnąć dane z KNB1 po KUNNR = LIKP-KUNNR?

Jeśli programujesz, administrujesz, integrujesz i masz wątpliwość lub obawę, to właśnie najlepsze miejsce dla Ciebie. Pisz śmiało...
Hoofie
Posty: 1
Rejestracja: śr lip 21, 2021 2:45 pm

Jak wyciągnąć dane z KNB1 po KUNNR = LIKP-KUNNR?

Post autor: Hoofie »

Hej,

Od kilku dni próbuję w query (SQ02) dodać wyciąganie trzech pól (telefon, fax i internet) z tabeli KNB1 łącząc ją z LIKP po KUNNR (customer number).

Pól w querce jest dużo i kod dla wszystkich jest napisany w jednym polu (jestem nowy w SAP ABAP, ale rozumiem, że to oznacza "bałagan"). Niemniej jednak, wszystko w tym kodzie działa i wyciąga dane tam gdzie ma je wyciągnąć... Oczywiście z wyjątkiem kolumn, które ja robię.

Mój kodzik wygląda tak:

TYPES: BEGIN OF tlf_knb,
tlfns TYPE knb1-tlfns,
END OF tlf_knb.

DATA: tlf_knb TYPE tlf_knb.

SELECT SINGLE tlfns
INTO tlf_knb
FROM knb1
WHERE kunnr = likp-kunnr.

KART_KLIENT1 = tlf_knb-tlfns.

TLFNS to telefon. Ten kod powyżej nie działa. Nie zwraca żadnych wartości.

Wszystkie tabele są zadeklarowane. Są tutaj już inne linie kodu, które również opierają się na LIKP-KUNNR i działają bez zarzutu. Nie może też być to kwestia kolejności z sekcji "Dodatki", dlatego że inne fragmenty kodu też korzystają z tego LIKP i wszystko działa. W sekcji JOIN też nie ma sensu chyba dodawać KNB1, dlatego że są tu fragmenty kodu, które odwołują się do tabeli, których w tym JOIN nie ma i są wyłącznie zadeklarowane w kodzie i wszystko działa...
Kiedy zmieniam wyświetlanie/zmiana definicji dla pola (obecnie jest typu ref. KNB1-KUNNR) na zwykłe C i przypisuję na siłę jakiegoś string literal,
to działa i ta wartość się wyświetla.
Coś mi nie działa w próbach wyciągnięcia danych z KNB1 i nie mam pojęcia co. Jeżeli to istotne, to StackOverFlow i answers.sap też nie wiedzą. :<

Dodam, że wartości w tabeli są, bo pracuję na systemie testowym i wartości zostały tam umieszczone.

Zmiana WHERE kunnr = likp-kunnr na WHERE knb1~kunnr = likp-kunnr również nie przynosi rezultatów.

Pomocy.
wojtas7
Posty: 853
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 57 times
Been thanked: 190 times

Re: Jak wyciągnąć dane z KNB1 po KUNNR = LIKP-KUNNR?

Post autor: wojtas7 »

Prawdę mówiąc, nie rozumiem do końca o co chodzi dokładnie, ale pytanie podstawowe - po co programujesz w Query żeby wyjąć pola z dwóch tabel, nie możesz użyć najzwyklejszego joina korzystając z funkcji Querki?
alabama
Posty: 10
Rejestracja: czw lut 16, 2017 11:03 am
Has thanked: 1 time
Been thanked: 1 time

Re: Jak wyciągnąć dane z KNB1 po KUNNR = LIKP-KUNNR?

Post autor: alabama »

Hej Hoofie,

masz pewnie kilku customerow pod jednym numerem odrębnie dla roznych company kodow.
Jak robisz select single to pobiera Ci pierwszy rekord z KNB1, ktory pewnie po prostu nie ma wypelnionego nr telefonu.
Sprawdz dokladnie, zrob test z podaniem kombinacji company kodu i customera, dla ktorej wiesz, ze TLFNS jest uzupelnione w KNB1.