BLDS, Parametrierung
Categories:
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.