powered by CADENAS

Manual

Manual

5.8.13. Daten automatisiert und zyklisch aktualisieren

Sie können beliebige Informationen aus Drittsystemen nach PARTsolutions mit ERP-Kopplung (in die Linkdatenbank) übertragen.

Bei PARTsolutions mit ERP-Kopplung gibt es drei grundsätzliche Anforderungen bezüglich Datenübernahme und Kopplungen.

  • Urfüllung

  • Aktualisierung

  • Neuanlage

PARTident, welcher bislang die Aufgabe der zyklischen Datenaktualisierung übernahm, wird mit PARTsolutions V9.02 durch das Skript nightupdate.vbb ersetzt.

Die Identifikation des jeweils korrekten Datensatzes erfolgt über die Materialstamm-Nr. bzw. die ERP_PDM_NUMBER.

Ist ein Datensatz eindeutig zugeordnet, können Informationen aus beliebig viele Informationen aus ERP-Spalten in die Linkdatenbank übertragen werden.

Die folgende Abbildung zeigt das Beispiel einer Aktualisierung der Spalten Artikelpreis und Lagerbestand.

Voraussetzung:

Die Lizenz "CSN2005*PSDEV*PIDENT" muss vorhanden sein.

Der Ablauf:

  • Änderungen im ERP-System werden zyklisch (z.B. täglich, aber auch mehrmals täglich, meist in der Nacht) seitens des ERP-Systems in Form einer CSV-Datei exportiert. Die CSV-Datei enthält nur die während eines Zyklus' geänderten Datensätze.

  • Es wird mittels "Geplante Aufgaben" ein Job definiert (entsprechend des Export-Zyklus' seitens des ERP-Systems).

  • Hierbei wird das Skript nightupdate.vbb aufgerufen; entweder mit oder ohne zusätzliche Angabe der Konfigurationdatei:

    • Ohne explizite Angabe der Konfigurationsdatei:

      "%cadenas%\bin\x86\32\cscripthost.exe" "%cadenas_setup%\scripts\erp\nightupdate.vbb"

      Das Skript verwendet die nightupdate.cfg aus $CADENAS_SETUP.

    • Mit zusätzlicher Angabe einer Konfigurationsdatei. Dies kann sinnvoll sein, wenn mit verschieden aufgebauten CSV-Dateien gearbeitet wird.

      "%cadenas%\bin\x86\32\wscripthost.exe" "%cadenas_setup%\scripts\erp
      \nightupdate.vbb" "nightupdate.cfg"

    Das Skript liegt unter $CADENAS_SETUP\scripts\erp\nightupdate.vbb.

    Die Konfigurationsdatei liegt unter $CADENAS_SETUP\nightupdate.cfg.

  • In der Konfigurationsdatei nightupdate.cfg werden spezifische Anpassungen vorgenommen.

  • Die geänderten Datensätze des Drittsystems werden entsprechend der Vorgaben in die LinkDB geschrieben.

Konfiguration:

Einstellungen im Block [MISC]

  • Zugangsdaten zu LinkDB

    Spezifizieren Sie den Benutzernamen.

    user=sa
  • Pfadangabe für CSV-Datei

    Das PLM/ERP-System exportiert eine CSV-Datei.

    Spezifizieren Sie den Speicherort dieser auszuwertenden Datei.

    Der Platzhalter <date> wird mit dem aktuellen Datum automatisch ersetzt.

    inputcsv=C:\temp\input_<date>.csv

    Ausgabe wäre beispielsweise: c:\temp\input_31_05_2011.csv

  • Startzeile bestimmen

    Es kann die gewünschte Anfangszeile angegeben werden (1 für die erste, 2 für die zweite, 3 für die dritte, …).

    startline=1
  • Trennzeichen für Spalten

    Es kann mit festen Spaltenbreiten oder auch mit einem bestimmten Trennzeichen gearbeitet werden:

    • Feste Spaltenbreite

      Wenn "FixedWidth" leer ist, dann wird "SEP" und "Quote" benutzt, wenn Werte gesetzt sind, dann werden diese benutzt.

      FIXED_WITH=10,80,100
    • Trennzeichen

      Beispiel 1:

      Sehr häufig ist das Semikolon.

      SEP=;

      Beispiel 2:

      Auch Tabulator als Trennzeichen kann benutzt werden.

      SEP=\t

      Beispiel 3:

      Wenn " als Trennzeichen benutzt werden soll, dann müssen Sie ein Escape-Zeichen wie z.B. Backslash voranstellen.

      SEP=\"
  • Texterkennungszeichen

    Geben Sie optional ein Texterkennungszeichen an.

    Wenn " als Texterkennungszeichen benutzt werden soll, dann müssen Sie ein Escape-Zeichen wie z.B. Backslash voranstellen.

    Beispiel:

    QUOTE=\"
  • Bestimmte Zeilen für Übernahme ausschließen

    • Beispiel 1.

      Alle Zeilen werden übernommen.

      ProcessLine=1
    • Beispiel 2:

      Bei sehr großen CSV-Dateien und/oder vielen nicht zu benutzenden Zeilen, können Sie Zeilen von der Übernahme ausschließen.

      Soll eine Zeile, welche in Spalte 3 den Wert "STEEL" aufweist, ignoriert werden, geben Sie folgendes an:

       ProcessLine=row.cells.item(2).value<>"STEEL"
    • Beispiel 3:

      Sollen nur Zeilen, welche in Spalte 3 den Wert "STEEL" aufweisen, übernommen werden, geben Sie folgendes an:

       ProcessLine=row.cells.item(2).value="STEEL"
    • Beispiel 4:

      Sie können auch mehrere Bedingungen aneinanderfügen.

      (Jeder logische Operator (AND,OR,XOR,…kann verwendet werden.)

      Sollen nur Zeilen, welche in Spalte 3 den Wert "STEEL" oder "GOLD" aufweisen, übernommen werden, geben Sie folgendes an:

       ProcessLine=row.cells.item(2).value="STEEL" OR row.cells.item(2).value="GOLD"
  • In Linkdatenbank fehlende Datensätze ohne Verknüpfung in ERPTABLE anlegen

    Wertebereich: 0/1

    Vorteil: Bei einem späteren Aufruf stehen die Metadaten sofort zur Verfügung.

    Nachteil: Es werden evtl. viele unnötige Datensätze angelegt.

    createEmptyERPdataSetIfUnknown=1
  • Bestimmte Spalten vom Update ausnehmen, sofern der CSV-Wert leer ist

    Listen Sie die betreffenden Spalten kommasepariert auf.

    Beispiel:

    DontOverwriteValueIfEmpty=ACTIVE_STATE,MAT_NAME

Einstellungen im Block [LOG]

  • Pfadangabe für die Log-Datei

    logfile=C:\Dokumente und Einstellungen\Administrator\Desktop\log\test_<date><time>.log

    In der Ausgabedatei wird <date> durch das reale Datum im Format DD_MM_YYYY ersetzt.

    In der Ausgabedatei wird <time> durch die reale Zeit im Format HH-mm-SS ersetzt.

  • Spezifizierung des Log-Levels

    Wertebereich:

    0/1/2/3

    0: kein Logging

    1: nur Error-Nachrichten werden ausgegeben

    2: Trace- und Error-Nachrichten werden ausgegeben

    3: Trace- und Error-Nachrichten werden ausgegeben und zusätzlich in eine Log-Datei geschrieben

    Beispiel:

    logprio=3
  • E-Mail mit Statusmeldung senden bei OK

    Wertebereich: 0/1

    SendStatusMailOnOk=1
  • E-Mail mit Statusmeldung senden bei Error

    Wertebereich: 0/1

    SendStatusMailOnError=1
  • Log-Datei als Anhang der E-Mail senden

    Wertebereich: 0/1

    appendLogFileToStatusMails=1

Einstellungen im Block [LOAD]

  • Hier können Sie Zusatzskripte definieren, um die Zeilenauswertung komplexer gestalten zu können.

    Nummerieren Sie die Skripte mit fortlaufender Zählung beginnend bei 1.

    [LOAD] 
    1=$CADENAS_SETUP/mycustom.vbb
    2=etc.

Einstellungen im Block [ERPTABLE-IDENTIFY-COLUMNS]

  • Hier werden die Spalten, welche zur Identifikation der Zeile in der LinkDB benötigt werden, eingetragen. Falls keine passende Zeile gefunden wird und createEmptyERPdataSetIfUnknown = 1, wird eine neue Zeile angelegt.

    Default:

    Die Default-Einstellung greift, wenn auf Seiten von PARTsolutions die eindeutige Nummer in der Spalte ERP_PDM_NUMBER zu finden ist und im Drittsystem die zugehörige Information in der ersten Spalte der CSV-Datei steht.

    [ERPTABLE-IDENTIFY-COLUMNS]
    ERP_PDM_NUMBER=row.cells.item(0).value
    • Beispiel 1:

      In diesem Beispiel steht auf Seiten von PARTsolutions die eindeutige Nummer in der Spalte "SAP_MAT_NR". Im Drittsystem steht die zugehörige Information in der zweiten Spalte der CSV-Datei.

      SAP_MAT_NR=row.cells.item(1).value
    • Beispiel 2:

      Zur Identifikation der Zeile in der LinkDB werden mehrere CSV-Spalten benötigt.

      Es sollen beim Wert der ersten CSV-Spalte die führenden Nullen entfernt werden, dann ein Unterstrich eingefügt werden und dann der Wert aus Spalte 2 angehängt werden.

      ERP_PDM_NUMBER=""&row.cells.item(0).value & "_" & row.cells.item(1).value

      Ausschnitt aus CSV-Datei von Spalte 1 und Spalte 2:

      0000014245      001

      Mit folgendem Wert wird in der LinkDB die passende Zeile gesucht.

      14245_001
    • Beispiel 3:

      Zur Identifikation der Zeile in der LinkDB werden mehrere CSV- bzw. LinkDB-Spalten benötigt.

      ERP_PDM_NUMBER=row.cells.item(0).value
      ERP_VERSION=row.cells.item(1).value

Einstellungen im Block [ERPTABLE-UPDATE-COLUMNS]

  • In diesem Block werden alle Spalten deklariert, bei denen ein Update erfolgen soll.

    Beispiel 1:

    [ERPTABLE-UPDATE-COLUMNS]
    ERP_PDM_NUMBER=row.cells.item(0).value
    MAT_NAME=row.cells.item(1).value
    DESCRIPTION=row.cells.item(2).value

    Beispiel 2:

    Soll in einer bestimmten Spalte ein Wert ersetzt werden, verwenden Sie folgenden Ausdruck:

    [ERPTABLE-UPDATE-COLUMNS]
    MAT_NAME=replace(row.cells.item(0).value,”Stahl”,”8.8”)