Re-Integrate Report
Report ZFI_BILENDO_IMPORT_V2 zur Feldrückschreibung von Bilendo nach SAP.
Übersicht
| Eigenschaft | Wert |
|---|---|
| Report | ZFI_BILENDO_IMPORT_V2 |
| SAP-Modul | FI-AR |
| Version | 2.1 |
| Funktion | Liest von Bilendo bereitgestellte CSV-Dateien ein und schreibt Feldwerte (Kreditlimit, Mahnstufe, etc.) in SAP-Stamm- und Bewegungsdaten zurück |
| Includes | ZFI_BILENDO_IMPORT_F01 |
| Abhängigkeit | ZCL_FI_BILENDO_ASSIST_V2 (→ 03 - Assist-Klasse) |
| Optional | Dieser Report ist nur erforderlich wenn die bidirektionale Integration (Bilendo → SAP) aktiviert werden soll |
Bilendo-seitige Dateien
Der Report verarbeitet fünf vordefinierte Dateitypen die von Bilendo auf dem SFTP-Server bereitgestellt werden:
| Parameter | Default-Dateiname | Inhalt | SAP-Ziel |
|---|---|---|---|
| P_C_INFO | bilendo_credit_informations | Bonitätsbewertungen | DBRTG (Rating), Datum |
| P_C_LIM | bilendo_credit_limits | Kreditlimits | KLIMK (Limit), CTLPC (Risikoklasse) |
| P_SEC | bilendo_securities | Versicherungsobligo | VLIBB (Vers. Limit) |
| P_CUST | bilendo_customers | Kundenstammänderungen | MAHNS, MANSP, MADAT, VLIBB |
| P_JOURN | bilendo_journal_entries | Belegänderungen | MANST, MANSP, MADAT (auf Belegebene) |
Selektionsbild
| Parameter | Typ | Default | Beschreibung |
|---|---|---|---|
| P_C_INFO | Text255 | bilendo_credit_informations | Dateiname Bonitätsinformationen |
| P_C_LIM | Text255 | bilendo_credit_limits | Dateiname Kreditlimits |
| P_SEC | Text255 | bilendo_securities | Dateiname Versicherungsobligo |
| P_CUST | Text255 | bilendo_customers | Dateiname Kundenstammänderungen |
| P_JOURN | Text255 | bilendo_journal_entries | Dateiname Belegänderungen |
| P_DIR | Text255 | /usr/sap/<SID>/COMM/Bilendo_IN/ | Eingangsverzeichnis (automatisch gesetzt) |
| P_DELETE | Checkbox | – | Verarbeitete Dateien nach Import löschen |
Quellcode
Hauptreport – ZFI_BILENDO_IMPORT_V2
*&---------------------------------------------------------------------*
*& Report ZFI_BILENDO_IMPORT_V2
*&---------------------------------------------------------------------*
* Owner: Bilendo GmbH
* Short functional description: Import FI-Belegänderungen und
* Stammdatenrückschreibung aus Bilendo-Plattform
*----------------------------------------------------------------------*
REPORT zfi_bilendo_import_v2 MESSAGE-ID zfi.
TABLES: bkpf, bseg.
DATA: gt_seltab TYPE TABLE OF rsparams,
gt_seltab_255 TYPE TABLE OF rsparamsl_255,
gf_file TYPE string,
gf_file_kna1 TYPE string,
gf_file_bseg TYPE string,
gf_file_bsid TYPE string,
gf_file_bsad TYPE string,
go_bilendo TYPE REF TO zcl_fi_bilendo_assist_v2,
gf_msg TYPE string,
gt_t001 TYPE TABLE OF t001,
gs_t001 TYPE t001,
gf_cust_info TYPE text255,
gf_cust_limit TYPE text255,
gf_securities TYPE text255,
gf_customers TYPE text255,
gf_journal TYPE text255.
CONSTANTS: gc_dir_hed TYPE string VALUE '/..../Bilendo_IN/', " ← DEV anpassen
gc_dir_heq TYPE string VALUE '/..../COMM/Bilendo_IN/', " ← QA anpassen
gc_dir_hep TYPE string VALUE '/..../Bilendo_IN/'. " ← PRD anpassen
PARAMETERS: p_c_info TYPE text255 DEFAULT 'bilendo_credit_informations',
p_c_lim TYPE text255 DEFAULT 'bilendo_credit_limits',
p_sec TYPE text255 DEFAULT 'bilendo_securities',
p_cust TYPE text255 DEFAULT 'bilendo_customers',
p_journ TYPE text255 DEFAULT 'bilendo_journal_entries',
p_dir TYPE text255,
p_delete TYPE xfeld.
INITIALIZATION.
CONCATENATE '/usr/sap/' sy-sysid '/COMM/Bilendo_IN/' INTO p_dir.
AT SELECTION-SCREEN OUTPUT.
START-OF-SELECTION.
gf_cust_info = p_c_info.
gf_cust_limit = p_c_lim.
gf_securities = p_sec.
gf_customers = p_cust.
gf_journal = p_journ.
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = sy-repid
TABLES
selection_table = gt_seltab
selection_table_255 = gt_seltab_255.
CREATE OBJECT go_bilendo
EXPORTING
it_seltab = gt_seltab_255.
" 1. Dateien im Verzeichnis suchen
CALL METHOD go_bilendo->get_files.
" 2. CSV-Dateien einlesen und parsen
CALL METHOD go_bilendo->read_csv( ).
" 3. Kreditlimit und Risikokategorie ändern
DATA: ls_credit_info TYPE go_bilendo->ty_s_credit_info,
ls_credit_limit TYPE go_bilendo->ty_s_credit_limit,
ls_customer TYPE go_bilendo->ty_s_customer,
ls_securities TYPE go_bilendo->ty_s_securities,
ls_journal TYPE go_bilendo->ty_s_journal.
CALL METHOD go_bilendo->credit_limit_change
EXPORTING
is_credit_info = ls_credit_info
is_credit_limit = ls_credit_limit.
" 4. Kundenstammänderungen durchführen
CALL METHOD go_bilendo->customer_change.
" 5. Belegänderungen durchführen
CALL METHOD go_bilendo->doc_change
EXPORTING
is_journal = ls_journal.
" 6. Optional: Verarbeitete Dateien löschen
IF p_delete = 'X'.
go_bilendo->delete_files( ).
ENDIF.
INCLUDE zfi_bilendo_import_f01.Include F01 – Dateinamen-Zusammenbau
*----------------------------------------------------------------------*
* Include ZFI_BILENDO_IMPORT_F01
*----------------------------------------------------------------------*
* Baut den vollständigen Pfad für die Eingangsdateien zusammen,
* basierend auf System-ID (sy-sysid).
*----------------------------------------------------------------------*
FORM get_filenames
CHANGING pf_file TYPE text255.
CONDENSE pf_file.
CASE sy-sysid.
WHEN 'HED'.
CONCATENATE gc_dir_hed pf_file INTO pf_file.
WHEN 'HEQ'.
CONCATENATE gc_dir_heq pf_file INTO pf_file.
WHEN 'HEP'.
CONCATENATE gc_dir_hep pf_file INTO pf_file.
WHEN OTHERS.
ENDCASE.
ENDFORM.Verarbeitungsablauf
flowchart TD
START[Report Start] --> FILES[get_files\nDateien im Verzeichnis suchen]
FILES --> CSV[read_csv\nCSV-Dateien einlesen und parsen]
CSV --> CREDIT[credit_limit_change\nKreditlimit + Risikokategorie]
CREDIT --> CUST[customer_change\nMahnstufe, Mahnsperre, Vers. Obligo]
CUST --> DOC[doc_change\nMahnstufe/-datum auf Belegebene]
DOC --> DEL{P_DELETE = X?}
DEL -->|Ja| DELETE[delete_files\nDateien bereinigen]
DEL -->|Nein| DONE[Ende]
DELETE --> DONEAnpassungshinweise
Verzeichnispfade
Die Pfade müssen an die Systemlandschaft angepasst werden:
" Im Report:
INITIALIZATION.
CONCATENATE '/usr/sap/' sy-sysid '/COMM/Bilendo_IN/' INTO p_dir.
" Im F01-Include:
CONSTANTS: gc_dir_hed TYPE string VALUE '/usr/sap/DEV/Bilendo_IN/', " ← anpassen
gc_dir_heq TYPE string VALUE '/usr/sap/QA/COMM/Bilendo_IN/', " ← anpassen
gc_dir_hep TYPE string VALUE '/usr/sap/PRD/Bilendo_IN/'. " ← anpassenSystem-IDs
Die WHEN-Zweige in F01 verwenden die System-IDs HED/HEQ/HEP. Diese müssen an die tatsächlichen System-IDs angepasst werden.
Berechtigungen für Rückschreibung
Die Methoden credit_limit_change, customer_change und doc_change verwenden BAPIs bzw. direkte Tabellenänderungen. Der ausführende Benutzer (SM36-Jobbenutzer) benötigt:
| Berechtigungsobjekt | Beschreibung |
|---|---|
| F_KNA1_BED | Debitorenstamm ändern |
| F_KNB1_BED | Debitorenstamm (BuKrs) ändern |
| F_BKPF_BUK | Buchungskreis-Zugriff FI |
| S_DATASET | Dateizugriff Applikationsserver |
Fehlerbehandlung
Die Assist-Klasse enthält eine send_email-Methode die bei Fehlern während der Rückschreibung eine Benachrichtigung versendet. Dies geschieht automatisch bei:
Fehlgeschlagenen Kreditlimit-Änderungen (BAPI-Return-Fehler)
Fehlgeschlagenen Kundenstammänderungen
Fehlgeschlagenen Belegänderungen
Die E-Mail-Konfiguration erfolgt innerhalb der Klasse (→ 03 - Assist-Klasse, Methode send_email).