BLDS, Parametrierung

Blech-Laser-Datenschnittstelle, Parametrierung

Nachfolgend eine Beschreibung, wie man die BLDS parametrieren kann.

Das Ziel ist, die Dateistruktur für den Export (für den Import siehe) entsprechend der Vorgaben des Zielsystems zusammenzustellen.

Idealerweise bekommst du dafür eine Musterdatei welche am Zielsystem eingelesen werden kann.

Hinweis:
Die nachfolgende Beschreibung geht immer anhand einer Filestruktur vor. Egal ob dies dann tatsächlich in einer Datei mündet, oder z.B. per RestAPI an einen Endpunkt gesandt wird.

Die für die Parametrierung erforderlichen Einstellungen findest du im Modul System.
Diese teilen sich in die grundsätzliche Beschreibung der Datenstruktur, siehe unterer Modulreiter Datenstruktur und in die eigentliche BLDS, in der die Abarbeitung definiert wird.

Definition der Datenstruktur

Im Reiter Datenstruktur definierst du den grundsätzlichen Aufbau für die verschiedenen Exportdateien, welche erzeugt werden sollten.
Je Export- bzw. Importdatei muss eine eigene Definition angelegt werden.

Der ItemPfad wird nur für den Import benötigt.

Die Export-Dateien werden auf den unter Quellname in der BLDS angegebenen Basispfad exportiert.

Für eventuelle Daten-Übersetzungen siehe Mapping.

Definition Mapping

Hier ist die Idee, Werte entsprechend zu übersetzen. So können z.B. kryptische Fehlermeldungen in sprechende / Menschen lesbare Texte übersetzt werden.

Beispiel:

Quellwert Zielwert
-1 Unbekannter Fehler
0 alles Ok

Die Verwendung des Mappings muss in der Definition der Datenstruktur unter Mapping angegeben werden, womit der aus dem ERP Feld erhaltene Wert durch das Mapping verändert wird, bzw. beim Import der Wert aus dem externen System in entsprechend Kieselstein ERP konforme Werte übersetzt wird.

Dateistruktur Export

c:\kieselstein\muster\Los@@LOS_CNR@@_@@ZEITSTEMPEL_STR1@@.xml

Feld Parametrierung
Quellname Beim Export ist hier der Dateiname der erzeugten Datei anzugeben.
Es stehen hier auch die Felder aus … zur Verfügung. Diese müssen in @@ eingeschlossen sein.
Beispiel:
@@LOS_CNR@@ setzt an diese Stelle die Los Nummer. ACHTUNG: Derzeit wird / auf \ übersetzt, womit für das jeweilige Jahr entsprechende Unterverzeichnisse existieren müssen.
ZEITSTEMPEL_STR1 … aktuelles Datum und Uhrzeit in Millisekunden

Dateistruktur Import

Mit der Funktionalität der BLDS steht eine komfortable Anbindung an die verschiedensten Systeme zur Verfügung.

Aktuell wurden damit die nachfolgend aufgeführten Anbindungen umgesetzt.
Weitere Anbindungen auch mit einer entsprechend breiteren Datenbasis können nach ausführlicher Spezifikation umgesetzt werden.

Damit die BLDS (Blech-Laser-Daten-Schnittstelle) funktioniert muss die Zusatzfunktionsberechtigung TRUTOPS_BOOST aktiviert sein.

  • Ergänzend siehe dazu auch ( /fertigung/losverwaltung/trumpf_fab/ )
  • Automatikjob Export-Schnittstellen
  • Automatikjob Import-Schnittstellen

Editor

Die BLDS kommt ab der Version 1.0.27 auch mit einem Editor, mit dem die Parametrierung durchgeführt werden kann.
Voraussetzung ist, dass die oben genannte Zusatzfunktionsberechtigung (TRUTOPS_BOOST) aktiviert ist. Weiters steht dieser Editor nur für den Admin zur Verfügung.

Du findest diesen Editor im Modul System, unterer Reiter BLDS.

Es gibt folgende Auslöser

Auslöser Bemerkung
Los_Ausgabe
SHOP_TIMER Automatikjob, Export bzw. Import Schnittstellen
REST_CALL Generieren der Daten auf Anforderung durch einen RestCall. [Siehe???]

Datenstruktur

Um die verschiedensten Daten in der eigentlichen Definition der BLDS(Editor) verwenden zu können, müssen diese vorher definiert werden. Dafür kommt mit der Zusatzfunktionsberechtigung im System auch der untere Reiter Datenstruktur. Hier kannst du deine Datenstrukturen (beliebig) zusammenstellen.
D.h. mit

Aufbau

Der Grundgedanke der BLDS ist, dass damit, im Rahmen der vorhandenen Funktionen, die Kommunikation mit einem Fremdsystem sehr flexibel definiert ist.
Daher wurde die Kommunikation in Tabellen abgebildet.

Tabelle Funktion
lp_daten_struktur Definiert die Struktur der Dateninhalte, also wie sind die Daten zu importieren bzw. exportieren im Kontext zu den Kieselstein Informationen
lp_daten_struktur_feld Definiert für eine Struktur die Felder welche Importiert bzw. exportiert werden sollen
ERP Felder
lp_mapping Definiert ein Mapping welches es erlaubt bestimmte Werte für die Schnittstellen zu ersetzen
lp_mapping_wert Hier werden die Werte für die jeweiligen Mappings gespeichert
lp_sst_parameter Definiert die Schnittstelle selbst, also Typ, Format, Auslöser etc.
lp_sst_lauf Protokolliert jeden Lauf einer Schnittstelle

Beispieldaten

lp_daten_struktur

Spalte Datentyp Kommentar
i_id int4 fortlaufende ID
c_bezeichnung varchar(64)
c_bereich varchar(32) Definiert den Bereich (quasi die Ziel/Quell Tabellen/Datenstrukturen) für den die Struktur gültig ist.
Aktuell unterstützte Werte:
- fert_lossollmaterial
- ww_artikel
Diese Bereich können programmtechnisch entsprechend ergänzt werden.
c_list_item_pfad varchar(128) Definiert das Item in einer XML-Datei wenn mehrere Datenzeilen in einer XML-Datei exportiert werden sollen, welches der Elternknoten ist. Also wo alle Datensätze wiederholt werden sollen.
Hinweis: Dieses Feld wird bei JSON die Definition der Array-Feldern beinhalten.
c_default_datum_format Varchar(32) Die Formatmaske vom Datums-Werten damit eine Umwandlung von bzw. in einem Text erfolgen kann.
Diese Formatmaske wird für die Werte verwendet, solange für das jeweilige Feld die Formatmaske nicht überschrieben wurde.
Hierfür wird die Java SimpleDateFormat Maske berücksichtigt.
c_default_nummer_format varchar(16) Die Formatmaske vom Zahlen-Werten damit eine Umwandlung von bzw. in einem Text erfolgen kann.
Diese Formatmaske wird für die Werte verwendet, solange für das jeweilige Feld die Formatmaske nicht überschrieben wurde.
personal_i_id_anlegen int4
personal_i_id_aendern int4
t_anlegen timestamp
t_aendern timestamp

lp_daten_struktur_feld

Spalte Datentyp Kommentar
i_id int4 fortlaufende ID
struktur_daten_i_id int4
c_erp_feld varchar(64) Für eine Export-Schnittstelle der Wert welcher exportiert werden soll.Für eine Import-Schnittstelle in welches Feld der Kieselstein Datenbank bzw. wie der Wert interpretiert werden soll.Welche Felder hier zur Verfügung stehen ist abhängig des Bereich von der Struktur, siehe unten die aktuellen Möglichkeiten.
c_fix_wert varchar(128) Für eine Export-Schnittstelle der Wert welcher exportiert werden soll wenn kein ERP-Feld definiert wurde.Für eine Import-Schnittstelle der Wert welcher importiert werden soll, wenn in der Quelle (Beispiel XML-Datei), der Wert nicht enthalten oder leer ist.
c_pfad Varchar(128) Der Pfad in einer XML-Datei wo sich der entsprechende Wert befindet.
c_attribut_name varchar(128) Wenn der Wert als XML-Exportiert bzw. Importiert werden soll, kann hier ein Attribute-Name definiert werden welcher sich auf die Daten bezieht.
i_sort int4
c_format_maske varchar(32) Die Format-Maske wie das jeweilige Feld wenn es sich um eine Zahl oder Datum handelt, von bzw. in einen Text-Wert umgewandelt werden kann.
mapping_i_id int4 Das eventuelle Mapping, das die Übersetzung eines Quell-Wertes in einen Zielwert definiert. Siehe lp_mapping bzw. lp_mapping_wert
personal_i_id_anlegen int4
personal_i_id_aendern int4
t_anlegen timestamp
t_aendern timestamp

ERP Felder

To be described

lp_mapping

Die Beschreibung der Werte-Übersetzungen (Mappings).

Spalte Datentyp Kommentar
i_id int4 fortlaufende ID
c_bezeichnung varchar(64)
personal_i_id_anlegen int4
personal_i_id_aendern int4
t_anlegen timestamp
t_aendern timestamp

lp_mapping_wert

Spalte Datentyp Kommentar
i_id int4 fortlaufende ID
mapping_i_id int4
c_quellwert varchar(64)
c_zielwert varchar(128)
personal_i_id_anlegen int4
personal_i_id_aendern int4
t_anlegen timestamp
t_aendern timestamp

lp_sst_parameter

Spalte Datentyp Kommentar
i_id int4 fortlaufende ID
c_transfer_typ varchar(64) Der Typ wie die Daten übertragen werden, wie:
REST-DISPATCHER: Es werden Daten über einen HTTP-Post Request an einen anderen Webserver versendet/exportiert bzw. über einen HTTP-Get Request von einem anderen Webserver abgefragt/importiert.
REST-RECEIVER: Es können über die Kieselstein-REST Api Daten importiert bzw. exportiert werden. Hierfür gibt es folgende neue Endpunkte: /api/v1/interfaces/{interfaceID}/get-data
und /api/v1/interfaces/{interfaceID}/store-data.
FILE: Die Schnittstelle importiert bzw. exportiert Daten von/in Dateien.
struktur_daten_i_id int4 Die Referenz auf die Struktur welche bestimmt wie die Daten aufbereitet werden sollen.
i_ausloeser smallint Hier wird gesteuert bei welchen Aktionen die Schnittstelle ausgelöst wird. Aktuell:
1 = Shop Timer (System/Automatik).
2 = Los-Ausgabe
3 = REST-Endpunkt
c_quellname Varchar(256) Der Quellname (abhängig je Transfer-Typ) wo die Daten exportiert oder von wo die Daten importiert werden sollen. Dies kann ein Dateiname (mit eventuellen Platzhaltern) oder auch eine URL sein.
c_typ varchar(1) Der Typ steuert ob Daten aus dem Kieselstein exportiert oder ins Kieselstein importiert werden sollen. I = Import & E = Export
i_daten_modus smallint Steuert bei Export Schnittstellen ob alle betreffende Datensätze oder nur welche die sich seit dem letzten Schnittstellenlauf geändert wurden exportiert werden sollen. Aktuell:
1 = Alle Datensätze
2 = Nur geänderte Datensätze
c_format varchar(5) Das Format in welches die Daten exportiert bzw. importiert werden sollen.
Aktuell nur XML und CSV (Testweise) umgesetzt.
c_bereich varchar(32) Der Bereich steuert welche Daten behandelt werden sollen. Aktuell:
FERT_TRUMPF_SOLL_MATERIAL = Nur Soll-Materialien welche bei der Artikelklasse das TOPS Kennzeichen gesetzt haben. (Nur Export)
WW_ARTIKEL_TOPS = Nur Artikel welche bei der Artikelklasse das TOPS Kennzeichen gesetzt haben. (Import & Export)
FERT_TRUMPF_PROD_ORDER = Aktualisiert die Export-Ende Informationen für das Los-Soll-Material (Nur Import).
WW_ARTIKEL_TRU_TOPS_LOG = Aktualisiert die Gestehungspreise und Geometriedaten für die Los-Soll-Materialien (Nur Import)
i_sort Int4 Bestimmt die Reihenfolge wie die Schnittstellen welche dem selben Auslöser haben abgearbeitet werden sollen.
c_bezeichnung varchar(64)
i_nachverarbeitung_modus smallint Steuert beim Importieren von Dateischnittstellen wie die importierten Dateien behandelt werden sollen. Aktuelle Möglichkeiten:
0 = Keine Aktion
1 = Importierte Datei löschen
2 = Importierte Datei umbenennen (Wenn der Import erfolgreich war wird die Endung “.bak” hinzugefügt, in einem Fehlerfall wird die Endung “.error” hinzugefügt)
b_akitv Boolean true = Schnittstelle aktiv, false = inaktiv
personal_i_id_anlegen int4 Angelegt von Person
personal_i_id_aendern int4 zuletzt geändert von Person
t_anlegen timestamp angelegt am
t_aendern timestamp zuletzt geändert am

lp_sst_lauf

Spalte Datentyp Kommentar
i_id int8 fortlaufende ID
sst_i_id int4 Die Referenz zur jeweiligen Schnittstelle
t_zeitstempel_start timestamp Der Zeitstempel wann der jeweilige Lauf gestartet wurde.
t_zeitstempel_ende timestamp Der Zeitstempel wann der jeweilige Lauf beendet wurde.
i_status smallint Der Status des jeweiligen Schnittstellenlauf.
0 = Gestartet
1 = Erfolgreich beendet
2 = Fehler
i_anzahl_datensaetze int4 Die Anzahl der Datensätze welche im jeweiligen Schnittstellenlauf behandelt wurden.
c_fehlermeldung text In einem Fehlerfall die entsprechende Fehlermeldung mit dem Java-StackTrace (für das Debugging).

Dazugehörende Parameter

Parameter Bedeutung
Import Schnittstellen Durchführen des Automatiklaufes der Import-Daten
Export Schnittstellen Durchführen des Automatiklaufes der Export-Daten

Beispiel

Ein Beispiel wie alle Material-Nummern eines Loses als Los-Soll-Materialien hinterlegt werden.

Struktur:

INSERT INTO public.lp_daten_struktur(i_id, c_bezeichnung, c_bereich, c_list_item_pfad, c_default_datum_format, c_default_nummer_format, personal_i_id_anlegen, personal_i_id_aendern, t_anlegen, t_aendern) VALUES
(11, 'Los-Materialien', 'fert_lossollmaterial', 'Materialliste/Daten', NULL, NULL, 11, 11, '2025-01-09 12:51:11.581', '2025-01-09 12:51:11.581');

Struktur Felder:

INSERT INTO public.lp_daten_struktur_feld(i_id, struktur_daten_i_id, c_erp_feld, c_fix_wert, c_pfad, c_attribut_name, i_sort, c_format_maske, personal_i_id_anlegen, personal_i_id_aendern, t_anlegen, t_aendern, mapping_i_id) VALUES
(11, 11, 'LOS_ID', NULL, 'Materialliste/Los/Id', NULL, 1, NULL, 11, 11, '2025-01-15 11:53:24.295', '2025-01-15 11:53:24.295', NULL),
(12, 11, 'LOS_CNR', NULL, 'Materialliste/Los/CNr', NULL, 1, NULL, 11, 11, '2025-01-15 11:53:24.301', '2025-01-15 11:53:24.301', NULL),
(13, 11, 'ARTIKEL_CNR', NULL, 'Materialliste/Daten/Material/CNr', NULL, 2, NULL, 11, 11, '2025-01-15 11:53:24.306', '2025-01-15 11:53:24.306', NULL),
(14, 11, 'ARTIKEL_BEZEICHNUNG', NULL, 'Materialliste/Daten/Material/Caption', NULL, 2, NULL, 11, 11, '2025-01-15 11:53:24.306', '2025-01-15 11:53:24.306', NULL);

Ergebnis als XML-Datei:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Materialliste>
<Los\>
<Id\>16</Id>
<CNr>25/0000003</CNr>
</Los\>
<Daten>
<Material>
<Cnr>25711</Cnr>
<Caption\>Artikel Seitenblech 1</Caption\>
</Material>
<Material>

In anderen Worten

Der Trick liegt darin, dass der XML Baum für jedes XML-Feld (jeden XML Wert) in c_list_item_pfad eingetragen wird, wobei immer der gesamte Baum abzubilden ist und jeder weitere Ast(Verzweigung) mit einem / beginnt. Somit kann die gewünschte XMl Struktur dargestellt werden.

Verfügbare Anbindungen

Trumpf

Übergabe der Los und Artikeldaten, inkl. der dazugehörenden Zeichnungen an das Lasersystem der Firma Trumpf.

Damit verbunden das Rücklesen der Gestehungspreise der gelaserten / zu lasernden Teile


Wie bei Null beginnen?

1

Im lp_sst_parameter wird beschrieben welche Daten wohin exportiert werden. D.h. du brauchst zuerst einen gobalen Namen für deinen Export, dieser wird in der lp_daten_struktur angelegt. Hier wird im Bereich auch definiert, was exportiert werden sollte.