GEKO/TAKO Schnittstellen
Konzept
Die GEKO und TAKO Schnittstellen sind als Database-Link zwischen den beiden Oracle Datenbanken von BPS und Automat realisiert.
Übermittlungen werden durch Oracle-Transaktionen gesichert. Es gibt somit keine Inkonsistenten wie halb verarbeitete oder fehlerhafte Dateien; eine Transaktion ist immer vollständig erfolgreich oder die Datenbank wird wieder auf den Anfangszustand zurückgesetzt (Rollback). Dies betrifft nicht nur die Schnittstelle an sich sondern auch alle damit zusammenhängenden Änderungen in den Applikationstabellen welche in der gleichen Transaktion erfolgen. Selbst nach Hardware Crashs wird durch die Recovery Funktionen von Oracle ein konsistenter Zustand nicht nur der Applikationstabellen, sondern auch der Schnittstelle wiederhergestellt.
Die Schnittsstelle an sich ist sehr schnell und für Online-Änderungen geeignet, da die Daten nicht zuerst in ein Dateiformat konvertiert werden, und anschliessend wieder decodiert (geparst) werden müssen.
Aktuelle Stammdaten stehen jederzeit als Views zur Abfrage durch das Kommissioniersystem bereit, und nicht nur zu bestimmten Zeiten. Ein separater Batch Prozess für die periodische Aufbereitung von Stammdaten auf dem BPS entfällt.
Ausführung
Die Schnittstelle ist so konzipiert, dass keinerlei Zugriffe von BPS aus in die Datenbank des Automaten erfolgen um jegliche Beeinträchtigung des Zeitverhaltens des Automaten durch BPS auszuschliessen. Alle Schnittstellen-Tabellen und -Views befinden sich deshalb in der BPS Datenbank, und es wird nur ein einseitiger Database Link von Automaten-Datenbank auf BPS Datenbank eingerichtet.
Beispiel
Im folgenden Beispiel richtet der Entwickler in der Oracle Datenbank des Automaten einen DB Link zur BPS Datenbank ein. Auf der Datenbank ZAB hat Ihm der BPS Administrator dazu ein Benützerkonto auf den Namen TAKO mit dem Passwort ASIMOV eingerichtet, und diesem Benützer die erforderlichen Zugriffsrechte auf die Tabellen und Views der Automaten-Schnittstelle gewährt. Die BPS Datenbank hat den globlen Namen GMOS3.WORLD, und hat den TNS Namen ZAB.
create database link gmos3.world connect to tako identified by asimov using zab;
Die physischen Views und Schnittstellen enthalten an Stelle von _pr_ (wie in der Originalspezifikation für BPS V1) jeweils _geko_ respektive _tako_ im Namen. Für den Zugriff auf die Schnittstelle sollte der Automat deshalb in seiner Oracle Instanz eigene Views oder Synonyme zu definieren. Während die Namen der Views und Tabellen auf der BPS Seite fix sind, steht dem Entwickler des Automaten natürlich frei wie er die Views/Synonyme in der Automaten-DB benennen will. Nachfolgend werden solche auf je eine BPS View und eine BPS Tabelle jeweils mit dem Prefix LLS_ definiert:
create or replace view lls_articles as select * from zab.v_tako_coll_articles@gmos3.world; create or replace view lls_orders as select * from zab.t_tako_orders@gmos3.world;
oder
create synonym lls_articles for zab.v_tako_coll_articles@gmos3.world; create synonym lls_orders for zab.t_tako_orders@gmos3.world;
Ein weiterer Vorteil der Definition solcher Views oder Synonyme im Automaten ist, dass der DB Link oder die Benennung der Tabellen und Views innerhalb BPS geändert werden können, ohne dass in der eigentlichen Applikation des Automaten etwas verändert werden muss.
Benennung
Die Views auf die Stammdaten haben jeweils den Prefix v_geko_ oder v_tako_.
Die Tabellen der Bewegungsdaten haben jeweils den Prefix t_geko_ oder t_tako_.
Typen von Bewegungsdaten
BPS zu Automat mit Rückmeldung
- BPS erzeugt die Zeilen mit Status = 0 per INSERT.
- Der Automat verarbeitet die Anforderungen und setzt den Status per UPDATE auf 1, 2 oder 3.
- BPS verarbeitet die Antwort und löscht die Zeile per DELETE.
BPS zu Automat ohne Rückmeldung
- BPS erzeugt die Zeilen per INSERT.
- Der Automat verarbeitet die Zeilen und löscht sie per DELETE.
Automat zu BPS ohne Rückmeldung
- Der Automat erzeugt die Zeilen per INSERT.
- BPS verarbeitet die Zeilen und löscht sie per DELETE.
- Allfällige Fehler werden im Log des Batchprogramms GekoSync.log respektive TakoSync.log protokolliert.
Zeitliches Verhalten
Stammdaten
Die Stammdaten-Views in der BPS Datenbank stehen permanent zur Abfrage zur Verfügung und wiederspiegeln den aktuellen Stand im BPS mit allen per COMMIT bestätigten Mutationen.
Vom Automaten werden die Stammdaten nur zu bestimmten Zeiten abgefragt, z.B. täglich 23.00 oder bei Ereignissen wie z.B. Kommissionierbeginn einer Tour. Diese Zeiten und Ereignisse sind nicht Bestandteil dieses Pflichtenhefts, sondern in der Spezifikation des Automaten festzulegen.
Stammdaten-Mutationen welche auf dem BPS erfolgen werden deshalb nicht unmittelbar auf dem Automaten wirksam, sondern erst zu den festgelegten Zeiten oder Ereignissen.
Bewegungsdaten BPS zu Automat mit Rückmeldung
Da diese Aktionen im Dialog der Programme Offene Touren und Sortimentartikel ausgelöst werden, sollen die Befehle möglichst rasch beantwortet werden. Umfangreichere Aktionen wie Kürzungen und Verschiebungen können dazu führen dass BPS Datensätze in der Grössenordnung der Anzahl Filialen generiert.
Die maximale Anwortzeit des Automaten (d.h. bis alle Datensätze verarbeitet sind) wird wie folgt spezifiziert:
- Für 1 bis 10 Datensätze: 15 Sekunden
- Für 10 bis 150 Datensätze: 60 Sekunden
- Für über 150 Datensätze: Proportional mehr, d.h. bis 300 Datensätzen 120 Sekunden etc.
Das genaue Zeitverhalten zeigt sich erst am realen System, die Angaben oben sind auf der vorsichtigen Seite und werden voraussichtlich erheblich unterschritten. Die Reaktionszeit des Automaten wird hauptsächlich von der Polling-Zeit (zB. all 5-10 sec) bestimmt, die jedoch nicht zu klein gewählt werden darf. Das Polling soll deshalb dynamisch verändert werden, d.h. im Ruhezustand wo keine Kommunikation stattfindet genügt es die Abfrage alle 10 bis 15 Sekunden durchzuführen. Sobald jedoch effektiv eine Anfrage gestellt wird, ist die Wahrscheinlichkeit sehr hoch dass nach Beantwortung gleich noch weitere Anfragen erfolgen. Die Poll-Zeit sollte deshalb nach der Verarbeitung einer Anfrage auf eine kurze Zeit heruntergesetzt werden (z.B. auf 1 oder 0,5 Sekunden). Erst wenn dann mehrmals keine weitere Anfrage mehr erfolgt soll die Pollzeit wieder zurückgesetzt werden auf 10-15 Sekunden. Idealerweise sollten diese Poll-Parameter im GEKO einstellbar sein.
Bewegungsdaten Automat zu BPS ohne Rückmeldung
Die Verarbeitung der Pickmengen und der „Ende Kommissionierung“ Meldung erfolgt über einen Batchjob welcher auf dem BPS Scheduler ausgeführt wird. Der Job wird z.B. alle 5 Minuten ausgeführt, wobei dieses Intervall je nach Bedarf duch die Informatik selbständig im Autosys eingestellt werden kann.
Die Verarbeitung der Bestandesmeldungen erfolgt innerhalb des Dialogprogramms und unmittelbar nach Beantwortung der entsprechenden Anforderung durch den Automaten.
Tabellen
An Stelle von _xxxx_ steht jeweils _geko_ respektive _tako_.
t_xxxx_detailpurges
Detailposition löschen.
Bewegungsdaten BPS zu Automat mit Rückmeldung.
Wird die letzte Position eines Partnerauftrags gelöscht, so wird damit auch der entsprechende Partnerauftrag selbst gelöscht. War es der letzte Partnerauftrag einer Tour, so wird auch die Tour gelöscht.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | s_xxxx_idents.nextval |
orderrow | number not null | Partnerauftrag Nummer | t_orderrows.c_key |
row_id | number not null | Partnerauftrag Position | t_orderitems.c_key |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Aktion erfolgreich 2 – Anforderung abgelehnt oder Fehler 3 - Daten nicht vorhanden |
t_xxxx_detailupdates
Detailposition Änderung (Sollmenge und/oder Palettencode).
Bewegungsdaten BPS zu Automat mit Rückmeldung.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | s_xxxx_idents.nextval |
orderrow | number not null | Partnerauftrag Nummer | t_orderrows.c_key |
row_id | number not null | Partnerauftrag Position | t_orderitems.c_key |
planned | number(6) not null | Neue Sollmenge in Anzahl BE | t_orderitems.c_planned |
palcode | number(2) not null | Neuer Palettencode | t_number(t_mergeclass.c_name) |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Aktion erfolgreich 2 – Anforderung abgelehnt oder Fehler 3 - Daten nicht vorhanden |
t_xxxx_orderrowmoves
Diese Tabelle wird in der aktuellen BPS V2 Implementierung nicht verwendet, statt dessen werden die Positionen des bisherigen Partnerauftrags mittels t_xxxx_detailpurges gelöscht, und die Positionen in der neuen Tour ggf. mittels t_xxxx_orders gesendet.
Partnerauftrag verschieben.
Bewegungsdaten BPS zu Automat mit Rückmeldung.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | s_xxxx_idents.nextval |
orderrow | number not null | Partnerauftrag Nummer | t_orderrows.c_key |
tripdate | date not null | Neues Tourendatum | t_ordertrips.c_date |
trip | varchar(30) not null | Neue Touren-ID | t_trips.c_id |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Aktion erfolgreich 2 – Anforderung abgelehnt oder Fehler 3 - Daten nicht vorhanden |
t_xxxx_orderrowpurges
Diese Tabelle wird in der aktuellen BPS V2 Implementierung nicht verwendet, statt dessen werden die Positionen der Partneraufträge mittels t_xxxx_detailpurges gelöscht.
Partnerauftrag löschen.
Bewegungsdaten BPS zu Automat mit Rückmeldung.
Wenn der letzte Partnerauftrag einer Tour gelöscht wird, so wird damit auch die Tour selbst gelöscht.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | s_xxxx_idents.nextval |
orderrow | number not null | Partnerauftrag Nummer | t_orderrows.c_key |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Aktion erfolgreich 2 – Anforderung abgelehnt oder Fehler 3 - Daten nicht vorhanden |
t_xxxx_orders
Bestellpositionen.
Bewegungsdaten BPS zu Automat mit Rückmeldung.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | s_xxxx_idents.nextval |
orderrow | number not null | Partnerauftrag Nummer | t_orderrows.c_key |
row_id | number not null | Partnerauftrag Position | t_orderitems.c_key |
tripdate | date not null | Tourendatum (=Auslieferdatum) | t_ordertrips.c_date |
trip | varchar(30) not null | Touren-ID | t_trips.c_id |
partner | varchar(30) not null | Partnernummer des Empfängers | t_partners.c_id |
collection | varchar(30) not null | Sortiment | t_partners.c_collection → t_collections.c_name |
art_no | varchar(30) not null | Artikel Nummer | t_articles.c_id |
planned | number(6) not null | Sollmenge in Anzahl BE | t_orderitems.c_planned |
palcode | number(2) not null | Palettencode: Positionen mit identischem Palettencode dürfen auf dieselbe Palette. | t_number(t_mergeclass.c_name), z.B: 00 Allerlei 01 BIO 02 Offenware etc. |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Aktion erfolgreich 2 – Anforderung abgelehnt oder Fehler |
t_xxxx_palinputs
Palettenaufgabe zur Wicklung und Etikettierung.
Bewegungsdaten BPS zu Automat mit Rückmeldung.
Eine neue Anforderung mit Status 0 wird erstellt wenn sich der Benutzer im BPS Kommissionierprogramm im Druckfenster für die Palettenetikette befindet, und der Rüster statt den Druck auszulösen einen Identifikations-Barcode beim I-Punkt Karton scannt.
Wird die Anforderung vom Automat mit Status 1 quittiert, so ist die Palette in den Verantwortungsbereich des Automaten übergegangen. Der Druckdialog im Kommissionierprogramm wird geschlossen und der Rüster kann weiter kommissionieren.
Wird die Anforderung durch den Automaten mit Status 2 abgelehnt, so wird dem Benutzer im Kommissionierprogramm eine entsprechende Fehlermeldung („Anforderung durch Automat abgelehnt“) angezeigt. Nach quittieren der Fehlermeldung kann der Benutzer die Etikette drucken und die Palette anderweitig abtransportieren.
Es kann im praktischen Betrieb nur immer einen Datensatz mit Status 0 geben. Sollte (durch technischen Fehler oder durch Umgehen der Bedienvorschriften) die Situation entstehen dass mehr als ein Datensatz mit Status 0 vorhanden ist, so wird der Automat alle vorhandenen offenen neuen Anforderungen mit Status 2 ablehnen. Der Bediener der tatsächlich bei der Aufgabestelle an der Reihe ist kann dann entweder den Aufgabestellen-Barcode nochmals scannen um die Anforderung zu wiederholen, oder er kann die Palettenetikette drucken und die Palette anderweitig abtransportieren.
Spalte | Typ | Beschreibung | BPS V2 Mapping / Bemerkungen |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | s_xxxx_idents.nextval |
pallet | number(6) not null | Palettennummer. Referenziert v_xxxx_palinfo. | Letzte 6 Ziffern von t_ordepicks.c_luid |
barcode | varchar(35) not null | Identifikations-Barcode beim I-Punkt. Enthält z.B. die Wicklungsart und die Aufgabeadresse; der Inhalt ist für BPS jedoch nicht relevant. | Wird von BPS 1:1 wie gescannt abgefüllt, die Auswertung erfolgt durch den Automat. |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Palette wurde angenommen 2 – Anforderung abgelehnt (z.B. Fehler, Anlage nicht bereit oder Palettendaten nicht komplett) |
t_xxxx_pickedarts
Pickmenge einer Bestellposition.
Bewegungsdaten Automat zu BPS ohne Rückmeldung.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | Von Automat vergeben |
orderrow | number not null | Partnerauftrag Nummer | t_orderrows.c_key |
row_id | number not null | Partnerauftrag Position | t_orderitems.c_key |
actual_ou | number(6) not null | Istmenge in Anzahl BE | t_orderpicks.c_tus |
pal_id | number(6) not null | Palette Nummer | t_orderpicks.c_luid |
t_xxxx_pickedcds
Crossdocking Pickmenge.
Bewegungsdaten Automat zu BPS ohne Rückmeldung.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | Von Automat vergeben |
sender | varchar(30) not null | Partnernummer des Lieferanten | t_partners.c_id |
recipient | varchar(30) not null | Partnernummer der Filiale | t_partners.c_id |
actual_ou | number(6) not null | Istmenge in Anzahl BE | t_orderpicks.c_tus |
pal_id | number(6) not null | Palette Nummer | t_orderpicks.c_luid |
t_xxxx_querystock
Abfrage Lagerbestand.
Bewegungsdaten BPS zu Automat mit Rückmeldung.
Wenn diese Abfrage gestellt wird, stellt der Automat die Bestände aller im Automatenlager vorhandenen Artikel in die Tabelle t_xxxx_stocklevels, und quittiert anschliessend diese Abfrage.
Die Anfrage wird in der Regel zu einem Zeitpunkt gestellt in welchem die Kommissionieranlage ruht. Sollte die Anfrage jedoch ausnahmsweise zu einem Zeitpunkt erfolgen in welchem die Einlagerung und/oder Kommissionierung im Gange ist, so ist es dem Automat freigestellt ob die Bestände nur effektiv in den Lagerplätzen liegende Gebinde umfassen oder auch solche die in der Anlage unterwegs sind (je nachdem welche Implementierung günstiger ist).
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | s_xxxx_idents.nextval |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Aktion erfolgreich 2 – Anforderung abgelehnt oder Fehler 3 - Daten nicht vorhanden |
t_xxxx_stocklevels
Bestandesmeldungen.
Bewegungsdaten Automat zu BPS ohne Rückmeldung.
GEKO: Nur Bestand der nicht gesperrt ist
TAKO: Nur Bestand in Portalen
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | Von Automat vergeben |
collection | varchar(30) not null | Sortiment | t_collections.c_name |
art_no | varchar(30) not null | Artikel Nummer | t_articles.c_id |
stock_act | number(8) not null | Bestand in Bestelleinheiten | t_stock.c_tus |
t_xxxx_tripdone
Meldung wenn Tour beendet.
Bewegungsdaten Automat zu BPS ohne Rückmeldung.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | Von Automat vergeben |
tripdate | date not null | Tourendatum | t_ordertrips.c_date |
trip | varchar(30) not null | Touren-ID | t_trips.c_id |
t_xxxx_tripmoves
Diese Tabelle wird in der aktuellen BPS V2 Implementierung nicht verwendet, statt dessen werden die Positionen der bisherigen Tour mittels t_xxxx_detailpurges gelöscht, und die Positionen der neuen Tour ggf. mittels t_xxxx_orders neu gesendet.
Tour verschieben.
Bewegungsdaten BPS zu Automat mit Rückmeldung.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | s_xxxx_idents.nextval |
tripdate_old | date not null | Altes Tourendatum | t_ordertrips.c_date |
trip_old | varchar(30) not null | Alte Touren-ID | t_trips.c_id |
tripdate_new | date not null | Neues Tourendatum | t_ordertrips.c_date |
trip_new | varchar(30) not null | Neue Touren-ID | t_trips.c_id |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Aktion erfolgreich 2 – Anforderung abgelehnt oder Fehler 3 - Daten nicht vorhanden |
t_xxxx_trippurges
Diese Tabelle wird in der aktuellen BPS V2 Implementierung nicht verwendet, statt dessen werden die Positionen der Tour mittels t_xxxx_detailpurges gelöscht.
Tour löschen.
Bewegungsdaten BPS zu Automat mit Rückmeldung.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer als Primärschlüssel. | s_xxxx_idents.nextval |
tripdate | date not null | Tourendatum | t_ordertrips.c_date |
trip | varchar(30) not null | Touren-ID | t_trips.c_id |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Aktion erfolgreich 2 – Anforderung abgelehnt oder Fehler 3 - Daten nicht vorhanden |
Ansichten (Views)
An Stelle von _xxxx_ steht jeweils _geko_ respektive _tako_.
v_xxxx_art_images
Artikelbilder.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
pkey | number(15) not null | Primärschlüssel des Datensatzes | t_articlepictures.c_key |
ident | number(1) not null | Bild Index (1, 2) | f_xxxx_pictureindex(…) |
collection | varchar(30) not null | Sortiment | t_collections.c_name |
art_no | varchar(30) not null | Artikelnummer | t_articles.c_id |
filetype | number(1) not null | Dateityp 0=BMP, 1=GIF, 2=PCX, 3=TIF, 4=PNG, 5=JPG | t_articlepictures.c_type |
filesize | number(8) | Dateigrösse in Byte | t_articlepictures.c_size |
filedata | blob | Binärer Dateiinhalt | t_articlepictures.c_data |
v_xxxx_barcodes
Alle Bar Codes zum Scannen.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
collection | varchar(30) not null | Sortiment | t_collections.c_name |
art_no | varchar(30) not null | Artikelnummer | t_articles.c_id |
barcode | varchar(13) not null | EAN8/EAN13/UPC Bar Code | t_articlebarcodes.c_code |
In BPS verwendete Barcode-Suche auf Grund des gescannten Codes:
- Wenn erste 2 Stellen = 21, 22, 28, 29, oder Länge des Codes kleiner/gleich 8: Vergleiche die ersten 7 Stellen.
- In allen anderen Fällen: Vergleiche die ersten 12 Stellen.
Beispiel:
select collection, art_no from v_xxxx_barcodes where substr(barcode,1,7)=’2155667’
v_xxxx_boxes
Gebindestamm.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | varchar(30) not null | Gebinde ID | t_packages.c_id |
boxname | varchar(50) not null | Bezeichnung | t_packages.c_name |
weight | number(5,3) not null | Gewicht in KG | t_packages.c_weight |
depalpress | number(1) not null | Druckstufe bei Paletier-Roboter 0=schwach, 1=mittel, 2=stark | t_packages.c_press |
box_lay_i | number(4) not null | Anzahl Gebinde pro Lage Wareneingang | t_packages.c_pkg_lyr_in |
lay_pal_i | number(4) not null | Anzahl Lagen pro Palette Wareneingang | t_packages.c_lyr_ctr_in |
box_lay_o | number(4) not null | Anzahl Gebinde pro Lage Warenausgang | t_packages.c_pkg_lyr_out |
lay_pal_o | number(4) not null | Anzahl Lagen pro Palette Warenausgang | t_packages.c_lyr_ctr_out |
height | number(4) not null | Gesamthöhe des Gebindes in mm. Die Höhe eines Stapels ist: n * (height - sockheight) + sockheight. | t_packages.c_height * 1000 |
width | number(4) not null | Breite in mm. Muss bei GEKO und TAKO immer 400 sein. | t_packages.c_width * 1000 |
length | number(4) not null | Länge in mm. Muss bei TAKO immer 300 oder 600 sein. | t_packages.c_length * 1000 |
sockheight | number(4) not null | Sockelhöhe in mm | t_packages.c_socket * 1000 |
Im View erscheinen nur Gebinde mit dem Attribut GEKO oder TAKO.
v_xxxx_channels
Absatzkanäle.
Bei Lieferanten zur Bestimmung des Crossdocking Inhalts.
Bei Filialen zur Bestimmung der Grösse.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | varchar(30) not null | Absatzkanal | t_salechannels.c_name (Oberste zwei Ebenen) |
v_xxxx_coll_articles
Sortimentartikelstamm.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
collection | varchar(30) not null | Sortiment | t_collections.c_name |
art_no | varchar(30) not null | Artikelnummer | t_articles.c_id |
name | varchar(50) not null | Bezeichnung | t_articles.c_name |
barcode | varchar(13) | EAN8/EAN13/UPC Haupt-Barcode | f_xxxx_articlebarcode(t_article.c_key) |
box | varchar(30) not null | Gebinde ID | t_articles.c_tu_package → t_packages.c_id |
stock_loc | varchar(30) | Lagerplatz (Maske nn.nn.nnn) Erste 2 Zeichen = Bedarfswelt Erste 5 Zeichen = Bedarfsbereich Letzte 3 Zeichen = Reihenfolge | Von Bestand mit höchster Prio: path(t_stocklocation.c_id).replace(/,.) |
weight | number(5,3) not null | Nettogewicht Bestelleinheit in kg | t_article.c_kg_cu * t_article.c_cu_tu |
heavy | number(1) not null | Kennzeichnung als schwerer Artikel 0=normal, 1=schwer | t_articleattribute.c_name=„Schwerware“ |
overdeliv | number(6) not null | Maximale Überlieferung (Anzahl BE) | t_articles.c_overdelivery |
image | number(1) not null | Aktives Produktebild 0=kein Bild, 1=1.Bild, 2=2.Bild | Berechnet aus t_artpictures: lowest(c_key)=1, aktives = min(c_prio) |
su_per_ou | number(4) not null | Anzahl VE in einer BE | t_article.c_cu_tu |
sell_pr | number not null | Verkaufspreis pro VE oder pro Kilo | Aktueller VP aus t_articleprices.c_cpr |
hdl_speed | number(1) not null | Behandlungsgeschwindigkeit 1=sehr langsam, 2=langsam, 3=normal, 4=schnell, 5=sehr schnell | t_articles.c_hdlspeed |
v_xxxx_frombps
Hängige Anforderungen von BPS.
Spalte | Typ | Beschreibung |
---|---|---|
ident | number not null | Fortlaufende eindeutige Nummer. |
tableindex | number not null | Index der Tabelle in welcher die Anforderung sich befindet. 0 - t_xxxx_orders 1 - t_xxxx_tripmoves 2 - t_xxxx_trippurges 3 - t_xxxx_orderrowmoves 4 - t_xxxx_orderrowpurges 7 - t_xxxx_detailupdates 8 - t_xxxx_detailpurges 9 - t_xxxx_querystock 10 - t_xxxx_palinputs |
status | number(1) not null | Verarbeitungsstatus 0 – Neue Anforderung 1 – Aktion erfolgreich 2 – Anforderung abgelehnt oder Fehler 3 - Daten nicht vorhanden |
v_xxxx_palinfo
Information zu einer bestimmten Palettennummer.
In BPS V2 ist die Palette über eine 15-stellige LU ID eindeutig identifiziert. Als Palettennummer werden aber nur die niedrigsten 6 Ziffern davon verwendet. Da die Aufbewahrungsdauer der Bewegungsdaten in BPS nicht technisch limitiert ist, könnte es also vorkommen dass dieselbe Palettennummer nach einer gewissen Zeit wieder vorkommt. Damit der View eindeutige Ergebnisse liefert wird er deshalb intern auf Pickdaten limitiert die maximal eine Woche alt sind.
Aus Leistungsgründen soll der Automat nur einzelne Datensätze gezielt nach Palettennummer abrufen (…. where pallet = …..).
Spalte | Typ | Beschreibung | BPS V2 Mapping / Bemerkungen |
---|---|---|---|
luid | number(15) not null | LU ID | t_orderpicks.c_luid |
pallet | number(6) not null | Palettennummer | Letzte 6 Ziffern von t_orderpicks.c_luid |
tripdate | date not null | Tourendatum | t_ordertrips.c_date |
trip | varchar(30) not null | Touren-ID | t_trips.c_id |
partner | varchar(30) not null | Partnernummer des Empfängers. Referenziert v_xxxx_partners.ident. | t_partners.c_id |
text1 | varchar(35) | Text 1 für Produkteinfo | Bei Reinpaletten die Artikel ID, sonst null. |
text2 | varchar(35) | Text 2 für Produkteinfo | Bei Reinpaletten die Artikelbezeichnung, sonst null. |
quantity | number not null | Anzahl Gebinde auf der Palette | Total TU auf der Palette. |
pickedby | varchar(10) | Kurzbezeichnung des Rüsters der zuletzt ein Gebinde zur Palette hinzugefügt hat. | t_users.c_mnemonic |
v_xxxx_partnergroups
Partnergruppen.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | varchar(30) not null | Partnergruppe: Filiale, Lieferant | t_partnerclasses.c_name (Oberste Ebene) |
v_xxxx_partners
Partner (Filialen + Lieferanten).
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | varchar(30) not null | Partner-ID | t_partners.c_id |
name | varchar(50) not null | Partner-Name | t_partners.c_name |
pnrgroup | varchar(30) not null | Partnergruppe (Lieferant, Filiale) | t_partnerclasses.c_name (oberste Ebene) |
channel | varchar(30) not null | Absatzkanal | t_salechannels.c_name (oberste 2 Ebenen) |
barcode | varchar(13) | Barcode zum Scannen | t_partners.barcode |
lbl_line1 | varchar(50) | Etikettentext Zeile 1 | t_partners.c_labeltext (erste Zeile) |
lbl_line2 | varchar(50) | Etikettentext Zeile 2 | t_partners.c_labeltext (zweite Zeile) |
comm_prio | number(6) | Kommissionier-Priorität | t_pickzonepartners.c_prio (Zone = die mit robot.geko oder robot.tako) |
stage | number(3) | Bereitstellungsplatz (Spedition) | t_partners.c_embarkpoint |
stockcode | number(1) not null | 0 – Grosslager, 1 – Sonderlager | Partnerattribut „Sonderlager“ |
overdeliv | number(1) not null | Überbelieferung erlaubt | Partnerattribut „Ueberlieferung“ |
sscc_prefix | varchar(30) | SSCC Prefix | Zentrale Systemeinstellungen: Labeling/LU/SSCC Prefix |
conveyance | varchar(30) | Förderweg (Ost, West) | t_partners.c_conveyance |
Der Absatzkanal ist bei Lieferanten analog der Produktesektoren und Produktegruppen belegt, und dient dazu den Inhalt der Crossdocking Gebinde zu klassifizieren. Bei Filialen dient er dazu die Grösse sowie die Sonderfilialen zu unterscheiden.
Die Kommissionierpriorität kommt aus der Partnerliste in der GEKO/TAKO Pickzone.
Der SSCC Prefix ist bei allen Partnern identisch und wird den zentralen System-Einstellungen entnommen (Labeling/LU/SSCC Prefix).
v_xxxx_partnertrips
Partner/Touren Verknüpfung.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
partner | varchar(30) not null | Partner-ID | t_partners.c_id |
trip | varchar(30) not null | Touren-ID | t_trips.c_id |
comm_prio | number(6) | Kommissionier-Priorität Tiefere Nummer = höhere Priorität NULL = tiefste Priorität Bei gleicher Priorität wird die Partnernummer (aufsteigend) als weiteres Sortierkriterium verwendet | t_trippartners.c_prio |
comm_at | number(4,2) | Übergabezeit in Stunde.Minute Um diese Zeit soll die Kommissionierung für die Filiale abgeschlossen sein. Bei gleicher Übergabezeit wird Kommissionier-Priorität als weiteres Sortierkriterium verwendet. | t_trippartnerss.c_htime |
pr_restpalmode | number(1) not null | Automat Restpalettenmodus 0 = Keine nachfolgende Kartonkommissionierung, alles für Binder palettieren und Exit „Versand“. 1 = Bei Restpaletten kleiner v_xxxx_trips.palfillgrade, palettieren für nachfolgende Kartonkommissionierung und Exit „Karton“ | t_trippartners.c_restmode |
v_xxxx_prodgroups
BoSS Bedarfswelt.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | varchar(30) not null | Bedarfswelt | t_saleclasses.c_name (Oberste Ebene) |
v_xxxx_prodsects
BoSS Bedarfsbereich.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | varchar(30) not null | Bedarfsbereich | t_saleclasses.c_name (Zweitoberste Ebene) |
v_xxxx_trips
Tourenstamm.
Spalte | Typ | Beschreibung | BPS V2 Mapping |
---|---|---|---|
ident | varchar(30) not null | Touren-ID | t_trips.c_id |
depart | number(4,2) | Geplante Abfahrtzeit in Stunden.Minuten NULL = keine feste Abfahrzeit, z.B. Nachlieferungen | Erste Zeit aus t_trips.c_schedule |
preload | number(4,2) | Vorladezeit in Stunden.Minuten | t_trips.c_ptime |
mon | number(1) not null | Fährt Montags (0 = nein, 1 = ja) | Aus t_trips.c_schedule |
tue | number(1) not null | Fährt Dienstags (0 = nein, 1 = ja) | Aus t_trips.c_schedule |
wed | number(1) not null | Fährt Mittwochs (0 = nein, 1 = ja) | Aus t_trips.c_schedule |
thu | number(1) not null | Fährt Donnerstags (0 = nein, 1 = ja) | Aus t_trips.c_schedule |
fri | number(1) not null | Fährt Freitags (0 = nein, 1 = ja) | Aus t_trips.c_schedule |
sat | number(1) not null | Fährt Samstags (0 = nein, 1 = ja) | Aus t_trips.c_schedule |
sun | number(1) not null | Fährt Sonntags (0 = nein, 1 = ja) | Aus t_trips.c_schedule |
palfillgrade | number(3) not null | Paletten-Füllgrad in Prozent | t_trips.c_fillgrade |
pr_workmode | number(1) not null | Automaten - Arbeitsmodus 0 = Auftragswellen 1 = LU-Wellen | t_trips.c_robotmode |