Payment purpose in payment list Verwendungszweck in Zahlungsbegleitzettel#

r.SAPFPAYMZahlungsträger: Erstellung
x.OBPM1Pflege der Zahlungsträgerformate
x.OBPM2Pflege des Verwendungszwecks
x.OBPM3Zahlungsträgerformate (Customer)
x.OBPM4Zahlungsträgerselektionsvarianten
x.OBPM5Zahllaufübergreifende Zahlungsträger
s.FPM_LISTStructure "Zahlungsträger: Felder für die Zahlungsbegleitliste"

Im Include LFPAYM10F01 wird folgende FORM aufgerufen

form fill_acc_list using is_fpayh  like fpayh
                         is_fpayhx like fpayhx.
[...]                         
* fill fields (move-corresponding for customer includes)
  move-corresponding ls_fpayh  to gt_list.
  move-corresponding is_fpayhx to gt_list.
[...]  
"gt_list" ist die Struktur, die als ALV-Liste für den Zahlungsbegleitzettel benutzt wird. gt_list hat den Struktur-Typ FPM_LIST. Wenn man dort nun entsprechende Felder aus dem Vorrat von ls_fpayh oder ls_fpayx hinzufügt, dann sind diese sofort in dem Begleitzettel sichtbar, da die ALV-Liste dynamisch aus der Struktur aufgebaut wird. Im FPM_LIST gibt es das INCLUDE CI_FPM_LIST, so dass sie Erweiterung der Struktur modifikationsfrei gemacht werden kann.
Beispiel:
.INCLUDE   1 Type CI_FPM_LIST		0   0 Zahlungsbegleitlist Kundenerweiterung
PURP_CODE  1 Type FPM_PURP_CODE	CHAR	4   0 SEPA Purpose Code: Klassifizierung einer Zahlung/Lastschrift
ZREF01	   1 Type REFERZ_FPM	CHAR	132 0 Freitextfeld (Kundenspezifisch)
In den beiden Strukturen sind allerhand Felder zusätzlich verfügbar. Wenn ein Feld fehlt, kann man die kundenspezifischen Felder in der "is_fpayhx" Struktur (Typ FPAYHX) nutzen, d.h. ZREF01 - ZREF10.
Man füllt eines der Felder vor der Übergabe und erweitert wieder die Struktur FPM_LIST im Include CI_FPM_LIST.

Um ein kundenspezifisches Feld zu füllen, wird über fb.FI_PAYM_FILL_FPAYHX im Include LFPAYM11F01 ein kundenspezifischer Baustein aufgerufen:

FORM fill_reference_fields_fpayhx TABLES   ct_fpayp      STRUCTURE fpayp
                                  USING    is_fpayh      LIKE fpayh
                                           i_controller_called type c
                                  CHANGING cs_fpayhx     LIKE fpayhx.
[...]
* fill the reference fields of the customer in FPAYHX
* event 06
  CALL FUNCTION 'FI_PAYM_FORMAT_READ_EVENTS'
       EXPORTING
            i_formi         = cs_fpayhx-formi
            i_event         = '06'
       IMPORTING
            e_eventfunction = lc_fname
       EXCEPTIONS
            not_found       = 1
            OTHERS          = 2.
[...]
Dieser Baustein kann von FI_PAYMEDIUM_SAMPLE_06 kopiert werden. Er muss dann mit Transaktion OBPM3 für das jeweilige Zahlungsträgerformat zum Zeitpunkt "6" eingetragen sein.
FUNCTION Z_HR_FI_PAYMEDIUM_06.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(IS_FPAYH) LIKE  FPAYH STRUCTURE  FPAYH
*"     VALUE(IS_FPAYHX) LIKE  FPAYHX STRUCTURE  FPAYHX
*"     VALUE(I_PAYMEDIUM) TYPE  XFELD OPTIONAL
*"  EXPORTING
*"     REFERENCE(ES_FPAYHX_CREF) LIKE  FPAYHX_CREF STRUCTURE
*"        FPAYHX_CREF
*"  TABLES
*"      T_FPAYP STRUCTURE  FPAYP
*"----------------------------------------------------------------------

" ME, 29.01.2014
" Verwendungszweck in Zahlungbegleitliste

DATA: ls_FPAYP type FPAYP.

 READ TABLE T_FPAYP index 1 into ls_FPAYP.
 if sy-subrc = 0.
   ES_FPAYHX_CREF-ZREF01 = ls_FPAYP-SGTXT.
 endif.

ENDFUNCTION.