SQVI MARA_MAPL_CDHDR_CPOS

A tu dla odmiany podyskutować możesz na tematy logistyczne SAP. Jeśli pojawią się jakieś pytania, nie zwlekaj, zadaj je natychmiast.
inspir
Posty: 40
Rejestracja: czw paź 26, 2017 2:08 pm
Has thanked: 3 times
Been thanked: 12 times

Re: SQVI MARA_MAPL_CDHDR_CPOS

Post autor: inspir »

ustaw w taki razie debug na select i sprawdź czemu nie pobiera Ci daty, upewnij się, że dane są w tabelach(że nie jesteś na systemie developerskim bez danych). I ja bym jeszcze zmienił tego selecta na Select single, aby pobrał jedną konkretną wartość
dominik.tylczynski
Posty: 8356
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: SQVI MARA_MAPL_CDHDR_CPOS

Post autor: dominik.tylczynski »

kpawlak pisze: wt lis 23, 2021 3:31 pm Niestety, wartość lv_bedat i lv_udate 00.00.0000
Musisz popracować na selektami z dokumentów zmian. Postaw może break-point w kodzie, gdzie robisz te selekty i zobacz co się dzieje.

kpawlak pisze: wt lis 23, 2021 3:31 pmAle różnica wyszła prawidłowo w tym przypadku 0 :P
Czyli jednak jakiś postęp jest :)
kpawlak
Posty: 14
Rejestracja: pt paź 01, 2021 3:40 pm

Re: SQVI MARA_MAPL_CDHDR_CPOS

Post autor: kpawlak »

W SQ02 to chyba jednak nie wyjdzie. Postanowiłem sprawdzić swoich sił bezpośrednio z kodzie. I od razu napotkałem problem.
Dlaczego tabela zit_rap nie ma danych? Gdzie zrobiłem błąd?

TYPES: BEGIN OF str_cdposcdhdr,
lv_objectclas TYPE cdpos-objectclas,
lv_changenr TYPE cdpos-changenr,
lv_tabname TYPE cdpos-tabname,
lv_fname TYPE cdpos-fname,
lv_valuenew TYPE cdpos-value_new,
lv_udate TYPE cdhdr-udate,
END OF str_cdposcdhdr.

DATA zit_cdposcdhdr TYPE TABLE OF str_cdposcdhdr.

SELECT p~objectclas p~changenr p~tabname p~fname p~value_new h~udate
FROM cdpos AS p INNER JOIN cdhdr AS h
ON p~objectid = h~objectid
AND p~changenr = h~changenr
INTO TABLE zit_cdposcdhdr
WHERE p~objectclas = 'EINKBELEG'
AND p~objectid = '6000062615'
AND p~value_new = '3W'.

TYPES: BEGIN OF str_rap,
lv_ebeln TYPE ekko-ebeln,
lv_ernam TYPE ekko-ernam,
lv_angdt TYPE ekko-angdt,
lv_bstyp TYPE ekko-bstyp,
lv_objectid TYPE zit_cdposcdhdr-lv_objectid,
lv_udate TYPE zit_cdposcdhdr-lv_udate,
END OF str_rap.

DATA zit_rap TYPE TABLE OF str_rap.

SELECT e~ebeln e~ernam e~angdt e~bstyp c~lv_objectid c~lv_udate
FROM ekko AS e INNER JOIN zit_cdposcdhdr AS c
ON e~ebeln = c~lv_objectid
INTO TABLE zit_rap
WHERE e~ebeln = c~lv_objectid.


BREAK-POINT.

Pozdrawiam,
inspir
Posty: 40
Rejestracja: czw paź 26, 2017 2:08 pm
Has thanked: 3 times
Been thanked: 12 times

Re: SQVI MARA_MAPL_CDHDR_CPOS

Post autor: inspir »

Jakie życie taki
zit_rap
Jaki ABAP taki SAP :D

A tak poważnie to nie do końca rozumiem co tutaj chcesz osiągnąć. Po co Ci te tabelki są? zit_cdposcdhr i zit_rap?
Wrzuciłem na szybko Twój kod do SAPa i się nie kompiluje z powodu JOINA na cdpos(ale to może być też kwestia wersji ABAPa), jeżeli Ci się kompiluje
to powiedz czy masz jakiekolwiek dane w tabeli zit_cdposcdhdr?
kpawlak
Posty: 14
Rejestracja: pt paź 01, 2021 3:40 pm

Re: SQVI MARA_MAPL_CDHDR_CPOS

Post autor: kpawlak »

W tabeli zit_cdposcdhdr mam wczytane poprawne dane.

Tą tabele chciałbym połączyć z ekko i ekpo żeby mieć niezbędne dane do mojego raportu o terminowości zdobywanych ofert.

Jeśli chodzi o wersje SAP 6 z najnowszym upgradem 8.
inspir
Posty: 40
Rejestracja: czw paź 26, 2017 2:08 pm
Has thanked: 3 times
Been thanked: 12 times

Re: SQVI MARA_MAPL_CDHDR_CPOS

Post autor: inspir »

Nie można zrobić selecta z tabeli wewnętrznej, tylko i wylącznie z baz danych - dziwne, że kompilator nie wyrzuca Ci błędu.

Zamiast tego można spróbować najpierw wyciągnąć wszystkie dane z ekko dla danych z tabeli zit_cdposcdhdr, trzeba by było utowrzyć nową pomocniczą tabelę, później zrobić loopa po tej tabeli, a następnie read table.

czyli coś takiego:

LOOP AT lt_ekko.
READ zit_cdposcdhdr WITH KEY lv_objectid = lt_ekko-ebeln USING BINARY SEARCH.
IF sy-subrc = 0.
zit_rap-objectid = zit_cdposcdhdr-objectid.
.
.
.
i tak wszystkie pola,
a na koniec
APPEND zit_rap.

ENDIF.
dominik.tylczynski
Posty: 8356
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: SQVI MARA_MAPL_CDHDR_CPOS

Post autor: dominik.tylczynski »

inspir pisze: pn gru 06, 2021 2:25 pm Nie można zrobić selecta z tabeli wewnętrznej, tylko i wylącznie z baz danych - dziwne, że kompilator nie wyrzuca Ci błędu.
W nowym, tj. 7.52 ABAPie można zrobić selecta z tabeli wewnętrznej - SELECT - FROM @itab
:
SAP Help pisze:Specifies an internal table itab, whose name must be prefixed with the @ character, as a data source of a query. The SELECT statement handles the internal table of the application server like a database table on the database.
ODPOWIEDZ