Numer dokumentu rozliczeniowego jest jednym z dynamicznych kryteriów selekcji w FBL1N - można go podać w poleceniu SUBMIT z klauzulą WITH FREE SELECTIONSjoanna1998 pisze: ↑pn maja 13, 2024 10:49 pm Wydaje mi się, że wariant z sortowaniem może się nie udać - ALV wyświetla listę payment documentów z REGUP, hotspot ustawiony jest wlasnie na kolumnę payment doc - chcę, żeby po kliknieciu w poszczegolny numer przenosiło mnie do wybranego clearingu. Nie widzę, żeby to się dało zrobić wariantem - czy się mylę?
CALL TRANSACTION
Re: CALL TRANSACTION
Pozdrawiam,
Krzysiek
Krzysiek
-
- Posty: 8465
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1991 times
- Been thanked: 1501 times
Re: CALL TRANSACTION
Na moje oko przy pomocy CALL TRANSACTION ... USING ..., a do tego się sprowadza nagranie w SHDB nie da się włączyć sortowania listy ALV. Czy nie lepiej byłoby tutaj wykorzystać standardowy wariant wyświetlania ALV?
Nie sprawdzałem dokładnie transakcji, o których mowa w tym wątku. Natomiast wg mojej wiedzy SUBMIT służy do wywoływania raportów, a nagranie i CALL TRANSACTION raczej do transakcji dialogowych. Naturalnie mogę się mylić...
-
- Posty: 605
- Rejestracja: pn lut 14, 2011 9:10 pm
- Has thanked: 439 times
- Been thanked: 278 times
Re: CALL TRANSACTION
Cześć,
Z analizy wymagań użytkownika wynika, że oczekuje mechanizmu podobnego do uzyskanego gdy przeglądamy dokument rozliczeniowy i wybierzemy z menu dla dokumentu rozliczeniowego: Otoczenie -> Wykorzystanie płatności .
Czyli nie potrzeba nam CALL TRANSACTION FB03... (bo potrzebujemy listę pozycji a nie dokumentów) tylko SUBMIT 'RFITEMAP' WITH SELECTION-TABLE lt_seltab AND RETURN gdzie lt_seltab wypełnimy tym co sobie stryjenka winszuje np. numer/rok/JG dokumentu rozliczeniowego/płatności etc.
Oczywiście możemy pewnie zrobić to przez CALL TRANSACTION 'FBL1N' lub przez nagranie ale używam prostych środków bo jestem leniwy więc utworzyłem wariant wyświetlania (dla FBL1N ze wszystkimi wymaganiami biznesu do układu, sortowania etc.) dedykowany do użycia w tym ALV/raporcie i przekazałem go do:
lt_seltab-selname = 'PA_VARI'
lt_seltab-sign = 'I'.
lt_seltab-option = 'EQ'.
lt_seltab-low = gc_rep_variant. "nazwa wariantu do tego ALV
APPEND lt_seltab.
Powyższe podejście sprawdziło się dla bardziej wyrafinowanych wymagań niż opisane w zadaniu.
Oczywiście nie wszystkim można wysterować przez SUBMIT... czy CALL TRANSACTION... czy BATCH-INPUT...np. gdy kliknę w pozycję listy (pozycja dokumentu) to jaka będzie prezentacja: FB03 czy FB09, ALV GRID czy lista malowana WRITE? Ale tym też można wysterować w danym raporcie
Z analizy wymagań użytkownika wynika, że oczekuje mechanizmu podobnego do uzyskanego gdy przeglądamy dokument rozliczeniowy i wybierzemy z menu dla dokumentu rozliczeniowego: Otoczenie -> Wykorzystanie płatności .
Czyli nie potrzeba nam CALL TRANSACTION FB03... (bo potrzebujemy listę pozycji a nie dokumentów) tylko SUBMIT 'RFITEMAP' WITH SELECTION-TABLE lt_seltab AND RETURN gdzie lt_seltab wypełnimy tym co sobie stryjenka winszuje np. numer/rok/JG dokumentu rozliczeniowego/płatności etc.
Oczywiście możemy pewnie zrobić to przez CALL TRANSACTION 'FBL1N' lub przez nagranie ale używam prostych środków bo jestem leniwy więc utworzyłem wariant wyświetlania (dla FBL1N ze wszystkimi wymaganiami biznesu do układu, sortowania etc.) dedykowany do użycia w tym ALV/raporcie i przekazałem go do:
lt_seltab-selname = 'PA_VARI'
lt_seltab-sign = 'I'.
lt_seltab-option = 'EQ'.
lt_seltab-low = gc_rep_variant. "nazwa wariantu do tego ALV
APPEND lt_seltab.
Powyższe podejście sprawdziło się dla bardziej wyrafinowanych wymagań niż opisane w zadaniu.
Oczywiście nie wszystkim można wysterować przez SUBMIT... czy CALL TRANSACTION... czy BATCH-INPUT...np. gdy kliknę w pozycję listy (pozycja dokumentu) to jaka będzie prezentacja: FB03 czy FB09, ALV GRID czy lista malowana WRITE? Ale tym też można wysterować w danym raporcie
Ostatnio zmieniony czw cze 13, 2024 1:52 am przez RKISIEL, łącznie zmieniany 2 razy.
Rafał Kisiel
Re: CALL TRANSACTION
A ja proponuję, aby ta pani napisał raz jeszcze, po ludzku, co dokładnie chce. Deterministycznie, nie probabilistycznie i będzie okej, bo tracimy czas na domysły. Raporty z rodziny FBL*N są bardzo przyjazne i można z nimi wiele zrobić. Robiłem nawet tak dla jednego klienta, że w pętli wywoływały się te raporty, z innymi kryteriami, a na końcu, puszczałem pusty raport i ładowałem w locie dane do niego, jako kompozycja poprzednio wywołanych.
Dla klienta to było jedno kliknięcie, a działo się wiele niewidocznych rzeczy. Więc tak, mam przekonanie, że z nim da się zrobić prawie wszystko. Co do wspomnianego sortowania w środku, to na upartego można skorzystać z BAdI FI_ITEMS_CH_DATA i w zależność od parametrów, ogarnąć sortowanie... lub jak wspomniałem w następnym wpisie...
Dla klienta to było jedno kliknięcie, a działo się wiele niewidocznych rzeczy. Więc tak, mam przekonanie, że z nim da się zrobić prawie wszystko. Co do wspomnianego sortowania w środku, to na upartego można skorzystać z BAdI FI_ITEMS_CH_DATA i w zależność od parametrów, ogarnąć sortowanie... lub jak wspomniałem w następnym wpisie...
Ostatnio zmieniony czw maja 16, 2024 10:04 am przez K602, łącznie zmieniany 1 raz.
SAP ABAP Certified Developer
Re: CALL TRANSACTION
Zawsze możesz zrobić to na końcu np.:
Kod: Zaznacz cały
TRY.
cl_salv_bs_runtime_info=>get_data_ref(
IMPORTING
r_data = lo_raport_data
).
ASSIGN lo_raport_data->* TO FIELD-SYMBOL(<fs_outtab>).
IF <fs_outtab> IS ASSIGNED.
ct_items_aux = <fs_outtab>.
SORT ct_items_aux BY...
ENDIF.
CATCH cx_salv_bs_sc_runtime_info.
ENDTRY.
SAP ABAP Certified Developer