Import von Zählpunkten und weiteren Daten per CSV

CSV-Import für den Zählpunkt-Index

Dieser Service kann in der B2B als Scheduler konfiguriert werden. Der Service importiert aus einem Verzeichnis eine oder mehrere CSV-Dateien und schreibt die darin enthaltenen Daten in einen Lucene-Index. Der Standardfall ist, dass die CSV-Datei Zählpunktdaten enthält und daraus entsprechend der Zählpunktindex aufgebaut wird. Dieser Zählpunktindex wird dann von der Systemweiche verwendet, um Nachrichten oder Vorgänge an die konfigurierten Zielsysteme zu verteilen.

Service

Der Service ist ein Scheduler. Weitere Details zur Einrichtung und Konfiguration eines Schedulers finden sie in der Dokumentation unter Scheduler Services.

Neben den allgemeinen Scheduler-Eigenschaften ist folgende Serviceeigenschaft zu setzen:

B3P_SCHEDULER_REGISTER_CLASSNAME = org.b2bbp.dividing.network.scheduler.CsvToMeteringpointIndexJob

Global Properties

Der Service benutzt die folgenden beiden Global Properties:

B3P_METERINGPOINT_INDEX

Zielpfad für den Zählpunkindex (Beispiel: "../tomcat_all/index/systemsplit1")

B3P_METERINGPOINT_TEMP_INDEX

Temporärer Pfad für den Zählpunktindex (Beispiel: "../tomcat_all/index/systemsplit2")

Der Service legt immer einen neuen Index im temporären Verzeichnis an. Danach werden die Global Properties geändert (getauscht), so dass das temporäre Verzeichnis zum produktiven wird.

Extension

Der Service wird über eine Extension B3P_CSV_CONFIGURATION konfiguriert.

Eigenschaft

Wert

Beschreibung

NUMBER_OF_FILES

Zahlwert

Anzahl der CSV-Dateien, die verarbeitet werden sollen.

x_FILENAME

Pfad zur Datei inkl. Dateiname mit x = 1 bis i und i = NUMBER_OF_FILES

Pro CSV-Datei muss ein Pfad mit Dateiname angegeben werden.

DuplikatsCheck

Der Duplikatscheck auf Duplikat ext_ui, der standardmäßig beim Import durchgeführt wird, kann ausgestellt werden. Hierzu muss die Eigenschaft B3P_ACCEPT_DUPLICATES am Service gesetzt und auf true gestellt werden. Der default-Wert ist false und muss nicht gesetzt werden.

Fehlerhafte Einträge in der CSV

Gibt es in der zu importierenden CSV fehlerhafte, leere oder vertauschte Datumsfelder, so geht der Job hiermit folgendermaßen um:

  • bei einer fehlerhaften Datumsangabe, wie z.B 13.1a.2017, wird der Eintrag nicht in den Index übernommen und der Job läuft weiter
  • bei leerem End- oder Startdatum wird ein default Wert verwendet, der Eintrag wird in den Index übernommen und der Job läuft weiter
  • bei größerem Start- als Enddatum wird der Eintrag nicht in den Index übernommen und der Job läuft weiter

Die Anzahl der gelöschten Einträge aufgrund von vertauschten oder fehlerhafter Datumswerten, sowie die Anzahl der aufgefüllten Einträge werden in einem Protokoll in den technischen Details geloggt. Die ersten zehn fehlerhaften Datumswerte werden zusätzlich ausgegeben.

Beispielkonfiguration:

#Configuration for Import of MeteringPoints from CSV for SystemSplit
NUMBER_OF_FILES=2
1_FILENAME=./tomcat_all/files/systemsplit_csv_import/meteringpoint_system1.csv
2_FILENAME=./tomcat_all/files/systemsplit_csv_import/meteringpoint_system2.csv

Beispiel-CSV:

ext_ui;system;mandant;start;end
400000000000000000000000000000FFF;P01;100;01.01.1970;31.12.9999
500000000000000000000000000000FFF;P01;100;01.01.1970;31.12.9999
DE0000000000000000000000000XXXXXX;BEL;VIS;01.01.1970;31.12.9999
LU0000000000000000000000000XXXXXX;BEL;VIS;01.01.1970;31.12.9999
DE0000000000000000000000000YYYYYY;SOP;VIM;01.01.1970;31.12.9999
LU0000000000000000000000000YYYYYY;SOP;VIM;01.01.1970;31.12.9999

Analog zu dieser notwendigen Eigenschaft ist die Konfiguration zahlreicher optionaler Eigenschaft möglich. Dies sind zum Beispiel:

Allgemeine Einstellung bzgl. der CSV: CSV_TYPE, CSV_DELIMITER, CSV_DATEPATTERN, IGNORE_FIRST_LINES, SFTP_PASSWORD | Eigenschaft | Wert | Beschreibung | |—|—|—| | CSV_DATEPATTERN | dd.MM.yyyy (default)
dd.MM.yyyy hh:mm:ss | Date Format (default-Uhrzeit ist 00:00:00) |

Beispiel-CSV mit CSV_DATEPATTERN=dd.MM.yyyy hh:mm:ss :

ext_ui;system;mandant;start;end
400000000000000000000000000000FFF;P01;100;01.01.1970 00:00:00;31.12.9999 23:59:59

Spaltenbezeichnungen: COLUMN_METERINGPOINT, COLUMN_SYSTEMNAME, COLUMN_MANDANT, COLUMN_BUSINESSUNIT, COLUMN_CONTRACT, COLUMN_SERVICEID, COLUMN_SERVICE, COLUMN_SERVICESTART, COLUMN_SERVICEEND

Vorbelegte Werte: VALUE_SYSTEMNAME, VALUE_MANDANT, VALUE_BUSINESSUNIT, VALUE_CONTRACT, VALUE_SERVICEID, VALUE_SERVICE, VALUE_SERVICESTART, VALUE_SERVICEEND

CSV-Import für den Zählpunkt-Index mit ADDITIONAL FIELD

hier soll man eine Extension B3P_CSV_CONFIGURATION über erweiterte Fieldname/CSVcolumnname informieren. default csv column hat volgende Nummern:

INDEX_FIELD_ADDITIONAL1=device_number
INDEX_FIELD_ADDITIONAL2=postcode
INDEX_FIELD_ADDITIONAL3=customer_number_old
INDEX_FIELD_ADDITIONAL4=balance_district

Beispielkonfiguration mit ADDITIONAL FIELD und default COLUMN_ADDITIONAL:

#Configuration for Import of MeteringPoints from CSV for SystemSplit
NUMBER_OF_FILES=2
1_FILENAME=./tomcat_all/files/systemsplit_csv_import/meteringpoint_system1.csv
2_FILENAME=./tomcat_all/files/systemsplit_csv_import/meteringpoint_system2.csv
INDEX_FIELD_ADDITIONAL4=balance_district
#1_CSV_DATEPATTERN=dd.MM.yyyy
#2_CSV_DATEPATTERN=dd.MM.yyyy hh:mm:ss

sollt ihr andere INDEX_FIELD_ADDITIONAL benutzen, braucht ihr noch hier COLUMN_ADDITIONAL definieren:

Beispielkonfiguration mit ADDITIONAL FIELD und COLUMN_ADDITIONAL:

#Configuration for Import of MeteringPoints from CSV for SystemSplit
NUMBER_OF_FILES=2
1_FILENAME=./tomcat_all/files/systemsplit_csv_import/meteringpoint_system1.csv
2_FILENAME=./tomcat_all/files/systemsplit_csv_import/meteringpoint_system2.csv
1_COLUMN_ADDITIONAL1=balance_district
2_COLUMN_ADDITIONAL1=balance_district
INDEX_FIELD_ADDITIONAL1=balance_district

Es gibt nur 4 FIELD_ADDITIONAL.

Bespiel / Besonderheit CSV-Import für den Zählpunkt-Index mit device_number

ext_ui;system;mandant;start;end;device
DVC;BEL;VIS;01.01.2022;31.12.9999;12345678910
DVC;BEL;GVS;01.09.2022;31.12.9999;12345678911
#Configuration for Import of MeteringPoints from CSV for SystemSplit mit device_number
NUMBER_OF_FILES=1
1_FILENAME=./tomcat_all/files/systemsplit_csv_import/meteringpoint_system1.csv
1_COLUMN_ADDITIONAL1=device
INDEX_FIELD_ADDITIONAL1=device_number

Da im Feld ext_ui immer der Wert “DVC” stehen wird, muss die Duplikatsprüfung abgeschaltet werden, indem die Serviceeigenschaft B3P_ACCEPT_DUPLICATES auf true gesetzt wird. (Ab dem Release 06.24 ist es nicht mehr erforderlich, die Duplikatsprüfung zu deaktivieren.)

Bespiel / Besonderheit CSV-Import für den Zählpunkt-Index mit agk_reference

CSV-Import für den Zählpunkt-Index mit agk_reference funktioniert gerade nicht. Fix kommt erst ab 06.24!!!!!!

ext_ui;system;mandant;start;end;agk
AGK;BEL;VIS;01.01.2022;31.12.9999;12345678910
AGK;BEL;GVS;01.09.2022;31.12.9999;12345678911
#Configuration for Import of MeteringPoints from CSV for SystemSplit mit device_number
NUMBER_OF_FILES=1
1_FILENAME=./tomcat_all/files/systemsplit_csv_import/meteringpoint_system1.csv
1_COLUMN_ADDITIONAL1=agk
INDEX_FIELD_ADDITIONAL1=agk_reference

Da im Feld ext_ui immer der Wert “AGK” stehen wird, muss die Duplikatsprüfung abgeschaltet werden, indem die Serviceeigenschaft B3P_ACCEPT_DUPLICATES auf true gesetzt wird. (Ab dem Release 06.24 ist es nicht mehr erforderlich, die Duplikatsprüfung zu deaktivieren.)

Besonderheit CSV-Import für den Zählpunkt-Index mit balance_district

ext_ui;system;mandant;start;end;balance_district
BLK;BEL;GVS;01.01.2022;31.12.9999;TRR0BFH020530000
BLK;BEL;GVS;01.01.2022;31.12.9999;TRR0BFH020530001
#Configuration for Import of MeteringPoints from CSV for SystemSplit mit balance_district
NUMBER_OF_FILES=1
1_FILENAME=./tomcat_all/files/systemsplit_csv_import/meteringpoint_system1.csv
1_COLUMN_ADDITIONAL1=balance_district
INDEX_FIELD_ADDITIONAL1=balance_district

Da im Feld ext_ui immer der Wert “BLK” stehen wird, muss die Duplikatsprüfung abgeschaltet werden, indem die Serviceeigenschaft B3P_ACCEPT_DUPLICATES auf true gesetzt wird.(Ab dem Release 06.24 ist es nicht mehr erforderlich, die Duplikatsprüfung zu deaktivieren.)

View Me   Edit Me