Grundsätzliches zum Datenimport

Der Datenimport von Lieferantendaten bietet Ihnen die Möglichkeit, beliebig viele Daten (Preislisten) von Lieferanten in die HINTERGRUND Tabelle von IOS2000 einzuspielen, ohne das Sie zuerst einmal Ihre aktiven Artikeldaten davon berühren oder beeinflussen. Sie können die Einspielungen beliebig oft (gefahrlos) wiederholen, ohne dass Ihre laufenden Daten verändert werden. Erst wenn Sie mit dem Einspielungsergebnis 100%ig zufrieden sind, können Sie die Update-Routinen starten und Ihren Artikelstamm anhand der neuen Lieferantendaten aktualisieren lassen. Außerdem können Sie in Auftragsbearbeitung, Bestellwesen und Kasse auf alle Hintergrundartikel zugreifen.

Die Erstellung und Pflege der Importfilter und Update-SQL Befehle gehört zur Datenpflege des Kunden und ist NICHT Bestandteil des Pflegevertrages von IOS2000 und in jedem Fall kostenpflichtig, wenn wir diese Dienstleistung für Sie durchführen.

Vom Prinzip her läuft der Datenimport von Lieferantendaten in IOS2000/DIALOG wie folgt ab :
Vorbereitende, einmalige Aufgabe :

Lieferantenstammsatz richtig und vollständig anlegen
Dann beim Lieferanten unter Zusatzdaten – Import den Importfilter anlegen und testen. Solange der Lieferant dann das Datenformat nicht mehr verändert, können Sie auch den Filter unverändert lassen.

Einspielen der Daten

Die Daten des Lieferanten kommen meist per Mail oder Diskette/CD. Zunächst wird die Datei auf Viren geprüft, wobei man darauf achten sollte, das der genutzte Virenscanner regelmäßig aktualisiert wird.
Dann speichert man die Datei auf dem IOS2000 Server im \Import Verzeichnis des Mandanten, z.b. \IOS2000\Mand0\Import.
Das geht einfach per Upload auf den IOS Server. Sie finden das Uploadformular am Ende des Dialogs der Importfilter Pflegeseite im Lieferantenstamm.
Jetzt kann die Datei über Stammdaten – Lieferanten – Zusatzdaten – Datenimport eingelesen werden. Wahlweise zuerst per Testlauf oder direkt in die Datenbank.
Testen Sie über die Stammdaten – Hintergrunddaten, ob die Einspielung erfolgreich war. Stimmen alle Datenfelder ?
Dann können Sie im letzten Schritt Ihre Artikeldaten anhand der neuen Lieferantendaten in der Hintergundtabelle aktualisieren.
Sie rufen dazu unter Dienste – Preispflege – Hintergrund-Preisupdates auf.


Wenn alles richtig läuft, haben Sie danach aktuelle Stammdaten im Artikelstamm.


Erstellung des Importfilters

Um die Daten richtig zu importieren, brauchen Sie einen s.g. Importfilter. Hier handelt es sich um einen Text, der das Quellformat der Lieferantendatei beschreibt.


So sieht zum Beispiel der Definitionsbereich eines Importfilters aus :

‚ Importfilter für : Meier und Co

Im Bereich <optionen> steht, um welchen Lieferanten es sich handelt und um was für eine Datei.
<OPTIONEN>
<PD NAME=’Meier und Co‘> ‚ Name des Lieferanten
<PD DATEI=Delimited> ‚ Art der Datei : Delimited, Sequentiell
‚ Delimited sind z.B. CSV oder SDF Dateien mit Komma oder Semikolon getrennt
Sequentielle Dateien sind ASCII Dateien mit fester
Satzlänge.

<PD Zeichen=100> ‚erwartete Mindestlänge jedes Datensatzes bei Delimited-
Dateien und feste Datensatzlänge bei Sequentiellen
Geben Sie hier bei Delimited Dateien nicht eine zu große
Zahl ein, denn wenn ein Datensatz kürzer ist, wird er
nicht verarbeitet !

<PD START=2> ‚ einlesen erst ab der x. Zeile, wenn die 1. Zeile z.B. die
Feldüberschriften enthält
<PD TRENNER=$59> ‚ bei Delimited Dateien das Feldtrennzeichen in Hex
‚ $59 = Semikolon
<PD LOESCHEN=0> ‚ bei 1 werden alle Daten des Lieferanten vor dem
erneuten Einspielen in die Hintergrunddatei gelöscht

<PD STATUS=“N“> ‚ setzt den Status ‚ST‘ auf ‚N‘ beim Einspielen
</OPTIONEN>

Im Bereich <felder> werden die einzelnen einzulesenden Datenfelder dem passenden Datenfeld der Hintergrund-Tabelle zugeordnet. Welche Felder Sie im Hintergrund zur Verfügung haben, sehen Sie , wenn Sie den IOSSQLCommander öffnen, die ‚Hintergrund‘ Tabelle auswählen und auf den Knopf Tabelleninfo klicken.

Der Aufbau ist in der Regel so :
<FF FeldName in der Hintergrundtabelle
ART= Typ des Feldes
CUR= Währungs- oder Preisfeld
FEST= Festwert oder
FAKTOR= Wert, mit dem multpliziert werden soll
TEILER= Wert durch den geteilt wird, z.B. 1.16
ZUSAMMEN = Feld1 + Feld2 + Feld3 usw.
LANG=Länge des Feldes, bzw. Anzahl der maximal zu übernehmenden Zeichen für dieses Datenfeld
FELD=laufende Feldnummer bei Delimited Dateien oder
AB=ab Stelle x in der Datenzeile
BIS=bis Stelle y in der Datenzeile
LEER=JA / NEIN Leerfelder erlaubt Ja/Nein
Zx Zusatzfelder, Felder die es nicht in der Datenbank gibt und die nur beim
Import temporär benötigt werden
>

Beispiel :
<FELDER>
<LI ART=LNG FEST=1987> ‚IOS-ID des Lieferanten, Platzhalter [liefid] geht auch
<AH ART=TXT LANG=020 Feld=1> ‚Artikelnummer des Herstellers
<E1 ART=TXT LANG=013 Feld=3> ‚EAN 1, aktuellste Nummer
<WD ART=TXT LANG=004 FEST=1150> ‚IOS Warengruppe
<T1 ART=TXT LANG=040 Feld=2 Text=JA> ‚Artikeltext 1
<Z1 ART=TXT LANG=40> ‚empfohlener VK-Preis des Herstellers
<VP ART=CUR Feld=4> ‚empfohlener VK-Preis des Herstellers
<Z1 ART=TXT LANG=40 FELD=14> ‚Zusatzfeld1 (Teiltext 1)
<Z2 ART=TXT LANG=40 FELD=15> ‚Zusatzfeld2 (Teiltext 2)
<Z3 ART=TXT LANG=1 FEST=“ “ LEER=JA> ‚Zusatzfeld3 (Leerzeichen)
<T2 ART=TXT LANG=40 ZUSAMMEN=Z1+Z3+Z2> ‚hier wird die Artikeltextzeile 2 aus
‚ den Hilfsfeldern Z1+Z2+Z3 gebildet
</FELDER>

Da es sich um eine Delimited Datei handelt, legen die LANG= Werte die Anzahl der maximal zu übernehmenden Zeichen des Feldes fest, bei dem importiert werden soll. Beim Beispiel würden die Zeichen im Artikeltext, die über die 40 Zeichen hinausgehen, NICHT importiert.

Datenkonvertierungen

Im <Konverter> Bereich kann man nach dem Zuordnen der Datenfelder Konvertierungen vornehmen, wenn z.B. MwStCodes umgeändert werden oder Warengruppen des Lieferanten in die eigene Warengruppe konvertiert werden soll.

<KONVERTER>
<B2>
<B2 IST=1 SOLL=“0″> ‚ Wenn B2 1 ist, dann auf 0 ändern
<B2 IST=2 SOLL=“1″> ‚ Wenn B2 2 ist, dann auf 1 ändern
</B2>
</KONVERTER>

Rundung der Verkaufspreise

Wenn Sie nach dem Import einen Preis als Endkunden-Verkaufspreis optisch runden lassen wollen, fügen Sie den folgenden Bereich für die Rundung ein :

<optisch>
<brutto>P4</brutto>
<netto>P3</netto>
<steuercode>0</steuercode>
<rundungstyp>3</rundungstyp>
</optisch>

<brutto> = Hintergrund Datenfeld, wo der Bruttoverkaufspreis stehen soll
<netto> = Hintergrund Datenfeld, wo nach der Rundung der um die MwSt. verringerte Nettopreis hin kommt
<steuercode> = Entweder fest der Code 0 für volle Steuer oder 1 für halben Steuersatz oder das Datenfeld im Hintergrund, wo dieser Steuercode zu finden ist
<rundungstyp> 1=auf 5 Cent, 2= auf 10 Cent, 3=optische Rundung lt. Tabelle

Veränderung der Daten vor und nach dem Einlesen

Sie können im Importfilter beliebig viele SQL Befehle zum verändern der Daten in den Tags :
<PREimportsql> (sql Befehl) </PREimportsql> = VOR dem Einlesen ausführen
<PASTimportsql> (sql Befehl) </PASTimportsql> = NACH dem Einlesen ausführen
speichern die vor oder nach dem Einlesen verarbeitet werden.

Diese sind bei Massenänderungen immer schneller, als der Konverter.
Soll zum Beispiel das eingelesene MWST Kennzeichen von 1 auf 0 geändert werden :
<PASTimportsql> update hintergrund set mwst=0 where mwst=1 and li = [liefid] </PASTimportsql>

Auch in den SQL Befehlen kann der Platzhalter [liefid] für die aktuelle LieferantenID verwendet werden.


Import der Daten

Wenn Sie den Filter erstellt und beim Lieferanten unter Datenimport gespeichert haben, dann testen Sie den Import. Klicken Sie dazu auf IMPORT, geben eine Anzahl von Testdatensätzen ein (weniger als 50) und klicken auf TESTEN.

Nach Fertigstellung erhalten Sie eine Nachricht vom ControlCenter. Hier erfahren Sie dann, ob der Import erfolgreich war oder nicht. In einem Grid können Sie sich das Ergebnis Ihres Imports ansehen. War dieser erfolgreich, rufen Sie den Import erneut auf und klicken auf DURCHFÜHREN. Dann werden alle Daten in die Datenbank importiert.

Ab dann sollten Sie alle importierten Artikel unter ‚Stammdaten – Hintergrundartikel‘ finden.

Hier noch einmal ein kompletter Importfilter für eine Datei mit fester Satzlänge :

‚ Importfilter für : Porzellanfabrik Friesland GmbH, Varel
<OPTIONEN>
<PD NAME=“Porzellanfabrik Friesland GmbH, Varel“>
<PD DATEI=SEQUENTIELL>
<PD ZEICHEN=50>
<PD START=1>
</OPTIONEN>

<FELDER>
<LI ART=LNG FEST=“[liefid}“> ‚ wir ersetzt mit der LiefID
<AH ART=TXT LANG=20 AB=1 BIS=11> ‚Artikelnummer des Herstellers
<AA ART=TXT LANG=20> ‚alternative Nr des Herstellers
<E1 ART=TXT LANG=13 AB=37 BIS=49> ‚EAN 1, aktuellste Nummer
<E2 ART=TXT LANG=13> ‚EAN 2
<E3 ART=TXT LANG=13> ‚EAN 3
<WD ART=TXT LANG=4 FEST=“1020″ LEER=JA> ‚DP-Warengruppe
<K1 ART=TXT LANG=20> ‚Artikelkurztext
<T1 ART=TXT LANG=40 AB=12 BIS=36 TEXT=JA WANDLUNG=JA> ‚Artikeltext 1
<VP ART=CUR AB=50 BIS=60> ‚empfohlener VK-Preis
</FELDER>

<updatesql>
update Artbestand
set letzterEKPreis = (select isnull(EP,0) from Hintergrund where E1 <> char(32) and E1
in (select EAN from Artikel where ArtBestand.ArtID = Artikel.ArtID and
ArtBestand.LagerID=1 and ArtBestand.LiefID=LI)),
BruttoVKPreis = (select isnull(VP,0) from Hintergrund where E1 <> char(32) and E1 in
(select EAN from Artikel where ArtBestand.ArtID = Artikel.ArtID and
ArtBestand.LagerID=1 and ArtBestand.LiefID=LI)),
leAenderung = getdate()
where Artbestand.ArtID in
(select ArtID from Artikel where EAN <> char(32) and EAN in
(select E1 from Hintergrund where ArtBestand.LagerID=1 and ArtBestand.LiefID=LI)
)
</updatesql>


Update der Daten (Abgleich mit dem Artikelstamm)

Der Abgleich der Daten zwischen Hintergrund und Artikelstamm kann einfach, aber auch sehr diffizil und kompliziert sein. Deshalb haben wir darauf verzichtet, eigene Programme dafür zu schreiben, weil die bei der Vielfalt der Möglichkeiten entweder immer unzureichend oder zu komplex und aufwändig wären.

Wir haben uns darauf beschränkt, den Abgleich ausschließlich über die extrem leistungsfähige SQL Sprache zu erledigen. Um also einen sicheren und komfortablen Update der Daten zu gewährleisten, bedarf es guter SQL Kenntnisse.

In den Bereich <updatesql> des Importfilters beim Lieferanten schreiben Sie dann beliebig viele SQL Befehle, die den Datenabgleich zwischen Hintergrund und Artikelstamm erledigen.
Weil die Aktualisierung je nach Qualität und Umfang der vom Lieferanten gelieferten Daten sehr unterschiedlich ist, können wir Ihnen hier nur Beispiel für Universalupdates des Einkaufspreises, Verkaufspreises und der Texte geben. Mit weiteren Befehlen kann man z.B. nicht vorhandene Artikel anlegen oder weitere Felder abgleichen. Sie brauchen hier in jedem Fall unsere Hilfe oder die Ihres Systemadministrators mit SQL Kenntnissen.

Beispiele für Update-SQL Befehle :

Aktualisierung von Artikeltext1 + 2, wenn die EAN im Hintergrund und Vordergrund übereinstimmt
<updatesql>
Update Artikel set
Artikel.Artikeltext1 = hg.T1,
Artikel.Artikeltext2 = hg.T2
from Artikel, Hintergrund hg
where hg.li = [liefid]
and Artikel.ean like hg.e1
and hg.t1 > ‚ ‚ and hg.t2 > ‚ ‚
</updatesql>


Aktualisierung von Einkaufs- und Verkaufspreis bei Übereinstimmung der EAN :

<updatesql>
Update ArtBestand set
ArtBestand.letzterEKPreis = hg.EP,
ArtBestand.BruttoVKPreis = hg.VP
from artbestand , artikel art, Hintergrund hg
where ArtBestand.liefid = hg.li
and hg.li = [liefid]
and art.ean like hg.e1
and art.artid = ArtBestand.artid
and hg.ep > 0
</updatesql>

Berechnung des Netto-VK Preises nach der Aktualisierung des Brutto-VK


<updatesql>
update ArtBestand set
NettoVKPreis =
(Case
when art.ArtMwstCode = 0 then Round((Artbestand.BruttoVKPreis)/1.19,2)
else Round((Artbestand.BruttoVKPreis)/1.07,2)
End)
from artbestand, artikel art
where ArtBestand.artid = art.artid
and ArtBestand.LiefID = [liefid]
</updatesql>

Neu ab DLL Version 1.7.724

Automatisches Kopieren der Artikel vom Hintergrund in den Vordergrund.

Mit dem neuen Abschnitt <copyartikel>, der beim jeweiligen Lieferanten in den Importfilter eingefügt werden kann, wird es ermöglicht, automatisch Artikel vom Hintergrund in den Vordergrund zu kopieren, ohne die Daten manuell nachzubearbeiten.
Der Abschnitt <copyartikel></copyartikel> wird ans Ende des Importfilters eingefügt und gespeichert.

Er muss die folgenden Tags enthalten :
<searchField>{feld aus dem Hintergrund als Indexfeld}</searchField>
<searchArtikel>Such-SQL um den Artikel zu prüfen, ob er nicht doch schon im Vordergrund angelegt wurde</searchArtikel>
<fieldsArtikel></fieldsArtikel> und <fieldsArtBestand></fieldsArtBestand>
Enthalten die Listen der Felder, die vom Vorder- in den Hintergrund kopiert werden, und zwar im Format : Name des Hintergrundfeldes » Name des Artikelfeldes ~
hintergrundfeld»vordergrundfeld~hintergrundfeld»vordergrundfeld~
hintergrundfeld»vordergrundfeld~usw.
Das » Zeichen erhalten Sie mit Alt+0187 auf der Zehnertastatur.
Wahlweise kann noch der Tag <copysql></copysql> beliebig oft eingefügt werden. Darin sind dann SQL Befehle enthalten, die gleich nach dem Kopieren ausgeführt werden sollen, um z.B. Preise zu kalkulieren. In diesen SQL Befehlen sind die Platzhalter [artid] für die neu angelegte ArtikeliID und [searchfield] für den INHALT des Suchfeldes (also z.B. den Inhalt von ah oder e1) zulässig.

Beispiel :

<copyartikel>

‚ hier ist ah das Hintergrund-Indexfeld, kann auch z.B. e1 sein
<searchField>ah</searchField>

‚ nochmalige suche des Artikels im Vordergrund
‚ wenn nicht gefunden, dann wird angelegt, sonst aktualisiert
<searchArtikel>
select * from artikel where artnr like ‚[searchfield]‘
</searchArtikel>

‚ Liste der zu übernehmenden Fehler in die Tabelle ARTIKEL
<fieldsArtikel>
ah»artnr~e1»ean~aa»artnrlf~e3»altean~
t1»artikeltext1~t2»artikeltext2~
~wgrid»wg~r5»akondgrp~
v3»typkz~wd»katalogseite~
</fieldsArtikel>

‚ Liste der zu übernehmenden Fehler in die ArtikelBESTANDStabelle
<fieldsArtbestand>
lagerid»!1~ep»letzterekpreis~p3»nettovkpreis~p4»bruttovkpreis~
~p1»nettovkpreis1~p2»nettovkpreis2~
~li»liefid~
</fieldsArtbestand>


<copysql>update artbestand set nettovkpreis = bruttovkpreis /1.16 where artid=[artid]</copysql>

<copysql>update artbestand set nettovkpreis6 = nettovkpreis where artid=[artid]</copysql>

</copyartikel>


Je nach Einstellung im ControlCenter wird dann immer, wenn ein Artikel nicht im Stamm gefunden wird, automatisch im Hintergrund gesucht und auf Verlangen gleich in den Artikelstamm kopiert, wenn der Abschnitt <copyartikel> beim Importfilter des Lieferanten gespeichert wurde.

Aufruf und Verwendung von Artikeln aus dem Hintergrund in Auftragsbearbeitung, Kasse und Bestellwesen
Man kann die im Hintergrund gespeicherten Artikel auch direkt ansprechen, wenn der Artikel im Stamm nicht gefunden wurde. So können zum Beispiel auch an der Kasse Artikel kassiert werden, die noch nicht im Artikelstamm gespeichert sind.

Abhängig von der Einstellung im ControlCenter sucht IOS2000 automatisch oder nach Rückfrage im Hintergrund, wenn der Artikel nicht gefunden wurde und trägt die gefundenen Daten ins Formular ein.

Voraussetzungen für eine optimale Verarbeitung sind gegeben, wenn folgende Datenfelder im Hintergrund ausgefüllt sind :

E1 oder AA : EAN oder Artikelnummer
T1 (bis T4) : Textzeile 1-4 des Artikels
WG : Warengruppen-ID aus IOS2000
VP : Brutto-Verkaufspreis inkl. MwSt.
EP : Netto Einkaufspreis
MW : MwSt Kennzeichen, 0=voll, 1=halb
B4 : Einheiten ID für eine passende Einheit aus der IOS2000 Einheitentabelle

Anhand dieser Daten kann der Artikel im Hintergrund gefunden werden und alle wesentlichen Felder für Auftragsbearbeitung und Kasse ausgefüllt werden.


ACHTUNG !
Wenn der Artikel dabei nicht automatisch über die neue Routine angelegt wird, wird er über den Interimsartikel (in der Regel ein Warengruppenartikel) verbucht, der in der Warengruppe gespeichert ist der der Hintergrundartikel zugeordnet wurde.

Beispiel :
Die WG des Hintergrundartikels ist 40. In den Warengruppenstammdaten steht als ‚ArtID Hintergrund‘ die 15. Dann werden die Umsätze dieses Hintergrundartikels mit der ArtikelID 15 verbucht.

Zusatzinformation zum Artikeldatenimport per MDE

Im Taskmanager gibt es eine Routine zum automatischen Import von Artikeldaten. Basis dafür sind Dateien, die mit einem MDE Gerät oder manuell erfasst worden sind. Diese Datei ist eine s.g. SDF Datei, wo die Felder mit Semikolon getrennt sind. Erwartet werden 3 Felder :
EAN-NUMMER;Warengruppe;Brutto-Verkaufspreis
Beispiel :
4031396007393;32;15.95
4031396007393;161;15.95
036282838994;169;189.90
036282015623;169;219.90
036282017467;169.90;119.90
usw.

Der Name der Datei muss wie folgt sein : WW{lieferantenid}.txt
Z.B. WW133.TXT = alle Artikel des Lieferanten 133

Die Dateien legt man dann in ein separates Verzeichnis ab, z.B. \mand0\import\mde.

Dann ruft man vom IOS2000 Rootverzeichnis den Taskmanager mit folgenden Parametern auf :

IOSTASK.EXE “handle|ArtikelImport|verzeichnis, wo die importdateien liegen“
z.B.
IOSTASK.EXE “0000000030|ArtikelImport|c:\inetpub\ios2000\mand0\import\mde\“

IOSTask geht dann das Verzeichnis durch, öffnet die WWxx Dateien, sucht die EAN im Artikelstamm und legt den Artikel als diversen Artikel mit EAN Nummer, Warengruppe (und Warengruppentext) und Verkaufspreis neu an, wenn der Artikel nicht gefunden wird.

Nach erfolgreichem Import kann dann die Datei mit dem Hintergrund abgeglichen werden, wenn die Daten des Lieferanten im Hintergrund stehen.

Die WWxxx Dateien müssen nach der Verarbeitung manuell aus dem Verzeichnis gelöscht werden.


Felder der Hintergrundtabelle
Feldname Typ oder Länge, Beschreibung
Typ C = Currency, L=Long Integer

ST 1 L/N/A Artikelstatus : 1eu, $enderung, /öschung
LI L DataPark ID des Herstellers oder Importeurs dieses Artikels
AH 20 Artikelnummer des Hersteller, Importeurs
AA 20 alternative Artikelnummer des Hersteller, Importeurs
E1 13 EAN 1 (aktuellste Nummer) des Hersteller, Importeurs
E2 13 EAN 2 Alte EAN
WD 4 DataPark Warengruppe, wird von DataPark gepflegt, wenn nicht vom Lieferanten mitgeliefert
SK 10 Serienkennzeichen bei Porzellanserien, wenn vom Lieferanten separat gepflegt, sonst in T3
K1 20 Artikelkurztext für Scannerkassen
T1 40 Artikeltextzeile 1 mit Rücksicht auf die vielen alten WWS-Programme sollten in den
T2 40 Artikeltextzeile 2 Textzeilen 1-4 möglichst nicht mehr als 30 Stellen belegt werden
T3 40 Artikeltextzeile 3 )RUPEHL3RU]HOODQ
T4 40 Artikeltextzeile 4 ‚HNRUEHL3RU]HOODQ
VP C empfohlener Verkaufspreis inkl. Mehrwertsteuer des Lieferanten, Herstellers, Importeurs
VK 1 Preiskennzeichen für den Verkaufspreis
EP C Basis – Netto – Einkaufspreis des Lieferanten
CL C Länge des Artikels in cm
CB C Breite des Artikels in cm
CH C Höhe des Artikels in cm
IH C Rauminhalt des Artikels in Litern
GK C Gewicht des Artikels in Kilogramm
FA 10 Farbe als Text
NO 10 Normbezeichnung des Artikels (DIN/ISO)
GF 20 Gefahrgutkennzeichnung für diesen Artikel
SC L DataPark Saisoncode (1=Frühling, 2=Sommer, 3=Herbst, 4=Winter)
AB 64 Name der Bilddatei mit Extension zu diesem Artikel, z.B. Vase07.JPG, 4005985.GIF
LW 8 Warengruppe des Lieferanten
LR 8 Rabattgruppe des Lieferanten
GR C Grundrabatt des Lieferanten
M1 L Stufenmenge 1 ab dieser Menge
P1 C Stufenpreis 1 gibt es diesen Nettopreis oder
R1 C Stufenrabatt 1 diesen Rabatt
M2 L Stufenmenge 2 (auf 9 Stufen erweiterbar bis M9)
P2 C Stufenpreis 2 (auf 9 Stufen erweiterbar bis P9)
R2 C Stufenrabatt 2 (auf 9 Stufen erweiterbar bis R9)
B2 1 Preiskennzeichen für EP
B3 C Preiseinheit Einkauf Einkaufspreis ist per …. Einheiten
B4 C Umrechnungsfaktor Einkaufspreis
B5 6 Verpackungseinheit
BG D Einkaufspreis gültig ab TT.MM.JJJJ
BM 6 Mengeneinheit für den Einkaufspreis, Einkaufspreis B1 ist für ……. Einheiten
BA L Mindestabnahme in Verpackungseinheiten (B5)
V2 1 Preiskennzeichen für VP
V3 C Preiseinheit für VP
V4 C Umrechnungsfaktor Verkaufs-Preis
V5 L Verpackungseinheit-Katalog
VG D Verkaufspreis gültig ab TT.MM.JJJJ
VM 6 Mengeneinheit VK-Preis
KS 4 Katalogseite
KP 6 Positionskennzeichen im Katalog
AL D letztes Änderungsdatum
AK 6 Aktionskennzeichen des GH oders Verband
S2 20 Aktions-EAN/Artikelnummer, wenn für die Aktion eine eigene Artikel-EAN vergeben wurde
S3 D Aktion ist gültig ab TT.MM.JJJJ
S4 D Aktion ist gültig bis TT.MM.JJJJ
LB L Lagerbestand d. Lieferanten, wird vom Handel über www.DataPark.de abgefragt
AD D letztes Änderungsdatum

VEDES Datenimport

Eine Besonderheit ist der Import der VEDES-Daten. Die Spielwaren-Einkaufsgenossenschaft VEDES bietet die automatische Pflege einer lokalen ACCESS Datenbank an. Auf diese Datenbank greift IOS2000 zu und importiert und pflegt die Daten im Hintergrund.

Zu diesem Zweck muss VEDES als Lieferant angelegt werden. Unter ´Zusatzdaten – Datenimport´ wird dann ein spezieller Importfilter gepflegt. Dieser Filter benötigt nicht die Angaben der Dateibeschreibung, wie zuvor beschrieben, sondern nur den Pfad zur Datenbank, die Warengruppenwandlung und die üblichen Update- und Kopier-SQL Befehle.

Im Tag ´database´ wird der komplette Name mit Pfad zur Vedes Datenbank angegeben.
Achtung ! Der Pfad muss vom SERVER aus erreichbar sein !
<database>C:\VEDABANK\VEDADB.MDB</database>

<wgrid>123</wgrid> ‚ hier wird die Standard-Warengruppen-ID für alle Artikel angegeben

Mit dem folgenden Tag können die Warengruppen individuell gewandelt werden. Dazu wird jeweils die VEDES Warengruppe (Feld SORTIMENT in der Datenbank), ein Gleichheitszeichen und die IOS2000 Warengruppen-ID angegeben. IOS2000 wandelt dann beim Import die VEDES-Warengruppe um.
Man kann exakt die Vedes Warengruppe komplett oder von vorne an teilweise angeben.

<wgwandel>
01540033=141 ‚ Vedes Sortiment 01540033 wird nach IOS-WgrpID 141 zugeordnet
01600168=152 ‚ Vedes Sortiment 01600168 wird nach IOS-WgrpID 152 zugeordnet
017=161 ‚ es werden auch nur die linken Stellen verglichen, in diesem Beispiel
werden alle Vedes-Warengruppen, die mit 017 anfangen,
der IOS Warengruppen-ID 161 zugeordnet
019=162 alle Vedesgruppen 019xxxx nach IOS 162 zuordnen
</wgwandel>

Im Rest des Filters stehen dann die Update- und Copy-SQL Befehle wie in den Standardfiltern.

Die Hintergrunddatei wird bei Vedes Daten wie folgt belegt :
HiFeld VEDADB-Feld
IK Vedes-Lieferanten-Nr
LI IOS2000 Lieferanten-ID von Vedes
AH ARTIKELNR + „-“ + Vedes-Lieferanten-Nr (um eindeutige ArtNr zu erhalten)
AA ARTIKELNR
E1 EANNUMMER
T1 BEZEICHNU
LR LAGERKENN
WG IOS2000 Warengruppen-ID
LW SORTIMENT
VP EMPFVKPRE
GR LISTPREIS
P1 PACKEINH
P2 GPACKEINH
P3 SORTIMKZ
P4 WERBEMKZ
MW MWSTKZ (Änderung: 0=volle Steuer, 1=halbe Steuer)

Import von Daten im BMECAT Format

Sollen Daten im BMECAT Format (definiertes XML Format, z.B. vom EDE und von Nexmart) importiert werden, muss wie folgt vorgegangen werden:

1. Im Importverzeichnis des Mandanten muss ein Subverzeichnis mit dem Namen ´bmecat´ erstellt werden (z.B. \ios2000\mand0\import\bmecat).

2. In dieses Verzeichnis werden dann die zu importierenden Dateien der Lieferanten im BMECAT Format kopiert. Die Dateinamen sind unerheblich, wichtig ist nur die Endung ´.XML´.

3. Im BMECAT Importverzeichnis müssen neben den eigentlichen Dateien der Lieferanten auch die passenden XML Beschreibungsdateien mit der Endung ´.dtd´ enthalten sein. Welche Dateien das sind, sieht man in der 2. Zeile der Lieferanten-XML Datei, z.B. :
<!DOCTYPE BMECAT SYSTEM „bmecat_new_catalog_1_2.dtd“>
In diesem Fall muss beim Mandanten 0 im Ordner \ios2000\mand0\import\bmecat die Datei ´bmecat_new_catalog_1_2.dtd´ enthalten sein, sonst kann man die Lieferantendatei nicht importieren !
Die passenden Definitionsdateien findet man auf http://www.bmecat.org/ wenn diese noch nicht von MARKUS SOFT eingerichtet wurden.
Die DTD’s der Version 1.2 finden Sie auch bei MARKUS SOFT unter :
http://home.markussoft.net/down/dtds-V12.zip

4. Prüfen Sie die Lieferanten-XML Datendatei mit einem Editor, ob die Kopfzeilen richtig sind !!!! Oft können die Daten nicht eingelesen werden, weil diese falsch oder unvollständig sind.
Wichtig ist auch die Angabe des s.g. ´Namespaces xmlns´ im Tag <BMECAT Version ….
Richtige Header sehen so aus :
<?xml version=“1.0″ encoding=“ISO-8859-1″?>
<!DOCTYPE BMECAT SYSTEM „bmecat_new_catalog_1_2.dtd“>
<BMECAT version=“1.2″ xmlns=“http://www.bmecat.org/bmecat/1.2/bmecat_new_catalog“>
oder so :
<?xml version=“1.0″ encoding=“UTF-8″ ?>
<!DOCTYPE BMECAT SYSTEM „bmecat_new_catalog_1_2.dtd“>
<BMECAT version=“1.2″ xmlns=“http://www.bmecat.org/bmecat/1.2/bmecat_new_catalog“>

bei einem falschen Header fehlt z.B. der xmlns :
FALSCH: <?xml version=“1.0″ encoding=“UTF-8″ ?>
<!DOCTYPE BMECAT SYSTEM „bmecat_new_catalog_1_2.dtd“>
<BMECAT version=“1.2″ >
Dateien mit diesem Header sind NICHT importierbar !

Zur Not können Sie einfach den Header einer fehlerhaften Datei mit dem ersten Header unserer Beispiele ersetzen. Der Import sollte dann funktionieren, wenn der Rest der Datei in Ordnung ist.


5. Im Lieferantenstamm muss unter´Datenimport´ im Filter ein Block für das BME-Cat Format des Lieferanten gespeichert werden. Dieser Block ist im einfachem XML Format und sieht wie folgt aus :

<bmecat>
<SUPPLIER_NAME>Metabowerke GmbH</SUPPLIER_NAME> (a)
<LangtextAufteilen>1</LangtextAufteilen> (b)
<loeschen>0</loeschen> (c)
<wgrid>2</wgrid> (d)
<bilderpfad>D:\Inetpub\IOS2000\MAND0\DATEN\bilder\rohbilder</bilderpfad> (e)
<cdlaufwerk>E:</cdlaufwerk> (f)
<wgwandel> (g)
2323;4
4355;6
133;7
</wgwandel>
</bmecat>


Information zu den Feldern : (a) : Name des Lieferanten, wie er in der BMCAT Datei unter dem Tag ´SUPPLIER-NAME´ angegeben ist. Am Besten öffnet man einfach die BMECAT Datei mit einem Editor und kopiert den Tag aus dem Block ´Supplier´ in den Importfilter. Beispiel :
<SUPPLIER>
<SUPPLIER_NAME>Metabowerke GmbH</SUPPLIER_NAME>

Wichtig ist, dass der TAG absolut identisch ist ! Also auch Leerzeichen mit kopieren !

(b): 1 = Es wird versucht, einen Langtext auf die 4 Standard-Artikelzeilen aufzuteilen. Geht das nicht oder ist der Parameter 0, wird der Langtext immer unverändert in das Zusatzfeld ´Langtext´ in den Artikeldaten übernommen.
( c) : Wenn die Daten dieses Lieferanten vor dem Importlauf im Hintergrund komplett gelöscht werden sollen, setzen Sie den Parameter auf 1.
ACHTUNG ! Wenn sich die Daten des Lieferanten auf mehrere XML Dateien verteilen, dann werden diese innerhalb eines Imports alle importiert. Wenn Sie aber den Parameter auf 1 haben und die einzelnen XML Dateien des Lieferanten in mehreren Importläufen separat importieren, bleiben im Hintergrund immer nur die Lieferantendaten des LETZEN Imports erhalten.

(d): Geben Sie hier die Warengruppen-ID an, die den Artikeln dieses Lieferanten zugeordnet werden soll. Nach dem Import kann man dann die Warengruppen anhand der Lieferantenwarengruppe oder anderer Merkmale im Lieferanten-Artikelsatz verändern. Dazu brauchen Sie dann allerdings die Hilfe von MARKUS SOFT. Sprechen Sie uns in diesem Fall bitte an.

(e): Wenn dem Artikel Bilder zugeordnet wurden, stellen Sie sicher, dass die Bilder auch in dem Pfad zu finden sind, der im Bildnamen angegeben wurde. Das Bild wird von IOS dann in den Standard-IOS Bilderpfad kopiert.
Wenn die Lieferantendatei fehlerhaft ist und der richtige PFAD nicht zum BILDNAMEN angegeben wird, dann gehen Sie wie folgt vor :
Kopieren Sie alle Bilder des Lieferanten ein einen einzigen Pfad auf der Festplatte des Servers, z.B. \ios2000\mand0\daten\bilder\rohdaten und geben Sie diesen Pfad im Parameter (d) des BMECAT Filters an.

IOS ignoriert dann evtl. Pfade beim Import und sucht die Bilder immer in dem von Ihnen angegebenen Bilderpfad.

(f) Geben Sie hier den Namen des CDLaufwerkes auf dem IOS2000 SERVER! an, auf dem die Artikelbilder der Lieferanten-CD geladen und in das unter (e) angegebene Verzeichnis kopiert werden können. Die CD muss beim Import der Daten dann im Server-CDLaufwerk stecken, NICHT beim User !
Das funktioniert natürlich nur dann, wenn der Lieferant auch die richtigen Subpfade im Bildnamen auf der CD mit angegeben hat, sonst müssen Sie die Bilder auf jeden Fall manuell ins Verzeichnis unter (e) kopieren !
Beispiel :
Als Bild ist in der XML Datei angeben :
<MIME_SOURCE>0036600s_51.jpg</MIME_SOURCE>
In Wirklichkeit steht das Bild aber nicht im Rootverzeichnis der CD, sondern in irgendeinem Subverzeichnis, das nicht in der XML Datei beschrieben ist. In diesem Fall ist eine vollautomatische Verarbeitung mit Bildern nicht mehr möglich.

(g) Warengruppenwandlung
Zwischen die Tags <wgwandel> und </wgwandel> können Sie eine CSV Liste mit ; getrennt eintragen, die in der ersten Spalte die Warengruppe des Lieferanten und in der 2. Spalte Ihre eigene IOS2000 Warengruppen ID enthält. Die Liste kann beliebig lang sein. Steht die Warengruppe des Lieferanten nicht in dieser Liste, wird die Hauptwarengruppe aus Parameter (d) genommen.
Beispiel:
<wgwandel>
4711;10 (Warengruppe 4711 des Lieferanten ist Warengruppen ID 10 im IOS2000)
5;122 (Warengruppe 5 des Lieferanten ist Warengruppen ID 122 im IOS2000)
1899;12 (Warengruppe 1899 des Lieferanten ist Warengruppen ID 12 im IOS2000)
</wgwandel>

6. Start des Imports
Nachdem alle zu importierenden Dateien in das ´bmecat´ Verzeichnis kopiert wurden, können Sie den Import starten. Aufruf unter ´Dienste – CC-Aktionen – ´Import von Daten im BME-Cat Format´
Sie erhalten dann eine Nachricht, wenn die Importe beendet sind.

 

Standard-Importfilter


Wir bieten auf der Seite www.MarkusSoft.net unter ´Downloads´ einen Standard-Importfilter an. Dieser Filter ist für den Fall gedacht, das Sie von Lieferanten eine Datei im vorgeschriebenen Format bekommen oder die (EXCEL) Datei des Lieferanten selbst in das Standardformat bringen können.

Das vorgegebene Standardformat für diesen Filter sieht wie folgt aus :

Die Datei ist im ASCII CSV Format mit Semikolon als Trennzeichen und ohne Text-Feldzeichen. Sie erhalten so eine Datei, wenn Sie z.B. eine EXCEL Tabelle im Text-Format CSV speichern. Die Datei muss mindestens 4, maximal 6 Datenfelder enthalten Die Reihenfolge der Datenfelder ist :
1=Artikelnummer des Lieferanten, 2=Artikelbeschreibung, 3=Einkaufspreis, 4=Verkaufspreis (netto ohne MwSt.), 5=EAN, 6=Zusatz-Artikeltext 2. Die Felder 5 und 6 können fehlen, dann muss aber auch der Filter an den entsprechend markierten Zeilen angepaßt werden.

Beispiel für eine ASCII-Datei im Standardformat :
Artikelnummer;Artikelbeschreibung; Einkaufspreis; Verkaufspreis ohne MwSt; EAN ; Artikelbeschreibung 2
4711;Schraubenschlüssel 13;10;20;4012435123451;Chrom Vanadium Stahl
4712;Schraubenschlüssel 15;11;21;4012435123462;Chrom Vanadium Stahl
Der Filter wird nach dem Download mit dem Windows NOTEPAD Texteditor geöffnet und an folgenden Stellen modifiziert :

<OPTIONEN> 
<PD NAME=“UNIVERSAL-FILTER“>
   <PD DATEI=Delimited>
<PD ZEICHEN=60>
<PD START=1> ‚ ändern auf <PD START=2>, wenn die erste Zeile Überschriften enthält
<PD TRENNER=$59>
<PD LOESCHEN=1>
</OPTIONEN> 

<FELDER> 
<LI ART=LNG FEST=[liefid]>
   ‚ Kürzel
<WD ART=TXT FEST=???>
‚ hier tragen Sie anstatt ??? das Kürzel des Lieferanten ein, z.B. HAZET

‚ Warengruppe
<WG ART=TXT LANG=20 FEST=9999> ‚ hier tragen Sie anstatt 9999 ihre Warengruppen-ID ein

   ‚ artikeltext 2
<T2 ART=TXT FELD=6>‚ diese Zeile löschen, wenn keine Spalte 6 (Artikelbeschreibung 2) vorhanden ist
 ‚ EAN
<E1 ART=TXT LANG=14 FELD=5> ‚ diese Zeile löschen, wenn keine Spalte 5 (EAN) vorhanden ist

Speichern Sie die zu importierende Datei im Verzeichnis mand0import auf dem Server ab oder laden Sie die Datei mit dem kleinen Formular auf der Datenimportseite des Lieferanten hoch.

ACHTUNG!
In der Standardeinstellung der Windows Server können hier nur Dateien bis zu einer Größe von ca. 400 KByte hoch geladen werden.

Nun übertragen Sie den modifizierten Filter in den Importfilter des Lieferanten. Öffnen Sie dazu den Lieferantenstamm und gehen Sie in den Zusatzdaten auf ´Datenimport´. Löschen Sie den vorgeschlagenen Filter im Textfeld komplett. Kopieren Sie dann den gesamten Filtertext aus dem Notepad in das Textfeld beim Lieferantenfilter und klicken Sie auf ´Speichern´. Danach sollte der neue, modifizierte Filtertext im Datenimport-Textfeld zu sehen sein. Klicken Sie dann auf ´Import´. Wählen Sie jetzt in der Combobox die zu importierende ASCII-CSV Datei des Lieferanten und starten Sie den Import. Einige Minuten später wird Ihnen über das interne Nachrichtensystem ein Protokoll angezeigt.