eBiss 3

Hilfe & Dokumentation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


transformation:mappings:objektdefinition:klassenaufbau:class_flatfile

Beispiel für Integration via Dateiaustausch mit CSV Dateien und unterschiedlichen Zeilentypen

Sie finden das Beispiel unter StandardTemplates\PluginSample\FlatFile.Sample.

Im folgenden Beispiel wird der Klassenaufbau eines ORDER-Objekts für eine Integration mit CSV Dateien und fünf unterschiedlichen Zeilentypen dargestellt.
Die Zeilentypen stehen in der ersten Spalte der jeweiligen Zeile und lauten:

  1. 1001)
  2. 2002)

Die Klasse ORDER implementiert die Schnittstelle IMapObjectRoot. Da Mappingobjekte als Baumstruktur aufgebaut sind, bildet die Schnittstelle IMapObjectRoot die oberste Instanz dieser Baumstruktur. Die Variablen, welche mit dem Schlüsselwort public innerhalb der Klasse deklariert sind, werden als Segmente innerhalb der Objektbaumstruktur als Datenelemente dargestellt.
Die Klasse Kopf beinhaltet die Kopf-Informationen der ORDERS und implementiert die Schnittstelle IMapObjectItem. Diese darf nur einmal je Datei vorkommen. Die Klasse Position: bildet hier die Items-Liste des ORDERS-Objektes ab. Sie implementiert ebenfalls die Schnittstelle IMapObjectItem, welche die Objekte der Item-Liste repräsentiert. Diese können im sog. Arraylist Items der Klasse Position mehrfach enthalten sein, während die Kopf nur einmal vorhanden sind.

Hinweis: Für die Automatisierte Verarbeitung bzw. Erkennung von Entitätstypen sind entsprechende Einstellungen in den Typ-Repositorien zu tätigen.

Lesekomponenten Einstellung

Hinweis: Das Verarbeiten von CSV-Dateien mit Zeilentypen erfordert eine spezifische Einstellung der Lesekomponente vom Entitätstyp. Die Wesentlichen Parameter sind hier:

Parametername Wert
SeparatorSemicolon
RecordTagPosition0
StartAtLine1

Beispiel C# Code

Hinweis: using eBiss.Api;

namespace Pranke.CSV.Sample 
{
	public class ORDER: IMapObjectRoot
	{
		[MapTrigger,Description("Kopf"),MapExternalName("100")]
		public Kopf Kopf;
	}
 
	public class Kopf: IMapObjectItem
	{
		[MapSize(40)]
		public String Lieferadresse;
		[MapSize(25)]
		public String ContactPerson;
		[MapSize(10)]
		public String CustomerRef;
		[MapSize(3)]
		public String CurrencyCode;
		[MapSize(4)]
		public String Year;
		[MapSize(2)]
		public String Month;
		[MapSize(2)]
		public String Day;
		[MapSize(35)]
		public String Text1;
		[MapSize(35)]
		public String Text2;
		[MapListType(typeof(Position)),Description("Position"),MapExternalName("200"),MapRequired]
		public ArrayList Position;
	}
 
	public class Position: IMapObjectItem
	{
		[Description("Pos.-Number"),MapSize(3)]
		public String Number;
		[Description("ext. Articlenumber"),MapSize(15)]
		public String Articlenumber;
		[MapSize(10)]
		public String Amount;
		[MapSize(11)]
		public String Price;
		[Description("Note1"),MapSize(13)]
		public String Note1;
		[MapSize(35)]
		public String Note2;
	}
}

Beispiel CSV Datei Inhalt

100Karlstraße 16b | D-76133 Karlsruhe      Pranke                   4711K     EUR20181 1 Text1                              Text2                              
2001  4711           10        10.4       Note1        Note2                              
2002  4712           22        9.87       Note1        Note2                              

Example XML file content

<?xml version="1.0" encoding="Windows-1252" standalone="yes"?>
<ORDER>
  <100 Debitorennummer=1 Lieferadresse="Karlstraße 16b | D-76133 Karlsruhe" ContactPerson="Pranke" CustomerRef="4711K" CurrencyCode="EUR" Year="2018" Month="1" Day="1" Text1="Text1" Text2="Text2">
    <200 Articlenumber="4711" Number="1" Amount="10" Price="10.4" Note1="Note1" Note2="Note2" >
    </200>
    <200 Articlenumber="4712" Number="2" Amount="22" Price="9.87" Note1="Note1" Note2="Note2" >
    </200>
  </100>
</ORDER>

Alternatives Beispiel

Ein alternatives Beispiel findet sich unter CSV Plugin erstellen.

1)
= Kopfinformationen
2)
= die Positionen
transformation/mappings/objektdefinition/klassenaufbau/class_flatfile.txt · Zuletzt geändert: 2024/02/20 08:15 von 127.0.0.1