Zlecenia płatnicze - jak skonfigurować

W tym dziale znajdują się posty z zakresu modułów finansowych systemu SAP...
marek.turczynski
Posty: 213
Rejestracja: czw lip 10, 2014 7:53 pm
Has thanked: 21 times
Been thanked: 258 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: marek.turczynski »

CL RMX też powinno zadziałać - musisz sprawdzić tylko co masz ustawione w części DME 'Dane Pliku':
SAP po polsku, nauka SAP, SAP dla początkujących, SAP, S/4HANA, SAP ERP, SAPFORUM, FORUMSAP, HANA, SAP CLOUD PLATFORM, ABAP, EWM

Sprawdź czy masz ustawioną opcję Dozwolone tylko te znaki. Jeżeli masz to ustawione i pole 'Znak' puste - wtedy system nie dopuszcza żadnego znaku i dlatego numer faktury jest kasowany.
Powinno się ustawiać zwykle opcję 'Te znaki są niedozwolone' (zwykle lista niedozwolonych znaków jest w specyfikacji od banku) i wpisywać ogólnie niedozwolone znaki z przelewu.

Pozdrawiam,
Marek
Marek Turczyński
PawelW
Posty: 185
Rejestracja: pn sty 02, 2017 2:19 pm
Has thanked: 55 times
Been thanked: 51 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: PawelW »

Masz pewnie rację. Zapomniałem o tym. Sprawdzę w poniedziałek. :)

Dzięki!
PawelW
Posty: 185
Rejestracja: pn sty 02, 2017 2:19 pm
Has thanked: 55 times
Been thanked: 51 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: PawelW »

Chciałem powrócić do tematu wyszukiwania wzorców. Zrobiłem chyba najprostszą konfigurację i oczywiście nie działa :)

Przypadek jest następujący:
1.png
1.png (75.86 KiB) Przejrzano 1840 razy
Kod transakcji SWIFT mam NTRF. Na początku każdego takiego opisu mam również kod transakcji. W tym przypadku 770. Lista tych kodów jest zdefiniowana i podana przez bank. Chciałbym zrobić taką konfigurację, aby dla np kodu NTRF system znalazł mi to 770 i podmienił odpowiednią regułę księgowania. Mam skonfigurowane następujące reguły:
2.png
2.png (9.84 KiB) Przejrzano 1840 razy
Oraz chyba najprostszy możliwy algorytm wyszukiwania:
3.png
3.png (26.14 KiB) Przejrzano 1840 razy
Po wczytaniu powyższego wyciągu, system sobie z tego algorytmu nic nie robi i przypisuje regułę P00+. A ja bym chciał, żeby w tym przypadku podmienił ją na P01+. Czy te algrytmy się gdzieś "włącza"? Czy może powinienem na to poszukać jakichś not?

Z góry dzięki za pomoc!
PawelW
Posty: 185
Rejestracja: pn sty 02, 2017 2:19 pm
Has thanked: 55 times
Been thanked: 51 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: PawelW »

Coś nie mogłem dodać czwartego załącznika. W każdym razie poniżej przykład jak chcę tego wzorca wyszukiwania używać:
4.png
4.png (47.61 KiB) Przejrzano 1835 razy
Zauważyłem, że na samym końcu w polu "Search string mapping" SAP wyświetla znaleziony wzorzec z wiodącymi spacjami. Czy to może mieć znaczenie?
marek.turczynski
Posty: 213
Rejestracja: czw lip 10, 2014 7:53 pm
Has thanked: 21 times
Been thanked: 258 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: marek.turczynski »

Cześć,

to co ustaliłeś we wzorcu mapowania to:
A. Znajdź wzorzec ^ ###
B. Zamień na wartość ###

Czyli mówiąc krótko jak system znajdzie:
770
to zmapuje je na
770 (bez poprzedzającej spacji)

Natomiast to co tak naprawdę chciałeś zrobić to:
A. Znajdź wzorzec ^ ###
B. Zmapuj na regułę płatności P01+

W takim wypadku Twoje mapowanie powinno być następujące:
Wzorzec Mapowanie
^

# -> 0
# -> 1
# -> +

Następnie w 'aktywacji' (Search string use) w polu mapping prefix wpisujesz P000. Wtedy, jak system znajdzie wpis ^ ### to zamieni wartość na 01+ podstawiając te wartości pod wzór P000. Czyli na koniec, jako wynik mapowania, dostaniesz wartość P01+.

Z tego co widzę masz źle przypisane aktywowanie - w OT83 (ustawienia mapowania wyciągu bankowego) masz przypisany algorytm intepretacji 001, natomiast w OTPM (Search String use) masz wpisany algorytm interpretacji 000 jako warunek wyszukania. Zmień go na albo 001 albo na 999 -Wszystkie algorytmy wyszukania. Wtedy dopiero prawidłowo zaktywujesz swój wzorzec.
Marek Turczyński
PawelW
Posty: 185
Rejestracja: pn sty 02, 2017 2:19 pm
Has thanked: 55 times
Been thanked: 51 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: PawelW »

Wielkie dzięki za odpowiedź. Rzeczywiście teraz działa :)

W takim razie mam pytanie dodatkowe o mechanizm działania tej funkcjonalności. Jeśli zdefiniuję kilka wzorców wyszukiwania dla jednej transakcji, to jak system się zachowa? Będzie jechał po kolei według tabelki w OTPM i jeśli coś znajdzie to zakończy dalsze wyszukiwanie? Co w przypadku jeśli 2 wzorce będą pasować? Np jednym algorytmem znajdę numer zlecenia płatniczego, a drugim kod transakcji? I będą wynikały z tego różne reguły księgowania?
marek.turczynski
Posty: 213
Rejestracja: czw lip 10, 2014 7:53 pm
Has thanked: 21 times
Been thanked: 258 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: marek.turczynski »

Zapomniałem odpowiedzieć Ci na ostatnie pytanie.

Funkcjonalność jest bardzo przydatna, ale nie jest szeroko stosowana przez konsultantów, którzy po prostu nie wiedzą ( w większości) jak jej użyć. Prościej jest zawsze naklepać ABAPA w exicie.

Możesz zmapować kilka/ kilkanaście wzorców wyszukiwania, które będą mapować różne wartości. System przeprowadzi analizę dla każdego z nich.
Jeżeli zmapujesz wiele wzorców i np. 2 różne ustawisz na mapowanie reguły księgowania to system, w zależności od wzorca, podstawi odpowiednią regułę księgowania.
Jeżeli jednak zmapujesz dwa dokładnie takie same wzorce wyszukiwania na dwie różne reguły księgowe, to system w efekcie ominie oba wzorce - jest to oczywista niekonsystencja konfiguracji i system nie wie który wzorzec podstawić, także nie podstawia żadnego, żeby nie było źle.

Przeczytaj sobie jeszcze noty:
925186 - Search pattern: Target field is filled randomly
952007 - Search pattern: Target field is filled randomly II
975109 - Search string: Target field is not filled

Prosty przykład jak masz kilka wzorców wyszukiwania i kilka różnych wartości to jak chcesz zmapować pole BDC - np. COEP-PPRCTR -> musisz zrobić jeden wzorzec na podanie nazwy pola (COEP-PPRCTR), drugi na wskazanie w której lini ma się podstawić (np. 0 -> pierwsza linia z reguły księgowania w obszarze 1) i trzeci na wskazanie wartości np. 9012128. Wtedy masz 3 wzorce i 3 aktywne mapowania:
BDC Account Type 1 = '0'
BDC Field Name 1 = 'COEP-PPRCTR'
BDC Field Value 1 = '9012128'
Marek Turczyński
dominik.tylczynski
Posty: 8328
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1916 times
Been thanked: 1474 times
Kontakt:

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: dominik.tylczynski »

Akarin pisze: pn maja 29, 2017 11:03 pmFunkcjonalność jest bardzo przydatna, ale nie jest szeroko stosowana przez konsultantów, którzy po prostu nie wiedzą ( w większości) jak jej użyć. Prościej jest zawsze naklepać ABAPA w exicie.
To fakt, bardzo często tak istotnie jest. Wychodzi, że łatwiej jest pisać w ABAP'ie niż czytać ze zrozumieniem dokumentację i noty.
PawelW
Posty: 185
Rejestracja: pn sty 02, 2017 2:19 pm
Has thanked: 55 times
Been thanked: 51 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: PawelW »

Wielkie dzięki za odpowiedź! Naprawdę mi pomógł ten wątek. Póki co wszystko mi elegancko działa :)
PawelW
Posty: 185
Rejestracja: pn sty 02, 2017 2:19 pm
Has thanked: 55 times
Been thanked: 51 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: PawelW »

Witajcie,

Z okazji tego, że konfiguruję teraz możliwość generowania plików płatności dla przelewów SEPA z XML, postanowiłem trochę odgrzebać ten wątek ;) Co udało mi się zrobić:
1. Zainstalowałem notę 2253571 dzięki czemu mam drzewo DMEE nazywające się CGI_XML_CT
2. W F110 dostawałem short dump, który rozwiązałem notą 2133039 - taka informacja dla potomnych, jeśli milibyście z tym problem w przyszłości :)
3. Skonfigurowałem "Instruction Keys" według instrukcji z noty oraz odkryłem je do edycji podczas wprowadzania dokumentu. Jeśli chodzi o wartości to jestem prawie pewien, że zrobiłem to nieprawidłowo. Dla pola 1 wprowadziłem tylko wartość "SEPA" bo zauważyłem, że jest to przypisywane do pola <SvcLvl><Cd> w XMLu, a o to krzyczał system bankowy. Instruction key 2 wziąłem z instrukcji od banku, ale na dokumencie go nie wypełniam bo SEPA tego nie potrzebuje.
4. Wygenerowałem testowy plik z płatności i bank go przyjmuje. Wygląda OK.

Jest tylko jedno "ale" :)

Całe to drzewo DMEE jest dla mnie mega nieczytelne bo prawie wszystkie pola są generowane w exicie i w zasadzie nie wiem czemu to działa :) Tego czego mi brakuje to tytuł przelewu. Konfigurację w OBPM1 - do OBPM4 zrobiłem tak, jak dla zwykłego elixiru a tytuł przelewu jak się nie wyprowadzał, tak się nie wyprowadza. Chciałbym tam numery płąconych faktur oraz numer zlecenia płatniczego.

Druga sprawa to chciałem się upewnić, skąd in wie jaki rodzaj XMLa wygenerować? (przelew krajowy, zagraniczny, SEPA, itd). Skoro już implementuję tego XMLa to może będę chciał go używać dla wszystkich typów przelewów. Przynajmniej czegoś nowego się nauczę :) Moje rozumienie tego jest takie, że kluczowe są tutaj te pola "Instruction key" i teoretycznie mogłyby one zastąpić metodę płatności. Czy ktoś jest mi w stanie to potwierdzić albo zaprzeczyć? Dokumentacja SAP jest dla mnie też trochę niejasna w tej materii...
PawelW
Posty: 185
Rejestracja: pn sty 02, 2017 2:19 pm
Has thanked: 55 times
Been thanked: 51 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: PawelW »

Znowu sobie trochę sam odpowiem.

Otórz:
* Instruction key 1 (BSEG-DTWS1) mapuje się do <PmtTpInf><SvcLvl><Cd> - gdzie trzeba wpisać "SEPA" jeśli to jest przelew SEPA
* Instruction key 2 (BSEG-DTWS2) mapuje się do <PmtTpInf><CtgyPurp><Cd> - tutaj mogę wpisać SSBE lub TAXS dla przelewów ZUS/ US
* FPAYP-STRFR (DMEE) czyli według tego co udało mi się ustalić powinno się to brać z BSEG-KIDNO a to z kolei trafić w XMLu do <CdtTrfTxInf><Purp><Prtry> - "powinno" jest tutaj słowem kluczowym bo u mnie to nie działa :) W drzewie DMEE widzimy:
SCR1.png
SCR1.png (44.53 KiB) Przejrzano 1675 razy
i warunek, którego nie za bardzo rozumiem:
SCR2.png
SCR2.png (14.98 KiB) Przejrzano 1675 razy
I na koniec węzeł techniczny:
SCR3.png
SCR3.png (27 KiB) Przejrzano 1675 razy
Powyższe jest obsługiwane przez exit FI_CGI_DMEE_EXIT_W_BADI

Tutaj bym prosił, aby ktoś mi pomógł albo z analizą tego exita, albo w inny sposób bo trochę utknąłem w martwym punkcie. Niestety ekspertem od APAPa nie jestem. Byłbym bardzo wdzięczny. Tytułu przelewu również nie udało mi się jeszcze wypełnić.

PS. Nie da się rozszerzyć ilości dozwolonych załączników? W tej chwili można do posta dołączyć maksymalnie 3. Myślę że kolejne 30Kb nie obiążyłoby serwera aż tak bardzo :)
PawelW
Posty: 185
Rejestracja: pn sty 02, 2017 2:19 pm
Has thanked: 55 times
Been thanked: 51 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: PawelW »

I po raz kolejny sam sobie odpowiem ;)

Jak wiadomo, debugger Twoim przyjacielem jest. Znalazłem winowajcę. Exit FI_CGI_DMEE_EXIT_W_BADI przyjmuje parametr I_TAB:
SCR1.png
SCR1.png (24.61 KiB) Przejrzano 1661 razy
Jak widać, już na samym początku trafiają tam nieodpowiednie wartości:
SCR2.png
SCR2.png (30.64 KiB) Przejrzano 1661 razy
Pole TYPE powinno mieć długość 1, albo przynajmniej powinna tam trafić wartość jednoznakowa. Wartość z numerem faktury/ numerem zlecenia płatniczego powinna być w polu TEXT. Jak widać SAP sobie 5 znaków z pola TEXT dokleił do TYPE.

Gdzieś tam w okolicach 1385 lini metody GET_CREDIT (CL_IDFI_CGI_DMEE_FALLBACK) widzimy wywołanie, w którym węzeł powinien zostać uzupełniony

Kod: Zaznacz cały

      WHEN '<PmtInf><CdtTrfTxInf><RmtInf><Ustrd>'.            "n2322683
*       Unstructured tag is created with BAdI exit from NoteToPayee as
*       a concateneted Type 3 + Type 1
        CLEAR c_value.
        CALL METHOD cl_idfi_cgi_dmee_utils=>get_note2payee_by_type
          EXPORTING
            im_type = '3
          IMPORTING
            ex_note = c_value.
        CALL METHOD cl_idfi_cgi_dmee_utils=>get_note2payee_by_type
          EXPORTING
          [b]  im_type = '1'[/b]
          IMPORTING
            ex_note = c_value.
Powyżej wywoływana jest metoda GET_NOTE2PAYEE_BY_TYPE (CL_IDFI_CGI_DMEE_UTILS):

Kod: Zaznacz cały

  LOOP AT mt_text_content INTO ls_text_content
    WHERE type EQ im_type.

*   Concatenate output
    CONCATENATE ex_note ls_text_content-text INTO ex_note.
  ENDLOOP.
I teraz wiadomo, że pole będzie puste i się nie wyświetli w XMLu. On się tutaj spodziewa typu "3" a nie "3PY290" (ewentualnie "1", zamiast "1FV 12"). W związku z tym, zmienna ex_note będzie zawsze pusta.
PawelW
Posty: 185
Rejestracja: pn sty 02, 2017 2:19 pm
Has thanked: 55 times
Been thanked: 51 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: PawelW »

A na koniec sam sobie rozwiążę problem ;)

Okazało się, że aby rozwiązać powyższy problem trzeba było wgrać notę 1969066 (DMEE: FI_PAYMEDIUM_DMEE_30 uses structure with incorrect typing). A żeby było ciekawie, w moim systemie miała ona status "cannot be implemented". Zostawiam to info dla potomnych ;)
sapdoctor
Posty: 47
Rejestracja: czw wrz 14, 2017 12:06 pm
Been thanked: 7 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: sapdoctor »

Witam,

Mam pytanie : w transakcji OBPM2 mamy kolumne "numer linii". Co ona oznacza i czym ona steruje? Czy mogę prosić o wyjaśnienie na konkretnym przykładzie?
Zazwyczaj jest tam "1". :?:
marek.turczynski
Posty: 213
Rejestracja: czw lip 10, 2014 7:53 pm
Has thanked: 21 times
Been thanked: 258 times

Re: Zlecenia płatnicze - jak skonfigurować

Post autor: marek.turczynski »

Numer linii to nic innego jak sekwencyjny numer w OBPM2. Może się zdarzyć, że masz pro prostu tak długą formułę (złożoną np. z wielu pól FPAYH/ FPAYP), że nie zmieścisz jej w jednej linii (max 150 znaków na linię). Niezależnie od ilości podanych przez Ciebie linii, w DMEE wszystkie wartości zostaną złączone w jeden ciąg(gdyż w DMEE używasz tylko tylko Typu linii zastosowania a nie numeru jego linii.
Marek Turczyński
ODPOWIEDZ