BKPF-VATDATE, BADI VATDATE_VALUES

W tym dziale znajdują się posty z zakresu modułów finansowych systemu SAP...
ODPOWIEDZ
wojtas7
Posty: 1058
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 313 times

BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: wojtas7 »

Hej

czy ktoś używa BADI VATDATE_VALUES do zmiany wartości pola BKPF-VATDATE?

Moje pytanie jest takie, czy jeśli mamy fakturę SD, do tej faktury powstaje księgowanie FI i w tym BADI zmieniamy wartość pola BKPF-VATDATE, to czy możemy w nim bezpiecznie zrobić SELECT FROM VBRK, czy tabela z fakturami SD jeszcze nie jest zapisana?

Dzięki
marek.turczynski
Posty: 213
Rejestracja: czw lip 10, 2014 7:53 pm
Has thanked: 21 times
Been thanked: 258 times

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: marek.turczynski »

Cześć,

to BADI jest odpalane w takcie księgowania, awięc tabele SD muszą być już wypełnione na 100%, bo inaczej nie uzupełnił by się interfejs. Ja na jednym z projektów używałem dokładnie tego BADI do wyciągania rzeczywistej daty dostawy i ustawiania jej jako Daty VAT i działało spokojnie po wszystkich tabelach SD, włącznie z VBFA.

Marek
Marek Turczyński
wojtas7
Posty: 1058
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 313 times

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: wojtas7 »

Dzięki za perfekcyjną odpowiedź!

Szkoda że u nas rzeczywistej daty dostawy nie mamy w systemie, musielibyśmy sprawdzać po listach przewozowych kurierów, dlatego uznaliśmy arbitralnie że transport trwa dwa dni robocze.
wojtas7
Posty: 1058
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 313 times

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: wojtas7 »

Niestety nie działa to tak: może to zależy od momentu księgowania faktur w FI u Was?
U nas faktura SD powstaje wieczorem w dniu wysyłki towaru, od razu idzie księgowanie do FI.

W tym BADI w tym momencie w bazie nie ma jeszcze faktury SD, więc nie mam jak sprawdzić rodzaju faktury.

Rozwiązaniem by było śledzenie listów przewozowych i dat rzeczywistej dostawy - mamy je w dostawach wyjściowych. Tylko że jest to zwykle dwa dni po zaksięgowaniu faktury. Należałoby napisać dodatkowy program, który dla wszystkich faktur sprawdza rzeczywiste daty dostawy i wypełnia pole BKPF-VATDATE, czy źle myślę?
marek.turczynski
Posty: 213
Rejestracja: czw lip 10, 2014 7:53 pm
Has thanked: 21 times
Been thanked: 258 times

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: marek.turczynski »

Faktura w FI nie powstanie do póki nie ma stworzonej faktury w SD - tak działa interfejs między FI a SD. Nie ma możliwości zaksięgowania dokumentu FI bez tabel SD, bo to na podstawie tabel SD tworzony jest dokument księgowy.

Zaimplementowałeś enhancement point w tym BADI w metodzie VATDATE_DETERMINE? Jeżeli nie, to:
Czy edytowaleś standardowy kod?
Czy zrobiłeś właśną implementację BADI i zdezaktywowałeś domyślną implementację SAP (klasa implementująca CL_BADI_EXM_VATDATE_VALUES_SAP)?

Pozdrawiam,
Marek
Marek Turczyński
wojtas7
Posty: 1058
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 313 times

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: wojtas7 »

Oczywiście że najpierw księguje się faktura SD, a potem w FI. W moim systemie testowym jest 4s różnicy czasu wpisów w tabelach VBRK i BKPF a mimo to faktura SD w BADI nie jest jeszcze dostępna w tabeli VBRK.

BADI oczywiście aktywowane prawidłowo - dodaję w nim 2 dni robocze do pola VAT DATE, ale mam taki przypadek, gdzie dla określonego typu faktury SD nie chcę dodawać tych 2 dni i zostawic datę księgowania w VAT DATE. W BADI jest select from vbrk, i nie odnajduje, i dodaje te 2 dni, więc na 99,99% faktury SD po prostu nie ma jeszcze zcommitowanej w bazie..
dominik.tylczynski
Posty: 8327
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1916 times
Been thanked: 1474 times
Kontakt:

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: dominik.tylczynski »

Tak jak Wojtek piszesz skoro faktura SD i faktura FI są zapisywane w tym samym LUW (Logical Unit of Work) to nagłówek faktury SD w tablicy VBRK nie jest jeszcze zapisany, nie został wykonany commit work.
Natomiast rekordy, a przynajmniej ich część w tablicy VBFA na pewno są dostępne. VBFA to obieg dokumentów SD. Zatem rekordy dotyczące zlecenia sprzedaży, dostawy na pewno są już w tej tablicy i można je odczytać w BADI VATDATE_VALUES.
Zobacz czy na podstawie danych przekazywanych do BADI VATDATE_VALUES i zawartości tablicy VBFA dasz radę odczytać faktyczną datę dostawy.
marek.turczynski
Posty: 213
Rejestracja: czw lip 10, 2014 7:53 pm
Has thanked: 21 times
Been thanked: 258 times

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: marek.turczynski »

Jeszcze, jak chcesz w prosty sposób zmanipulować datę VAT a nie chcesz robić selekcji z VBFA (sprawdziłem kod jaki robiliśmy u klienta i tam opieraliśmy się o VBFA w wyciąganiu zależnych danych), to możesz użyć exita SDVFX008 (moduł funkcyjny EXIT_SAPLV60B_008). W tym miejscu, masz dostęp do VBRK i VBRK podczas runtime.

Tam wystarczy, że w każdej linii dokumentu podasz datę VAT jaką chcesz zaktualizować w systemie i wtedy wartości będą przekazane do dokumentu księgowego.

Przykładowy kod dla Twojego przypadku:

Kod: Zaznacz cały

SELECT SINGLE xvatdate FROM t001 INTO data@(lv_vatdate)
  WHERE bukrs = @cvbrk-bukrs.

  IF lv_vatdate EQ abap_true.    "tax reporting date active -update VATADTE
    LOOP AT xaccit[] ASSIGNING FIELD-SYMBOL(<ls_accit>).
<ls_accit>-vatdate = <ls_accit>-vatdate + 2. "lepiej zrobić to przez tabelkę konfiguracyjną niż wpisywać 2 na sztywno
    ENDLOOP.
  ENDIF.
Oczywiście kod może się różnić, jeżeli nie masz na systemie ABAP 7.5 - wtedy musisz zmienne wcześniej zadeklarować poprzez DATA - nie możesz używać host variables.
Dodaj do tego sobie tabelę konfiguracyjną ze sterowaniem ile dni ma być dodane w zależności od rodzaju faktury SD i zrobione.

Pozdrawiam,
Marek
Ostatnio zmieniony czw lut 23, 2017 10:53 am przez marek.turczynski, łącznie zmieniany 1 raz.
Marek Turczyński
wojtas7
Posty: 1058
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 313 times

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: wojtas7 »

OK dzięki, poradziłem sobie po analizie danych i wystarczy typ faktury SD jednak, który jest w interfejsie i nie trzeba czytać po tabeli VBRK.

Teraz druga zagwozdka - faktura powstaje w momencie wysyłki towaru, który idzie średnio 2 dni. Ale oczywiście może to się czasem różnić. Czy trzeba by napisać dodatkowy program, który czyta daty dostaw i uzupełnia na dokumentach FI datę VAT?
marek.turczynski
Posty: 213
Rejestracja: czw lip 10, 2014 7:53 pm
Has thanked: 21 times
Been thanked: 258 times

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: marek.turczynski »

Jak rozumiem ta zmiana Daty VAT ma mieć miejsce już po zaksięgowaniu dokumentu, tak?
W takim razie bez programu się nie obejdzie. Natomiast uważaj na plants abroad - masz tą funkcję włączoną? Bo jak zmienisz datę VAT, to w tym przypadku również zmienia się kurs dla VAT i będziesz miał niezgodność wartości w polach BSET-LWSTE/LWBAS (wartość VAT w walucie kraju podatku). Jest nota od SAP z pomocą której możesz to skorygować, ale trzeba zgłosić ticket do SAP, żeby ją odblokowali dla Twojej firmy.
Marek Turczyński
dominik.tylczynski
Posty: 8327
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1916 times
Been thanked: 1474 times
Kontakt:

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: dominik.tylczynski »

Akarin pisze: czw lut 23, 2017 10:58 am Jak rozumiem ta zmiana Daty VAT ma mieć miejsce już po zaksięgowaniu dokumentu, tak?
W takim razie bez programu się nie obejdzie. Natomiast uważaj na plants abroad - masz tą funkcję włączoną? Bo jak zmienisz datę VAT, to w tym przypadku również zmienia się kurs dla VAT i będziesz miał niezgodność wartości w polach BSET-LWSTE/LWBAS (wartość VAT w walucie kraju podatku). Jest nota od SAP z pomocą której możesz to skorygować, ale trzeba zgłosić ticket do SAP, żeby ją odblokowali dla Twojej firmy.
Znasz numer tej noty?
marek.turczynski
Posty: 213
Rejestracja: czw lip 10, 2014 7:53 pm
Has thanked: 21 times
Been thanked: 258 times

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: marek.turczynski »

Oczywiście. Musiałem skorzystać z tego programu po tym jak SAP skopał determinację kursu VAT w plants abroad (naprawili to OSSem szybko, ale stare dokumenty pozostały ze złymi wartościami)- programik poprawił dane.
Nota:
1055835 - Redetermining tax values in national currency in BSET
Zawiera program ZF_BSET_LW_BY_WIA , ktory ponownie przelicza wartości LSBAS i LWSTE na podstawie podanej daty VAT z dokumentu (albo kursu dla podatków podanego ręcznie).

Dodatkowa przydatna nowa (dostępna dla wszystkich):
1908750 - BSET - tax in local currency HWSTE <> document currency FWSTE --> reporting RFUMSV00 incorrect
Zawiera program ZF_CORR_RBTX_HWSTE.
Marek Turczyński
dominik.tylczynski
Posty: 8327
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1916 times
Been thanked: 1474 times
Kontakt:

Re: BKPF-VATDATE, BADI VATDATE_VALUES

Post autor: dominik.tylczynski »

Dziękuję
ODPOWIEDZ