<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://download.osbee.org/documentation/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kraeling</id>
		<title>OS.bee documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://download.osbee.org/documentation/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kraeling"/>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php/Special:Contributions/Kraeling"/>
		<updated>2026-04-10T23:32:49Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3991</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3991"/>
				<updated>2023-03-07T10:00:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* Version 4.5.7-V20230306 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230307 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
* EC-Terminal: Wiederholdruck des Kassenschnitts wieder funktionsfähig gemacht&lt;br /&gt;
* EC-Terminal: Sicherstellung, dass auch nach Schließen und Neuöffnen des Browsers das EC-Terminal ansteuerbar bleibt&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230306 == &lt;br /&gt;
&lt;br /&gt;
===OS.pos=== &lt;br /&gt;
* Fix: Speicherung des Kundenstamms funktioniert wieder. Betroffen waren folgende Stammdatentabellen: CustomerGroup, CustomerMultiGroup, MBundle, Mcustomer, ProductGroup und StoreGroup. Problem wurde mit der Version 4.5.7-V20230207 eingeführt.&lt;br /&gt;
* Epay-Schnittstelle: &lt;br /&gt;
** Stornierung bei eigenen Geschenkarten ermöglicht&lt;br /&gt;
** Prüfung auf doppelte Seriennummer im aktuellen Bon&lt;br /&gt;
** Ermöglichung des Löschens von Positionen mit stornierter Epay-Transaktion&lt;br /&gt;
** Fehlermeldung, falls Position wegen zugehöriger Epay-Aktivierung nicht gelöscht werden darf&lt;br /&gt;
* Entität Firma/MCompany: neues Feld exportAccounting, Import/Exportschnittstelle Company erweitert um das neue Feld.&lt;br /&gt;
* EC-Terminal-Kommunikation verbessert&lt;br /&gt;
&lt;br /&gt;
===OS.Softwarefactory===&lt;br /&gt;
* Fix: Generierung aus Entitätsmodell hat bei Selbstreferenz zu Nullpointerexception geführt, wenn ein Satz ohne Referenz gespeichert wurde.&lt;br /&gt;
* Verbesserung: Kommunikation mit OS.peripherals serialisiert.&lt;br /&gt;
* Fix: Nullpointerexception in Sessionmanager, wenn Configurationservice noch nicht verfügbar ist. &lt;br /&gt;
* Vorbereitung für Lizenzprüfungsmodul.&lt;br /&gt;
* Verbesserung bei Datamartfilter. Wirkt sich in Readonlytable, Chart und Report aus. Es wird ein Filter nur noch einmal auf der Benutzeroberfläsche dargestellt, auch wenn er mehrfach in den verwendeten Datamarts vorkommt.&lt;br /&gt;
* Verbesserung bei Readonlytable: wenn ein Satz selektiert ist, dann wird die Tabelle nicht mehr aktualisiert, wenn sich im Hintergrund ein Satz ändert.&lt;br /&gt;
* Einführung von datenbankgestützter Verwaltung der Übersetzungen. Neue Perspektive &amp;quot;Administration/Übersetzungen&amp;quot; zur Pflege der deutschen, englischen und französischen Texte.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230221 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fix: Guthabenzuordnung wird jetzt in den Zahlungsbeleg übernommen, der bei einer Mischung von Kredit- und Nichtkreditzahlungsarten erzeugt wird.&lt;br /&gt;
* Fix: Erhöhung der Bonnummer korrigiert.&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Organigramm: Editor für Positionen verbessert.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230216 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Funktion &amp;quot;Repeat Receipt&amp;quot; flexibler gemacht (zwecks Nachdruck älterer Belege / Synchronisation zwischen Kasse und Terminal)&lt;br /&gt;
* Verbesserung: Kundenwechsel beim Kassieren kann nicht mehr versehentlich erfolgen sobald ein Kunde identifiziert ist.&lt;br /&gt;
* Fix: Vorzeichenfehler bei OP Zahlung&lt;br /&gt;
* Fix: Bonnachdruck verbessert. Nicht vorhandene Daten bei bestimmten Bontypen stören die Ausgabe nicht mehr&lt;br /&gt;
* Erweiterung: Wahlmöglichkeit zwischen Text und Bild für den Button &amp;quot;backspace&amp;quot;. [[File:Button-Backspace.PNG]]&lt;br /&gt;
* Erweiterung: Anzeige der Kunden(karten)nummer in 'Zahlen'-Ansicht&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Blob Service: das Speichern von Bildern wurde optimiert. Umgerechnete Versionen von Bildern werden nun beim ersten Abruf erzeugt. Somit werden in der Datenbank nicht benötigte Einträge vermieden.&lt;br /&gt;
* Bereichsfilter in Readonly-Tabellen, Berichten und Charts: die Bereichsfilter wurden erweitert. Jetzt können auch Text und numerische Werte in Bereichsfiltern verwendet werden.&lt;br /&gt;
* Fix: Modellzugriff bei parallelem Öffnen von Perspektiven sequenzialisiert.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei application.yml-template als Vorlage für die Einstellungen in application.yml&lt;br /&gt;
* application.yml: devicetest ist jetzt standardmäßig abgeschaltet.&lt;br /&gt;
* aures/bin/CheckHealt.bat: füge Pfad zu aures/bin hinzu.&lt;br /&gt;
* schreibe Registrywerte für TcpTimedWaitDelay und MaxUserPort bei der Installation&lt;br /&gt;
* führe am Ende der Installation reboot aus nach Benutzerbestätigung&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Signaturepad: Verbesserung des Statushandlings, Verbesserung bei der Verwaltung der Werbebilder&lt;br /&gt;
* zentrale Funktion zur Statusabfrage eingeführt. Reduziert die Zahl der Status- bzw. Fehlerabfragen von 3/Sek auf 1/Sek. Aktuelle OS.pos Version erforderlich. Kompatibilität mit früheren OS.pos Versionen ist gegegeben.&lt;br /&gt;
* POSPrinter: Verbesserung des Logodruckmanagements&lt;br /&gt;
* POSPrinter: neuer Parameter 'ImageWidth' zur Definition der Zielbreite für den Logodruck in der Datei jpos.xml im Abschnitt für den POSPrinter. Defaultwert für AURES Drucker ist 1/16 der verfübaren Zeilenbreite -&amp;gt; 450. Defaultwert für EPSON und andere Drucker ist 200. &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;'&amp;lt;prop name=&amp;quot;ImageWidth&amp;quot; type=&amp;quot;Long&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;'&amp;lt;/syntaxhighlight&amp;gt; Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: neuer numerischer Parameter 'performReclaimInSeconds' in application.yml. Steuert, ob und wann ein automatischer erneuter Claim bei den javaPOS Peripheriegeräten gemacht wird. Erleichtert die Erkennung der Geräte nach z.B. dem Aus- und Einschalten eines Geräts. Defaultwert: 'not set', gültige Werte: &amp;gt;= 10. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: Methode &amp;quot;uploadedBitmaps&amp;quot; hat keine Funktion mehr. Sollen Bitmaps aus dem Druckerspeicher verwendet werden dann ist der entsprechende Schalter in application.yml zu setzen. Dies empfiehlt sich bei der Verwendung von EPSON Druckern, welche die Speicherung von Bitmaps unterstützen. Die Geschwindigkeit beim Bondruck wird dadurch erhöht. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: wird Text mit eine Länge von mehr als 4000 Zeichen zur Druck übergeben, so wird dieser in Blöcken mit max. 4000 Zeichen an den Drucker gesendet. Dies verhindert einen Absturz des Druckers bei zu langen Texten. Ist der Parameter &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;prop name=&amp;quot;OutputBufferSize&amp;quot; type=&amp;quot;String&amp;quot; value=&amp;quot;4096&amp;quot;/&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; in jpos.xml gesetzt, so ist dieser Wert die Blockgröße.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlussbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3990</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3990"/>
				<updated>2023-03-07T10:00:08Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230307 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
* EC-Terminal: Wiederholdruck des Kassenschnitts wieder funktionsfähig gemacht&lt;br /&gt;
* EC-Terminal: Sicherstellung, dass auch nach Schließen und Neuöffnen des Browsers das EC-Terminal ansteuerbar bleibt&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230306 == &lt;br /&gt;
&lt;br /&gt;
===OS.pos=== &lt;br /&gt;
* Fix: Speicherung des Kundenstamms funktioniert wieder. Betroffen waren folgende Stammdatentabellen: CustomerGroup, CustomerMultiGroup, MBundle, Mcustomer, ProductGroup und StoreGroup. Problem wurde mit der Version 4.5.7-V20230207 eingeführt.&lt;br /&gt;
* Epay-Schnittstelle: &lt;br /&gt;
** Stornierung bei eigenen Geschenkarten ermöglicht&lt;br /&gt;
** Prüfung auf doppelte Seriennummer im aktuellen Bon&lt;br /&gt;
** Ermöglichung des Löschens von Positionen mit stornierter Epay-Transaktion&lt;br /&gt;
** Fehlermeldung, falls Position wegen zugehöriger Epay-Aktivierung nicht gelöscht werden darf&lt;br /&gt;
* Entität Firma/MCompany: neues Feld exportAccounting, Import/Exportschnittstelle Company erweitert um das neue Feld.&lt;br /&gt;
* EC-Terminal: Sicherstellung, dass auch nach Schließen und Neuöffnen des Browsers das EC-Terminal ansteuerbar bleibt&lt;br /&gt;
&lt;br /&gt;
===OS.Softwarefactory===&lt;br /&gt;
* Fix: Generierung aus Entitätsmodell hat bei Selbstreferenz zu Nullpointerexception geführt, wenn ein Satz ohne Referenz gespeichert wurde.&lt;br /&gt;
* Verbesserung: Kommunikation mit OS.peripherals serialisiert.&lt;br /&gt;
* Fix: Nullpointerexception in Sessionmanager, wenn Configurationservice noch nicht verfügbar ist. &lt;br /&gt;
* Vorbereitung für Lizenzprüfungsmodul.&lt;br /&gt;
* Verbesserung bei Datamartfilter. Wirkt sich in Readonlytable, Chart und Report aus. Es wird ein Filter nur noch einmal auf der Benutzeroberfläsche dargestellt, auch wenn er mehrfach in den verwendeten Datamarts vorkommt.&lt;br /&gt;
* Verbesserung bei Readonlytable: wenn ein Satz selektiert ist, dann wird die Tabelle nicht mehr aktualisiert, wenn sich im Hintergrund ein Satz ändert.&lt;br /&gt;
* Einführung von datenbankgestützter Verwaltung der Übersetzungen. Neue Perspektive &amp;quot;Administration/Übersetzungen&amp;quot; zur Pflege der deutschen, englischen und französischen Texte.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230221 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fix: Guthabenzuordnung wird jetzt in den Zahlungsbeleg übernommen, der bei einer Mischung von Kredit- und Nichtkreditzahlungsarten erzeugt wird.&lt;br /&gt;
* Fix: Erhöhung der Bonnummer korrigiert.&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Organigramm: Editor für Positionen verbessert.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230216 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Funktion &amp;quot;Repeat Receipt&amp;quot; flexibler gemacht (zwecks Nachdruck älterer Belege / Synchronisation zwischen Kasse und Terminal)&lt;br /&gt;
* Verbesserung: Kundenwechsel beim Kassieren kann nicht mehr versehentlich erfolgen sobald ein Kunde identifiziert ist.&lt;br /&gt;
* Fix: Vorzeichenfehler bei OP Zahlung&lt;br /&gt;
* Fix: Bonnachdruck verbessert. Nicht vorhandene Daten bei bestimmten Bontypen stören die Ausgabe nicht mehr&lt;br /&gt;
* Erweiterung: Wahlmöglichkeit zwischen Text und Bild für den Button &amp;quot;backspace&amp;quot;. [[File:Button-Backspace.PNG]]&lt;br /&gt;
* Erweiterung: Anzeige der Kunden(karten)nummer in 'Zahlen'-Ansicht&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Blob Service: das Speichern von Bildern wurde optimiert. Umgerechnete Versionen von Bildern werden nun beim ersten Abruf erzeugt. Somit werden in der Datenbank nicht benötigte Einträge vermieden.&lt;br /&gt;
* Bereichsfilter in Readonly-Tabellen, Berichten und Charts: die Bereichsfilter wurden erweitert. Jetzt können auch Text und numerische Werte in Bereichsfiltern verwendet werden.&lt;br /&gt;
* Fix: Modellzugriff bei parallelem Öffnen von Perspektiven sequenzialisiert.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei application.yml-template als Vorlage für die Einstellungen in application.yml&lt;br /&gt;
* application.yml: devicetest ist jetzt standardmäßig abgeschaltet.&lt;br /&gt;
* aures/bin/CheckHealt.bat: füge Pfad zu aures/bin hinzu.&lt;br /&gt;
* schreibe Registrywerte für TcpTimedWaitDelay und MaxUserPort bei der Installation&lt;br /&gt;
* führe am Ende der Installation reboot aus nach Benutzerbestätigung&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Signaturepad: Verbesserung des Statushandlings, Verbesserung bei der Verwaltung der Werbebilder&lt;br /&gt;
* zentrale Funktion zur Statusabfrage eingeführt. Reduziert die Zahl der Status- bzw. Fehlerabfragen von 3/Sek auf 1/Sek. Aktuelle OS.pos Version erforderlich. Kompatibilität mit früheren OS.pos Versionen ist gegegeben.&lt;br /&gt;
* POSPrinter: Verbesserung des Logodruckmanagements&lt;br /&gt;
* POSPrinter: neuer Parameter 'ImageWidth' zur Definition der Zielbreite für den Logodruck in der Datei jpos.xml im Abschnitt für den POSPrinter. Defaultwert für AURES Drucker ist 1/16 der verfübaren Zeilenbreite -&amp;gt; 450. Defaultwert für EPSON und andere Drucker ist 200. &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;'&amp;lt;prop name=&amp;quot;ImageWidth&amp;quot; type=&amp;quot;Long&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;'&amp;lt;/syntaxhighlight&amp;gt; Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: neuer numerischer Parameter 'performReclaimInSeconds' in application.yml. Steuert, ob und wann ein automatischer erneuter Claim bei den javaPOS Peripheriegeräten gemacht wird. Erleichtert die Erkennung der Geräte nach z.B. dem Aus- und Einschalten eines Geräts. Defaultwert: 'not set', gültige Werte: &amp;gt;= 10. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: Methode &amp;quot;uploadedBitmaps&amp;quot; hat keine Funktion mehr. Sollen Bitmaps aus dem Druckerspeicher verwendet werden dann ist der entsprechende Schalter in application.yml zu setzen. Dies empfiehlt sich bei der Verwendung von EPSON Druckern, welche die Speicherung von Bitmaps unterstützen. Die Geschwindigkeit beim Bondruck wird dadurch erhöht. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: wird Text mit eine Länge von mehr als 4000 Zeichen zur Druck übergeben, so wird dieser in Blöcken mit max. 4000 Zeichen an den Drucker gesendet. Dies verhindert einen Absturz des Druckers bei zu langen Texten. Ist der Parameter &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;prop name=&amp;quot;OutputBufferSize&amp;quot; type=&amp;quot;String&amp;quot; value=&amp;quot;4096&amp;quot;/&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; in jpos.xml gesetzt, so ist dieser Wert die Blockgröße.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlussbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3989</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3989"/>
				<updated>2023-03-07T09:10:22Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
* EC-Terminal: Wiederholdruck des Kassenschnitts wieder funktionsfähig gemacht&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230306 == &lt;br /&gt;
&lt;br /&gt;
===OS.pos=== &lt;br /&gt;
* Fix: Speicherung des Kundenstamms funktioniert wieder. Betroffen waren folgende Stammdatentabellen: CustomerGroup, CustomerMultiGroup, MBundle, Mcustomer, ProductGroup und StoreGroup. Problem wurde mit der Version 4.5.7-V20230207 eingeführt.&lt;br /&gt;
* Epay-Schnittstelle: &lt;br /&gt;
** Stornierung bei eigenen Geschenkarten ermöglicht&lt;br /&gt;
** Prüfung auf doppelte Seriennummer im aktuellen Bon&lt;br /&gt;
** Ermöglichung des Löschens von Positionen mit stornierter Epay-Transaktion&lt;br /&gt;
** Fehlermeldung, falls Position wegen zugehöriger Epay-Aktivierung nicht gelöscht werden darf&lt;br /&gt;
* Entität Firma/MCompany: neues Feld exportAccounting, Import/Exportschnittstelle Company erweitert um das neue Feld.&lt;br /&gt;
* EC-Terminal: Sicherstellung, dass auch nach Schließen und Neuöffnen des Browsers das EC-Terminal ansteuerbar bleibt&lt;br /&gt;
&lt;br /&gt;
===OS.Softwarefactory===&lt;br /&gt;
* Fix: Generierung aus Entitätsmodell hat bei Selbstreferenz zu Nullpointerexception geführt, wenn ein Satz ohne Referenz gespeichert wurde.&lt;br /&gt;
* Verbesserung: Kommunikation mit OS.peripherals serialisiert.&lt;br /&gt;
* Fix: Nullpointerexception in Sessionmanager, wenn Configurationservice noch nicht verfügbar ist. &lt;br /&gt;
* Vorbereitung für Lizenzprüfungsmodul.&lt;br /&gt;
* Verbesserung bei Datamartfilter. Wirkt sich in Readonlytable, Chart und Report aus. Es wird ein Filter nur noch einmal auf der Benutzeroberfläsche dargestellt, auch wenn er mehrfach in den verwendeten Datamarts vorkommt.&lt;br /&gt;
* Verbesserung bei Readonlytable: wenn ein Satz selektiert ist, dann wird die Tabelle nicht mehr aktualisiert, wenn sich im Hintergrund ein Satz ändert.&lt;br /&gt;
* Einführung von datenbankgestützter Verwaltung der Übersetzungen. Neue Perspektive &amp;quot;Administration/Übersetzungen&amp;quot; zur Pflege der deutschen, englischen und französischen Texte.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230221 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fix: Guthabenzuordnung wird jetzt in den Zahlungsbeleg übernommen, der bei einer Mischung von Kredit- und Nichtkreditzahlungsarten erzeugt wird.&lt;br /&gt;
* Fix: Erhöhung der Bonnummer korrigiert.&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Organigramm: Editor für Positionen verbessert.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230216 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Funktion &amp;quot;Repeat Receipt&amp;quot; flexibler gemacht (zwecks Nachdruck älterer Belege / Synchronisation zwischen Kasse und Terminal)&lt;br /&gt;
* Verbesserung: Kundenwechsel beim Kassieren kann nicht mehr versehentlich erfolgen sobald ein Kunde identifiziert ist.&lt;br /&gt;
* Fix: Vorzeichenfehler bei OP Zahlung&lt;br /&gt;
* Fix: Bonnachdruck verbessert. Nicht vorhandene Daten bei bestimmten Bontypen stören die Ausgabe nicht mehr&lt;br /&gt;
* Erweiterung: Wahlmöglichkeit zwischen Text und Bild für den Button &amp;quot;backspace&amp;quot;. [[File:Button-Backspace.PNG]]&lt;br /&gt;
* Erweiterung: Anzeige der Kunden(karten)nummer in 'Zahlen'-Ansicht&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Blob Service: das Speichern von Bildern wurde optimiert. Umgerechnete Versionen von Bildern werden nun beim ersten Abruf erzeugt. Somit werden in der Datenbank nicht benötigte Einträge vermieden.&lt;br /&gt;
* Bereichsfilter in Readonly-Tabellen, Berichten und Charts: die Bereichsfilter wurden erweitert. Jetzt können auch Text und numerische Werte in Bereichsfiltern verwendet werden.&lt;br /&gt;
* Fix: Modellzugriff bei parallelem Öffnen von Perspektiven sequenzialisiert.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei application.yml-template als Vorlage für die Einstellungen in application.yml&lt;br /&gt;
* application.yml: devicetest ist jetzt standardmäßig abgeschaltet.&lt;br /&gt;
* aures/bin/CheckHealt.bat: füge Pfad zu aures/bin hinzu.&lt;br /&gt;
* schreibe Registrywerte für TcpTimedWaitDelay und MaxUserPort bei der Installation&lt;br /&gt;
* führe am Ende der Installation reboot aus nach Benutzerbestätigung&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Signaturepad: Verbesserung des Statushandlings, Verbesserung bei der Verwaltung der Werbebilder&lt;br /&gt;
* zentrale Funktion zur Statusabfrage eingeführt. Reduziert die Zahl der Status- bzw. Fehlerabfragen von 3/Sek auf 1/Sek. Aktuelle OS.pos Version erforderlich. Kompatibilität mit früheren OS.pos Versionen ist gegegeben.&lt;br /&gt;
* POSPrinter: Verbesserung des Logodruckmanagements&lt;br /&gt;
* POSPrinter: neuer Parameter 'ImageWidth' zur Definition der Zielbreite für den Logodruck in der Datei jpos.xml im Abschnitt für den POSPrinter. Defaultwert für AURES Drucker ist 1/16 der verfübaren Zeilenbreite -&amp;gt; 450. Defaultwert für EPSON und andere Drucker ist 200. &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;'&amp;lt;prop name=&amp;quot;ImageWidth&amp;quot; type=&amp;quot;Long&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;'&amp;lt;/syntaxhighlight&amp;gt; Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: neuer numerischer Parameter 'performReclaimInSeconds' in application.yml. Steuert, ob und wann ein automatischer erneuter Claim bei den javaPOS Peripheriegeräten gemacht wird. Erleichtert die Erkennung der Geräte nach z.B. dem Aus- und Einschalten eines Geräts. Defaultwert: 'not set', gültige Werte: &amp;gt;= 10. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: Methode &amp;quot;uploadedBitmaps&amp;quot; hat keine Funktion mehr. Sollen Bitmaps aus dem Druckerspeicher verwendet werden dann ist der entsprechende Schalter in application.yml zu setzen. Dies empfiehlt sich bei der Verwendung von EPSON Druckern, welche die Speicherung von Bitmaps unterstützen. Die Geschwindigkeit beim Bondruck wird dadurch erhöht. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: wird Text mit eine Länge von mehr als 4000 Zeichen zur Druck übergeben, so wird dieser in Blöcken mit max. 4000 Zeichen an den Drucker gesendet. Dies verhindert einen Absturz des Druckers bei zu langen Texten. Ist der Parameter &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;prop name=&amp;quot;OutputBufferSize&amp;quot; type=&amp;quot;String&amp;quot; value=&amp;quot;4096&amp;quot;/&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; in jpos.xml gesetzt, so ist dieser Wert die Blockgröße.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlussbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3988</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3988"/>
				<updated>2023-03-06T18:46:32Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* OS.pos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230306 == &lt;br /&gt;
&lt;br /&gt;
===OS.pos=== &lt;br /&gt;
* Fix: Speicherung des Kundenstamms funktioniert wieder. Betroffen waren folgende Stammdatentabellen: CustomerGroup, CustomerMultiGroup, MBundle, Mcustomer, ProductGroup und StoreGroup. Problem wurde mit der Version 4.5.7-V20230207 eingeführt.&lt;br /&gt;
* Epay-Schnittstelle: &lt;br /&gt;
** Stornierung bei eigenen Geschenkarten ermöglicht&lt;br /&gt;
** Prüfung auf doppelte Seriennummer im aktuellen Bon&lt;br /&gt;
** Ermöglichung des Löschens von Positionen mit stornierter Epay-Transaktion&lt;br /&gt;
** Fehlermeldung, falls Position wegen zugehöriger Epay-Aktivierung nicht gelöscht werden darf&lt;br /&gt;
* Entität Firma/MCompany: neues Feld exportAccounting, Import/Exportschnittstelle Company erweitert um das neue Feld.&lt;br /&gt;
* EC-Terminal: Sicherstellung, dass auch nach Schließen und Neuöffnen des Browsers das EC-Terminal ansteuerbar bleibt&lt;br /&gt;
&lt;br /&gt;
===OS.Softwarefactory===&lt;br /&gt;
* Fix: Generierung aus Entitätsmodell hat bei Selbstreferenz zu Nullpointerexception geführt, wenn ein Satz ohne Referenz gespeichert wurde.&lt;br /&gt;
* Verbesserung: Kommunikation mit OS.peripherals serialisiert.&lt;br /&gt;
* Fix: Nullpointerexception in Sessionmanager, wenn Configurationservice noch nicht verfügbar ist. &lt;br /&gt;
* Vorbereitung für Lizenzprüfungsmodul.&lt;br /&gt;
* Verbesserung bei Datamartfilter. Wirkt sich in Readonlytable, Chart und Report aus. Es wird ein Filter nur noch einmal auf der Benutzeroberfläsche dargestellt, auch wenn er mehrfach in den verwendeten Datamarts vorkommt.&lt;br /&gt;
* Verbesserung bei Readonlytable: wenn ein Satz selektiert ist, dann wird die Tabelle nicht mehr aktualisiert, wenn sich im Hintergrund ein Satz ändert.&lt;br /&gt;
* Einführung von datenbankgestützter Verwaltung der Übersetzungen. Neue Perspektive &amp;quot;Administration/Übersetzungen&amp;quot; zur Pflege der deutschen, englischen und französischen Texte.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230221 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fix: Guthabenzuordnung wird jetzt in den Zahlungsbeleg übernommen, der bei einer Mischung von Kredit- und Nichtkreditzahlungsarten erzeugt wird.&lt;br /&gt;
* Fix: Erhöhung der Bonnummer korrigiert.&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Organigramm: Editor für Positionen verbessert.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230216 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Funktion &amp;quot;Repeat Receipt&amp;quot; flexibler gemacht (zwecks Nachdruck älterer Belege / Synchronisation zwischen Kasse und Terminal)&lt;br /&gt;
* Verbesserung: Kundenwechsel beim Kassieren kann nicht mehr versehentlich erfolgen sobald ein Kunde identifiziert ist.&lt;br /&gt;
* Fix: Vorzeichenfehler bei OP Zahlung&lt;br /&gt;
* Fix: Bonnachdruck verbessert. Nicht vorhandene Daten bei bestimmten Bontypen stören die Ausgabe nicht mehr&lt;br /&gt;
* Erweiterung: Wahlmöglichkeit zwischen Text und Bild für den Button &amp;quot;backspace&amp;quot;. [[File:Button-Backspace.PNG]]&lt;br /&gt;
* Erweiterung: Anzeige der Kunden(karten)nummer in 'Zahlen'-Ansicht&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Blob Service: das Speichern von Bildern wurde optimiert. Umgerechnete Versionen von Bildern werden nun beim ersten Abruf erzeugt. Somit werden in der Datenbank nicht benötigte Einträge vermieden.&lt;br /&gt;
* Bereichsfilter in Readonly-Tabellen, Berichten und Charts: die Bereichsfilter wurden erweitert. Jetzt können auch Text und numerische Werte in Bereichsfiltern verwendet werden.&lt;br /&gt;
* Fix: Modellzugriff bei parallelem Öffnen von Perspektiven sequenzialisiert.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei application.yml-template als Vorlage für die Einstellungen in application.yml&lt;br /&gt;
* application.yml: devicetest ist jetzt standardmäßig abgeschaltet.&lt;br /&gt;
* aures/bin/CheckHealt.bat: füge Pfad zu aures/bin hinzu.&lt;br /&gt;
* schreibe Registrywerte für TcpTimedWaitDelay und MaxUserPort bei der Installation&lt;br /&gt;
* führe am Ende der Installation reboot aus nach Benutzerbestätigung&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Signaturepad: Verbesserung des Statushandlings, Verbesserung bei der Verwaltung der Werbebilder&lt;br /&gt;
* zentrale Funktion zur Statusabfrage eingeführt. Reduziert die Zahl der Status- bzw. Fehlerabfragen von 3/Sek auf 1/Sek. Aktuelle OS.pos Version erforderlich. Kompatibilität mit früheren OS.pos Versionen ist gegegeben.&lt;br /&gt;
* POSPrinter: Verbesserung des Logodruckmanagements&lt;br /&gt;
* POSPrinter: neuer Parameter 'ImageWidth' zur Definition der Zielbreite für den Logodruck in der Datei jpos.xml im Abschnitt für den POSPrinter. Defaultwert für AURES Drucker ist 1/16 der verfübaren Zeilenbreite -&amp;gt; 450. Defaultwert für EPSON und andere Drucker ist 200. &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;'&amp;lt;prop name=&amp;quot;ImageWidth&amp;quot; type=&amp;quot;Long&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;'&amp;lt;/syntaxhighlight&amp;gt; Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: neuer numerischer Parameter 'performReclaimInSeconds' in application.yml. Steuert, ob und wann ein automatischer erneuter Claim bei den javaPOS Peripheriegeräten gemacht wird. Erleichtert die Erkennung der Geräte nach z.B. dem Aus- und Einschalten eines Geräts. Defaultwert: 'not set', gültige Werte: &amp;gt;= 10. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: Methode &amp;quot;uploadedBitmaps&amp;quot; hat keine Funktion mehr. Sollen Bitmaps aus dem Druckerspeicher verwendet werden dann ist der entsprechende Schalter in application.yml zu setzen. Dies empfiehlt sich bei der Verwendung von EPSON Druckern, welche die Speicherung von Bitmaps unterstützen. Die Geschwindigkeit beim Bondruck wird dadurch erhöht. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: wird Text mit eine Länge von mehr als 4000 Zeichen zur Druck übergeben, so wird dieser in Blöcken mit max. 4000 Zeichen an den Drucker gesendet. Dies verhindert einen Absturz des Druckers bei zu langen Texten. Ist der Parameter &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;prop name=&amp;quot;OutputBufferSize&amp;quot; type=&amp;quot;String&amp;quot; value=&amp;quot;4096&amp;quot;/&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; in jpos.xml gesetzt, so ist dieser Wert die Blockgröße.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlussbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3987</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3987"/>
				<updated>2023-03-06T15:32:25Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* Version 4.5.7-V20230306 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230306 == &lt;br /&gt;
&lt;br /&gt;
===OS.pos=== &lt;br /&gt;
* Fix: Speicherung des Kundenstamms funktioniert wieder. Betroffen waren folgende Stammdatentabellen: CustomerGroup, CustomerMultiGroup, MBundle, Mcustomer, ProductGroup und StoreGroup. Problem wurde mit der Version 4.5.7-V20230207 eingeführt.&lt;br /&gt;
* Epay-Schnittstelle: &lt;br /&gt;
** Stornierung bei eigenen Geschenkarten ermöglicht&lt;br /&gt;
** Prüfung auf doppelte Seriennummer im aktuellen Bon&lt;br /&gt;
** Ermöglichung des Löschens von Positionen mit stornierter Epay-Transaktion&lt;br /&gt;
** Fehlermeldung, falls Position wegen zugehöriger Epay-Aktivierung nicht gelöscht werden darf&lt;br /&gt;
* Entität Firma/MCompany: neues Feld exportAccounting, Import/Exportschnittstelle Company erweitert um das neue Feld.&lt;br /&gt;
* EC-Terminal-Kommunikation verbessert.&lt;br /&gt;
&lt;br /&gt;
===OS.Softwarefactory===&lt;br /&gt;
* Fix: Generierung aus Entitätsmodell hat bei Selbstreferenz zu Nullpointerexception geführt, wenn ein Satz ohne Referenz gespeichert wurde.&lt;br /&gt;
* Verbesserung: Kommunikation mit OS.peripherals serialisiert.&lt;br /&gt;
* Fix: Nullpointerexception in Sessionmanager, wenn Configurationservice noch nicht verfügbar ist. &lt;br /&gt;
* Vorbereitung für Lizenzprüfungsmodul.&lt;br /&gt;
* Verbesserung bei Datamartfilter. Wirkt sich in Readonlytable, Chart und Report aus. Es wird ein Filter nur noch einmal auf der Benutzeroberfläsche dargestellt, auch wenn er mehrfach in den verwendeten Datamarts vorkommt.&lt;br /&gt;
* Verbesserung bei Readonlytable: wenn ein Satz selektiert ist, dann wird die Tabelle nicht mehr aktualisiert, wenn sich im Hintergrund ein Satz ändert.&lt;br /&gt;
* Einführung von datenbankgestützter Verwaltung der Übersetzungen. Neue Perspektive &amp;quot;Administration/Übersetzungen&amp;quot; zur Pflege der deutschen, englischen und französischen Texte.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230221 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fix: Guthabenzuordnung wird jetzt in den Zahlungsbeleg übernommen, der bei einer Mischung von Kredit- und Nichtkreditzahlungsarten erzeugt wird.&lt;br /&gt;
* Fix: Erhöhung der Bonnummer korrigiert.&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Organigramm: Editor für Positionen verbessert.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230216 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Funktion &amp;quot;Repeat Receipt&amp;quot; flexibler gemacht (zwecks Nachdruck älterer Belege / Synchronisation zwischen Kasse und Terminal)&lt;br /&gt;
* Verbesserung: Kundenwechsel beim Kassieren kann nicht mehr versehentlich erfolgen sobald ein Kunde identifiziert ist.&lt;br /&gt;
* Fix: Vorzeichenfehler bei OP Zahlung&lt;br /&gt;
* Fix: Bonnachdruck verbessert. Nicht vorhandene Daten bei bestimmten Bontypen stören die Ausgabe nicht mehr&lt;br /&gt;
* Erweiterung: Wahlmöglichkeit zwischen Text und Bild für den Button &amp;quot;backspace&amp;quot;. [[File:Button-Backspace.PNG]]&lt;br /&gt;
* Erweiterung: Anzeige der Kunden(karten)nummer in 'Zahlen'-Ansicht&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Blob Service: das Speichern von Bildern wurde optimiert. Umgerechnete Versionen von Bildern werden nun beim ersten Abruf erzeugt. Somit werden in der Datenbank nicht benötigte Einträge vermieden.&lt;br /&gt;
* Bereichsfilter in Readonly-Tabellen, Berichten und Charts: die Bereichsfilter wurden erweitert. Jetzt können auch Text und numerische Werte in Bereichsfiltern verwendet werden.&lt;br /&gt;
* Fix: Modellzugriff bei parallelem Öffnen von Perspektiven sequenzialisiert.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei application.yml-template als Vorlage für die Einstellungen in application.yml&lt;br /&gt;
* application.yml: devicetest ist jetzt standardmäßig abgeschaltet.&lt;br /&gt;
* aures/bin/CheckHealt.bat: füge Pfad zu aures/bin hinzu.&lt;br /&gt;
* schreibe Registrywerte für TcpTimedWaitDelay und MaxUserPort bei der Installation&lt;br /&gt;
* führe am Ende der Installation reboot aus nach Benutzerbestätigung&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Signaturepad: Verbesserung des Statushandlings, Verbesserung bei der Verwaltung der Werbebilder&lt;br /&gt;
* zentrale Funktion zur Statusabfrage eingeführt. Reduziert die Zahl der Status- bzw. Fehlerabfragen von 3/Sek auf 1/Sek. Aktuelle OS.pos Version erforderlich. Kompatibilität mit früheren OS.pos Versionen ist gegegeben.&lt;br /&gt;
* POSPrinter: Verbesserung des Logodruckmanagements&lt;br /&gt;
* POSPrinter: neuer Parameter 'ImageWidth' zur Definition der Zielbreite für den Logodruck in der Datei jpos.xml im Abschnitt für den POSPrinter. Defaultwert für AURES Drucker ist 1/16 der verfübaren Zeilenbreite -&amp;gt; 450. Defaultwert für EPSON und andere Drucker ist 200. &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;'&amp;lt;prop name=&amp;quot;ImageWidth&amp;quot; type=&amp;quot;Long&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;'&amp;lt;/syntaxhighlight&amp;gt; Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: neuer numerischer Parameter 'performReclaimInSeconds' in application.yml. Steuert, ob und wann ein automatischer erneuter Claim bei den javaPOS Peripheriegeräten gemacht wird. Erleichtert die Erkennung der Geräte nach z.B. dem Aus- und Einschalten eines Geräts. Defaultwert: 'not set', gültige Werte: &amp;gt;= 10. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: Methode &amp;quot;uploadedBitmaps&amp;quot; hat keine Funktion mehr. Sollen Bitmaps aus dem Druckerspeicher verwendet werden dann ist der entsprechende Schalter in application.yml zu setzen. Dies empfiehlt sich bei der Verwendung von EPSON Druckern, welche die Speicherung von Bitmaps unterstützen. Die Geschwindigkeit beim Bondruck wird dadurch erhöht. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: wird Text mit eine Länge von mehr als 4000 Zeichen zur Druck übergeben, so wird dieser in Blöcken mit max. 4000 Zeichen an den Drucker gesendet. Dies verhindert einen Absturz des Druckers bei zu langen Texten. Ist der Parameter &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;prop name=&amp;quot;OutputBufferSize&amp;quot; type=&amp;quot;String&amp;quot; value=&amp;quot;4096&amp;quot;/&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; in jpos.xml gesetzt, so ist dieser Wert die Blockgröße.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlussbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3986</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3986"/>
				<updated>2023-03-06T15:31:26Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* Version 4.5.7-V20230306 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230306 == &lt;br /&gt;
&lt;br /&gt;
===OS.pos=== &lt;br /&gt;
* Fix: Speicherung des Kundenstamms funktioniert wieder. Betroffen waren folgende Stammdatentabellen: CustomerGroup, CustomerMultiGroup, MBundle, Mcustomer, ProductGroup und StoreGroup. Problem wurde mit der Version 4.5.7-V20230207 eingeführt.&lt;br /&gt;
* Epay-Schnittstelle: &lt;br /&gt;
** Stornierung bei eigenen Geschenkarten ermöglicht&lt;br /&gt;
** Prüfung auf doppelte Seriennummer im aktuellen Bon&lt;br /&gt;
** Ermöglichung des Löschens stornierter Transaktionen&lt;br /&gt;
** Fehlermeldung, falls Position wegen zugehöriger Epay-Aktivierung nicht gelöscht werden darf&lt;br /&gt;
* Entität Firma/MCompany: neues Feld exportAccounting, Import/Exportschnittstelle Company erweitert um das neue Feld.&lt;br /&gt;
* EC-Terminal-Kommunikation verbessert.&lt;br /&gt;
&lt;br /&gt;
===OS.Softwarefactory===&lt;br /&gt;
* Fix: Generierung aus Entitätsmodell hat bei Selbstreferenz zu Nullpointerexception geführt, wenn ein Satz ohne Referenz gespeichert wurde.&lt;br /&gt;
* Verbesserung: Kommunikation mit OS.peripherals serialisiert.&lt;br /&gt;
* Fix: Nullpointerexception in Sessionmanager, wenn Configurationservice noch nicht verfügbar ist. &lt;br /&gt;
* Vorbereitung für Lizenzprüfungsmodul.&lt;br /&gt;
* Verbesserung bei Datamartfilter. Wirkt sich in Readonlytable, Chart und Report aus. Es wird ein Filter nur noch einmal auf der Benutzeroberfläsche dargestellt, auch wenn er mehrfach in den verwendeten Datamarts vorkommt.&lt;br /&gt;
* Verbesserung bei Readonlytable: wenn ein Satz selektiert ist, dann wird die Tabelle nicht mehr aktualisiert, wenn sich im Hintergrund ein Satz ändert.&lt;br /&gt;
* Einführung von datenbankgestützter Verwaltung der Übersetzungen. Neue Perspektive &amp;quot;Administration/Übersetzungen&amp;quot; zur Pflege der deutschen, englischen und französischen Texte.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230221 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fix: Guthabenzuordnung wird jetzt in den Zahlungsbeleg übernommen, der bei einer Mischung von Kredit- und Nichtkreditzahlungsarten erzeugt wird.&lt;br /&gt;
* Fix: Erhöhung der Bonnummer korrigiert.&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Organigramm: Editor für Positionen verbessert.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230216 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Funktion &amp;quot;Repeat Receipt&amp;quot; flexibler gemacht (zwecks Nachdruck älterer Belege / Synchronisation zwischen Kasse und Terminal)&lt;br /&gt;
* Verbesserung: Kundenwechsel beim Kassieren kann nicht mehr versehentlich erfolgen sobald ein Kunde identifiziert ist.&lt;br /&gt;
* Fix: Vorzeichenfehler bei OP Zahlung&lt;br /&gt;
* Fix: Bonnachdruck verbessert. Nicht vorhandene Daten bei bestimmten Bontypen stören die Ausgabe nicht mehr&lt;br /&gt;
* Erweiterung: Wahlmöglichkeit zwischen Text und Bild für den Button &amp;quot;backspace&amp;quot;. [[File:Button-Backspace.PNG]]&lt;br /&gt;
* Erweiterung: Anzeige der Kunden(karten)nummer in 'Zahlen'-Ansicht&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Blob Service: das Speichern von Bildern wurde optimiert. Umgerechnete Versionen von Bildern werden nun beim ersten Abruf erzeugt. Somit werden in der Datenbank nicht benötigte Einträge vermieden.&lt;br /&gt;
* Bereichsfilter in Readonly-Tabellen, Berichten und Charts: die Bereichsfilter wurden erweitert. Jetzt können auch Text und numerische Werte in Bereichsfiltern verwendet werden.&lt;br /&gt;
* Fix: Modellzugriff bei parallelem Öffnen von Perspektiven sequenzialisiert.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei application.yml-template als Vorlage für die Einstellungen in application.yml&lt;br /&gt;
* application.yml: devicetest ist jetzt standardmäßig abgeschaltet.&lt;br /&gt;
* aures/bin/CheckHealt.bat: füge Pfad zu aures/bin hinzu.&lt;br /&gt;
* schreibe Registrywerte für TcpTimedWaitDelay und MaxUserPort bei der Installation&lt;br /&gt;
* führe am Ende der Installation reboot aus nach Benutzerbestätigung&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Signaturepad: Verbesserung des Statushandlings, Verbesserung bei der Verwaltung der Werbebilder&lt;br /&gt;
* zentrale Funktion zur Statusabfrage eingeführt. Reduziert die Zahl der Status- bzw. Fehlerabfragen von 3/Sek auf 1/Sek. Aktuelle OS.pos Version erforderlich. Kompatibilität mit früheren OS.pos Versionen ist gegegeben.&lt;br /&gt;
* POSPrinter: Verbesserung des Logodruckmanagements&lt;br /&gt;
* POSPrinter: neuer Parameter 'ImageWidth' zur Definition der Zielbreite für den Logodruck in der Datei jpos.xml im Abschnitt für den POSPrinter. Defaultwert für AURES Drucker ist 1/16 der verfübaren Zeilenbreite -&amp;gt; 450. Defaultwert für EPSON und andere Drucker ist 200. &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;'&amp;lt;prop name=&amp;quot;ImageWidth&amp;quot; type=&amp;quot;Long&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;'&amp;lt;/syntaxhighlight&amp;gt; Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: neuer numerischer Parameter 'performReclaimInSeconds' in application.yml. Steuert, ob und wann ein automatischer erneuter Claim bei den javaPOS Peripheriegeräten gemacht wird. Erleichtert die Erkennung der Geräte nach z.B. dem Aus- und Einschalten eines Geräts. Defaultwert: 'not set', gültige Werte: &amp;gt;= 10. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: Methode &amp;quot;uploadedBitmaps&amp;quot; hat keine Funktion mehr. Sollen Bitmaps aus dem Druckerspeicher verwendet werden dann ist der entsprechende Schalter in application.yml zu setzen. Dies empfiehlt sich bei der Verwendung von EPSON Druckern, welche die Speicherung von Bitmaps unterstützen. Die Geschwindigkeit beim Bondruck wird dadurch erhöht. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: wird Text mit eine Länge von mehr als 4000 Zeichen zur Druck übergeben, so wird dieser in Blöcken mit max. 4000 Zeichen an den Drucker gesendet. Dies verhindert einen Absturz des Druckers bei zu langen Texten. Ist der Parameter &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;prop name=&amp;quot;OutputBufferSize&amp;quot; type=&amp;quot;String&amp;quot; value=&amp;quot;4096&amp;quot;/&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; in jpos.xml gesetzt, so ist dieser Wert die Blockgröße.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlussbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3985</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3985"/>
				<updated>2023-03-06T14:55:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* OS.pos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230306 == &lt;br /&gt;
&lt;br /&gt;
===OS.pos=== &lt;br /&gt;
* Fix: Speicherung des Kundenstamms funktioniert wieder. Betroffen waren folgende Stammdatentabellen: CustomerGroup, CustomerMultiGroup, MBundle, Mcustomer, ProductGroup und StoreGroup. Problem wurde mit der Version 4.5.7-V20230207 eingeführt.&lt;br /&gt;
* Epay-Schnittstelle: &lt;br /&gt;
** Stornierung bei eigenen Geschenkarten ermöglicht&lt;br /&gt;
** Prüfung auf doppelte Seriennummer im aktuellen Bon&lt;br /&gt;
** Ermöglichung des Löschens stornierter Transaktionen&lt;br /&gt;
** Fehlermeldung, falls Position wegen zugehöriger Epay-Aktivierung nicht gelöscht werden darf&lt;br /&gt;
* Entität Firma/MCompany: neues Feld exportAccounting, Import/Exportschnittstelle Company erweitert um das neue Feld.&lt;br /&gt;
* EC-Termrinal Kommunikation verbessert.&lt;br /&gt;
&lt;br /&gt;
===OS.Softwarefactory===&lt;br /&gt;
* Fix: Generierung aus Entitätsmodell hat bei Selbstreferenz zu Nullpointerexception geführt, wenn eine Satz ohne Referenz gespeichert wurde.&lt;br /&gt;
* Verbesserung: Kommunikation mit OS.peripherals serialisiert.&lt;br /&gt;
* Fix: Nullpointerexception in Sessionmanager wenn Configurationservice noch nicht verfügbar ist. &lt;br /&gt;
* Vorbereitung für Lizenzprüfungsmodul.&lt;br /&gt;
* Verbesserung bei Datamartfilter. Wirkt sich in Readonlytable, Chart und Report aus. Es wird ein Filter nur noch einmal auf der Benutzeroberfläsche dargestellt, auch wenn er mehrfach in den verwendeten Datamarts vorkommt.&lt;br /&gt;
* Verbesserung bei Readonlytable: wenn ein Satz selektiert ist, dann wird die Tabelle nicht mehr aktualisiert, wenn sich im Hintergrund ein Satz ändert.&lt;br /&gt;
* Einführung von datenbankgestützter Verwaltung der Übersetzungen. Neue Perspektive &amp;quot;Administration/Übersetzungen&amp;quot; zur Pflege der deutschen, englischen und französchichen Texte.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230221 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fix: Guthabenzuordnung wird jetzt in den Zahlungsbeleg übernommen, der bei einer Mischung von Kredit- und Nichtkreditzahlungsarten erzeugt wird.&lt;br /&gt;
* Fix: Erhöhung der Bonnummer korrigiert.&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Organigramm: Editor für Positionen verbessert.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230216 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Funktion &amp;quot;Repeat Receipt&amp;quot; flexibler gemacht (zwecks Nachdruck älterer Belege / Synchronisation zwischen Kasse und Terminal)&lt;br /&gt;
* Verbesserung: Kundenwechsel beim Kassieren kann nicht mehr versehentlich erfolgen sobald ein Kunde identifiziert ist.&lt;br /&gt;
* Fix: Vorzeichenfehler bei OP Zahlung&lt;br /&gt;
* Fix: Bonnachdruck verbessert. Nicht vorhandene Daten bei bestimmten Bontypen stören die Ausgabe nicht mehr&lt;br /&gt;
* Erweiterung: Wahlmöglichkeit zwischen Text und Bild für den Button &amp;quot;backspace&amp;quot;. [[File:Button-Backspace.PNG]]&lt;br /&gt;
* Erweiterung: Anzeige der Kunden(karten)nummer in 'Zahlen'-Ansicht&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Blob Service: das Speichern von Bildern wurde optimiert. Umgerechnete Versionen von Bildern werden nun beim ersten Abruf erzeugt. Somit werden in der Datenbank nicht benötigte Einträge vermieden.&lt;br /&gt;
* Bereichsfilter in Readonly-Tabellen, Berichten und Charts: die Bereichsfilter wurden erweitert. Jetzt können auch Text und numerische Werte in Bereichsfiltern verwendet werden.&lt;br /&gt;
* Fix: Modellzugriff bei parallelem Öffnen von Perspektiven sequenzialisiert.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei application.yml-template als Vorlage für die Einstellungen in application.yml&lt;br /&gt;
* application.yml: devicetest ist jetzt standardmäßig abgeschaltet.&lt;br /&gt;
* aures/bin/CheckHealt.bat: füge Pfad zu aures/bin hinzu.&lt;br /&gt;
* schreibe Registrywerte für TcpTimedWaitDelay und MaxUserPort bei der Installation&lt;br /&gt;
* führe am Ende der Installation reboot aus nach Benutzerbestätigung&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Signaturepad: Verbesserung des Statushandlings, Verbesserung bei der Verwaltung der Werbebilder&lt;br /&gt;
* zentrale Funktion zur Statusabfrage eingeführt. Reduziert die Zahl der Status- bzw. Fehlerabfragen von 3/Sek auf 1/Sek. Aktuelle OS.pos Version erforderlich. Kompatibilität mit früheren OS.pos Versionen ist gegegeben.&lt;br /&gt;
* POSPrinter: Verbesserung des Logodruckmanagements&lt;br /&gt;
* POSPrinter: neuer Parameter 'ImageWidth' zur Definition der Zielbreite für den Logodruck in der Datei jpos.xml im Abschnitt für den POSPrinter. Defaultwert für AURES Drucker ist 1/16 der verfübaren Zeilenbreite -&amp;gt; 450. Defaultwert für EPSON und andere Drucker ist 200. &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;'&amp;lt;prop name=&amp;quot;ImageWidth&amp;quot; type=&amp;quot;Long&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;'&amp;lt;/syntaxhighlight&amp;gt; Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: neuer numerischer Parameter 'performReclaimInSeconds' in application.yml. Steuert, ob und wann ein automatischer erneuter Claim bei den javaPOS Peripheriegeräten gemacht wird. Erleichtert die Erkennung der Geräte nach z.B. dem Aus- und Einschalten eines Geräts. Defaultwert: 'not set', gültige Werte: &amp;gt;= 10. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: Methode &amp;quot;uploadedBitmaps&amp;quot; hat keine Funktion mehr. Sollen Bitmaps aus dem Druckerspeicher verwendet werden dann ist der entsprechende Schalter in application.yml zu setzen. Dies empfiehlt sich bei der Verwendung von EPSON Druckern, welche die Speicherung von Bitmaps unterstützen. Die Geschwindigkeit beim Bondruck wird dadurch erhöht. Der Service muss anschließend neu gestartet werden.&lt;br /&gt;
* POSPrinter: wird Text mit eine Länge von mehr als 4000 Zeichen zur Druck übergeben, so wird dieser in Blöcken mit max. 4000 Zeichen an den Drucker gesendet. Dies verhindert einen Absturz des Druckers bei zu langen Texten. Ist der Parameter &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;prop name=&amp;quot;OutputBufferSize&amp;quot; type=&amp;quot;String&amp;quot; value=&amp;quot;4096&amp;quot;/&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; in jpos.xml gesetzt, so ist dieser Wert die Blockgröße.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlussbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=OS.app_System_Configuration&amp;diff=3981</id>
		<title>OS.app System Configuration</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=OS.app_System_Configuration&amp;diff=3981"/>
				<updated>2023-02-28T11:09:50Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* GLOBAL_PARAMETERS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OS.app System Configuration ==&lt;br /&gt;
&lt;br /&gt;
Each application created with the OSbee Software Factory V4.5.5 and later contains the system configuration to manage system wide settings.&lt;br /&gt;
&lt;br /&gt;
The system configuration has two parts:&lt;br /&gt;
&lt;br /&gt;
* Configuration group&lt;br /&gt;
* Configuration&lt;br /&gt;
&lt;br /&gt;
The configuration entries belong to a configuration group to bundle related configuration entries.&lt;br /&gt;
&lt;br /&gt;
Configuration entries and groups show up during operation of the application, as soon as the entry is requested by the application. The default value is used as the initial value. As soon as the configuration entry is available, it can be adjusted to the local needs.&lt;br /&gt;
&lt;br /&gt;
Deleting an entry will result in the recreation of the default value, as soon as the application requests the value.&lt;br /&gt;
&lt;br /&gt;
Configuration values will be introduced without seperate notice. The description might contain values, that are not yet available in the OS.app you're using, depending on the version of the software factory used to build the applicatoin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration Attributes ===&lt;br /&gt;
&lt;br /&gt;
There are various attributes used for the configuration. &lt;br /&gt;
All entries have&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ basic attributes&lt;br /&gt;
|-&lt;br /&gt;
!Attribute !!Type &lt;br /&gt;
|-&lt;br /&gt;
||configuration group || Reference to the Configuration group&lt;br /&gt;
|-&lt;br /&gt;
||key || String&lt;br /&gt;
|-&lt;br /&gt;
||description || String&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The follwing types extend this basic attribute set. It can be a simple or a complex type&lt;br /&gt;
&lt;br /&gt;
==== Boolean ====&lt;br /&gt;
a simple yes/no value, selected means yes / true, deselected means no / false&lt;br /&gt;
&lt;br /&gt;
==== Integer ====&lt;br /&gt;
a simple number with precision 0&lt;br /&gt;
eg. 5000&lt;br /&gt;
&lt;br /&gt;
==== Float ====&lt;br /&gt;
a simple number with precision &amp;gt; 0&lt;br /&gt;
eg. 1.234&lt;br /&gt;
&lt;br /&gt;
==== String ====&lt;br /&gt;
a simple text value. Whatever shall be configured as text&lt;br /&gt;
&lt;br /&gt;
==== Textblock ====&lt;br /&gt;
a simple text block value. Whatever shall be configured as a larger amount of text. Can be formatted.&lt;br /&gt;
&lt;br /&gt;
==== Datainterchange ====&lt;br /&gt;
a complex type to configure datainterchange parameters for import and export&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Datainterchange configuration attributes&lt;br /&gt;
|-&lt;br /&gt;
!Attribute !!Type &lt;br /&gt;
|-&lt;br /&gt;
||protocol directory || String, the directory, where the import log is stored.&amp;lt;br/&amp;gt;empty disables the logging, Default: empty&lt;br /&gt;
|-&lt;br /&gt;
||import blocksize || Integer, Default 5000&lt;br /&gt;
|-&lt;br /&gt;
||no superindex creation || Boolean, Default yes&lt;br /&gt;
|-&lt;br /&gt;
||export blocksize || Integer, Default 1000&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notification Template ====&lt;br /&gt;
a complex type to configure user email notifications&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Notification Template Attributes&lt;br /&gt;
|-&lt;br /&gt;
!Attribute !!Type &lt;br /&gt;
|-&lt;br /&gt;
||locale || The language, the template is valid for&lt;br /&gt;
|-&lt;br /&gt;
||subject || String, used as email subject&lt;br /&gt;
|-&lt;br /&gt;
||body || String, used as email body&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration Groups===&lt;br /&gt;
&lt;br /&gt;
==== Datamarts ====&lt;br /&gt;
&lt;br /&gt;
Controls the datamart settings&lt;br /&gt;
&lt;br /&gt;
For each datamart, the settings can be controlled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Datamart settings&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;datamart fqn&amp;gt;-ResultsetLimit4SQLExpression||sets a limit for the maximum number of lines returned from an SQL Expression&amp;lt;br&amp;gt;Tables, Reports and Charts based on the datamart may eventually not present the whole data.&amp;lt;br&amp;gt;The request return faster, especially if the request delivers a hughe amount of data if unlimited||Integer||0 || 0 = off, no limit&amp;lt;br&amp;gt; &amp;gt; 0&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== DATAINTERCHANGE ====&lt;br /&gt;
&lt;br /&gt;
Controls the datainterchange settings&lt;br /&gt;
&lt;br /&gt;
For each datainterchange, the settings for the import and export can be configured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ DATAINTERCHANGE settings&lt;br /&gt;
|-&lt;br /&gt;
!Attribute !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|key ||the datainterchange, the setting is used for  ||String || || (not editable)&lt;br /&gt;
|-&lt;br /&gt;
|description ||free text  ||String || || &lt;br /&gt;
|-&lt;br /&gt;
|protocol directory ||the directory, where the camel protocol files shall be saved.&amp;lt;br /&amp;gt;Attention: the use of protocol files has a significant impact on the performance  ||String || || directory on the server&lt;br /&gt;
|-&lt;br /&gt;
|no superindex creation ||Do not update the superindex during import.&amp;lt;br /&amp;gt; ||Boolean || true || true&amp;lt;br /&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|import blocksize ||the number of records, that are imported in one block. &amp;lt;br /&amp;gt;The larger the blocksize, the more memory is needed. ||Integer || 5000 || 0 = no block defined&lt;br /&gt;
|-&lt;br /&gt;
|export blocksize ||the number of records, that are exported in one block / file. ||Integer || 1000 || 0 = no block defined&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== GLOBAL_PARAMETERS ====&lt;br /&gt;
&lt;br /&gt;
A collection of global configuration parameters&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Global Parameters&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|ABSTRACTHYBRIDVAACLIPSEVIEW-NOTIFY-ABOUT-RENDERING||enable tray notification about the rendering of a ui component ||Boolean||false ||false&amp;lt;br&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|ABSTRACTHYBRIDVAACLIPSEVIEW-REFRESH-TIMEOUT||Time in milliseconds, how long a refresh of a AbstractHybridVaaclipseView shall wait ||Integer||300 || 0 = off&lt;br /&gt;
|-&lt;br /&gt;
|BEANSERVICELAZYLOADINGCONTAINER-REFRESH-TIMEOUT ||Time in milliseconds, how long a refresh of a BeanServiceLazyLoadingContainer shall wait ||Integer||0 || 0 = off&lt;br /&gt;
|-&lt;br /&gt;
|BLOB_LOCATION ||In case, blobs shall be stored in the filesystem instead of the database, the path can be configured here&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Attention&amp;lt;/b&amp;gt;: remember to include the directory into the backup in sync with the database backup ||String|| nn || nn: not configured, otherwise eg c:\OS.apps\blobs&lt;br /&gt;
|-&lt;br /&gt;
|LicenceGenerationPrivateKey||The private SHA384-with-ECDSA key to activate Compex licences. Only for internal use.||String|| None&lt;br /&gt;
 || any Base64 encoded key for the algorithm&lt;br /&gt;
|-&lt;br /&gt;
|LicenceGenerationCertificate||The certificate with the public SHA384-with-ECDSA key to activate Compex licences.  ||Textblock|| &amp;lt;nowiki&amp;gt;-----BEGIN CERTIFICATE-----&lt;br /&gt;
MIIBTjCB1aADAgECAgRjd3pNMAoGCCqGSM49BAMDMBExDzANBgNVBAMMBmxpemVu&lt;br /&gt;
ejAeFw0yMjExMTgxMjI3NTdaFw0yMzExMTgxMjI3NTdaMBExDzANBgNVBAMMBmxp&lt;br /&gt;
emVuejB2MBAGByqGSM49AgEGBSuBBAAiA2IABAUrgKWFFtX/Edd3TV6vpsjbCXv/&lt;br /&gt;
xPtxHLq/F/b8C/wg4kxdx2w9cTXgOcfevszCAMx3qxxdazEhAk4q5ERBAsD1v2kn&lt;br /&gt;
nznZz05r0WyAjCS79MCNGzyCweV73KWj7xLdWDAKBggqhkjOPQQDAwNoADBlAjA5&lt;br /&gt;
m7aHNgnZjDfmegDakQHhS+0k8zm029oElvzsV0Eq33fVxeLLhlycJjzAVvYMFZYC&lt;br /&gt;
MQCD8mwLazMosZt0xhl/A1//6kZ5MWfvzSvv7wlrxJ/x3tjO5JBjgDHQFCkI1hIg&lt;br /&gt;
E1Y=&lt;br /&gt;
-----END CERTIFICATE-----&amp;lt;/nowiki&amp;gt; || Should not be changed, except to a new key explicitly offered by Compex.&lt;br /&gt;
|-&lt;br /&gt;
|SINGLEINFOGRIDCOMPONENT-REFRESH-TIMEOUT ||Time in milliseconds, how long a refresh of a SingleInfoGridComponent shall wait ||Integer||0 || 0 = off&lt;br /&gt;
|-&lt;br /&gt;
|SuperindexCronSchedule ||The schedule to control the superindex rebuild.&amp;lt;br /&amp;gt;Default: every Friday at 22:00||String|| 0 0 22 ? * FRI||[http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html Quartz Trigger Samples] &lt;br /&gt;
|-&lt;br /&gt;
|SuperindexExclusionWords ||a list of words, that will be excluded from the superindex tables ||Textblock|| die, der, und, in, zu, den, das, nicht, von, sie,ist, des, sich, mit, dem, dass, er, es, ein, ich,auf, so, eine, auch, als, an, nach, wie, im, für,man, aber, aus, durch, wenn, nur, war, noch, werden, bei,hat, wir, was, wird, sein, einen, welche, sind, oder, zur,um, haben, einer, mir, über, ihm, diese, einem, ihr, uns,da, zum, kann, doch, vor, dieser, mich, ihn, du, hatte,seine, mehr, am, denn, nun, unter, sehr, selbst, schon, hier,bis, habe, ihre, dann, ihnen, seiner, alle, wieder, meine,gegen, vom, ganz, einzelnen, wo, muss, ohne, eines, können, sei,ja, wurde, jetzt, immer, seinen, wohl, dieses, ihren, würde, diesen,sondern, weil, welcher, nichts, diesem, alles, waren, will, viel,mein, also, soll, worden, lassen, dies, machen, ihrer, weiter,etwas, keine, seinem, ob, dir, allen, großen, Weise, müssen,welches, wäre, erst, einmal, hätte, zwei, dich, allein, während,kein, damit, gar, euch, sollte, konnte, ersten, deren, zwischen,wollen, denen, dessen, sagen, bin, gut, darauf, wurden, gewesen,zwar, wer, ihrem, hatten, solche, eben, andern, beiden, macht,dort, kommen, werde, derselben, ganzen, lässt, vielleicht, meiner || all words, you dont want in the superindex&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
Control Hardware specific settings. The keys starting with &amp;lt;hostname&amp;gt; define a client computer specific setting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Monitoring&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;hostname&amp;gt;-KeyboardLayout ||set the client keyboard layout to an appropriate value&amp;lt;br&amp;gt;The default layout is Windows on Windows Machines and Linux on Linux machines.&amp;lt;br&amp;gt;The information is detected by OS.pos and can be overwritten with this parameter. ||String || default || default&amp;lt;br&amp;gt;Windows&amp;lt;br&amp;gt;Linux&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Monitoring ====&lt;br /&gt;
&lt;br /&gt;
Controls the system monitoring settings&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Monitoring&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|activated ||switch on/off the monitoring in general ||Boolean || true || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|daysToKeep ||keep data for x days. Delete older entries to keep database small ||Integer || 7 || 1..365&lt;br /&gt;
|-&lt;br /&gt;
|monitorCPUUSage ||switch on/off the CPU usage monitoring  ||Boolean || false || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|monitorDatainterchange ||switch on/off the data interchange monitoring for all datainterchange definitions ||Boolean || false || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|monitorDiskspace ||switch on/off the diskspace monitoring for the installation disk drive ||Boolean || false || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|monitorMemory ||switch on/off the memory monitoring  ||Boolean || false || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|monitorMemory intervall (in seconds) ||repeat the measurement every x seconds  ||Integer || 60 || 15..500&lt;br /&gt;
|-&lt;br /&gt;
|...#daysToKeep ||keep data for x days. Delete older entries to keep database small ||Integer || 7 || 1..365&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notification Templates ====&lt;br /&gt;
&lt;br /&gt;
Notification templates are use to define the content of system email, that is sent eg. when a user is unlocked.&lt;br /&gt;
The templates can be configured for English, German and French or any other language, the application uses.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Notification Templates&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Locale !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|AccountUnlockedNotification ||used to notify user about the account unlocking ||Templatenotification|| Deutsch || Account #USERNAME# ist jetzt entsperrt!&amp;lt;br /&amp;gt;Das Benutzerkonto '#USERNAME#' ist wieder entsperrt. || any text&lt;br /&gt;
|-&lt;br /&gt;
| || ||Templatenotification|| English || Account #USERNAME# is unlocked now!&amp;lt;br /&amp;gt;The user account #USERNAME# is unlocked again. || any text&lt;br /&gt;
|-&lt;br /&gt;
| || ||Templatenotification|| French || Account #USERNAME# is unlocked now!&amp;lt;br /&amp;gt;The user account #USERNAME# is unlocked again. || any text&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 #USERNAME# is replaced by the name of the user, the notification is send to.&lt;br /&gt;
&lt;br /&gt;
==== PeripheralService ====&lt;br /&gt;
&lt;br /&gt;
Controls the behaviour of the OS.pos peripheral device communication. The keys starting with &amp;lt;hostname&amp;gt; define a client computer specific setting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ PeripheralService&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|checkRemoteHosts ||Activate a cyclic check of all activated connections to OS.peripherals ||Boolen||false|| false, true&lt;br /&gt;
|-&lt;br /&gt;
|checkRemoteHostsIntervall(in sec) ||the intervall in seconds for the checkRemoteHosts  ||Integer ||60|| &lt;br /&gt;
|-&lt;br /&gt;
|comminication-timeout ||Timeout in milliseconds for the communication with the OS.peripherals service ||Integer|| 2000 || 0 = no timeout, 1000..5000&lt;br /&gt;
|-&lt;br /&gt;
|javaposStatusPollIntervallInMillisec ||the intervall in milliseconds for the status check of the POSPrinter, Cashdrawer and other configured javaPOS devices  ||Integer ||1000|| 500..5000 &lt;br /&gt;
|-&lt;br /&gt;
|signatureSlideDelayInMillisec ||the intervall in milliseconds to display the uploaded advertising pictures on the signature pad  ||Integer ||1000|| 500..5000 &lt;br /&gt;
|-&lt;br /&gt;
|signatureStatusPollIntervallInMillisec ||the intervall in milliseconds for the status check of the signature pad  ||Integer ||1000|| 500..5000 &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;hostname&amp;gt;:&amp;lt;port&amp;gt; ||redirect the peripherals communication to another host or port for the &amp;lt;hostname&amp;gt; given in the key&amp;lt;br/&amp;gt;this allows to use mobile devices like tablets and redirect to a peripherals server, that has the configuration for the devices&amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Attention! Experimental!&amp;lt;/b&amp;gt; ||String|| &amp;lt;hostname&amp;gt;:&amp;lt;port&amp;gt; || &amp;lt;other hostname&amp;gt;:&amp;lt;other port&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;hostname&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot; ||enable the treatment of the special character codes created by a scan. Off by default. ||Integer|| 0 || 0 = special scanner treatment off, recommended 50, max 100 &lt;br /&gt;
|-&lt;br /&gt;
|POSPrinterLogo || a bitmap that can be used on POSPrinters ||Blob || empty || (*) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(*) The POSPrinterLogo is created and used as soon as the slip print parameters setting 'logo' contains the String 'POSPrinterLogo'. &lt;br /&gt;
We recommend to use a black/white or grayscale jpg logo with a resolution of 200x80 pixel. Other formats and sizes may work, but may lead to unexpected results. Please consult the printer documentation for further information.&lt;br /&gt;
It is possible to use different POSPrinterLogos by using multiple keywords for different logo configurations starting with POSPrinterLogo, e.g POSPrinterLogo1, POSPrinterLogo2, POSPrinterLogoChristmas, POSPrinterLogoEaster.&lt;br /&gt;
&lt;br /&gt;
==== PrintServices ====&lt;br /&gt;
&lt;br /&gt;
Controls the use of the server side system print service in the printservice selection comboboxes&lt;br /&gt;
The key contains the name of the print service.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Printservice examples&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|no printer selected ||used to deselect any printer ||Boolean|| true || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|Microsoft Print to PDF || ||Boolean|| true || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;the name of the printservice&amp;gt; || ||Boolean|| true || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
all printservices, that are available on the spplication host machine, will be listet.&lt;br /&gt;
&lt;br /&gt;
new entries will always be enabled by default.&lt;br /&gt;
&lt;br /&gt;
==== Reports ====&lt;br /&gt;
&lt;br /&gt;
Controls the replacement of reports. There are two methods: either the alternate report is part of the application, the the path is similar to the original path and has to be asked from the developer or the rptdesign file is located in the filesystem. Then, the prefix file: has to be used and the location can bei either relative or absolute. The relative location has to start with &amp;quot;file:&amp;quot;, the absolute location has to start with &amp;quot;file:////&amp;quot; followed by the path to the rptdesign file.&lt;br /&gt;
&lt;br /&gt;
The original report is used if the alternate report can not be found. The log contains hints about the search and the problem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Reports examples&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|replacement for org/eclipse/osbp/stubapplication/model/reports/rV1 ||alternate report ||String||org/eclipse/osbp/stubapplication/model/reports/rV2.rptdesign || the path to the alternate report. Default is the path to the original report&lt;br /&gt;
|-&lt;br /&gt;
|replacement for org/eclipse/osbp/stubapplication/model/reports/rV1 ||alternate report on the filesystem ||String||file:myreports/rV2.rptdesign || the path to the alternate report, located relative to the configuration directory, that contains the application preferences file.&lt;br /&gt;
|-&lt;br /&gt;
|replacement for org/eclipse/osbp/stubapplication/model/reports/rV1 ||alternate report on the filesystem||String||file:////c:\myreports\rV2.rptdesign || the absolute path to the alternate report.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Userinterface ====&lt;br /&gt;
&lt;br /&gt;
The userinterface can be configured to adjust the behaviour to company specific needs. The settings are valid for all users.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Userinterface settings&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|action-Save ||controls the behaviour of the Save Button ||String || action-Save || action-SaveAndAsk &amp;lt;br /&amp;gt;action-SaveAndNew&lt;br /&gt;
|-&lt;br /&gt;
|action-SaveAndAsk ||controls the behaviour of the SaveAndAsk Button ||String || action-SaveAndAsk || action-Save &amp;lt;br /&amp;gt;action-SaveAndNew&lt;br /&gt;
|-&lt;br /&gt;
|action-SaveAndNew ||controls the behaviour of the SaveAndNew Button ||String || action-SaveAndNew || action-Save &amp;lt;br /&amp;gt;action-SaveAndAsk&lt;br /&gt;
|-&lt;br /&gt;
|BalancedDialogLayout ||controls the order of groups in dialogs with more the one columns: left to right / top to bottom ||Boolean || false || false: alternating from left to right &amp;lt;br /&amp;gt;true: from top to bottom, then next col&lt;br /&gt;
|-&lt;br /&gt;
|defaultImageResolution ||controls the size of the images displayed in the dialogs ||Integer || 2 || 0 = Original &amp;lt;br /&amp;gt; 1 = small (16x16) &amp;lt;br /&amp;gt; 2 = small (32x32)&amp;lt;br /&amp;gt; 3 = portrait (64x128)&amp;lt;br /&amp;gt; 4 = landscape (128x64)&amp;lt;br /&amp;gt; 5 = big (200x&amp;amp;lt;undefined&amp;amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|hideApplicationMenu ||Hide the application menu for all users. The menu is never hidden for Superusers. ||Boolean|| false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|hideMenuForUser &amp;lt;Username&amp;gt; ||Hide the application menu for the user &amp;lt;Username&amp;gt;. The menu is never hidden for Superusers. ||Boolean|| false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|Locale ||The default locale for the application ||String || the locale received from the browser || de-DE &amp;lt;br /&amp;gt;en-US &amp;lt;br /&amp;gt;fr-FR &amp;lt;br /&amp;gt;...&lt;br /&gt;
|-&lt;br /&gt;
|MenuAutoCollapseAfterSelect ||Collapse the menu after the selection of a menu entry ||Boolean || false || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|MenuAutoCollapseOnExpand ||Collapse the previous selected menu tree the selection of another tree ||Boolean || false || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|MenuWidthInPX ||The width of the menu accordeon and tree in Pixel || String || 600px || 300px &amp;lt; Value &amp;lt; 900px&lt;br /&gt;
|-&lt;br /&gt;
|DatabaseExceptionMessage ||Blocking message about exceptions during database operations&amp;lt;br /&amp;gt;Either DatabaseExceptionMessage  or DatabaseExceptionNotification can be true ||Boolean || false || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|DatabaseExceptionNotification ||Systray notification about exceptions during database operations&amp;lt;br /&amp;gt;Either DatabaseExceptionMessage  or DatabaseExceptionNotification can be true ||Boolean || false || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|TableFilterDecorator-text-change-timeout ||Delay in milliseconds until the refresh of a table starts when a filter value is changed ||Integer|| 500 || 0..1000&lt;br /&gt;
|-&lt;br /&gt;
|showHelpButton ||Show the help button in the application menu bar ||Boolen || false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|ShowLanguageSelection||Show the language control in the application menu bar ||Boolen || false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|ShowPrinterSelection||Show the printer control in the application menu bar ||Boolen || false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|ShowThemeSelection||Show the theme control in the application menu bar ||Boolen || false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=OS.app_System_Configuration&amp;diff=3980</id>
		<title>OS.app System Configuration</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=OS.app_System_Configuration&amp;diff=3980"/>
				<updated>2023-02-28T11:02:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* GLOBAL_PARAMETERS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OS.app System Configuration ==&lt;br /&gt;
&lt;br /&gt;
Each application created with the OSbee Software Factory V4.5.5 and later contains the system configuration to manage system wide settings.&lt;br /&gt;
&lt;br /&gt;
The system configuration has two parts:&lt;br /&gt;
&lt;br /&gt;
* Configuration group&lt;br /&gt;
* Configuration&lt;br /&gt;
&lt;br /&gt;
The configuration entries belong to a configuration group to bundle related configuration entries.&lt;br /&gt;
&lt;br /&gt;
Configuration entries and groups show up during operation of the application, as soon as the entry is requested by the application. The default value is used as the initial value. As soon as the configuration entry is available, it can be adjusted to the local needs.&lt;br /&gt;
&lt;br /&gt;
Deleting an entry will result in the recreation of the default value, as soon as the application requests the value.&lt;br /&gt;
&lt;br /&gt;
Configuration values will be introduced without seperate notice. The description might contain values, that are not yet available in the OS.app you're using, depending on the version of the software factory used to build the applicatoin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration Attributes ===&lt;br /&gt;
&lt;br /&gt;
There are various attributes used for the configuration. &lt;br /&gt;
All entries have&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ basic attributes&lt;br /&gt;
|-&lt;br /&gt;
!Attribute !!Type &lt;br /&gt;
|-&lt;br /&gt;
||configuration group || Reference to the Configuration group&lt;br /&gt;
|-&lt;br /&gt;
||key || String&lt;br /&gt;
|-&lt;br /&gt;
||description || String&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The follwing types extend this basic attribute set. It can be a simple or a complex type&lt;br /&gt;
&lt;br /&gt;
==== Boolean ====&lt;br /&gt;
a simple yes/no value, selected means yes / true, deselected means no / false&lt;br /&gt;
&lt;br /&gt;
==== Integer ====&lt;br /&gt;
a simple number with precision 0&lt;br /&gt;
eg. 5000&lt;br /&gt;
&lt;br /&gt;
==== Float ====&lt;br /&gt;
a simple number with precision &amp;gt; 0&lt;br /&gt;
eg. 1.234&lt;br /&gt;
&lt;br /&gt;
==== String ====&lt;br /&gt;
a simple text value. Whatever shall be configured as text&lt;br /&gt;
&lt;br /&gt;
==== Textblock ====&lt;br /&gt;
a simple text block value. Whatever shall be configured as a larger amount of text. Can be formatted.&lt;br /&gt;
&lt;br /&gt;
==== Datainterchange ====&lt;br /&gt;
a complex type to configure datainterchange parameters for import and export&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Datainterchange configuration attributes&lt;br /&gt;
|-&lt;br /&gt;
!Attribute !!Type &lt;br /&gt;
|-&lt;br /&gt;
||protocol directory || String, the directory, where the import log is stored.&amp;lt;br/&amp;gt;empty disables the logging, Default: empty&lt;br /&gt;
|-&lt;br /&gt;
||import blocksize || Integer, Default 5000&lt;br /&gt;
|-&lt;br /&gt;
||no superindex creation || Boolean, Default yes&lt;br /&gt;
|-&lt;br /&gt;
||export blocksize || Integer, Default 1000&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notification Template ====&lt;br /&gt;
a complex type to configure user email notifications&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Notification Template Attributes&lt;br /&gt;
|-&lt;br /&gt;
!Attribute !!Type &lt;br /&gt;
|-&lt;br /&gt;
||locale || The language, the template is valid for&lt;br /&gt;
|-&lt;br /&gt;
||subject || String, used as email subject&lt;br /&gt;
|-&lt;br /&gt;
||body || String, used as email body&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration Groups===&lt;br /&gt;
&lt;br /&gt;
==== Datamarts ====&lt;br /&gt;
&lt;br /&gt;
Controls the datamart settings&lt;br /&gt;
&lt;br /&gt;
For each datamart, the settings can be controlled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Datamart settings&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;datamart fqn&amp;gt;-ResultsetLimit4SQLExpression||sets a limit for the maximum number of lines returned from an SQL Expression&amp;lt;br&amp;gt;Tables, Reports and Charts based on the datamart may eventually not present the whole data.&amp;lt;br&amp;gt;The request return faster, especially if the request delivers a hughe amount of data if unlimited||Integer||0 || 0 = off, no limit&amp;lt;br&amp;gt; &amp;gt; 0&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== DATAINTERCHANGE ====&lt;br /&gt;
&lt;br /&gt;
Controls the datainterchange settings&lt;br /&gt;
&lt;br /&gt;
For each datainterchange, the settings for the import and export can be configured&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ DATAINTERCHANGE settings&lt;br /&gt;
|-&lt;br /&gt;
!Attribute !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|key ||the datainterchange, the setting is used for  ||String || || (not editable)&lt;br /&gt;
|-&lt;br /&gt;
|description ||free text  ||String || || &lt;br /&gt;
|-&lt;br /&gt;
|protocol directory ||the directory, where the camel protocol files shall be saved.&amp;lt;br /&amp;gt;Attention: the use of protocol files has a significant impact on the performance  ||String || || directory on the server&lt;br /&gt;
|-&lt;br /&gt;
|no superindex creation ||Do not update the superindex during import.&amp;lt;br /&amp;gt; ||Boolean || true || true&amp;lt;br /&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|import blocksize ||the number of records, that are imported in one block. &amp;lt;br /&amp;gt;The larger the blocksize, the more memory is needed. ||Integer || 5000 || 0 = no block defined&lt;br /&gt;
|-&lt;br /&gt;
|export blocksize ||the number of records, that are exported in one block / file. ||Integer || 1000 || 0 = no block defined&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== GLOBAL_PARAMETERS ====&lt;br /&gt;
&lt;br /&gt;
A collection of global configuration parameters&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Global Parameters&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|ABSTRACTHYBRIDVAACLIPSEVIEW-NOTIFY-ABOUT-RENDERING||enable tray notification about the rendering of a ui component ||Boolean||false ||false&amp;lt;br&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|ABSTRACTHYBRIDVAACLIPSEVIEW-REFRESH-TIMEOUT||Time in milliseconds, how long a refresh of a AbstractHybridVaaclipseView shall wait ||Integer||300 || 0 = off&lt;br /&gt;
|-&lt;br /&gt;
|BEANSERVICELAZYLOADINGCONTAINER-REFRESH-TIMEOUT ||Time in milliseconds, how long a refresh of a BeanServiceLazyLoadingContainer shall wait ||Integer||0 || 0 = off&lt;br /&gt;
|-&lt;br /&gt;
|BLOB_LOCATION ||In case, blobs shall be stored in the filesystem instead of the database, the path can be configured here&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Attention&amp;lt;/b&amp;gt;: remember to include the directory into the backup in sync with the database backup ||String|| nn || nn: not configured, otherwise eg c:\OS.apps\blobs&lt;br /&gt;
|-&lt;br /&gt;
|LicenceGenerationPrivateKey||The private SHA384-with-ECDSA key to activate Compex licences. Only for internal use.||String|| -----BEGIN CERTIFICATE-----&lt;br /&gt;
MIIBTjCB1aADAgECAgRjd3pNMAoGCCqGSM49BAMDMBExDzANBgNVBAMMBmxpemVu&lt;br /&gt;
ejAeFw0yMjExMTgxMjI3NTdaFw0yMzExMTgxMjI3NTdaMBExDzANBgNVBAMMBmxp&lt;br /&gt;
emVuejB2MBAGByqGSM49AgEGBSuBBAAiA2IABAUrgKWFFtX/Edd3TV6vpsjbCXv/&lt;br /&gt;
xPtxHLq/F/b8C/wg4kxdx2w9cTXgOcfevszCAMx3qxxdazEhAk4q5ERBAsD1v2kn&lt;br /&gt;
nznZz05r0WyAjCS79MCNGzyCweV73KWj7xLdWDAKBggqhkjOPQQDAwNoADBlAjA5&lt;br /&gt;
m7aHNgnZjDfmegDakQHhS+0k8zm029oElvzsV0Eq33fVxeLLhlycJjzAVvYMFZYC&lt;br /&gt;
MQCD8mwLazMosZt0xhl/A1//6kZ5MWfvzSvv7wlrxJ/x3tjO5JBjgDHQFCkI1hIg&lt;br /&gt;
E1Y=&lt;br /&gt;
-----END CERTIFICATE-----&lt;br /&gt;
 || Should not be changed, except to a new key explicitly offered by Compex.&lt;br /&gt;
|-&lt;br /&gt;
|LicenceGenerationCertificate||The certificate with the public SHA384-with-ECDSA key to activate Compex licences.  ||Textblock|| nn || nn: not configured, otherwise eg c:\OS.apps\blobs&lt;br /&gt;
|-&lt;br /&gt;
|SINGLEINFOGRIDCOMPONENT-REFRESH-TIMEOUT ||Time in milliseconds, how long a refresh of a SingleInfoGridComponent shall wait ||Integer||0 || 0 = off&lt;br /&gt;
|-&lt;br /&gt;
|SuperindexCronSchedule ||The schedule to control the superindex rebuild.&amp;lt;br /&amp;gt;Default: every Friday at 22:00||String|| 0 0 22 ? * FRI||[http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html Quartz Trigger Samples] &lt;br /&gt;
|-&lt;br /&gt;
|SuperindexExclusionWords ||a list of words, that will be excluded from the superindex tables ||Textblock|| die, der, und, in, zu, den, das, nicht, von, sie,ist, des, sich, mit, dem, dass, er, es, ein, ich,auf, so, eine, auch, als, an, nach, wie, im, für,man, aber, aus, durch, wenn, nur, war, noch, werden, bei,hat, wir, was, wird, sein, einen, welche, sind, oder, zur,um, haben, einer, mir, über, ihm, diese, einem, ihr, uns,da, zum, kann, doch, vor, dieser, mich, ihn, du, hatte,seine, mehr, am, denn, nun, unter, sehr, selbst, schon, hier,bis, habe, ihre, dann, ihnen, seiner, alle, wieder, meine,gegen, vom, ganz, einzelnen, wo, muss, ohne, eines, können, sei,ja, wurde, jetzt, immer, seinen, wohl, dieses, ihren, würde, diesen,sondern, weil, welcher, nichts, diesem, alles, waren, will, viel,mein, also, soll, worden, lassen, dies, machen, ihrer, weiter,etwas, keine, seinem, ob, dir, allen, großen, Weise, müssen,welches, wäre, erst, einmal, hätte, zwei, dich, allein, während,kein, damit, gar, euch, sollte, konnte, ersten, deren, zwischen,wollen, denen, dessen, sagen, bin, gut, darauf, wurden, gewesen,zwar, wer, ihrem, hatten, solche, eben, andern, beiden, macht,dort, kommen, werde, derselben, ganzen, lässt, vielleicht, meiner || all words, you dont want in the superindex&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
&lt;br /&gt;
Control Hardware specific settings. The keys starting with &amp;lt;hostname&amp;gt; define a client computer specific setting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Monitoring&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;hostname&amp;gt;-KeyboardLayout ||set the client keyboard layout to an appropriate value&amp;lt;br&amp;gt;The default layout is Windows on Windows Machines and Linux on Linux machines.&amp;lt;br&amp;gt;The information is detected by OS.pos and can be overwritten with this parameter. ||String || default || default&amp;lt;br&amp;gt;Windows&amp;lt;br&amp;gt;Linux&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Monitoring ====&lt;br /&gt;
&lt;br /&gt;
Controls the system monitoring settings&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Monitoring&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|activated ||switch on/off the monitoring in general ||Boolean || true || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|daysToKeep ||keep data for x days. Delete older entries to keep database small ||Integer || 7 || 1..365&lt;br /&gt;
|-&lt;br /&gt;
|monitorCPUUSage ||switch on/off the CPU usage monitoring  ||Boolean || false || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|monitorDatainterchange ||switch on/off the data interchange monitoring for all datainterchange definitions ||Boolean || false || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|monitorDiskspace ||switch on/off the diskspace monitoring for the installation disk drive ||Boolean || false || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|monitorMemory ||switch on/off the memory monitoring  ||Boolean || false || true&amp;lt;br&amp;gt;false&lt;br /&gt;
|-&lt;br /&gt;
|monitorMemory intervall (in seconds) ||repeat the measurement every x seconds  ||Integer || 60 || 15..500&lt;br /&gt;
|-&lt;br /&gt;
|...#daysToKeep ||keep data for x days. Delete older entries to keep database small ||Integer || 7 || 1..365&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Notification Templates ====&lt;br /&gt;
&lt;br /&gt;
Notification templates are use to define the content of system email, that is sent eg. when a user is unlocked.&lt;br /&gt;
The templates can be configured for English, German and French or any other language, the application uses.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Notification Templates&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Locale !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|AccountUnlockedNotification ||used to notify user about the account unlocking ||Templatenotification|| Deutsch || Account #USERNAME# ist jetzt entsperrt!&amp;lt;br /&amp;gt;Das Benutzerkonto '#USERNAME#' ist wieder entsperrt. || any text&lt;br /&gt;
|-&lt;br /&gt;
| || ||Templatenotification|| English || Account #USERNAME# is unlocked now!&amp;lt;br /&amp;gt;The user account #USERNAME# is unlocked again. || any text&lt;br /&gt;
|-&lt;br /&gt;
| || ||Templatenotification|| French || Account #USERNAME# is unlocked now!&amp;lt;br /&amp;gt;The user account #USERNAME# is unlocked again. || any text&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 #USERNAME# is replaced by the name of the user, the notification is send to.&lt;br /&gt;
&lt;br /&gt;
==== PeripheralService ====&lt;br /&gt;
&lt;br /&gt;
Controls the behaviour of the OS.pos peripheral device communication. The keys starting with &amp;lt;hostname&amp;gt; define a client computer specific setting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ PeripheralService&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|checkRemoteHosts ||Activate a cyclic check of all activated connections to OS.peripherals ||Boolen||false|| false, true&lt;br /&gt;
|-&lt;br /&gt;
|checkRemoteHostsIntervall(in sec) ||the intervall in seconds for the checkRemoteHosts  ||Integer ||60|| &lt;br /&gt;
|-&lt;br /&gt;
|comminication-timeout ||Timeout in milliseconds for the communication with the OS.peripherals service ||Integer|| 2000 || 0 = no timeout, 1000..5000&lt;br /&gt;
|-&lt;br /&gt;
|javaposStatusPollIntervallInMillisec ||the intervall in milliseconds for the status check of the POSPrinter, Cashdrawer and other configured javaPOS devices  ||Integer ||1000|| 500..5000 &lt;br /&gt;
|-&lt;br /&gt;
|signatureSlideDelayInMillisec ||the intervall in milliseconds to display the uploaded advertising pictures on the signature pad  ||Integer ||1000|| 500..5000 &lt;br /&gt;
|-&lt;br /&gt;
|signatureStatusPollIntervallInMillisec ||the intervall in milliseconds for the status check of the signature pad  ||Integer ||1000|| 500..5000 &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;hostname&amp;gt;:&amp;lt;port&amp;gt; ||redirect the peripherals communication to another host or port for the &amp;lt;hostname&amp;gt; given in the key&amp;lt;br/&amp;gt;this allows to use mobile devices like tablets and redirect to a peripherals server, that has the configuration for the devices&amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;Attention! Experimental!&amp;lt;/b&amp;gt; ||String|| &amp;lt;hostname&amp;gt;:&amp;lt;port&amp;gt; || &amp;lt;other hostname&amp;gt;:&amp;lt;other port&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;hostname&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot; ||enable the treatment of the special character codes created by a scan. Off by default. ||Integer|| 0 || 0 = special scanner treatment off, recommended 50, max 100 &lt;br /&gt;
|-&lt;br /&gt;
|POSPrinterLogo || a bitmap that can be used on POSPrinters ||Blob || empty || (*) &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(*) The POSPrinterLogo is created and used as soon as the slip print parameters setting 'logo' contains the String 'POSPrinterLogo'. &lt;br /&gt;
We recommend to use a black/white or grayscale jpg logo with a resolution of 200x80 pixel. Other formats and sizes may work, but may lead to unexpected results. Please consult the printer documentation for further information.&lt;br /&gt;
It is possible to use different POSPrinterLogos by using multiple keywords for different logo configurations starting with POSPrinterLogo, e.g POSPrinterLogo1, POSPrinterLogo2, POSPrinterLogoChristmas, POSPrinterLogoEaster.&lt;br /&gt;
&lt;br /&gt;
==== PrintServices ====&lt;br /&gt;
&lt;br /&gt;
Controls the use of the server side system print service in the printservice selection comboboxes&lt;br /&gt;
The key contains the name of the print service.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Printservice examples&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|no printer selected ||used to deselect any printer ||Boolean|| true || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|Microsoft Print to PDF || ||Boolean|| true || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;the name of the printservice&amp;gt; || ||Boolean|| true || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
all printservices, that are available on the spplication host machine, will be listet.&lt;br /&gt;
&lt;br /&gt;
new entries will always be enabled by default.&lt;br /&gt;
&lt;br /&gt;
==== Reports ====&lt;br /&gt;
&lt;br /&gt;
Controls the replacement of reports. There are two methods: either the alternate report is part of the application, the the path is similar to the original path and has to be asked from the developer or the rptdesign file is located in the filesystem. Then, the prefix file: has to be used and the location can bei either relative or absolute. The relative location has to start with &amp;quot;file:&amp;quot;, the absolute location has to start with &amp;quot;file:////&amp;quot; followed by the path to the rptdesign file.&lt;br /&gt;
&lt;br /&gt;
The original report is used if the alternate report can not be found. The log contains hints about the search and the problem.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Reports examples&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|replacement for org/eclipse/osbp/stubapplication/model/reports/rV1 ||alternate report ||String||org/eclipse/osbp/stubapplication/model/reports/rV2.rptdesign || the path to the alternate report. Default is the path to the original report&lt;br /&gt;
|-&lt;br /&gt;
|replacement for org/eclipse/osbp/stubapplication/model/reports/rV1 ||alternate report on the filesystem ||String||file:myreports/rV2.rptdesign || the path to the alternate report, located relative to the configuration directory, that contains the application preferences file.&lt;br /&gt;
|-&lt;br /&gt;
|replacement for org/eclipse/osbp/stubapplication/model/reports/rV1 ||alternate report on the filesystem||String||file:////c:\myreports\rV2.rptdesign || the absolute path to the alternate report.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Userinterface ====&lt;br /&gt;
&lt;br /&gt;
The userinterface can be configured to adjust the behaviour to company specific needs. The settings are valid for all users.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Userinterface settings&lt;br /&gt;
|-&lt;br /&gt;
!Key !!Description !!Type !!Default !!Possible Values&lt;br /&gt;
|-&lt;br /&gt;
|action-Save ||controls the behaviour of the Save Button ||String || action-Save || action-SaveAndAsk &amp;lt;br /&amp;gt;action-SaveAndNew&lt;br /&gt;
|-&lt;br /&gt;
|action-SaveAndAsk ||controls the behaviour of the SaveAndAsk Button ||String || action-SaveAndAsk || action-Save &amp;lt;br /&amp;gt;action-SaveAndNew&lt;br /&gt;
|-&lt;br /&gt;
|action-SaveAndNew ||controls the behaviour of the SaveAndNew Button ||String || action-SaveAndNew || action-Save &amp;lt;br /&amp;gt;action-SaveAndAsk&lt;br /&gt;
|-&lt;br /&gt;
|BalancedDialogLayout ||controls the order of groups in dialogs with more the one columns: left to right / top to bottom ||Boolean || false || false: alternating from left to right &amp;lt;br /&amp;gt;true: from top to bottom, then next col&lt;br /&gt;
|-&lt;br /&gt;
|defaultImageResolution ||controls the size of the images displayed in the dialogs ||Integer || 2 || 0 = Original &amp;lt;br /&amp;gt; 1 = small (16x16) &amp;lt;br /&amp;gt; 2 = small (32x32)&amp;lt;br /&amp;gt; 3 = portrait (64x128)&amp;lt;br /&amp;gt; 4 = landscape (128x64)&amp;lt;br /&amp;gt; 5 = big (200x&amp;amp;lt;undefined&amp;amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|hideApplicationMenu ||Hide the application menu for all users. The menu is never hidden for Superusers. ||Boolean|| false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|hideMenuForUser &amp;lt;Username&amp;gt; ||Hide the application menu for the user &amp;lt;Username&amp;gt;. The menu is never hidden for Superusers. ||Boolean|| false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|Locale ||The default locale for the application ||String || the locale received from the browser || de-DE &amp;lt;br /&amp;gt;en-US &amp;lt;br /&amp;gt;fr-FR &amp;lt;br /&amp;gt;...&lt;br /&gt;
|-&lt;br /&gt;
|MenuAutoCollapseAfterSelect ||Collapse the menu after the selection of a menu entry ||Boolean || false || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|MenuAutoCollapseOnExpand ||Collapse the previous selected menu tree the selection of another tree ||Boolean || false || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|MenuWidthInPX ||The width of the menu accordeon and tree in Pixel || String || 600px || 300px &amp;lt; Value &amp;lt; 900px&lt;br /&gt;
|-&lt;br /&gt;
|DatabaseExceptionMessage ||Blocking message about exceptions during database operations&amp;lt;br /&amp;gt;Either DatabaseExceptionMessage  or DatabaseExceptionNotification can be true ||Boolean || false || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|DatabaseExceptionNotification ||Systray notification about exceptions during database operations&amp;lt;br /&amp;gt;Either DatabaseExceptionMessage  or DatabaseExceptionNotification can be true ||Boolean || false || false &amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|TableFilterDecorator-text-change-timeout ||Delay in milliseconds until the refresh of a table starts when a filter value is changed ||Integer|| 500 || 0..1000&lt;br /&gt;
|-&lt;br /&gt;
|showHelpButton ||Show the help button in the application menu bar ||Boolen || false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|ShowLanguageSelection||Show the language control in the application menu bar ||Boolen || false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|ShowPrinterSelection||Show the printer control in the application menu bar ||Boolen || false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|ShowThemeSelection||Show the theme control in the application menu bar ||Boolen || false || false&amp;lt;br /&amp;gt;true&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3973</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3973"/>
				<updated>2023-02-15T08:20:32Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Funktion &amp;quot;Repeat Receipt&amp;quot; flexibler gemacht (zwecks Nachdruck älterer Belege / Synchronisation zwischen Kasse und Terminal)&lt;br /&gt;
* Verbesserung: Kundenwechsel beim Kassieren kann nicht mehr versehentlich erfolgen sobald ein Kunde identifiziert ist.&lt;br /&gt;
* Fix: Vorzeichenfehler bei OP Zahlung&lt;br /&gt;
* Erweiterung: Wahlmöglichkeit zwischen Text und Bild für den Button &amp;quot;backspace&amp;quot;. [[File:Button-Backspace.PNG]]&lt;br /&gt;
* Erweiterung: Anzeige der Kunden(karten)nummer in 'Zahlen'-Ansicht&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Blob Service: das Speichern von Bildern wurde optimiert. Umgerechnete Versionen von Bildern werden nun beim ersten Abruf erzeugt. Somit werden in der Datenbank nicht benötigte Einträge vermieden.&lt;br /&gt;
* Bereichsfilter in Readonly-Tabellen, Berichten und Charts: die Bereichsfilter wurden erweitert. Jetzt können auch Text und numerische Werte in Bereichsfiltern verwendet werden.&lt;br /&gt;
* Fix: Modellzugriff bei parallelem Öffnen von Perspektiven sequenzialisiert.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei application.yml-template als Vorlage für die Einstellungen in application.yml&lt;br /&gt;
* application.yml: devicetest ist jetzt standardmäßig abgeschaltet.&lt;br /&gt;
* aures/bin/CheckHealt.bat: füge Pfad zu aures/bin hinzu.&lt;br /&gt;
* schreibe Registrywerte für TcpTimedWaitDelay und MaxUserPort bei der Installation&lt;br /&gt;
* führe am Ende der Installation reboot aus nach Benutzerbestätigung&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Signaturepad: Verbesserung des Statushandlings, Verbesserung bei der Verwaltung der Werbebilder&lt;br /&gt;
* zentrale Funktion zur Statusabfrage eingeführt. Reduziert die Zahl der Status- bzw. Fehlerabfragen von 3/Sek auf 1/Sek. Aktuelle OS.pos Version erforderlich. Kompatibilität mit früheren OS.pos Versionen ist gegegeben.&lt;br /&gt;
* POSPrinter: Verbesserung des Logodruckmanagements&lt;br /&gt;
* POSPrinter: neuer Parameter 'ImageWidth' zur Definition der Zielbreite für den Logodruck in der Datei jpos.xml im Abschnitt für den POSPrinter. Defaultwert für AURES Drucker ist 1/16 der verfübaren Zeilenbreite -&amp;gt; 450. Defaultwert für EPSON und andere Drucker ist 200. &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;'&amp;lt;prop name=&amp;quot;ImageWidth&amp;quot; type=&amp;quot;Long&amp;quot; value=&amp;quot;300&amp;quot;/&amp;gt;'&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* POSPrinter: neuer numerischer Parameter 'performReclaimInSeconds' in application.yml. Steuert, ob und wann ein automatischer erneuter Claim bei den javaPOS Peripheriegeräten gemacht wird. Erleichtert die Erkennung der Geräte nach z.B. dem Aus- und Einschalten eines Geräts. Defaultwert: 'not set', gültige Werte: &amp;gt;= 10.&lt;br /&gt;
* POSPrinter: Methode &amp;quot;uploadedBitmaps&amp;quot; hat keine Funktion mehr. Sollen Bitmaps aus dem Druckerspeicher verwendet werden dann ist der entsprechende Schalter in application.yml zu setzen.&lt;br /&gt;
* POSPrinter: wird Text mit eine Länge von mehr als 1000 Zeichen zur Druck übergeben, so wird dieser in einzelnen Zeilen an den Drucker gesendet. Dies verhindert einen Absturz des Druckers bei zu langen Texten.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlussbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3966</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3966"/>
				<updated>2023-02-08T11:02:21Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal setzt nun auch vor Neuregistrierung die Verbindung explizit zurück&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlußbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3965</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3965"/>
				<updated>2023-02-08T11:02:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
[*] EC-Terminal setzt nun auch vor Neuregistrierung die Verbindung explizit zurück&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20230207  ==&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
* Korrektur Kassenabschlußbericht&lt;br /&gt;
* Korrektur bei Verarbeitung von Anzahlungen&lt;br /&gt;
* Fix: bei Verkaufsgebinden kann eine Referenz auf ein anderes Verkaufsgebinde definiert werden. Ist diese Referenz eine Selbstreferenz, dann kommt es durch einen rekursiven Aufruf zu einem Stackoverflow. Das Problem wurde dadurch gefixt, dass im Fall von Selbstreferenz der rekursive Aufruf jetzt prüft, ob es sich um eine Selbstreferenz handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Update Font Awesome&lt;br /&gt;
* Darstellung des fokussierten Parts in Perspektiven in den OS.bee Themes geändert. Neben der Part-Überschrift wird nun ein Symbol eingeblendet, wenn der Fokus sich im Part befindet. [[File:Fokus-notifier.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3960</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3960"/>
				<updated>2023-02-03T09:04:09Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
*Information über Transaktionsart (Zahlung vs. Gutschrift) kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3959</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3959"/>
				<updated>2023-02-03T09:03:30Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
*Information über Transaktionsart kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3958</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3958"/>
				<updated>2023-02-03T09:02:56Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
- Information über Transaktionsart kann nun von Ingenico-EC-Terminals ausgelesen werden&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3957</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3957"/>
				<updated>2023-02-03T08:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* Stand 4.5.7-V20230202 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230202 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den gelegentlich ein Speicherüberlauf bei der Verwendung der Kassiersicht aufgetreten ist.&lt;br /&gt;
* Prüfung auf Kassenladensperrung bei Anmelden zum Kassieren&lt;br /&gt;
* Report für EC-Terminal Daten (Prototyp)&lt;br /&gt;
* EC-Terminal-Zahlung wird jetzt auch korrekt verarbeitet, falls während der Abschlussmeldung noch ein Fehler kommt (z.B. &amp;quot;Printer not ready&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* internes Problem in der Kommunikation zwischen Applikationsserver und Arbeitsstationen bei der Statusabfrage der Peripheriegeräte behoben&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3955</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3955"/>
				<updated>2023-01-23T10:08:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* OS.bee Softwarefactory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden (Ursache u.a. für Fehler beim Import der invoice.xml)&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3954</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3954"/>
				<updated>2023-01-23T10:08:20Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3953</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3953"/>
				<updated>2023-01-23T10:08:04Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20230122&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3952</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3952"/>
				<updated>2023-01-23T08:37:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Fehler behoben, durch den neue Felder nicht mehr zuverlässig in neue Spalten der zugrundeliegenden Datenbank-Tabellen übersetzt wurden&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3946</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3946"/>
				<updated>2023-01-17T09:42:34Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3945</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3945"/>
				<updated>2023-01-17T09:42:17Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230117 ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Fehlerbehandlung im Datenimport: Auch bei während des Datenbankcommits aufgetretene Fehler führen jetzt nicht mehr zu einem Abbruch des gesamten Imports, sondern nur zu dem der im Commit enthaltenen Datensätze.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
* EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert 20msec wird benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3942</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3942"/>
				<updated>2023-01-13T14:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20220113 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
*EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
*EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert &amp;gt;0msec wird nur benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3941</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3941"/>
				<updated>2023-01-12T15:56:45Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
*EC-Terminal-Konfiguration jetzt über verständliche Ja-Nein-Werte&lt;br /&gt;
*EC-Terminal-Verbindung wird jetzt für jeden Vorgang neu hergestellt&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert &amp;gt;0msec wird nur benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3940</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3940"/>
				<updated>2023-01-11T17:35:10Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* OS.bee Softwarefactory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7.V20230111 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* neue Spalte mproduct.noInversion&lt;br /&gt;
* Bonwiederholdruck: Bon kann ausgewählt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Leerzeichen kann nun in der Statusmaschine eingebbar&lt;br /&gt;
* Defaulttimeout für Pausen zwischen dem Verarbeiten von eingegebenen Zeichen auf 0msec gesetzt. Ein Wert &amp;gt;0msec wird nur benötigt, wenn ein Scanner verwendet werden soll, um Groß-/Kleinbuchstaben zu scannen.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Dialoglayouts und der Sprungreihenfolge im Dialog.&lt;br /&gt;
** Überschriften der Tabellen-Tabs im Dialog werden wieder angezeigt&lt;br /&gt;
** Steuerung der Anordnung von Gruppen in Dialogen. Ein Schalter ( Systemkonfiguration Userinterface/BalancedDialogLayout - Ja/Nein ) entscheidet über die Anordnungsreihenfolge der Gruppierungen. Default ist im Wechsel von links nach rechts. Ist der Schalter gesetzt, werden die Gruppen von oben nach unten über die Spalten verteilt.&lt;br /&gt;
** Sprungreihenfolgen nun grundsätzlich innerhalb einer Spalte nach unten, dann nach oben in die nächste Spalte. Bislang wurde in die nächste Gruppe in der benachbarten Spalte gesprungen.&lt;br /&gt;
** TAB springt nun von Gruppierung zu Gruppierung, RETURN springt wie bisher zum nächsten Feld&lt;br /&gt;
** SHIFT TAB und SHIFT RETURN springen rückwärts durch den Dialog&lt;br /&gt;
&lt;br /&gt;
* Verbesserung des Eventhandling, dadurch bessere Performance der Anwendung&lt;br /&gt;
&lt;br /&gt;
* Verbesserungen Systemkonfiguration&lt;br /&gt;
** Systemkonfigurationscache verbessert. Mit der Speicherung eines Wertes wird der interne cache gelöscht, so dass der Wert sofort verwendet wird.&lt;br /&gt;
** die Inhalte der Systemkonfiguration nun exportierbar und auch wieder importierbar. Der Export kann durch einen Button über der Tabelle Systemkonfigurationsgruppe ausgelöst werden. Die Daten werden in das konfigurierte Exportverzeichnis geschrieben. Wenn eine system-configuration-groups.xml und eine der anderen system-configuration-*.xml Datei im import Verzeichnis abgelegt werden, dann werden diese automatisch importiert.&lt;br /&gt;
&lt;br /&gt;
* Verbesserung im System Monitoring: &lt;br /&gt;
** Reihenfolge bei schnell aufeinanderfolgenden Einträge wieder korrekt.&lt;br /&gt;
** Entkopplung des Schreibens von Monitoreinträgen in die Datenbank von den Abläufen, die Monitoreinträge schreiben wollen&lt;br /&gt;
** Reduktion der Systemevents bei schnell aufeinander folgenden Monitoreinträgen. Dadurch wird der Refresh aufwand insgesamt reduziert.&lt;br /&gt;
&lt;br /&gt;
* BPM: Korrekturen beim Einlesen der Systemkonfigurationsparameter, Erweiterung des Monitoring&lt;br /&gt;
&lt;br /&gt;
* Fix: Speicherverbrauch bei Datenimport, häufige Datenimports verursachten ein Speicherloch&lt;br /&gt;
&lt;br /&gt;
* Änderungen des verwendeten Eclipselink Datenbank caching Verfahrens zur Reduktion des Speicherbedarfs&lt;br /&gt;
&lt;br /&gt;
* Limitiere die Anzahl der angezeigten Datensätze in einem Chart auf Default 500. Der Wert kann über den Schalter CHARTS/&amp;lt;Chartname&amp;gt;-MaxValues eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* erzeuge Datei reboot.bat und startperipheralscontrol.bat&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Systemtrayfunktionalität&lt;br /&gt;
** Menu erweitert. Starten der Anwendung, des Kundendisplays, der OS.peripherals Admin Seite, Ausführen System reboot&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge in Dialogen korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3933</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3933"/>
				<updated>2022-12-14T12:52:57Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* Stand 4.5.7-V202212141101 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221214 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3932</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3932"/>
				<updated>2022-12-14T12:52:30Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V202212141101 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3931</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3931"/>
				<updated>2022-12-14T12:52:09Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stand 4.5.7-V202212141101 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3930</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3930"/>
				<updated>2022-12-14T12:51:29Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Epay-Schnittstelle: bei Aktivierung eigener Geschenkkarten wird nun der unrabattierte Preis als Kartenwert übergeben (statt des rabattierten)&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
* Fix: Übermäßiges Anlegen von Notification Templates in der Systemkonfiguration beim Systemstart verhindert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3926</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3926"/>
				<updated>2022-12-12T16:31:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Tabreihenfolge korrigiert: Felder am Ende des Dialogs wurden durch einen Fehler bisher übersprungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221212 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Verwendung von Barcodes mit Groß-/Kleinschreibung (s.u.)&lt;br /&gt;
* Fix: Absicherung gegen ‚Wiederbelebung‘ eines bezahlten Bons durch Kassiererwechsel &lt;br /&gt;
* weitere Stabilisierung der EC-terminal Kommunikation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Parameter in der Systemconfiguration zu Steuerung der Sonderbehandlung von Scannereingaben. [https://download.osbee.org/documentation/index.php/OS.app_System_Configuration Mehr Systemkonfigurationsparameter] Der Scanner sollte eine Verzögerung beim Versand der Zeichen von 20ms eingestellt haben. Ist keine Verzögerung eingestellt, kann das zu einem Fehlverhalten führen.&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' == 0  -&amp;gt;  Sonderbehandlung ist ausgeschaltet ( default )&amp;lt;br&amp;gt;  ''&amp;quot;PeripheralService&amp;quot;/&amp;quot;&amp;lt;Rechnername&amp;gt;-TimeBetweenTwoScanEventsInMilliSec&amp;quot;'' &amp;gt; 0  -&amp;gt;  Sonderbehandlung ist eingeschaltet. Empfohlene Werte 50..100&lt;br /&gt;
* Parameter zur Steuerung des Keyboard layouts in der Statusmachine&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;default&amp;quot;' -&amp;gt; die Einstellungen für Windows oder Linux Keyboards werden verwendet, je nach Client Betriebssystem&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Windows&amp;quot;' -&amp;gt; die Einstellungen für Windows Keyboards werden verwendet&amp;lt;br&amp;gt;'&amp;quot;Hardware/&amp;lt;Rechnername&amp;gt;-KeyboardLayout&amp;quot; = &amp;quot;Linux&amp;quot;' -&amp;gt; die Einstellungen für Linux Keyboards werden verwendet&amp;lt;br&amp;gt;Zum Test, ob die Einstellung passt, kann in ein Eingabefeld, z.B. bei der Kassenzuordnung, die Taste '-' (minus Zeichen im Tastenblock) gedrückt werden. Ist die Einstellung korrekt, wird das '-' angezeigt, sonst wird nichts angezeigt.&lt;br /&gt;
* zusätzliches Caching der Lesevorgänge in der Systemconfiguration zur Reduktion der Datenbankzugriffe. Der Cache wird alle 5 Min verworfen, d.h. die Änderung eines Konfigurationsparameters wirkt evtl. erst nach 5 Min.&lt;br /&gt;
* Fix: fehlende Speicherfreigaben beim Schließen von Perspektiven ergänzt&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Integration von OS.peripherals in das Windows System Tray. Statusmeldungen von OS.peripherals erscheinen dann in den Windows Benachrichtigungen.&amp;lt;br&amp;gt;Die Installation mit einem Setup ab dem 12.12.2022 ist Voraussetzung.&lt;br /&gt;
* Anzeige des logs überarbeitet&lt;br /&gt;
** der Softwarestand wird bei Aufruf von [http://localhost:9200/getLog] am Anfang des peripheral.log angezeigt&lt;br /&gt;
** Ausgabe des Logs auf die Einträge seit dem letzten Start begrenzt.&amp;lt;br&amp;gt;Die Datei peripherals.log enthält nach wie vor das fortlaufenden log.&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* System Tray Funktionalität als Installationsoption. Die Verwendung eines OS.peripherals ab dem 12.12.2022 ist Voraussetzung&lt;br /&gt;
* Überarbeitungen &lt;br /&gt;
** Es werden keine Einträge mehr in die Systempfade vorgenommen. Dadurch wird das setup beim Installieren und Deinstallieren schneller&lt;br /&gt;
** Installation des wacom Verzeichnisse auch ohne Auswahl des Signaturpads. Die darin enthaltenen DLLs werden immer benötigt.&lt;br /&gt;
** Auswahl, ob die Kassenanwendung und das Kundendisplay im Kioskmodus gestartet werden sollen oder nicht.&amp;lt;br&amp;gt;(launch application in kiosk mode) / (launch customer display in kiosk mode)&lt;br /&gt;
** Auswahl, ob das Kassendisplay links oder rechts vom Hauptbildschirm in der Bildschirmkonfiguration definiert ist (located left).&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:Setup-Screenshot 2022-12-12 135029.png]]&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221208 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Überarbeitung der Tastatur- und Scannereingaben in der Statusmaschine zur Ermöglichung von Eingaben diverser nicht numerischer Zeichen&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3917</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3917"/>
				<updated>2022-12-06T16:38:44Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* OS.pos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3916</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3916"/>
				<updated>2022-12-06T16:38:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* OS.bee Softwarefactory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3915</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3915"/>
				<updated>2022-12-06T16:38:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* OS.bee Softwarefactory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* EC-Terminal-Kommunikation korrigiert: Bestätigungen von Befehlen an das Terminal werden jetzt nicht mehr rückbestätigt&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221129==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
* Tastatureingaben in der Kassierperspektive, den Zählpersepktiven und weiteren auf der Statemachine basierenden Perspektiven verbessert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Statemachine: Verbesserung des Tastaturhandlings. Unterscheidung von Windows und Linux Arbeitsplätzen. Vervollständigung der verarbeiteten Zeichen. Um Zeichen, die üblicherweise mit der 'Alt Gr' Taste ( z.B. '@' ) zu erhalten, muss die 'Alt' Taste verwendet werden (Bsp. 'Alt' 'q' -&amp;gt; '@' ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221128==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
* Entfernung der MwSt aus ShopInShop Belegen. MwSt wird beim Bezahlen berechnet&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
&lt;br /&gt;
* Druck von Beleg ohne Position gefixt&lt;br /&gt;
&lt;br /&gt;
===OS.bee Softwarefactory===&lt;br /&gt;
&lt;br /&gt;
* Desekektion in Tabelle leert den zugehörigen Dialog&lt;br /&gt;
* Erweiterung Reportverwaltung: alternative Reports können nun über die Systemkonfiguration eingestellt werden&lt;br /&gt;
* Vorbereitung Online Hilfe&lt;br /&gt;
* Entitygenerierung: abfangen und protokollieren von exceptions in 'derived' Attributen.&lt;br /&gt;
* BPM Verarbeitung: fix beim Schliessen einer BPM Perspektive&lt;br /&gt;
&lt;br /&gt;
==Stand 4.5.7-V20221115==&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals===&lt;br /&gt;
&lt;br /&gt;
* Verkürzung der Startzeiten für des Unterschriftenpad&lt;br /&gt;
&lt;br /&gt;
===OS.peripherals Setup===&lt;br /&gt;
&lt;br /&gt;
* Integration der Installation Diebold-Nixdorf TSE&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3903</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3903"/>
				<updated>2022-11-15T10:37:23Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* OS.pos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3902</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3902"/>
				<updated>2022-11-15T10:37:08Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* Nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE als Alternative zur TSE der Bundesdruckerei nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;amp;action=edit&amp;amp;section=1&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3901</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3901"/>
				<updated>2022-11-15T10:31:44Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* Stand 4.5.7-V20221115 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Nächste Version ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3900</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3900"/>
				<updated>2022-11-15T10:12:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* OS.pos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stand 4.5.7-V20221115 ==&lt;br /&gt;
&lt;br /&gt;
===OS.pos===&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3899</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3899"/>
				<updated>2022-11-15T10:12:44Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: /* Stand 4.5.7-V20221115 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stand 4.5.7-V20221115 ==&lt;br /&gt;
&lt;br /&gt;
=OS.pos=&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3898</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=3898"/>
				<updated>2022-11-15T10:12:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Stand 4.5.7-V20221115 ==&lt;br /&gt;
&lt;br /&gt;
* Diebold-Nixdorf-TSE nutzbar gemacht&lt;br /&gt;
* Sortierung und Auswahl in Perspektive &amp;quot;DSFinV-K-Protokolle&amp;quot; reaktiviert&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221107 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Verbesserung bei der Überprüfung des Zahlbetrags&lt;br /&gt;
* Verbesserung der Übersetzungen&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einstellung für &amp;quot;HideUserMenu&amp;quot; von preferences nach Systemkonfiguration verlegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221031 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Log bei Abweichungen in Positionssummen und Steuerberechnung&lt;br /&gt;
* weitere Log-Anpassungen&lt;br /&gt;
* Anzeige der Bonvorschau verbessert&lt;br /&gt;
* Behandlung der Ladensteuerung verbessert&lt;br /&gt;
* Entsorgung: Export der ID des bezahlten Claims im Attribut [[claimSelectionsClaimId]]&lt;br /&gt;
* Bezahlterminal: Verbesserung bei der Initialisierung. Warten auf Antwort der CONNECT Anforderung.&lt;br /&gt;
&lt;br /&gt;
Version OS:&lt;br /&gt;
* Entsorgung: Export der [[slip.id]] in [[Claim]] entfällt&lt;br /&gt;
* Entsorgung: Export der [[claimSelectionsTargetProductId]] in [[CashPosition]] entfällt&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Einführung neue TSE, Datenstrukturanpassungen&lt;br /&gt;
&lt;br /&gt;
== Stand 4.5.7-V20221026 ==&lt;br /&gt;
&lt;br /&gt;
=== OS.pos ===&lt;br /&gt;
&lt;br /&gt;
* Fix eines Problems mit der Ansteuerung der TSE. Das Problem wurde durch die Erweiterung der verfügbaren TSE Varianten eingeführt.&lt;br /&gt;
* Fix des Logodrucks auf dem Kassenbon. Es wurde nach dem Öffnen der Kassenperspektive nur auf dem ersten Bon das Firmenlogo gedruckt, ab dem zweiten Bon dann nicht mehr.&lt;br /&gt;
* Epay Anbindung erweitert um Kartendeaktivierung&lt;br /&gt;
* Ergänzung der Übersetzungen&lt;br /&gt;
* Anpassung der Buttons für den Bonabschluss. Es wird die jeweilige Aktion auf dem grünen Standardabschluss- und dem roten Sonderabschlussbutton angezeigt. Dies sind z.B. &amp;quot;Bon drucken&amp;quot; und &amp;quot;Beleg drucken&amp;quot;&lt;br /&gt;
* Neu: &amp;quot;Entf&amp;quot; Taste löscht die letzte Eingabe in z.B. der Kassiersicht, Lade zählen Sicht, und anderen auf der Statusmaschine basierenden Sichten&lt;br /&gt;
&lt;br /&gt;
=== OS.bee Softwarefactory ===&lt;br /&gt;
&lt;br /&gt;
* Stabilisierung der Kommunikation zwischen Anwendungsclient und -server.&lt;br /&gt;
* Beschleunigung des Anwendungsstarts (Perstenceservice, BPM)&lt;br /&gt;
* Blockieren der Benutzeranmeldung bis die Anwendung vollständig gestartet ist.&lt;br /&gt;
* Fix der &amp;quot;Nullpointer Exception&amp;quot; bei der Auswahl über die Tastatur in den Komboboxen für Perspektivenauswahl, Druckerauswahl, Sprachauswahl.&lt;br /&gt;
* Fix einer Exception bei der Anmeldung, die später dazu führte, dass kein Transactionmanager für die Sitzung gefunden wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OS.peripherals ===&lt;br /&gt;
&lt;br /&gt;
* Setup: Entfernung der automatischen Installation von Oracle Java. Ein installiertes Java 1.8 64bit wird vorausgesetzt.&lt;br /&gt;
* Steuerung der Abspielgeschwindigkeit der Werbebilder über die Systemkonfiguration in OS.pos&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Authorization_DSL&amp;diff=3763</id>
		<title>Authorization DSL</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Authorization_DSL&amp;diff=3763"/>
				<updated>2019-12-02T10:32:33Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: corrected indentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
AuthorizationDSL is used to authorize the roles at runtime. For example, when the sales and logistics check the same entity of article, the sales do not need to know how many cases per pallet for an article, so it should be invisible in vision of the sales; the logistics do not need to know how much costs the article, so in vision of the logistics, the price should not be displayed.&lt;br /&gt;
&lt;br /&gt;
==AuthorizationDSL==&lt;br /&gt;
&lt;br /&gt;
The AuthorizationDSL is working at runtime. It's used to define the roles and authorize them. Visibility processor at runtime calculates the authorization of e.g. invisible or editable for the roles; Blips are working for the bpm process at runtime, e.g. starting the user task.&lt;br /&gt;
&lt;br /&gt;
There will be no exported file generated after editing the model. The authorization rules will be store in a hash map at runtime. Each user should have its own position, and the role will be assigned to the positions in [[Organization DSL]], which is also working at runtime. &lt;br /&gt;
&lt;br /&gt;
The authorization at runtime will be done according to the rules which we defined in AuthorizationDSL.&lt;br /&gt;
&lt;br /&gt;
The main semantic elements of the AuthorizationDSL are:&lt;br /&gt;
&lt;br /&gt;
* “package” - the root element that contains all the other elements. A model can contain multiple packages. &lt;br /&gt;
&lt;br /&gt;
* “role” - define the role in the fact, e.g. sales, logistics…It contains further elements such as entity and process.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;ENTITY” - define which entity should be authorized, and how to authorize it for the roles, the entity is defined in [[Entity DSL]] model. &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;BEAN” - define which bean should be authorized, and how to authorize it for the roles, the bean is defined in [[Entity DSL]] model. &lt;br /&gt;
&lt;br /&gt;
* &amp;quot;DTO” - define which DTO should be authorized, and how to authorize it for the roles, the DTO is defined in [[DTO DSL]] model. &lt;br /&gt;
&lt;br /&gt;
* “attribute” -  define the authorization of the entity/bean/DTO attributes for the roles. &lt;br /&gt;
&lt;br /&gt;
* “relation” - define the authorization of the referenced entity/bean/DTO for the roles.&lt;br /&gt;
&lt;br /&gt;
* “PROCESS” - define which process is STARTABLE and if the user task of this process is TASKABLE for the roles. The process is defined in Bilp DSL model.&lt;br /&gt;
&lt;br /&gt;
* “TASK” - define which user task is TASKABLE for the roles.&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
====package definition====&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package &amp;lt;package name&amp;gt;  {&lt;br /&gt;
    role &amp;lt;role name&amp;gt; {...}&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The package definition of AuthorizationDSL is just like most of the DSL models, you just need to define the package name and in eclipse like other java project press ctrl+shift+o, all necessary models or java classes will be imported automatically. After that, you can define the roles and their authorization rules. One or more roles can be defined in the same package.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package org.eclipse.osbp.foodmart.authorizations {&lt;br /&gt;
	import org.eclipse.osbp.foodmart.entities.* &lt;br /&gt;
	import org.eclipse.osbp.foodmart.blips.*&lt;br /&gt;
	. . .&lt;br /&gt;
	role Sales {. . .}&lt;br /&gt;
	. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====role====&lt;br /&gt;
&lt;br /&gt;
This is the main part of this model. Either entity or process could be authorized in this part.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
role &amp;lt;role name&amp;gt; {&lt;br /&gt;
    ENTITY &amp;lt;entity name&amp;gt; ... [{ ... }]&lt;br /&gt;
	  ...&lt;br /&gt;
  | BEAN &amp;lt;bean name&amp;gt; ... [{ ... }]&lt;br /&gt;
	  ...&lt;br /&gt;
  | DTO &amp;lt;dto name&amp;gt; ... [{ ... }]&lt;br /&gt;
	  ...&lt;br /&gt;
  | PROCESS &amp;lt;blip name&amp;gt;{ ... }&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
role Sales {&lt;br /&gt;
  ENTITY Mproduct_class ANY&lt;br /&gt;
  ENTITY  Memployee ANY {. . .}&lt;br /&gt;
  PROCESS ProductMaintenance {. . .}&lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, the authorization rule for &amp;lt;code&amp;gt;role&amp;lt;/code&amp;gt; '''''Sales''''' will be defined. The rules are using to &amp;lt;code&amp;gt;ENTITY&amp;lt;/code&amp;gt; '''''Mproduct_class''''', &amp;lt;code&amp;gt;ENTITY&amp;lt;/code&amp;gt; '''''Memployee''''' and &amp;lt;code&amp;gt;PROCESS&amp;lt;/code&amp;gt; '''''ProductMaintenance'''''.&lt;br /&gt;
&lt;br /&gt;
=====ENTITY=====&lt;br /&gt;
You can define the authorization rule for the whole entity or for one or more attribute/reference of this entity.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
ENTITY &amp;lt;entity name&amp;gt; RoleEnum [{   &lt;br /&gt;
	attribute &amp;lt;entityAttribute name&amp;gt; INVISIBLE|DISABLED|NONEDITABLE&lt;br /&gt;
	relation &amp;lt;entityReference name&amp;gt; INVISIBLE|DISABLED|NONEDITABLE&lt;br /&gt;
	...&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;RoleEnum&amp;lt;/code&amp;gt; is including ANY, CREATABLE, READABLE, UPDATABLE and DELETABLE. It is defined for the whole entity. any means allowed all. Otherwise, only the operation which is listed is allowed, they are CREATABLE, READABLE, UPDATABLE and DELETABLE; it can be one or more operations listed at the same time.&lt;br /&gt;
&lt;br /&gt;
* Entity attribute and reference could be authorized as INVISIBLE, DISABLED and NONEDITABLE. Only the operation which is listed is allowed, it can be one or more operations listed at the same time.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
ENTITY Mproduct_class ANY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;	&lt;br /&gt;
ENTITY Memployee ANY{&lt;br /&gt;
	attribute first_name INVISIBLE&lt;br /&gt;
	relation position NONEDITABLE&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following picture is a dialog of &amp;lt;code&amp;gt;ENTITY&amp;lt;/code&amp;gt; '''''Memployee''''', you could see for the &amp;lt;code&amp;gt;role&amp;lt;/code&amp;gt; '''''sales''''', the attribute '''''first_name''''' is not shown, only '''''full_name''''' and '''''last_name''''' is shown; the reference '''''position''''' is not editable.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:AuthorizationDSL_01.png|600px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====BEAN=====&lt;br /&gt;
You can define the authorization rule for the bean or for one or more attribute/reference of this bean.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
BEAN &amp;lt;bean name&amp;gt; RoleEnum [{   &lt;br /&gt;
	attribute &amp;lt;beanAttribute name&amp;gt; INVISIBLE|DISABLED|NONEDITABLE&lt;br /&gt;
	relation &amp;lt;beanReference name&amp;gt; INVISIBLE|DISABLED|NONEDITABLE&lt;br /&gt;
	...&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;RoleEnum&amp;lt;/code&amp;gt; is including ANY, CREATABLE, READABLE, UPDATABLE and DELETABLE. It is defined for the bean. any means allowed all. Otherwise, only the operation which is listed is allowed, they are CREATABLE, READABLE, UPDATABLE and DELETABLE; it can be one or more operations listed at the same time.&lt;br /&gt;
&lt;br /&gt;
* Bean attribute and reference could be authorized as INVISIBLE, DISABLED and NONEDITABLE. Only the operation which is listed is allowed, it can be one or more operations listed at the same time.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
BEAN Address ANY {&lt;br /&gt;
	attribute country INVISIBLE&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====DTO=====&lt;br /&gt;
You can define the authorization rule for the DTO or for one or more attribute/reference of this DTO.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
DTO &amp;lt;dto name&amp;gt; RoleEnum [{   &lt;br /&gt;
	attribute &amp;lt;dtoAttribute name&amp;gt; INVISIBLE|DISABLED|NONEDITABLE&lt;br /&gt;
	relation &amp;lt;dtoReference name&amp;gt; INVISIBLE|DISABLED|NONEDITABLE&lt;br /&gt;
	...&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;RoleEnum&amp;lt;/code&amp;gt; is including ANY, CREATABLE, READABLE, UPDATABLE and DELETABLE. It is defined for the DTO. any means allowed all. Otherwise, only the operation which is listed is allowed, they are CREATABLE, READABLE, UPDATABLE and DELETABLE; it can be one or more operations listed at the same time.&lt;br /&gt;
&lt;br /&gt;
* DTO attribute and reference could be authorized as INVISIBLE, DISABLED and NONEDITABLE. Only the operation which is listed is allowed, it can be one or more operations listed at the same time.&lt;br /&gt;
&lt;br /&gt;
=====PROCESS=====&lt;br /&gt;
The process and the user task in this process could be authorized in this part.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
PROCESS &amp;lt;blip name&amp;gt;{ &lt;br /&gt;
	[is STARTABLE]&lt;br /&gt;
	[all usertasks TASKABLE]&lt;br /&gt;
	TASK &amp;lt;blipTask name|Task name&amp;gt; TASKABLE&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;is STARTABLE&amp;lt;/code&amp;gt; means: this process &amp;lt;u&amp;gt;is allowed to&amp;lt;/u&amp;gt; be started.&lt;br /&gt;
* &amp;lt;code&amp;gt;all usertasks TASKABLE&amp;lt;/code&amp;gt; means: all user tasks of this process &amp;lt;u&amp;gt;are allowed to&amp;lt;/u&amp;gt; be executed.&lt;br /&gt;
* If not all the user tasks are allowed to be executed, you can define here which user task is allowed to be executed using keyword &amp;lt;code&amp;gt;TASK … TASKABLE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
PROCESS ProductMaintenance {&lt;br /&gt;
	is STARTABLE&lt;br /&gt;
	all usertasks TASKABLE&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Copyright Notice ==&lt;br /&gt;
{{Copyright Notice}}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Datainterchange_DSL&amp;diff=3745</id>
		<title>Datainterchange DSL</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Datainterchange_DSL&amp;diff=3745"/>
				<updated>2019-09-12T09:33:29Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: Changed keyword &amp;quot;beans&amp;quot; to &amp;quot;path&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Purpose==&lt;br /&gt;
&lt;br /&gt;
The Data Interchange DSL (datainterchange for short) is made for defining data exchange models that can be used to import data from various formats (CSV, XML, EDI, etc.), map the data to entities, store them into database, or export them back into other formats.&lt;br /&gt;
&lt;br /&gt;
You only need to define the ''relationship'' between the file and the bean, not the import / export process themselves. Once defined, these models can be used in e.g. action DSL to define actions which, when triggered, execute the actual import / export process, which are generated automatically by the OSBP based on the model.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
As shown on the figure below, the [DSL Inferrer] will generate various views and In/Export component according to model described by datainterchange DSL (and action DSL, in the case of ActionButtons). The action buttons, when clicked, will trigger their corresponding In/Export processes by putting [http://download.osbee.org/downloads/javadoc/osbee-master-clean/org.eclipse.osbp.xtext.datainterchange.feature/apidocs/ WorkerThread (Runnable)] jobs into the executor job pool within the TriggerView (prefixed with datainterchang name), buttons (and toolbar / menus containing them) are further included in the perspective.&lt;br /&gt;
&lt;br /&gt;
[[File:Datainterchange.png|600px|center|frame|''Figure 1: - Data Interchange Structure.'']]&lt;br /&gt;
&lt;br /&gt;
==Data Interchange Model File==&lt;br /&gt;
&lt;br /&gt;
Datainterchange DSL model files end with the &amp;lt;code&amp;gt;.data&amp;lt;/code&amp;gt; extension. Data Interchange models may be split into several &amp;lt;code&amp;gt;.data&amp;lt;/code&amp;gt; files, as long as they have the same package declaration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the following we will dive deeper into the description and the usage of Datainterchange related and reserved keywords.&lt;br /&gt;
&lt;br /&gt;
===import===&lt;br /&gt;
In the import section are all entities to be found - as full qualified names – that are currently used in the DSL.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import ns net.osbee.sample.foodmart.entities.Mstore&lt;br /&gt;
import ns net.osbee.sample.foodmart.entities.Mwarehouse&lt;br /&gt;
import ns net.osbee.sample.foodmart.entities.Mregion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;code&amp;gt;ns&amp;lt;/code&amp;gt; is a mandatory keyword (stands for &amp;quot;namespace&amp;quot;) that comes after import for distinguishing the OS.bee internal namespaces and Java library namespaces. Wildcards are not supported, all names should be imported separately. Note that the import section will be imported/added automatically if they are used in the package, so you don't have to manually manage this section.&lt;br /&gt;
&lt;br /&gt;
===package===&lt;br /&gt;
&lt;br /&gt;
Datainterchange DSL model files must start with a package declaration. Packages are the root element of the DSL and should be defined as &amp;lt;code&amp;gt;&amp;lt;ApplicationName&amp;gt;.datainterchanges&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;package net.osbee.sample.foodmart.datainterchanges { }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data Interchange models may be split into several .data files, as long as they have the same package declaration, the interchanges will be available under this package name.&lt;br /&gt;
&lt;br /&gt;
===title===&lt;br /&gt;
With the keyword title you can give a name to the corresponding TriggerView dialog inside your application. For example, the definition of the same datainterchanges package from above with title &amp;quot;Data Interchange Example&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;package net.osbee.sample.foodmart.datainterchanges title &amp;quot;Data Interchange Example&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This title will be translated based on locale.&lt;br /&gt;
&lt;br /&gt;
You can get more details about the TriggerView in the section below.&lt;br /&gt;
&lt;br /&gt;
===interchange===&lt;br /&gt;
The &amp;lt;code&amp;gt;interchange&amp;lt;/code&amp;gt; keyword defines interchange units for entities in the package, it should be in the form of:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange &amp;lt;InterchangeUnitName&amp;gt; [describedBy &amp;lt;description&amp;gt;] &amp;lt;EntityManagerMode&amp;gt; file &amp;lt;FileType&amp;gt; [&amp;lt;FileDetails&amp;gt;] path{&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;code&amp;gt;InterchangeUnitName&amp;lt;/code&amp;gt; being the name of the interchange unit; &amp;lt;code&amp;gt;describedBy&amp;lt;/code&amp;gt; (optional) can be used to provide a short description string. &amp;lt;code&amp;gt;EntityManagerMode&amp;lt;/code&amp;gt; being how the file should be handled (see section &amp;quot;persist, merge, remove&amp;quot; below), and after &amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt; keyword, you should specify the type of the source / target data file you would like to import from or export to, then the file path, and other details depends on the type.&lt;br /&gt;
&lt;br /&gt;
The following example specifies an interchange that reads a CSV file under the specified path (note the forward slash as the path separator), delimited by semicolon, skip one line (the header), and treat the content as encoded in UTF-8:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
interchange CurrencyNames persist file&lt;br /&gt;
CSV &amp;quot;C:/data/ISOCurrencyCode20170101.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;UTF-8&amp;quot;&lt;br /&gt;
path {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; keyword comes after all the file specification and starts a block of entity definitions, which will be covered in section &amp;quot;entity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===describedBy===&lt;br /&gt;
With this keyword you can the optional description of an interchange unit as shown below. &lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Currencies describedBy &amp;quot;european central bank currency exchange rates based on euro&amp;quot; persist ... { ... }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===vectorName===&lt;br /&gt;
With the optional keyword &amp;lt;code&amp;gt;vectorName&amp;lt;/code&amp;gt; followed by a string value you are able to define the name of the root element of both XML configuration files needed by Smooks. Please note that it also means that the first (root-)element of an XML-File you would have exported (file filled with real data) via the application will have the same name.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores remove vectorName &amp;quot;stores&amp;quot; elementSize 83 file ... { ... }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can view the result of this sample of code like shown below on figure[[#Figure3|''3'']].&lt;br /&gt;
&lt;br /&gt;
===persist, merge, remove===&lt;br /&gt;
These keywords define the purpose of the datainterchange unit and has a similar meaning as in the JPA's EntityManager class. Basically, &amp;lt;code&amp;gt;persist&amp;lt;/code&amp;gt; will insert the data records into database, &amp;lt;code&amp;gt;merge&amp;lt;/code&amp;gt; will update existing data record, or insert new one if necessary, &amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt; will remove the record if it could be found in database.&lt;br /&gt;
&lt;br /&gt;
► '''Example 1''': (persist)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange EDIOrders describedBy &amp;quot;Orders&amp;quot; persist file&lt;br /&gt;
XML &amp;quot;C:/data/orders.xml&amp;quot;&lt;br /&gt;
path {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example 2''': (merge)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores merge file&lt;br /&gt;
XML &amp;quot;C:/data/stores.xml&amp;quot;&lt;br /&gt;
path {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example 3''': (remove)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Storesremove remove file&lt;br /&gt;
XML &amp;quot;C:/data/stores_remove.xml&amp;quot;&lt;br /&gt;
path {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===file===&lt;br /&gt;
With the keyword file you are able to set the file format of the files you intent to process with you interchange unit.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange &amp;lt;SampleInterchangeUnitName&amp;gt; &amp;lt;EntityManagerMode&amp;gt; file &amp;lt;FileNameFormat&amp;gt; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current supported file formats are CSV, EDI and XML followed by the name of the file you want to process, given its full path location in the system.&lt;br /&gt;
► '''Example 1''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnit1 merge file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 2''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnit2 persist file XML &amp;quot;C:/temp/testFile.xml&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 3''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnit3 merge file EDI &amp;quot;C:/temp/testFile.edi&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After choosing the file format you can either give the file name as a String value in a double quote &amp;quot;...&amp;quot; as shown here above, or press Ctrl+Space to get via the content assist the option of opening a File Chooser/Picker to specify the file you want to work with.&lt;br /&gt;
&lt;br /&gt;
[[File:FileChooser.jpg|center|frame|''Figure 2: File Chooser'']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that you can also change the path(?) of the file to process on runtime by selecting a new file.&lt;br /&gt;
&lt;br /&gt;
===mapByAttribute===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;mapByAttribute&amp;lt;/code&amp;gt; keyword is an XML-specific keyword that turns on the automatic attribute mapping. When enabled, datainterchange will detect if the value being mapped is from an attribute. For example, the 'USD' value in the following XML file comes from the attribute 'currency' of the element 'Cube':&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Cube currency='USD' rate='1.3759'/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while in the following XML file, the same value is encapsulated in the element 'currency':&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Cube&amp;gt;&lt;br /&gt;
 &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
 &amp;lt;rate&amp;gt;1.3759&amp;lt;/rate&amp;gt;&lt;br /&gt;
&amp;lt;/Cube&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;mapByAttribute&amp;lt;/code&amp;gt; is present, datainterchange will automatically decide that a query in the form like &amp;lt;code&amp;gt;'/Cube/currency'&amp;lt;/code&amp;gt; will also catch the value from attribute. Without it, the query will have to put a &amp;lt;code&amp;gt;'@'&amp;lt;/code&amp;gt; symbol in front of the attribute name, i.e. &amp;lt;code&amp;gt;'/Cube/@currency'&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===elementSize===&lt;br /&gt;
With the keyword &amp;lt;code&amp;gt;elementSize&amp;lt;/code&amp;gt; followed by an integer, the user can set the estimated average size of the elements in bytes. Since the underlying API cannot know the size of an element before it is processed, this value can be supplied as a guide value to be used for estimating the import / output progress based on how much bytes have been processed.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange EDIOrders describedBy &amp;quot;edi orders&amp;quot; persist elementSize 50 file EDI &amp;quot;C:/data/orders.edi&amp;quot; path {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defines an average estimated element size of 50 bytes.&lt;br /&gt;
&lt;br /&gt;
===delimiter===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;delimiter&amp;lt;/code&amp;gt; is a CSV format-specific keyword, which defines the character to use in the CSV file to set the delimiter/separation character between different values. Default value is &amp;quot;,&amp;quot; (comma).&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange CurrencyNames persist file&lt;br /&gt;
CSV &amp;quot;C:/data/ISOCurrencyCodes081507.csv&amp;quot; delimiter &amp;quot;;&amp;quot; ... {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will set the delimiter of the CSV file to &amp;quot;;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===skipLines===&lt;br /&gt;
This is a CSV format-specific keyword. Using &amp;lt;code&amp;gt;skipLines&amp;lt;/code&amp;gt; followed by an integer, the user can specify the number of lines to be skipped from the beginning in the processing of the selected file, this can be used to skip headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange CurrencyNames persist file CSV &amp;quot;C:/data/ISOCurrencyCodes081507.csv&amp;quot; ... skipLines 1 encoding &amp;quot;UTF-8&amp;quot; {&lt;br /&gt;
   ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will skip the first line of the CSV file.&lt;br /&gt;
&lt;br /&gt;
===report===&lt;br /&gt;
&lt;br /&gt;
If a '''datainterchange''' unit is defined with the &amp;lt;code&amp;gt;report&amp;lt;/code&amp;gt; keyword, a report will be generated for data conversions. The report file is generated by Smooks, lies under &amp;lt;code&amp;gt;/smooks&amp;lt;/code&amp;gt; output directory of the datainterchange bundle, and has a name in the form like &amp;lt;code&amp;gt;&amp;lt;DataInterChangeName&amp;gt;-input.xml&amp;lt;/code&amp;gt; for input processes, and &amp;lt;code&amp;gt;&amp;lt;DataInterChangeName&amp;gt;-output.xml&amp;lt;/code&amp;gt; for output processes. '''Note: turn on report will have an impact performance.'''&lt;br /&gt;
&lt;br /&gt;
===indent===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;indent&amp;lt;/code&amp;gt; is a CSV-format specified keyword which adds indentation character data to the generated event stream. This simply makes the generated event stream easier to read in its serialized form and generally should only be used in testing.&lt;br /&gt;
&lt;br /&gt;
===quoteCharacter===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;quoteCharacter&amp;lt;/code&amp;gt; is a CSV format-specific keyword, which defines the character to use in the CSV file to identify values.&lt;br /&gt;
&lt;br /&gt;
===encoding===&lt;br /&gt;
With the keyword '''enconding''' followed by the encoding name as a string value you are able to specify the valid encoding of the file content.&lt;br /&gt;
&lt;br /&gt;
► '''Example 1''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnitName merge elementSize 50 file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;UTF-8&amp;quot;{}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 2''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnitName remove elementSize 50 file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;GB18030&amp;quot;{}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 3''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnitName persistelementSize 50 file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;ISO-2022-JP&amp;quot;{}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mappingModel===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;mappingModel&amp;lt;/code&amp;gt; keyword is an EDI-specific keyword which can be used to specify an EDI to XML mapping model in XML format for Smooks.&lt;br /&gt;
&lt;br /&gt;
===validate===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;validate&amp;lt;/code&amp;gt; keyword is an EDI-specific keyword that...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===path===&lt;br /&gt;
&lt;br /&gt;
The keyword &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; starts the series of entities. (Formerly, the keyword was named &amp;lt;code&amp;gt;beans&amp;lt;/code&amp;gt;. The name &amp;quot;bean&amp;quot; comes from the internal entities called JavaBean, which act as data containers.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===entity===&lt;br /&gt;
&lt;br /&gt;
With the &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; keyword followed by a fully qualified name, the user can specify the mapping between a source data file and a data-containing entity. The behavior of the mapping can be further fine-tuned with the keywords discussed below. While these keywords can theoretically be combined all together and create very complicated behavior, they are normally used in a simple and straight forward way.&lt;br /&gt;
&lt;br /&gt;
The general form of &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; keywords is:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
entity &amp;lt;ID&amp;gt;&lt;br /&gt;
    [nodeName &amp;lt;node-name&amp;gt;]&lt;br /&gt;
    [createOn &amp;lt;element-map&amp;gt;]&lt;br /&gt;
    [marker &amp;lt;property-name&amp;gt;]&lt;br /&gt;
    [expression '{' &amp;lt;expressions&amp;gt; '}'] &lt;br /&gt;
    [lookup '{' &amp;lt;lookup-rules&amp;gt; '}']&lt;br /&gt;
    [format '{' &amp;lt;formats&amp;gt; '}']&lt;br /&gt;
    [mapping '{' &amp;lt;mappings&amp;gt; '}']&lt;br /&gt;
    [keys '{' &amp;lt;lookup-keys&amp;gt; '}']&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The order of the keywords is fixed, i.e. they are all optional, but must appear in the given order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====nodeName====&lt;br /&gt;
&lt;br /&gt;
With the optional keyword &amp;lt;code&amp;gt;nodeName&amp;lt;/code&amp;gt; followed by a string you can specify the name (alias) of corresponding elements inside an (XML) input/output configuration file. This name is used to identify entities within an XML file using the [http://freemarker.org/docs/pgui_datamodel.html NodeModel of Freemarker] instead of using the standard Java Object Model name. For example:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores remove vectorName &amp;quot;stores&amp;quot; elementSize 83 file XML &amp;quot;C:/.../net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/stores.xml&amp;quot; path {&lt;br /&gt;
	entity Mregion nodeName    &amp;quot;region&amp;quot;&lt;br /&gt;
	entity Mstore nodeName     &amp;quot;store&amp;quot;&lt;br /&gt;
	entity Mwarehouse nodeName &amp;quot;warehouse&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The result from this example code is the generation of Smooks configuration files, in which the structure of the output data file (order of elements) will be the same as declared inside the path {...} expression block. The alias you have specified after the keyword will be used as element (entity) name inside the XML files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Figure3&amp;quot;&amp;gt; [[File:FreeMarkerNodeModelStoreInEx.png|600px|thumb|center|''Figure 3: Store-import.xml and  Store-export.xml with NodeModel'']] &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The use of this keyword gives you the flexibility of naming entities using aliases in order to match any third part system description. By omitting the definition of both aliases ''region'' and ''warehouse'' like shown below, we obtain slightly divergent but very different contents than the ones from above.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores remove vectorName &amp;quot;stores&amp;quot; elementSize 83 file XML &amp;quot;C:/.../net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/stores.xml&amp;quot; path {&lt;br /&gt;
	entity Mregion&lt;br /&gt;
	entity Mstore nodeName     &amp;quot;store&amp;quot;&lt;br /&gt;
	entity Mwarehouse&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:FreeMarkerJavaObjectModelStoreInEx.png|600px|thumb|center|''Figure 4: Store-import.xml (normal) and Store-export.xml (normal) with Java Object Model Name'']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the declaration order of each node names matters.&lt;br /&gt;
&lt;br /&gt;
====createOn====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;createOn&amp;lt;/code&amp;gt; keyword followed by a string specifies on which input element should an entity to be created. For example:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
entity Mcurrency createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; ... {&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will create an &amp;lt;code&amp;gt;Mcurrency&amp;lt;/code&amp;gt; entity when encountering &amp;lt;code&amp;gt;/Envelope/Cube/Cube&amp;lt;/code&amp;gt; in the source data file.&lt;br /&gt;
&lt;br /&gt;
====latestImport / latestExport====&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;code&amp;gt;latestImport&amp;lt;/code&amp;gt; keyword optionally followed by a property-name, the user can set the data to be imported to have an additional property under the given name whose value set to 1, while updating the existing data to have this property having value 0. This could be useful to identify the most recent import of some periodically updated data. For example:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entity McurrencyStream createOn &amp;quot;/Envelope/Cube&amp;quot; latestImport latest expression {&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will make the entity &amp;lt;code&amp;gt;McurrencyStream&amp;lt;/code&amp;gt; to have a property &amp;quot;&amp;lt;code&amp;gt;latest&amp;lt;/code&amp;gt;&amp;quot;, which is to be set to 1 for the most recently imported data.&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;latestExport&amp;lt;/code&amp;gt; works analogous.&lt;br /&gt;
&lt;br /&gt;
====expression====&lt;br /&gt;
&lt;br /&gt;
With an &amp;lt;code&amp;gt;expression { ... }&amp;lt;/code&amp;gt; block, the user can define expressions that assign certain value to an entity property. These expressions are of two types, the first one is:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  assign &amp;lt;id&amp;gt; with &amp;lt;value&amp;gt; as &amp;lt;type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
this will assign the property &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; with the value of &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, in type of &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; may be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;NowDate&amp;lt;/code&amp;gt;: the date of now (the time point of action)&lt;br /&gt;
* &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;: the date when the process started&lt;br /&gt;
* &amp;lt;code&amp;gt;UniversallyUniqueIdentifier&amp;lt;/code&amp;gt;: an UUID&lt;br /&gt;
&lt;br /&gt;
and &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; may be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt;: the value of NowDate or StartDate will be in date format&lt;br /&gt;
* &amp;lt;code&amp;gt;Milliseconds&amp;lt;/code&amp;gt;: the value of NowDate or StartDate will be in millisecond&lt;br /&gt;
* &amp;lt;code&amp;gt;Nanoseconds&amp;lt;/code&amp;gt;: the value of NowDate or StartDate will be in nanosconds&lt;br /&gt;
* &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt;: the value of UUID will be random&lt;br /&gt;
* &amp;lt;code&amp;gt;ExecuteContext&amp;lt;/code&amp;gt;: the value of UUID will be unique for the execute context&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ExecuteContext&amp;lt;/code&amp;gt; should be only combined with &amp;lt;code&amp;gt;UniversallyUniqueIdentifier&amp;lt;/code&amp;gt;, while the other types should be only combined with &amp;lt;code&amp;gt;NowDate&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  entity McurrencyStream createOn &amp;quot;/Envelope/Cube&amp;quot; marker latest expression {&lt;br /&gt;
      assign importDate with NowDate as Date&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will assign the &amp;lt;code&amp;gt;importDate&amp;lt;/code&amp;gt; as the current date in &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt; format.&lt;br /&gt;
&lt;br /&gt;
The other type of expression has the form:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  copy &amp;lt;target-property&amp;gt; from &amp;lt;entity-name&amp;gt; property &amp;lt;from-property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will copy the value of &amp;lt;code&amp;gt;from-property&amp;lt;/code&amp;gt; from the &amp;lt;code&amp;gt;entity-name&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;target-property&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  entity Mcurrency createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; expression {&lt;br /&gt;
      copy currencyDate from McurrencyDay property ratingDate&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will copy the value of &amp;lt;code&amp;gt;ratingDate&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;McurrencyDay&amp;lt;/code&amp;gt; entity to &amp;lt;code&amp;gt;currencyDate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====lookup====&lt;br /&gt;
&amp;lt;div id=&amp;quot;lookup&amp;quot;&amp;gt;&lt;br /&gt;
With a &amp;lt;code&amp;gt;lookup&amp;lt;/code&amp;gt; { ... } block, the user can define a set of '''lookup-rules''' to identify complex data within our persistence layer (DB or In-Memory...). This makes sense when the data in a source file can't be clearly identified by an attribute (id), but moreover when the set data it contains is persisted over several entities.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
lookup {&lt;br /&gt;
   [&amp;lt;lookup-rules&amp;gt;]*&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lookup-rule expression:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
lookup-rule: &lt;br /&gt;
 'for' .. 'on' .. 'createOn' .. 'with' .. 'cacheSize' .. 'mapTo' .. ['allowNoResult' | 'allowNoResult' | 'markerPath']&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Currencies describedBy &amp;quot;european central bank currency exchange rates based on euro&amp;quot; persist elementSize 50 file&lt;br /&gt;
	XML &amp;quot;C:/git/development/net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/eurofxref-hist-90d.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	mapByAttribute path {&lt;br /&gt;
		entity McurrencyStream createOn &amp;quot;/Envelope/Cube&amp;quot; marker latest expression {&lt;br /&gt;
			assign importDate with NowDate as Date&lt;br /&gt;
		}&lt;br /&gt;
		entity McurrencyDay createOn &amp;quot;/Envelope/Cube/Cube&amp;quot; format {&lt;br /&gt;
			for ratingDate coding &amp;quot;yyyy-MM-dd&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		mapping {&lt;br /&gt;
			map ratingDate to &amp;quot;time&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		entity Mcurrency createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; expression {&lt;br /&gt;
			copy currencyDate from McurrencyDay property ratingDate&lt;br /&gt;
		}&lt;br /&gt;
		lookup {&lt;br /&gt;
			for currency_name on McurrencyName createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; with isoCode cacheSize 300 mapTo &amp;quot;currency&amp;quot; allowNoResult&lt;br /&gt;
			markerPath {&lt;br /&gt;
				markerEntity McurrencyNameStream markedBy latest&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		mapping {&lt;br /&gt;
			map conversion_ratio to &amp;quot;rate&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We will provide you in upcoming releases with more information about so called '''locator''' instances, which are generated in the background on the basis of the '''lookups''' you would have defined, in order to query persisted data. This will give you more insights about how the Datainterchange DSL really works at the lower level.&lt;br /&gt;
&lt;br /&gt;
====format====&lt;br /&gt;
&lt;br /&gt;
With a &amp;lt;code&amp;gt;format { ... }&amp;lt;/code&amp;gt; block, the user can define the format of the entity property being converted. A &amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt; block can have more than one format definitions, in the following format:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    format {&lt;br /&gt;
        for &amp;lt;property&amp;gt; coding &amp;lt;format-string&amp;gt; [locale &amp;lt;locale-string&amp;gt;]&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    entity McurrencyDay createOn &amp;quot;/Envelope/Cube/Cube&amp;quot; format {&lt;br /&gt;
        for ratingDate coding &amp;quot;yyyy-MM-dd&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will convert the &amp;lt;code&amp;gt;&amp;quot;/Envelope/Cube/Cube&amp;quot;&amp;lt;/code&amp;gt; data to &amp;lt;code&amp;gt;ratingDate&amp;lt;/code&amp;gt; property of &amp;lt;code&amp;gt;McurrencyDay&amp;lt;/code&amp;gt; in format &amp;lt;code&amp;gt;&amp;quot;yyyy-MM-dd&amp;quot;&amp;lt;/code&amp;gt;, where&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    entity EDIOrderHeader createOn &amp;quot;/Order/header&amp;quot; format {&lt;br /&gt;
        for hdrDate coding &amp;quot;EEE MMM dd HH:mm:ss zzz yyyy&amp;quot; locale &amp;quot;en_US&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will format the &amp;lt;code&amp;gt;hdrDate&amp;lt;/code&amp;gt; in format &amp;lt;code&amp;gt;&amp;quot;EEE MMM dd HH:mm:ss zzz yyyy&amp;quot;&amp;lt;/code&amp;gt; with English locale, i.e. the month and weekday names will be in English.&lt;br /&gt;
&lt;br /&gt;
====expose====&lt;br /&gt;
&lt;br /&gt;
With a &amp;lt;code&amp;gt;expose { ... }&amp;lt;/code&amp;gt; block, when and only when exporting an entity, the user can expose properties of its referenced entity. A &amp;lt;code&amp;gt;expose&amp;lt;/code&amp;gt; block can have more than one expose definitions, in the following syntax format:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    expose {&lt;br /&gt;
        ref &amp;lt;EntityReference&amp;gt; &lt;br /&gt;
            on &amp;lt;EntityAttribute&amp;gt; &lt;br /&gt;
          | subExpose&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''subExpose''' has the same syntax format as '''expose''', which is: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    expose {&lt;br /&gt;
        ref &amp;lt;EntityReference&amp;gt; &lt;br /&gt;
            on &amp;lt;EntityAttribute&amp;gt; &lt;br /&gt;
          | subExpose&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&lt;br /&gt;
Entities are defined as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entity CashSlip {&lt;br /&gt;
     ...&lt;br /&gt;
     var boolean payed&lt;br /&gt;
     ref cascade CashPosition[ * ]positions opposite slip&lt;br /&gt;
     ref Mcustomer customer opposite slips  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entity Mcustomer extends BaseID {&lt;br /&gt;
     ...&lt;br /&gt;
     var long account_num&lt;br /&gt;
     var String name&lt;br /&gt;
     ref Mregion region opposite customers&lt;br /&gt;
     ref Msales_fact[ * ]sales opposite customer  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In datainterchange DSL, when exporting entity &amp;quot;'''CashSlip'''&amp;quot;, the user can use  &amp;quot;'''expose'''&amp;quot; keyword to export the &amp;quot;'''account_num'''&amp;quot; property of &amp;quot;'''Mcustomer'''&amp;quot; referenced here as &amp;quot;'''customer'''&amp;quot;. &lt;br /&gt;
And sub-reference of the reference can also be exported. In the following example, the &amp;quot;'''region'''&amp;quot; reference (of entity &amp;quot;'''Mregion'''&amp;quot;) in &amp;quot;'''Mcustomer'''&amp;quot; has a property &amp;quot;'''sales_city'''&amp;quot;, it is also exported.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
interchange CashSlip describedBy &amp;quot;CashSlip&amp;quot; merge vectorName &amp;quot;cashslip&amp;quot; file XML &amp;quot;C:/MC/cashdata.xml&amp;quot; encoding &amp;quot;UTF-8&amp;quot;&lt;br /&gt;
     path {&lt;br /&gt;
         entity CashSlip&lt;br /&gt;
&lt;br /&gt;
         expose {&lt;br /&gt;
             customer on account_num&lt;br /&gt;
             customer expose {&lt;br /&gt;
                 region on sales_city&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the generated Smooks config XML, the section will look like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;account_num&amp;gt;${(CashSlip.customer.account_num)!}&amp;lt;/account_num&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the sub-expose part looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;sales_city&amp;gt;${(CashSlip.customer.region.sales_city)!}&amp;lt;/sales_city&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* This recursive-export can go as many levels as the user want.&lt;br /&gt;
&lt;br /&gt;
====mapping====&lt;br /&gt;
With a &amp;lt;code&amp;gt;mapping { ... }&amp;lt;/code&amp;gt; block, the user can easily '''map''' (or rather '''match''') attributes of the data model to values from external source files.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
mapping {&lt;br /&gt;
 [map &amp;lt;entity-attribute&amp;gt; to &amp;lt;Data&amp;gt;]*&lt;br /&gt;
 [mapBlob &amp;lt;entity-attribute&amp;gt; to &amp;lt;Data&amp;gt; [extension &amp;lt;blob-file-extension] [path &amp;lt;blob-path&amp;gt;] mimeType &amp;lt;mine-type&amp;gt; ]*&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
mapping{&lt;br /&gt;
  map conversion_ratio to &amp;quot;rate&amp;quot;&lt;br /&gt;
  mapBlob currency_icon to &amp;quot;currency_icon&amp;quot; extension &amp;quot;png&amp;quot; path &amp;quot;C:/data/currency_images&amp;quot; mimeType png&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first map of the above example will map the attribute conversion_ratio of the entity to field &amp;quot;rate&amp;quot;.&lt;br /&gt;
The second mapBlob does a bit more work, it will:&lt;br /&gt;
&lt;br /&gt;
  * generate full file paths by combining the path, the file names specified by &amp;quot;currency_icon&amp;quot; field, and the extension,&lt;br /&gt;
  * upload the files into database with the given mimeType, and&lt;br /&gt;
  * assign the UUID of the blob to property currency_icon of the entity.&lt;br /&gt;
&lt;br /&gt;
Please note that the only valid attributes here are the members of the corresponding entity, which the user has chosen prior defining the &amp;lt;code&amp;gt;mapping&amp;lt;/code&amp;gt; block itself.&lt;br /&gt;
&lt;br /&gt;
====keys====&lt;br /&gt;
With a &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; { ... } block, the user can define a set of '''keys''' to identify data within our persistence layer (DB or In-Memory...). &lt;br /&gt;
This makes sence when the data in a source file can't be clearly identified by an attribute (id). Therefore a set of attributes (keys) can be defined and then be used as identification parameter set by a [[#lookup|''lookups'']] instance in order to query our data pool and identify data using several criteria.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
keys {&lt;br /&gt;
 [key &amp;lt;entity-attribute&amp;gt;]*&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you try to update the address data of an employee from an entity named Employee, but you happen not to have his/her personal id. By setting a &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; { ... } block, like shown here below, you allow the Datainterchange unit to look into the database after employee's data based on the key set inside this block, rather than using a personal id, which might have been here unique and more than enough to find the employee right away.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
keys {&lt;br /&gt;
  key last_name&lt;br /&gt;
  key first_name&lt;br /&gt;
  key age&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the only valid attributes here are members of the corresponding entity, that you would have chosen prior defining the &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; block itself.&lt;br /&gt;
&lt;br /&gt;
==TriggerView==&lt;br /&gt;
A TriggerView will be automatically generated by the DataInterchange DSL as soon as you define an interchange unit inside the model file and save it. &lt;br /&gt;
&lt;br /&gt;
You can see on the right side of the figure shown below, the definition of 10 interchange units within the Datainterchange model file (blue rectangles); and on the right side of the figure you can see, how the TriggerView looks like (green rectangle), when it is embedded inside an application page in its entirety. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TriggerView.png|600px|center|''Figure 5: Datainterchange TriggerView Definition and Application Views''|thumbnail|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To achieve this result you need to do two simple steps. You need first to either integrate the TriggerView into an existing perspective or create a new perspective and then integrate the view into it, like shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example 1''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import ns net.osbee.sample.foodmart.datainterchanges&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
package net.osbee.sample.foodmart.perspectives {&lt;br /&gt;
&lt;br /&gt;
	perspective Currencies iconURI &amp;quot;employee&amp;quot; {&lt;br /&gt;
		sashContainer c1 orientation horizontal {&lt;br /&gt;
			part imex view dataInterchange datainterchanges spaceVolume &amp;quot;20&amp;quot;&lt;br /&gt;
			...&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most important thing in this example is to notice the use of the keyword '''view''' followed by the keyword '''dataInterchange''' and the name ''datainterchanges'' referring to the package, in which all datainterchange unit definitions have to be found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second step would be to create a menu entry for you to be able to access the newly created or altered perspective in the application via the menu bar, like shown in the following example.&lt;br /&gt;
&lt;br /&gt;
► '''Example 2''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import ns net.osbee.sample.foodmart.perspectives.Currencies&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
package net.osbee.sample.foodmart.menues {  &lt;br /&gt;
	...&lt;br /&gt;
	entry Menu describedBy &amp;quot;my menu&amp;quot; { &lt;br /&gt;
		entry Perspectives {&lt;br /&gt;
			entry MasterData {&lt;br /&gt;
				entry Company image &amp;quot;company&amp;quot; perspective Company&lt;br /&gt;
				entry Employees image &amp;quot;employee&amp;quot; perspective Employee&lt;br /&gt;
				entry Products image &amp;quot;products&amp;quot; perspective Products&lt;br /&gt;
				entry CashRegisterData image &amp;quot;editor_area&amp;quot; perspective CashMasterDataRegister&lt;br /&gt;
&lt;br /&gt;
				entry Currencies image &amp;quot;products&amp;quot; perspective Currencies&lt;br /&gt;
&lt;br /&gt;
				entry People image &amp;quot;task_action_delegate&amp;quot; perspective PeopleMock&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		...&lt;br /&gt;
	...	}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TriggerViewMenuSelection.png|600px|center|''Figure 6: Datainterchange TriggerView Menu Selection''|thumbnail|600px]]&lt;br /&gt;
&lt;br /&gt;
The figure above shows the same menu structure defined in the example 2 and results in showing the application with the TriggerView, as you can see on the left side of the figure 5. You can get and review more information on how to create menu entries and perspectives in both [[Menu DSL]] and [[Perspective DSL]] documentation pages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Among all the components that are generated for the use of each interchange unit functions are action buttons, you would find inside toolbars in some dialogs. Usually you have to define them by yourself in the corresponding DSL files. This step is not needed here, since it has already been generated for this particular view.&lt;br /&gt;
&lt;br /&gt;
[[File:TriggerViewActionButtons.png|600px|center|''Figure 7: Action Buttons for datainterchange unit functions''|thumbnail|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that it is '''not mandatory''' to display all available functionalities through the use of the TriggerView like shown here above. It is customary to only use parts of the generated Datainterchange components (e.g. action buttons) where you see them fit; for instance in order to only use each interchange unit functionalities (import and/or export) in separated and dedicated views (dialogs). Therefore, we also recommend you to have a look at the [[Action DSL]] documentation page in order to understand how to create your own toolbars, and so forth creating the buttons using import or export functions of any datainterchange unit you would have created.&lt;br /&gt;
&lt;br /&gt;
==Smooks Configuration and Settings File==&lt;br /&gt;
'''Please note that whenever a model is saved''', the '''Datainterchange DSL''' will do three things '''automatically''':&lt;br /&gt;
&lt;br /&gt;
* generate Java classes,&lt;br /&gt;
* generate Smooks configuration files for both import and export functions, and&lt;br /&gt;
* generate a config file to modify the import and export paths on runtime.&lt;br /&gt;
&lt;br /&gt;
===Smooks Configuration File===&lt;br /&gt;
&lt;br /&gt;
The OS.bee implementation of Data Interchange interface is based on Smooks. Smooks is a Java framework for processing XML and non XML data (CSV, EDI, Java etc) by mapping data to JavaBeans, which can later be persisted, enriched (merge with existing data from other source), or converted and exported into other formats.&lt;br /&gt;
&lt;br /&gt;
Smooks relies on a proper configuration file for the import / export processes. These configuration files are generated by the Datainterchange DSL automatically. Here is a brief introduction of how the generated Smooks configuration files work.&lt;br /&gt;
&lt;br /&gt;
When a data import / export Smooks instance is initiated, it will be supplied with the generated config file. This file defines the actions to be performed upon certain events during the SAX parsing process. Here is an example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line='line'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;smooks-resource-list xmlns=&amp;quot;http://www.milyn.org/xsd/smooks-1.1.xsd&amp;quot; xmlns:csv=&amp;quot;http://www.milyn.org/xsd/smooks/csv-1.2.xsd&amp;quot; xmlns:dao=&amp;quot;http://www.milyn.org/xsd/smooks/persistence-1.2.xsd&amp;quot; xmlns:jb=&amp;quot;http://www.milyn.org/xsd/smooks/javabean-1.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;jb:bean beanId=&amp;quot;McurrencyNameStream&amp;quot; class=&amp;quot;net.osbee.sample.foodmart.entities.McurrencyNameStream&amp;quot; createOnElement=&amp;quot;/csv-set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;jb:expression property=&amp;quot;importDate&amp;quot;&amp;gt;PTIME.nowDate&amp;lt;/jb:expression&amp;gt;&lt;br /&gt;
        &amp;lt;jb:wiring beanIdRef=&amp;quot;McurrencyName&amp;quot; setterMethod=&amp;quot;addToCurrencyNames&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/jb:bean&amp;gt;&lt;br /&gt;
    &amp;lt;jb:bean beanId=&amp;quot;McurrencyName&amp;quot; class=&amp;quot;net.osbee.sample.foodmart.entities.McurrencyName&amp;quot; createOnElement=&amp;quot;/csv-set/csv-record&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;jb:value data=&amp;quot;/csv-set/csv-record/isoCode&amp;quot; decoder=&amp;quot;String&amp;quot; property=&amp;quot;isoCode&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;jb:value data=&amp;quot;/csv-set/csv-record/name&amp;quot; decoder=&amp;quot;String&amp;quot; property=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;jb:value data=&amp;quot;/csv-set/csv-record/countries&amp;quot; decoder=&amp;quot;String&amp;quot; property=&amp;quot;countries&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/jb:bean&amp;gt;&lt;br /&gt;
    &amp;lt;csv:reader fields=&amp;quot;isoCode,name,countries&amp;quot; indent=&amp;quot;false&amp;quot; separator=&amp;quot;;&amp;quot; skipLines=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;params&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;stream.filter.type&amp;quot;&amp;gt;SAX&amp;lt;/param&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;inputType&amp;quot;&amp;gt;input.csv&amp;lt;/param&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;smooks.visitors.sort&amp;quot;&amp;gt;false&amp;lt;/param&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;input.csv&amp;quot; type=&amp;quot;input.type.actived&amp;quot;&amp;gt;C:/git/net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/ISOCurrencyCodes081507.csv&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/smooks-resource-list&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Further informations on the Smoooks framework are available and can be reviewed in its [http://www.smooks.org/guide documentation] you will find on the [http://www.smooks.org/index official website].&lt;br /&gt;
&lt;br /&gt;
===Path Config File===&lt;br /&gt;
&lt;br /&gt;
The file is interpreted using the Properties xml im- and export method and looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE properties SYSTEM &amp;quot;http://java.sun.com/dtd/properties.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
&amp;lt;comment&amp;gt;dataInterchange file URLs&amp;lt;/comment&amp;gt;&lt;br /&gt;
&amp;lt;entry key=&amp;quot;EmployeesDepartment-import&amp;quot;&amp;gt;C:/myimports/employeesdepartment.xml&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;entry key=&amp;quot;EmployeesDepartment-export&amp;quot;&amp;gt;C:/myexports/employeesdepartment.xml&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default this file is named like the title in the Data Interchange package and extended by &amp;quot;Config&amp;quot; and has the extension &amp;quot;xml&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;package net.osbee.sample.foodmart.datainterchanges title &amp;quot;DataInterchange&amp;quot; {}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
leads to the filename:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DataInterchangeConfig.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and is stored platform independently in the current user's home directory under the subdirectory &amp;quot;.osbee&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An administrator must receive this configuration file with the application, modify it and place it somewhere on the application server. The path to this configuration file must be supplied in the product's preferences (&amp;lt;code&amp;gt;org.eclipse.osbp.production.prefs&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;datainterchange/datainterchangeConfiguration=c\:\\DataInterchangeConfig.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path value obviously depends on the operating system you are developing.&lt;br /&gt;
&lt;br /&gt;
===Further Reading===&lt;br /&gt;
&lt;br /&gt;
There is a lot of information to be found in the internet that describe the formal structure of the smooks configuration in any case. A very good one can be found at [https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.3/html-single/smooks_development_guide/index RedHat].&lt;br /&gt;
&lt;br /&gt;
== Copyright Notice ==&lt;br /&gt;
{{Copyright Notice}}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Datainterchange_DSL&amp;diff=3744</id>
		<title>Datainterchange DSL</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Datainterchange_DSL&amp;diff=3744"/>
				<updated>2019-09-04T15:49:06Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Purpose==&lt;br /&gt;
&lt;br /&gt;
The Data Interchange DSL (datainterchange for short) is made for defining data exchange models that can be used to import data from various formats (CSV, XML, EDI, etc.), map the data to entities, store them into database, or export them back into other formats.&lt;br /&gt;
&lt;br /&gt;
You only need to define the ''relationship'' between the file and the bean, not the import / export process themselves. Once defined, these models can be used in e.g. action DSL to define actions which, when triggered, execute the actual import / export process, which are generated automatically by the OSBP based on the model.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
As shown on the figure below, the [DSL Inferrer] will generate various views and In/Export component according to model described by datainterchange DSL (and action DSL, in the case of ActionButtons). The action buttons, when clicked, will trigger their corresponding In/Export processes by putting [http://download.osbee.org/downloads/javadoc/osbee-master-clean/org.eclipse.osbp.xtext.datainterchange.feature/apidocs/ WorkerThread (Runnable)] jobs into the executor job pool within the TriggerView (prefixed with datainterchang name), buttons (and toolbar / menus containing them) are further included in the perspective.&lt;br /&gt;
&lt;br /&gt;
[[File:Datainterchange.png|600px|center|frame|''Figure 1: - Data Interchange Structure.'']]&lt;br /&gt;
&lt;br /&gt;
==Data Interchange Model File==&lt;br /&gt;
&lt;br /&gt;
Datainterchange DSL model files end with the &amp;lt;code&amp;gt;.data&amp;lt;/code&amp;gt; extension. Data Interchange models may be split into several &amp;lt;code&amp;gt;.data&amp;lt;/code&amp;gt; files, as long as they have the same package declaration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the following we will dive deeper into the description and the usage of Datainterchange related and reserved keywords.&lt;br /&gt;
&lt;br /&gt;
===import===&lt;br /&gt;
In the import section are all entities to be found - as full qualified names – that are currently used in the DSL.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import ns net.osbee.sample.foodmart.entities.Mstore&lt;br /&gt;
import ns net.osbee.sample.foodmart.entities.Mwarehouse&lt;br /&gt;
import ns net.osbee.sample.foodmart.entities.Mregion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;code&amp;gt;ns&amp;lt;/code&amp;gt; is a mandatory keyword (stands for &amp;quot;namespace&amp;quot;) that comes after import for distinguishing the OS.bee internal namespaces and Java library namespaces. Wildcards are not supported, all names should be imported separately. Note that the import section will be imported/added automatically if they are used in the package, so you don't have to manually manage this section.&lt;br /&gt;
&lt;br /&gt;
===package===&lt;br /&gt;
&lt;br /&gt;
Datainterchange DSL model files must start with a package declaration. Packages are the root element of the DSL and should be defined as &amp;lt;code&amp;gt;&amp;lt;ApplicationName&amp;gt;.datainterchanges&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;package net.osbee.sample.foodmart.datainterchanges { }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data Interchange models may be split into several .data files, as long as they have the same package declaration, the interchanges will be available under this package name.&lt;br /&gt;
&lt;br /&gt;
===title===&lt;br /&gt;
With the keyword title you can give a name to the corresponding TriggerView dialog inside your application. For example, the definition of the same datainterchanges package from above with title &amp;quot;Data Interchange Example&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;package net.osbee.sample.foodmart.datainterchanges title &amp;quot;Data Interchange Example&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This title will be translated based on locale.&lt;br /&gt;
&lt;br /&gt;
You can get more details about the TriggerView in the section below.&lt;br /&gt;
&lt;br /&gt;
===interchange===&lt;br /&gt;
The &amp;lt;code&amp;gt;interchange&amp;lt;/code&amp;gt; keyword defines interchange units for entities in the package, it should be in the form of:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange &amp;lt;InterchangeUnitName&amp;gt; [describedBy &amp;lt;description&amp;gt;] &amp;lt;EntityManagerMode&amp;gt; file &amp;lt;FileType&amp;gt; [&amp;lt;FileDetails&amp;gt;] beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;code&amp;gt;InterchangeUnitName&amp;lt;/code&amp;gt; being the name of the interchange unit; &amp;lt;code&amp;gt;describedBy&amp;lt;/code&amp;gt; (optional) can be used to provide a short description string. &amp;lt;code&amp;gt;EntityManagerMode&amp;lt;/code&amp;gt; being how the file should be handled (see section &amp;quot;persist, merge, remove&amp;quot; below), and after &amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt; keyword, you should specify the type of the source / target data file you would like to import from or export to, then the file path, and other details depends on the type.&lt;br /&gt;
&lt;br /&gt;
The following example specifies an interchange that reads a CSV file under the specified path (note the forward slash as the path separator), delimited by semicolon, skip one line (the header), and treat the content as encoded in UTF-8:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
interchange CurrencyNames persist file&lt;br /&gt;
CSV &amp;quot;C:/data/ISOCurrencyCode20170101.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;UTF-8&amp;quot;&lt;br /&gt;
beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;beans&amp;lt;/code&amp;gt; keyword comes after all the file specification and starts a block of entity definitions, which will be covered in section &amp;quot;entity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===describedBy===&lt;br /&gt;
With this keyword you can the optional description of an interchange unit as shown below. &lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Currencies describedBy &amp;quot;european central bank currency exchange rates based on euro&amp;quot; persist ... { ... }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===vectorName===&lt;br /&gt;
With the optional keyword &amp;lt;code&amp;gt;vectorName&amp;lt;/code&amp;gt; followed by a string value you are able to define the name of the root element of both XML configuration files needed by Smooks. Please note that it also means that the first (root-)element of an XML-File you would have exported (file filled with real data) via the application will have the same name.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores remove vectorName &amp;quot;stores&amp;quot; elementSize 83 file ... { ... }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can view the result of this sample of code like shown below on figure[[#Figure3|''3'']].&lt;br /&gt;
&lt;br /&gt;
===persist, merge, remove===&lt;br /&gt;
These keywords define the purpose of the datainterchange unit and has a similar meaning as in the JPA's EntityManager class. Basically, &amp;lt;code&amp;gt;persist&amp;lt;/code&amp;gt; will insert the data records into database, &amp;lt;code&amp;gt;merge&amp;lt;/code&amp;gt; will update existing data record, or insert new one if necessary, &amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt; will remove the record if it could be found in database.&lt;br /&gt;
&lt;br /&gt;
► '''Example 1''': (persist)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange EDIOrders describedBy &amp;quot;Orders&amp;quot; persist file&lt;br /&gt;
XML &amp;quot;C:/data/orders.xml&amp;quot;&lt;br /&gt;
beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example 2''': (merge)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores merge file&lt;br /&gt;
XML &amp;quot;C:/data/stores.xml&amp;quot;&lt;br /&gt;
beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example 3''': (remove)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Storesremove remove file&lt;br /&gt;
XML &amp;quot;C:/data/stores_remove.xml&amp;quot;&lt;br /&gt;
beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===file===&lt;br /&gt;
With the keyword file you are able to set the file format of the files you intent to process with you interchange unit.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange &amp;lt;SampleInterchangeUnitName&amp;gt; &amp;lt;EntityManagerMode&amp;gt; file &amp;lt;FileNameFormat&amp;gt; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current supported file formats are CSV, EDI and XML followed by the name of the file you want to process, given its full path location in the system.&lt;br /&gt;
► '''Example 1''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnit1 merge file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 2''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnit2 persist file XML &amp;quot;C:/temp/testFile.xml&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 3''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnit3 merge file EDI &amp;quot;C:/temp/testFile.edi&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After choosing the file format you can either give the file name as a String value in a double quote &amp;quot;...&amp;quot; as shown here above, or press Ctrl+Space to get via the content assist the option of opening a File Chooser/Picker to specify the file you want to work with.&lt;br /&gt;
&lt;br /&gt;
[[File:FileChooser.jpg|center|frame|''Figure 2: File Chooser'']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that you can also change the path(?) of the file to process on runtime by selecting a new file.&lt;br /&gt;
&lt;br /&gt;
===mapByAttribute===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;mapByAttribute&amp;lt;/code&amp;gt; keyword is an XML-specific keyword that turns on the automatic attribute mapping. When enabled, datainterchange will detect if the value being mapped is from an attribute. For example, the 'USD' value in the following XML file comes from the attribute 'currency' of the element 'Cube':&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Cube currency='USD' rate='1.3759'/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while in the following XML file, the same value is encapsulated in the element 'currency':&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Cube&amp;gt;&lt;br /&gt;
 &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
 &amp;lt;rate&amp;gt;1.3759&amp;lt;/rate&amp;gt;&lt;br /&gt;
&amp;lt;/Cube&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;mapByAttribute&amp;lt;/code&amp;gt; is present, datainterchange will automatically decide that a query in the form like &amp;lt;code&amp;gt;'/Cube/currency'&amp;lt;/code&amp;gt; will also catch the value from attribute. Without it, the query will have to put a &amp;lt;code&amp;gt;'@'&amp;lt;/code&amp;gt; symbol in front of the attribute name, i.e. &amp;lt;code&amp;gt;'/Cube/@currency'&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===elementSize===&lt;br /&gt;
With the keyword &amp;lt;code&amp;gt;elementSize&amp;lt;/code&amp;gt; followed by an integer, the user can set the estimated average size of the elements in bytes. Since the underlying API cannot know the size of an element before it is processed, this value can be supplied as a guide value to be used for estimating the import / output progress based on how much bytes have been processed.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange EDIOrders describedBy &amp;quot;edi orders&amp;quot; persist elementSize 50 file EDI &amp;quot;C:/data/orders.edi&amp;quot; beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defines an average estimated element size of 50 bytes.&lt;br /&gt;
&lt;br /&gt;
===delimiter===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;delimiter&amp;lt;/code&amp;gt; is a CSV format-specific keyword, which defines the character to use in the CSV file to set the delimiter/separation character between different values. Default value is &amp;quot;,&amp;quot; (comma).&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange CurrencyNames persist file&lt;br /&gt;
CSV &amp;quot;C:/data/ISOCurrencyCodes081507.csv&amp;quot; delimiter &amp;quot;;&amp;quot; ... {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will set the delimiter of the CSV file to &amp;quot;;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===skipLines===&lt;br /&gt;
This is a CSV format-specific keyword. Using &amp;lt;code&amp;gt;skipLines&amp;lt;/code&amp;gt; followed by an integer, the user can specify the number of lines to be skipped from the beginning in the processing of the selected file, this can be used to skip headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange CurrencyNames persist file CSV &amp;quot;C:/data/ISOCurrencyCodes081507.csv&amp;quot; ... skipLines 1 encoding &amp;quot;UTF-8&amp;quot; {&lt;br /&gt;
   ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will skip the first line of the CSV file.&lt;br /&gt;
&lt;br /&gt;
===report===&lt;br /&gt;
&lt;br /&gt;
If a '''datainterchange''' unit is defined with the &amp;lt;code&amp;gt;report&amp;lt;/code&amp;gt; keyword, a report will be generated for data conversions. The report file is generated by Smooks, lies under &amp;lt;code&amp;gt;/smooks&amp;lt;/code&amp;gt; output directory of the datainterchange bundle, and has a name in the form like &amp;lt;code&amp;gt;&amp;lt;DataInterChangeName&amp;gt;-input.xml&amp;lt;/code&amp;gt; for input processes, and &amp;lt;code&amp;gt;&amp;lt;DataInterChangeName&amp;gt;-output.xml&amp;lt;/code&amp;gt; for output processes. '''Note: turn on report will have an impact performance.'''&lt;br /&gt;
&lt;br /&gt;
===indent===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;indent&amp;lt;/code&amp;gt; is a CSV-format specified keyword which adds indentation character data to the generated event stream. This simply makes the generated event stream easier to read in its serialized form and generally should only be used in testing.&lt;br /&gt;
&lt;br /&gt;
===quoteCharacter===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;quoteCharacter&amp;lt;/code&amp;gt; is a CSV format-specific keyword, which defines the character to use in the CSV file to identify values.&lt;br /&gt;
&lt;br /&gt;
===encoding===&lt;br /&gt;
With the keyword '''enconding''' followed by the encoding name as a string value you are able to specify the valid encoding of the file content.&lt;br /&gt;
&lt;br /&gt;
► '''Example 1''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnitName merge elementSize 50 file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;UTF-8&amp;quot;{}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 2''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnitName remove elementSize 50 file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;GB18030&amp;quot;{}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 3''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnitName persistelementSize 50 file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;ISO-2022-JP&amp;quot;{}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mappingModel===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;mappingModel&amp;lt;/code&amp;gt; keyword is an EDI-specific keyword which can be used to specify an EDI to XML mapping model in XML format for Smooks.&lt;br /&gt;
&lt;br /&gt;
===validate===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;validate&amp;lt;/code&amp;gt; keyword is an EDI-specific keyword that...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===beans===&lt;br /&gt;
&lt;br /&gt;
The keyword &amp;lt;code&amp;gt;beans&amp;lt;/code&amp;gt; starts the series of entities. The name &amp;quot;bean&amp;quot; comes from the internal entities called JavaBean, which act as data containers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===entity===&lt;br /&gt;
&lt;br /&gt;
With the &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; keyword followed by a fully qualified name, the user can specify the mapping between a source data file and a data-containing entity. The behavior of the mapping can be further fine-tuned with the keywords discussed below. While these keywords can theoretically be combined all together and create very complicated behavior, they are normally used in a simple and straight forward way.&lt;br /&gt;
&lt;br /&gt;
The general form of &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; keywords is:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
entity &amp;lt;ID&amp;gt;&lt;br /&gt;
    [nodeName &amp;lt;node-name&amp;gt;]&lt;br /&gt;
    [createOn &amp;lt;element-map&amp;gt;]&lt;br /&gt;
    [marker &amp;lt;property-name&amp;gt;]&lt;br /&gt;
    [expression '{' &amp;lt;expressions&amp;gt; '}'] &lt;br /&gt;
    [lookup '{' &amp;lt;lookup-rules&amp;gt; '}']&lt;br /&gt;
    [format '{' &amp;lt;formats&amp;gt; '}']&lt;br /&gt;
    [mapping '{' &amp;lt;mappings&amp;gt; '}']&lt;br /&gt;
    [keys '{' &amp;lt;lookup-keys&amp;gt; '}']&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The order of the keywords is fixed, i.e. they are all optional, but must appear in the given order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====nodeName====&lt;br /&gt;
&lt;br /&gt;
With the optional keyword &amp;lt;code&amp;gt;nodeName&amp;lt;/code&amp;gt; followed by a string you can specify the name (alias) of corresponding elements inside an (XML) input/output configuration file. This name is used to identify entities within an XML file using the [http://freemarker.org/docs/pgui_datamodel.html NodeModel of Freemarker] instead of using the standard Java Object Model name. For example:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores remove vectorName &amp;quot;stores&amp;quot; elementSize 83 file XML &amp;quot;C:/.../net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/stores.xml&amp;quot; beans {&lt;br /&gt;
	entity Mregion nodeName    &amp;quot;region&amp;quot;&lt;br /&gt;
	entity Mstore nodeName     &amp;quot;store&amp;quot;&lt;br /&gt;
	entity Mwarehouse nodeName &amp;quot;warehouse&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The result from this example code is the generation of Smooks configuration files, in which the structure of the output data file (order of elements) will be the same as declared inside the beans {...} expression block. The alias you have specified after the keyword will be used as element (entity) name inside the XML files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Figure3&amp;quot;&amp;gt; [[File:FreeMarkerNodeModelStoreInEx.png|600px|thumb|center|''Figure 3: Store-import.xml and  Store-export.xml with NodeModel'']] &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The use of this keyword gives you the flexibility of naming entities using aliases in order to match any third part system description. By omitting the definition of both aliases ''region'' and ''warehouse'' like shown below, we obtain slightly divergent but very different contents than the ones from above.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores remove vectorName &amp;quot;stores&amp;quot; elementSize 83 file XML &amp;quot;C:/.../net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/stores.xml&amp;quot; beans {&lt;br /&gt;
	entity Mregion&lt;br /&gt;
	entity Mstore nodeName     &amp;quot;store&amp;quot;&lt;br /&gt;
	entity Mwarehouse&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:FreeMarkerJavaObjectModelStoreInEx.png|600px|thumb|center|''Figure 4: Store-import.xml (normal) and Store-export.xml (normal) with Java Object Model Name'']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the declaration order of each node names matters.&lt;br /&gt;
&lt;br /&gt;
====createOn====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;createOn&amp;lt;/code&amp;gt; keyword followed by a string specifies on which input element should an entity to be created. For example:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
entity Mcurrency createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; ... {&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will create an &amp;lt;code&amp;gt;Mcurrency&amp;lt;/code&amp;gt; entity when encountering &amp;lt;code&amp;gt;/Envelope/Cube/Cube&amp;lt;/code&amp;gt; in the source data file.&lt;br /&gt;
&lt;br /&gt;
====latestImport / latestExport====&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;code&amp;gt;latestImport&amp;lt;/code&amp;gt; keyword optionally followed by a property-name, the user can set the data to be imported to have an additional property under the given name whose value set to 1, while updating the existing data to have this property having value 0. This could be useful to identify the most recent import of some periodically updated data. For example:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entity McurrencyStream createOn &amp;quot;/Envelope/Cube&amp;quot; latestImport latest expression {&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will make the entity &amp;lt;code&amp;gt;McurrencyStream&amp;lt;/code&amp;gt; to have a property &amp;quot;&amp;lt;code&amp;gt;latest&amp;lt;/code&amp;gt;&amp;quot;, which is to be set to 1 for the most recently imported data.&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;latestExport&amp;lt;/code&amp;gt; works analogous.&lt;br /&gt;
&lt;br /&gt;
====expression====&lt;br /&gt;
&lt;br /&gt;
With an &amp;lt;code&amp;gt;expression { ... }&amp;lt;/code&amp;gt; block, the user can define expressions that assign certain value to an entity property. These expressions are of two types, the first one is:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  assign &amp;lt;id&amp;gt; with &amp;lt;value&amp;gt; as &amp;lt;type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
this will assign the property &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; with the value of &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, in type of &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; may be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;NowDate&amp;lt;/code&amp;gt;: the date of now (the time point of action)&lt;br /&gt;
* &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;: the date when the process started&lt;br /&gt;
* &amp;lt;code&amp;gt;UniversallyUniqueIdentifier&amp;lt;/code&amp;gt;: an UUID&lt;br /&gt;
&lt;br /&gt;
and &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; may be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt;: the value of NowDate or StartDate will be in date format&lt;br /&gt;
* &amp;lt;code&amp;gt;Milliseconds&amp;lt;/code&amp;gt;: the value of NowDate or StartDate will be in millisecond&lt;br /&gt;
* &amp;lt;code&amp;gt;Nanoseconds&amp;lt;/code&amp;gt;: the value of NowDate or StartDate will be in nanosconds&lt;br /&gt;
* &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt;: the value of UUID will be random&lt;br /&gt;
* &amp;lt;code&amp;gt;ExecuteContext&amp;lt;/code&amp;gt;: the value of UUID will be unique for the execute context&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ExecuteContext&amp;lt;/code&amp;gt; should be only combined with &amp;lt;code&amp;gt;UniversallyUniqueIdentifier&amp;lt;/code&amp;gt;, while the other types should be only combined with &amp;lt;code&amp;gt;NowDate&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  entity McurrencyStream createOn &amp;quot;/Envelope/Cube&amp;quot; marker latest expression {&lt;br /&gt;
      assign importDate with NowDate as Date&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will assign the &amp;lt;code&amp;gt;importDate&amp;lt;/code&amp;gt; as the current date in &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt; format.&lt;br /&gt;
&lt;br /&gt;
The other type of expression has the form:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  copy &amp;lt;target-property&amp;gt; from &amp;lt;entity-name&amp;gt; property &amp;lt;from-property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will copy the value of &amp;lt;code&amp;gt;from-property&amp;lt;/code&amp;gt; from the &amp;lt;code&amp;gt;entity-name&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;target-property&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  entity Mcurrency createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; expression {&lt;br /&gt;
      copy currencyDate from McurrencyDay property ratingDate&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will copy the value of &amp;lt;code&amp;gt;ratingDate&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;McurrencyDay&amp;lt;/code&amp;gt; entity to &amp;lt;code&amp;gt;currencyDate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====lookup====&lt;br /&gt;
&amp;lt;div id=&amp;quot;lookup&amp;quot;&amp;gt;&lt;br /&gt;
With a &amp;lt;code&amp;gt;lookup&amp;lt;/code&amp;gt; { ... } block, the user can define a set of '''lookup-rules''' to identify complex data within our persistence layer (DB or In-Memory...). This makes sense when the data in a source file can't be clearly identified by an attribute (id), but moreover when the set data it contains is persisted over several entities.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
lookup {&lt;br /&gt;
   [&amp;lt;lookup-rules&amp;gt;]*&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lookup-rule expression:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
lookup-rule: &lt;br /&gt;
 'for' .. 'on' .. 'createOn' .. 'with' .. 'cacheSize' .. 'mapTo' .. ['allowNoResult' | 'allowNoResult' | 'markerPath']&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Currencies describedBy &amp;quot;european central bank currency exchange rates based on euro&amp;quot; persist elementSize 50 file&lt;br /&gt;
	XML &amp;quot;C:/git/development/net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/eurofxref-hist-90d.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	mapByAttribute beans {&lt;br /&gt;
		entity McurrencyStream createOn &amp;quot;/Envelope/Cube&amp;quot; marker latest expression {&lt;br /&gt;
			assign importDate with NowDate as Date&lt;br /&gt;
		}&lt;br /&gt;
		entity McurrencyDay createOn &amp;quot;/Envelope/Cube/Cube&amp;quot; format {&lt;br /&gt;
			for ratingDate coding &amp;quot;yyyy-MM-dd&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		mapping {&lt;br /&gt;
			map ratingDate to &amp;quot;time&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		entity Mcurrency createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; expression {&lt;br /&gt;
			copy currencyDate from McurrencyDay property ratingDate&lt;br /&gt;
		}&lt;br /&gt;
		lookup {&lt;br /&gt;
			for currency_name on McurrencyName createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; with isoCode cacheSize 300 mapTo &amp;quot;currency&amp;quot; allowNoResult&lt;br /&gt;
			markerPath {&lt;br /&gt;
				markerEntity McurrencyNameStream markedBy latest&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		mapping {&lt;br /&gt;
			map conversion_ratio to &amp;quot;rate&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We will provide you in upcoming releases with more information about so called '''locator''' instances, which are generated in the background on the basis of the '''lookups''' you would have defined, in order to query persisted data. This will give you more insights about how the Datainterchange DSL really works at the lower level.&lt;br /&gt;
&lt;br /&gt;
====format====&lt;br /&gt;
&lt;br /&gt;
With a &amp;lt;code&amp;gt;format { ... }&amp;lt;/code&amp;gt; block, the user can define the format of the entity property being converted. A &amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt; block can have more than one format definitions, in the following format:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    format {&lt;br /&gt;
        for &amp;lt;property&amp;gt; coding &amp;lt;format-string&amp;gt; [locale &amp;lt;locale-string&amp;gt;]&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    entity McurrencyDay createOn &amp;quot;/Envelope/Cube/Cube&amp;quot; format {&lt;br /&gt;
        for ratingDate coding &amp;quot;yyyy-MM-dd&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will convert the &amp;lt;code&amp;gt;&amp;quot;/Envelope/Cube/Cube&amp;quot;&amp;lt;/code&amp;gt; data to &amp;lt;code&amp;gt;ratingDate&amp;lt;/code&amp;gt; property of &amp;lt;code&amp;gt;McurrencyDay&amp;lt;/code&amp;gt; in format &amp;lt;code&amp;gt;&amp;quot;yyyy-MM-dd&amp;quot;&amp;lt;/code&amp;gt;, where&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    entity EDIOrderHeader createOn &amp;quot;/Order/header&amp;quot; format {&lt;br /&gt;
        for hdrDate coding &amp;quot;EEE MMM dd HH:mm:ss zzz yyyy&amp;quot; locale &amp;quot;en_US&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will format the &amp;lt;code&amp;gt;hdrDate&amp;lt;/code&amp;gt; in format &amp;lt;code&amp;gt;&amp;quot;EEE MMM dd HH:mm:ss zzz yyyy&amp;quot;&amp;lt;/code&amp;gt; with English locale, i.e. the month and weekday names will be in English.&lt;br /&gt;
&lt;br /&gt;
====expose====&lt;br /&gt;
&lt;br /&gt;
With a &amp;lt;code&amp;gt;expose { ... }&amp;lt;/code&amp;gt; block, when and only when exporting an entity, the user can expose properties of its referenced entity. A &amp;lt;code&amp;gt;expose&amp;lt;/code&amp;gt; block can have more than one expose definitions, in the following syntax format:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    expose {&lt;br /&gt;
        ref &amp;lt;EntityReference&amp;gt; &lt;br /&gt;
            on &amp;lt;EntityAttribute&amp;gt; &lt;br /&gt;
          | subExpose&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''subExpose''' has the same syntax format as '''expose''', which is: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    expose {&lt;br /&gt;
        ref &amp;lt;EntityReference&amp;gt; &lt;br /&gt;
            on &amp;lt;EntityAttribute&amp;gt; &lt;br /&gt;
          | subExpose&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&lt;br /&gt;
Entities are defined as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entity CashSlip {&lt;br /&gt;
     ...&lt;br /&gt;
     var boolean payed&lt;br /&gt;
     ref cascade CashPosition[ * ]positions opposite slip&lt;br /&gt;
     ref Mcustomer customer opposite slips  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entity Mcustomer extends BaseID {&lt;br /&gt;
     ...&lt;br /&gt;
     var long account_num&lt;br /&gt;
     var String name&lt;br /&gt;
     ref Mregion region opposite customers&lt;br /&gt;
     ref Msales_fact[ * ]sales opposite customer  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In datainterchange DSL, when exporting entity &amp;quot;'''CashSlip'''&amp;quot;, the user can use  &amp;quot;'''expose'''&amp;quot; keyword to export the &amp;quot;'''account_num'''&amp;quot; property of &amp;quot;'''Mcustomer'''&amp;quot; referenced here as &amp;quot;'''customer'''&amp;quot;. &lt;br /&gt;
And sub-reference of the reference can also be exported. In the following example, the &amp;quot;'''region'''&amp;quot; reference (of entity &amp;quot;'''Mregion'''&amp;quot;) in &amp;quot;'''Mcustomer'''&amp;quot; has a property &amp;quot;'''sales_city'''&amp;quot;, it is also exported.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
interchange CashSlip describedBy &amp;quot;CashSlip&amp;quot; merge vectorName &amp;quot;cashslip&amp;quot; file XML &amp;quot;C:/MC/cashdata.xml&amp;quot; encoding &amp;quot;UTF-8&amp;quot;&lt;br /&gt;
     path {&lt;br /&gt;
         entity CashSlip&lt;br /&gt;
&lt;br /&gt;
         expose {&lt;br /&gt;
             customer on account_num&lt;br /&gt;
             customer expose {&lt;br /&gt;
                 region on sales_city&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the generated Smooks config XML, the section will look like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;account_num&amp;gt;${(CashSlip.customer.account_num)!}&amp;lt;/account_num&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the sub-expose part looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;sales_city&amp;gt;${(CashSlip.customer.region.sales_city)!}&amp;lt;/sales_city&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* This recursive-export can go as many levels as the user want.&lt;br /&gt;
&lt;br /&gt;
====mapping====&lt;br /&gt;
With a &amp;lt;code&amp;gt;mapping { ... }&amp;lt;/code&amp;gt; block, the user can easily '''map''' (or rather '''match''') attributes of the data model to values from external source files.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
mapping {&lt;br /&gt;
 [map &amp;lt;entity-attribute&amp;gt; to &amp;lt;Data&amp;gt;]*&lt;br /&gt;
 [mapBlob &amp;lt;entity-attribute&amp;gt; to &amp;lt;Data&amp;gt; [extension &amp;lt;blob-file-extension] [path &amp;lt;blob-path&amp;gt;] mimeType &amp;lt;mine-type&amp;gt; ]*&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
mapping{&lt;br /&gt;
  map conversion_ratio to &amp;quot;rate&amp;quot;&lt;br /&gt;
  mapBlob currency_icon to &amp;quot;currency_icon&amp;quot; extension &amp;quot;png&amp;quot; path &amp;quot;C:/data/currency_images&amp;quot; mimeType png&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first map of the above example will map the attribute conversion_ratio of the entity to field &amp;quot;rate&amp;quot;.&lt;br /&gt;
The second mapBlob does a bit more work, it will:&lt;br /&gt;
&lt;br /&gt;
  * generate full file paths by combining the path, the file names specified by &amp;quot;currency_icon&amp;quot; field, and the extension,&lt;br /&gt;
  * upload the files into database with the given mimeType, and&lt;br /&gt;
  * assign the UUID of the blob to property currency_icon of the entity.&lt;br /&gt;
&lt;br /&gt;
Please note that the only valid attributes here are the members of the corresponding entity, which the user has chosen prior defining the &amp;lt;code&amp;gt;mapping&amp;lt;/code&amp;gt; block itself.&lt;br /&gt;
&lt;br /&gt;
====keys====&lt;br /&gt;
With a &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; { ... } block, the user can define a set of '''keys''' to identify data within our persistence layer (DB or In-Memory...). &lt;br /&gt;
This makes sence when the data in a source file can't be clearly identified by an attribute (id). Therefore a set of attributes (keys) can be defined and then be used as identification parameter set by a [[#lookup|''lookups'']] instance in order to query our data pool and identify data using several criteria.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
keys {&lt;br /&gt;
 [key &amp;lt;entity-attribute&amp;gt;]*&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you try to update the address data of an employee from an entity named Employee, but you happen not to have his/her personal id. By setting a &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; { ... } block, like shown here below, you allow the Datainterchange unit to look into the database after employee's data based on the key set inside this block, rather than using a personal id, which might have been here unique and more than enough to find the employee right away.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
keys {&lt;br /&gt;
  key last_name&lt;br /&gt;
  key first_name&lt;br /&gt;
  key age&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the only valid attributes here are members of the corresponding entity, that you would have chosen prior defining the &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; block itself.&lt;br /&gt;
&lt;br /&gt;
==TriggerView==&lt;br /&gt;
A TriggerView will be automatically generated by the DataInterchange DSL as soon as you define an interchange unit inside the model file and save it. &lt;br /&gt;
&lt;br /&gt;
You can see on the right side of the figure shown below, the definition of 10 interchange units within the Datainterchange model file (blue rectangles); and on the right side of the figure you can see, how the TriggerView looks like (green rectangle), when it is embedded inside an application page in its entirety. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TriggerView.png|600px|center|''Figure 5: Datainterchange TriggerView Definition and Application Views''|thumbnail|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To achieve this result you need to do two simple steps. You need first to either integrate the TriggerView into an existing perspective or create a new perspective and then integrate the view into it, like shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example 1''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import ns net.osbee.sample.foodmart.datainterchanges&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
package net.osbee.sample.foodmart.perspectives {&lt;br /&gt;
&lt;br /&gt;
	perspective Currencies iconURI &amp;quot;employee&amp;quot; {&lt;br /&gt;
		sashContainer c1 orientation horizontal {&lt;br /&gt;
			part imex view dataInterchange datainterchanges spaceVolume &amp;quot;20&amp;quot;&lt;br /&gt;
			...&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most important thing in this example is to notice the use of the keyword '''view''' followed by the keyword '''dataInterchange''' and the name ''datainterchanges'' referring to the package, in which all datainterchange unit definitions have to be found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second step would be to create a menu entry for you to be able to access the newly created or altered perspective in the application via the menu bar, like shown in the following example.&lt;br /&gt;
&lt;br /&gt;
► '''Example 2''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import ns net.osbee.sample.foodmart.perspectives.Currencies&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
package net.osbee.sample.foodmart.menues {  &lt;br /&gt;
	...&lt;br /&gt;
	entry Menu describedBy &amp;quot;my menu&amp;quot; { &lt;br /&gt;
		entry Perspectives {&lt;br /&gt;
			entry MasterData {&lt;br /&gt;
				entry Company image &amp;quot;company&amp;quot; perspective Company&lt;br /&gt;
				entry Employees image &amp;quot;employee&amp;quot; perspective Employee&lt;br /&gt;
				entry Products image &amp;quot;products&amp;quot; perspective Products&lt;br /&gt;
				entry CashRegisterData image &amp;quot;editor_area&amp;quot; perspective CashMasterDataRegister&lt;br /&gt;
&lt;br /&gt;
				entry Currencies image &amp;quot;products&amp;quot; perspective Currencies&lt;br /&gt;
&lt;br /&gt;
				entry People image &amp;quot;task_action_delegate&amp;quot; perspective PeopleMock&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		...&lt;br /&gt;
	...	}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TriggerViewMenuSelection.png|600px|center|''Figure 6: Datainterchange TriggerView Menu Selection''|thumbnail|600px]]&lt;br /&gt;
&lt;br /&gt;
The figure above shows the same menu structure defined in the example 2 and results in showing the application with the TriggerView, as you can see on the left side of the figure 5. You can get and review more information on how to create menu entries and perspectives in both [[Menu DSL]] and [[Perspective DSL]] documentation pages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Among all the components that are generated for the use of each interchange unit functions are action buttons, you would find inside toolbars in some dialogs. Usually you have to define them by yourself in the corresponding DSL files. This step is not needed here, since it has already been generated for this particular view.&lt;br /&gt;
&lt;br /&gt;
[[File:TriggerViewActionButtons.png|600px|center|''Figure 7: Action Buttons for datainterchange unit functions''|thumbnail|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that it is '''not mandatory''' to display all available functionalities through the use of the TriggerView like shown here above. It is customary to only use parts of the generated Datainterchange components (e.g. action buttons) where you see them fit; for instance in order to only use each interchange unit functionalities (import and/or export) in separated and dedicated views (dialogs). Therefore, we also recommend you to have a look at the [[Action DSL]] documentation page in order to understand how to create your own toolbars, and so forth creating the buttons using import or export functions of any datainterchange unit you would have created.&lt;br /&gt;
&lt;br /&gt;
==Smooks Configuration and Settings File==&lt;br /&gt;
'''Please note that whenever a model is saved''', the '''Datainterchange DSL''' will do three things '''automatically''':&lt;br /&gt;
&lt;br /&gt;
* generate Java classes,&lt;br /&gt;
* generate Smooks configuration files for both import and export functions, and&lt;br /&gt;
* generate a config file to modify the import and export paths on runtime.&lt;br /&gt;
&lt;br /&gt;
===Smooks Configuration File===&lt;br /&gt;
&lt;br /&gt;
The OS.bee implementation of Data Interchange interface is based on Smooks. Smooks is a Java framework for processing XML and non XML data (CSV, EDI, Java etc) by mapping data to JavaBeans, which can later be persisted, enriched (merge with existing data from other source), or converted and exported into other formats.&lt;br /&gt;
&lt;br /&gt;
Smooks relies on a proper configuration file for the import / export processes. These configuration files are generated by the Datainterchange DSL automatically. Here is a brief introduction of how the generated Smooks configuration files work.&lt;br /&gt;
&lt;br /&gt;
When a data import / export Smooks instance is initiated, it will be supplied with the generated config file. This file defines the actions to be performed upon certain events during the SAX parsing process. Here is an example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line='line'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;smooks-resource-list xmlns=&amp;quot;http://www.milyn.org/xsd/smooks-1.1.xsd&amp;quot; xmlns:csv=&amp;quot;http://www.milyn.org/xsd/smooks/csv-1.2.xsd&amp;quot; xmlns:dao=&amp;quot;http://www.milyn.org/xsd/smooks/persistence-1.2.xsd&amp;quot; xmlns:jb=&amp;quot;http://www.milyn.org/xsd/smooks/javabean-1.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;jb:bean beanId=&amp;quot;McurrencyNameStream&amp;quot; class=&amp;quot;net.osbee.sample.foodmart.entities.McurrencyNameStream&amp;quot; createOnElement=&amp;quot;/csv-set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;jb:expression property=&amp;quot;importDate&amp;quot;&amp;gt;PTIME.nowDate&amp;lt;/jb:expression&amp;gt;&lt;br /&gt;
        &amp;lt;jb:wiring beanIdRef=&amp;quot;McurrencyName&amp;quot; setterMethod=&amp;quot;addToCurrencyNames&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/jb:bean&amp;gt;&lt;br /&gt;
    &amp;lt;jb:bean beanId=&amp;quot;McurrencyName&amp;quot; class=&amp;quot;net.osbee.sample.foodmart.entities.McurrencyName&amp;quot; createOnElement=&amp;quot;/csv-set/csv-record&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;jb:value data=&amp;quot;/csv-set/csv-record/isoCode&amp;quot; decoder=&amp;quot;String&amp;quot; property=&amp;quot;isoCode&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;jb:value data=&amp;quot;/csv-set/csv-record/name&amp;quot; decoder=&amp;quot;String&amp;quot; property=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;jb:value data=&amp;quot;/csv-set/csv-record/countries&amp;quot; decoder=&amp;quot;String&amp;quot; property=&amp;quot;countries&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/jb:bean&amp;gt;&lt;br /&gt;
    &amp;lt;csv:reader fields=&amp;quot;isoCode,name,countries&amp;quot; indent=&amp;quot;false&amp;quot; separator=&amp;quot;;&amp;quot; skipLines=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;params&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;stream.filter.type&amp;quot;&amp;gt;SAX&amp;lt;/param&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;inputType&amp;quot;&amp;gt;input.csv&amp;lt;/param&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;smooks.visitors.sort&amp;quot;&amp;gt;false&amp;lt;/param&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;input.csv&amp;quot; type=&amp;quot;input.type.actived&amp;quot;&amp;gt;C:/git/net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/ISOCurrencyCodes081507.csv&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/smooks-resource-list&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Further informations on the Smoooks framework are available and can be reviewed in its [http://www.smooks.org/guide documentation] you will find on the [http://www.smooks.org/index official website].&lt;br /&gt;
&lt;br /&gt;
===Path Config File===&lt;br /&gt;
&lt;br /&gt;
The file is interpreted using the Properties xml im- and export method and looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE properties SYSTEM &amp;quot;http://java.sun.com/dtd/properties.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
&amp;lt;comment&amp;gt;dataInterchange file URLs&amp;lt;/comment&amp;gt;&lt;br /&gt;
&amp;lt;entry key=&amp;quot;EmployeesDepartment-import&amp;quot;&amp;gt;C:/myimports/employeesdepartment.xml&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;entry key=&amp;quot;EmployeesDepartment-export&amp;quot;&amp;gt;C:/myexports/employeesdepartment.xml&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default this file is named like the title in the Data Interchange package and extended by &amp;quot;Config&amp;quot; and has the extension &amp;quot;xml&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;package net.osbee.sample.foodmart.datainterchanges title &amp;quot;DataInterchange&amp;quot; {}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
leads to the filename:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DataInterchangeConfig.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and is stored platform independently in the current user's home directory under the subdirectory &amp;quot;.osbee&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An administrator must receive this configuration file with the application, modify it and place it somewhere on the application server. The path to this configuration file must be supplied in the product's preferences (&amp;lt;code&amp;gt;org.eclipse.osbp.production.prefs&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;datainterchange/datainterchangeConfiguration=c\:\\DataInterchangeConfig.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path value obviously depends on the operating system you are developing.&lt;br /&gt;
&lt;br /&gt;
===Further Reading===&lt;br /&gt;
&lt;br /&gt;
There is a lot of information to be found in the internet that describe the formal structure of the smooks configuration in any case. A very good one can be found at [https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.3/html-single/smooks_development_guide/index RedHat].&lt;br /&gt;
&lt;br /&gt;
== Copyright Notice ==&lt;br /&gt;
{{Copyright Notice}}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Datainterchange_DSL&amp;diff=3743</id>
		<title>Datainterchange DSL</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Datainterchange_DSL&amp;diff=3743"/>
				<updated>2019-09-02T13:08:25Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Purpose==&lt;br /&gt;
&lt;br /&gt;
The Data Interchange DSL (datainterchange for short) is made for defining data exchange models that can be used to import data from various formats (CSV, XML, EDI, etc.), map the data to entities, store them into database, or export them back into other formats.&lt;br /&gt;
&lt;br /&gt;
You only need to define the ''relationship'' between the file and the bean, not the import / export process themselves. Once defined, these models can be used in e.g. action DSL to define actions which, when triggered, execute the actual import / export process, which are generated automatically by the OSBP based on the model.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
As shown on the figure below, the [DSL Inferrer] will generate various views and In/Export component according to model described by datainterchange DSL (and action DSL, in the case of ActionButtons). The action buttons, when clicked, will trigger their corresponding In/Export processes by putting [http://download.osbee.org/downloads/javadoc/osbee-master-clean/org.eclipse.osbp.xtext.datainterchange.feature/apidocs/ WorkerThread (Runnable)] jobs into the executor job pool within the TriggerView (prefixed with datainterchang name), buttons (and toolbar / menus containing them) are further included in the perspective.&lt;br /&gt;
&lt;br /&gt;
[[File:Datainterchange.png|600px|center|frame|''Figure 1: - Data Interchange Structure.'']]&lt;br /&gt;
&lt;br /&gt;
==Data Interchange Model File==&lt;br /&gt;
&lt;br /&gt;
Datainterchange DSL model files end with the &amp;lt;code&amp;gt;.data&amp;lt;/code&amp;gt; extension. Data Interchange models may be split into several &amp;lt;code&amp;gt;.data&amp;lt;/code&amp;gt; files, as long as they have the same package declaration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the following we will dive deeper into the description and the usage of Datainterchange related and reserved keywords.&lt;br /&gt;
&lt;br /&gt;
===import===&lt;br /&gt;
In the import section are all entities to be found - as full qualified names – that are currently used in the DSL.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import ns net.osbee.sample.foodmart.entities.Mstore&lt;br /&gt;
import ns net.osbee.sample.foodmart.entities.Mwarehouse&lt;br /&gt;
import ns net.osbee.sample.foodmart.entities.Mregion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;code&amp;gt;ns&amp;lt;/code&amp;gt; is a mandatory keyword (stands for &amp;quot;namespace&amp;quot;) that comes after import for distinguishing the OS.bee internal namespaces and Java library namespaces. Wildcards are not supported, all names should be imported separately. Note that the import section will be imported/added automatically if they are used in the package, so you don't have to manually manage this section.&lt;br /&gt;
&lt;br /&gt;
===package===&lt;br /&gt;
&lt;br /&gt;
Datainterchange DSL model files must start with a package declaration. Packages are the root element of the DSL and should be defined as &amp;lt;code&amp;gt;&amp;lt;ApplicationName&amp;gt;.datainterchanges&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;package net.osbee.sample.foodmart.datainterchanges { }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Data Interchange models may be split into several .data files, as long as they have the same package declaration, the interchanges will be available under this package name.&lt;br /&gt;
&lt;br /&gt;
===title===&lt;br /&gt;
With the keyword title you can give a name to the corresponding TriggerView dialog inside your application. For example, the definition of the same datainterchanges package from above with title &amp;quot;Data Interchange Example&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;package net.osbee.sample.foodmart.datainterchanges title &amp;quot;Data Interchange Example&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This title will be translated based on locale.&lt;br /&gt;
&lt;br /&gt;
You can get more details about the TriggerView in the section below.&lt;br /&gt;
&lt;br /&gt;
===interchange===&lt;br /&gt;
The &amp;lt;code&amp;gt;interchange&amp;lt;/code&amp;gt; keyword defines interchange units for entities in the package, it should be in the form of:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange &amp;lt;InterchangeUnitName&amp;gt; [describedBy &amp;lt;description&amp;gt;] &amp;lt;EntityManagerMode&amp;gt; file &amp;lt;FileType&amp;gt; [&amp;lt;FileDetails&amp;gt;] beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;code&amp;gt;InterchangeUnitName&amp;lt;/code&amp;gt; being the name of the interchange unit; &amp;lt;code&amp;gt;describedBy&amp;lt;/code&amp;gt; (optional) can be used to provide a short description string. &amp;lt;code&amp;gt;EntityManagerMode&amp;lt;/code&amp;gt; being how the file should be handled (see section &amp;quot;persist, merge, remove&amp;quot; below), and after &amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt; keyword, you should specify the type of the source / target data file you would like to import from or export to, then the file path, and other details depends on the type.&lt;br /&gt;
&lt;br /&gt;
The following example specifies an interchange that reads a CSV file under the specified path (note the forward slash as the path separator), delimited by semicolon, skip one line (the header), and treat the content as encoded in UTF-8:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
interchange CurrencyNames persist file&lt;br /&gt;
CSV &amp;quot;C:/data/ISOCurrencyCode20170101.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;UTF-8&amp;quot;&lt;br /&gt;
beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;beans&amp;lt;/code&amp;gt; keyword comes after all the file specification and starts a block of entity definitions, which will be covered in section &amp;quot;entity&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===describedBy===&lt;br /&gt;
With this keyword you can the optional description of an interchange unit as shown below. &lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Currencies describedBy &amp;quot;european central bank currency exchange rates based on euro&amp;quot; persist ... { ... }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===vectorName===&lt;br /&gt;
With the optional keyword &amp;lt;code&amp;gt;vectorName&amp;lt;/code&amp;gt; followed by a string value you are able to define the name of the root element of both XML configuration files needed by Smooks. Please note that it also means that the first (root-)element of an XML-File you would have exported (file filled with real data) via the application will have the same name.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores remove vectorName &amp;quot;stores&amp;quot; elementSize 83 file ... { ... }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can view the result of this sample of code like shown below on figure[[#Figure3|''3'']].&lt;br /&gt;
&lt;br /&gt;
===persist, merge, remove===&lt;br /&gt;
These keywords define the purpose of the datainterchange unit and has a similar meaning as in the JPA's EntityManager class. Basically, &amp;lt;code&amp;gt;persist&amp;lt;/code&amp;gt; will insert the data records into database, &amp;lt;code&amp;gt;merge&amp;lt;/code&amp;gt; will update existing data record, or insert new one if necessary, &amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt; will remove the record if it could be found in database.&lt;br /&gt;
&lt;br /&gt;
► '''Example 1''': (persist)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange EDIOrders describedBy &amp;quot;Orders&amp;quot; persist file&lt;br /&gt;
XML &amp;quot;C:/data/orders.xml&amp;quot;&lt;br /&gt;
beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example 2''': (merge)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores merge file&lt;br /&gt;
XML &amp;quot;C:/data/stores.xml&amp;quot;&lt;br /&gt;
beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example 3''': (remove)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Storesremove remove file&lt;br /&gt;
XML &amp;quot;C:/data/stores_remove.xml&amp;quot;&lt;br /&gt;
beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===file===&lt;br /&gt;
With the keyword file you are able to set the file format of the files you intent to process with you interchange unit.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange &amp;lt;SampleInterchangeUnitName&amp;gt; &amp;lt;EntityManagerMode&amp;gt; file &amp;lt;FileNameFormat&amp;gt; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current supported file formats are CSV, EDI and XML followed by the name of the file you want to process, given its full path location in the system.&lt;br /&gt;
► '''Example 1''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnit1 merge file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 2''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnit2 persist file XML &amp;quot;C:/temp/testFile.xml&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 3''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnit3 merge file EDI &amp;quot;C:/temp/testFile.edi&amp;quot; {}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After choosing the file format you can either give the file name as a String value in a double quote &amp;quot;...&amp;quot; as shown here above, or press Ctrl+Space to get via the content assist the option of opening a File Chooser/Picker to specify the file you want to work with.&lt;br /&gt;
&lt;br /&gt;
[[File:FileChooser.jpg|center|frame|''Figure 2: File Chooser'']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that you can also change the path(?) of the file to process on runtime by selecting a new file.&lt;br /&gt;
&lt;br /&gt;
===mapByAttribute===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;mapByAttribute&amp;lt;/code&amp;gt; keyword is an XML-specific keyword that turns on the automatic attribute mapping. When enabled, datainterchange will detect if the value being mapped is from an attribute. For example, the 'USD' value in the following XML file comes from the attribute 'currency' of the element 'Cube':&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Cube currency='USD' rate='1.3759'/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
while in the following XML file, the same value is encapsulated in the element 'currency':&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Cube&amp;gt;&lt;br /&gt;
 &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
 &amp;lt;rate&amp;gt;1.3759&amp;lt;/rate&amp;gt;&lt;br /&gt;
&amp;lt;/Cube&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;mapByAttribute&amp;lt;/code&amp;gt; is present, datainterchange will automatically decide that a query in the form like &amp;lt;code&amp;gt;'/Cube/currency'&amp;lt;/code&amp;gt; will also catch the value from attribute. Without it, the query will have to put a &amp;lt;code&amp;gt;'@'&amp;lt;/code&amp;gt; symbol in front of the attribute name, i.e. &amp;lt;code&amp;gt;'/Cube/@currency'&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===elementSize===&lt;br /&gt;
With the keyword &amp;lt;code&amp;gt;elementSize&amp;lt;/code&amp;gt; followed by an integer, the user can set the estimated average size of the elements in bytes. Since the underlying API cannot know the size of an element before it is processed, this value can be supplied as a guide value to be used for estimating the import / output progress based on how much bytes have been processed.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange EDIOrders describedBy &amp;quot;edi orders&amp;quot; persist elementSize 50 file EDI &amp;quot;C:/data/orders.edi&amp;quot; beans {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Defines an average estimated element size of 50 bytes.&lt;br /&gt;
&lt;br /&gt;
===delimiter===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;delimiter&amp;lt;/code&amp;gt; is a CSV format-specific keyword, which defines the character to use in the CSV file to set the delimiter/separation character between different values. Default value is &amp;quot;,&amp;quot; (comma).&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange CurrencyNames persist file&lt;br /&gt;
CSV &amp;quot;C:/data/ISOCurrencyCodes081507.csv&amp;quot; delimiter &amp;quot;;&amp;quot; ... {&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will set the delimiter of the CSV file to &amp;quot;;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===skipLines===&lt;br /&gt;
This is a CSV format-specific keyword. Using &amp;lt;code&amp;gt;skipLines&amp;lt;/code&amp;gt; followed by an integer, the user can specify the number of lines to be skipped from the beginning in the processing of the selected file, this can be used to skip headers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange CurrencyNames persist file CSV &amp;quot;C:/data/ISOCurrencyCodes081507.csv&amp;quot; ... skipLines 1 encoding &amp;quot;UTF-8&amp;quot; {&lt;br /&gt;
   ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will skip the first line of the CSV file.&lt;br /&gt;
&lt;br /&gt;
===report===&lt;br /&gt;
&lt;br /&gt;
If a '''datainterchange''' unit is defined with the &amp;lt;code&amp;gt;report&amp;lt;/code&amp;gt; keyword, a report will be generated for data conversions. The report file is generated by Smooks, lies under &amp;lt;code&amp;gt;/smooks&amp;lt;/code&amp;gt; output directory of the datainterchange bundle, and has a name in the form like &amp;lt;code&amp;gt;&amp;lt;DataInterChangeName&amp;gt;-input.xml&amp;lt;/code&amp;gt; for input processes, and &amp;lt;code&amp;gt;&amp;lt;DataInterChangeName&amp;gt;-output.xml&amp;lt;/code&amp;gt; for output processes. '''Note: turn on report will have an impact performance.'''&lt;br /&gt;
&lt;br /&gt;
===indent===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;indent&amp;lt;/code&amp;gt; is a CSV-format specified keyword which adds indentation character data to the generated event stream. This simply makes the generated event stream easier to read in its serialized form and generally should only be used in testing.&lt;br /&gt;
&lt;br /&gt;
===quoteCharacter===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;quoteCharacter&amp;lt;/code&amp;gt; is a CSV format-specific keyword, which defines the character to use in the CSV file to identify values.&lt;br /&gt;
&lt;br /&gt;
===encoding===&lt;br /&gt;
With the keyword '''enconding''' followed by the encoding name as a string value you are able to specify the valid encoding of the file content.&lt;br /&gt;
&lt;br /&gt;
► '''Example 1''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnitName merge elementSize 50 file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;UTF-8&amp;quot;{}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 2''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnitName remove elementSize 50 file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;GB18030&amp;quot;{}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
► '''Example 3''':&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;interchange SampleInterchangeUnitName persistelementSize 50 file CSV &amp;quot;C:/temp/testFile.csv&amp;quot; delimiter &amp;quot;;&amp;quot; skipLines 1 encoding &amp;quot;ISO-2022-JP&amp;quot;{}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===mappingModel===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;mappingModel&amp;lt;/code&amp;gt; keyword is an EDI-specific keyword which can be used to specify an EDI to XML mapping model in XML format for Smooks.&lt;br /&gt;
&lt;br /&gt;
===validate===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;validate&amp;lt;/code&amp;gt; keyword is an EDI-specific keyword that...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===beans===&lt;br /&gt;
&lt;br /&gt;
The keyword &amp;lt;code&amp;gt;beans&amp;lt;/code&amp;gt; starts the series of entities. The name &amp;quot;bean&amp;quot; comes from the internal entities called JavaBean, which act as data containers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===entity===&lt;br /&gt;
&lt;br /&gt;
With the &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; keyword followed by a fully qualified name, the user can specify the mapping between a source data file and a data-containing entity. The behavior of the mapping can be further fine-tuned with the keywords discussed below. While these keywords can theoretically be combined all together and create very complicated behavior, they are normally used in a simple and straight forward way.&lt;br /&gt;
&lt;br /&gt;
The general form of &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; keywords is:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
entity &amp;lt;ID&amp;gt;&lt;br /&gt;
    [nodeName &amp;lt;node-name&amp;gt;]&lt;br /&gt;
    [createOn &amp;lt;element-map&amp;gt;]&lt;br /&gt;
    [marker &amp;lt;property-name&amp;gt;]&lt;br /&gt;
    [expression '{' &amp;lt;expressions&amp;gt; '}'] &lt;br /&gt;
    [lookup '{' &amp;lt;lookup-rules&amp;gt; '}']&lt;br /&gt;
    [format '{' &amp;lt;formats&amp;gt; '}']&lt;br /&gt;
    [mapping '{' &amp;lt;mappings&amp;gt; '}']&lt;br /&gt;
    [keys '{' &amp;lt;lookup-keys&amp;gt; '}']&lt;br /&gt;
;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The order of the keywords is fixed, i.e. they are all optional, but must appear in the given order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====nodeName====&lt;br /&gt;
&lt;br /&gt;
With the optional keyword &amp;lt;code&amp;gt;nodeName&amp;lt;/code&amp;gt; followed by a string you can specify the name (alias) of corresponding elements inside an (XML) input/output configuration file. This name is used to identify entities within an XML file using the [http://freemarker.org/docs/pgui_datamodel.html NodeModel of Freemarker] instead of using the standard Java Object Model name. For example:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores remove vectorName &amp;quot;stores&amp;quot; elementSize 83 file XML &amp;quot;C:/.../net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/stores.xml&amp;quot; beans {&lt;br /&gt;
	entity Mregion nodeName    &amp;quot;region&amp;quot;&lt;br /&gt;
	entity Mstore nodeName     &amp;quot;store&amp;quot;&lt;br /&gt;
	entity Mwarehouse nodeName &amp;quot;warehouse&amp;quot; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The result from this example code is the generation of Smooks configuration files, in which the structure of the output data file (order of elements) will be the same as declared inside the beans {...} expression block. The alias you have specified after the keyword will be used as element (entity) name inside the XML files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Figure3&amp;quot;&amp;gt; [[File:FreeMarkerNodeModelStoreInEx.png|600px|thumb|center|''Figure 3: Store-import.xml and  Store-export.xml with NodeModel'']] &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The use of this keyword gives you the flexibility of naming entities using aliases in order to match any third part system description. By omitting the definition of both aliases ''region'' and ''warehouse'' like shown below, we obtain slightly divergent but very different contents than the ones from above.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Stores remove vectorName &amp;quot;stores&amp;quot; elementSize 83 file XML &amp;quot;C:/.../net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/stores.xml&amp;quot; beans {&lt;br /&gt;
	entity Mregion&lt;br /&gt;
	entity Mstore nodeName     &amp;quot;store&amp;quot;&lt;br /&gt;
	entity Mwarehouse&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:FreeMarkerJavaObjectModelStoreInEx.png|600px|thumb|center|''Figure 4: Store-import.xml (normal) and Store-export.xml (normal) with Java Object Model Name'']]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the declaration order of each node names matters.&lt;br /&gt;
&lt;br /&gt;
====createOn====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;createOn&amp;lt;/code&amp;gt; keyword followed by a string specifies on which input element should an entity to be created. For example:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
entity Mcurrency createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; ... {&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will create an &amp;lt;code&amp;gt;Mcurrency&amp;lt;/code&amp;gt; entity when encountering &amp;lt;code&amp;gt;/Envelope/Cube/Cube&amp;lt;/code&amp;gt; in the source data file.&lt;br /&gt;
&lt;br /&gt;
====marker====&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; keyword optionally followed by a property-name, the user can set the data to be imported to have an additional property under the given name whose value set to 1, while updating the existing data to have this property having value 0. This could be useful to identify the most recent import of some periodically updated data. For example:&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entity McurrencyStream createOn &amp;quot;/Envelope/Cube&amp;quot; marker latest expression {&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will make the entity &amp;lt;code&amp;gt;McurrencyStream&amp;lt;/code&amp;gt; to have a property &amp;quot;&amp;lt;code&amp;gt;latest&amp;lt;/code&amp;gt;&amp;quot;, which is to be set to 1 for the most recently imported data.&lt;br /&gt;
&lt;br /&gt;
====expression====&lt;br /&gt;
&lt;br /&gt;
With an &amp;lt;code&amp;gt;expression { ... }&amp;lt;/code&amp;gt; block, the user can define expressions that assign certain value to an entity property. These expressions are of two types, the first one is:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  assign &amp;lt;id&amp;gt; with &amp;lt;value&amp;gt; as &amp;lt;type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
this will assign the property &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; with the value of &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, in type of &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; may be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;NowDate&amp;lt;/code&amp;gt;: the date of now (the time point of action)&lt;br /&gt;
* &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;: the date when the process started&lt;br /&gt;
* &amp;lt;code&amp;gt;UniversallyUniqueIdentifier&amp;lt;/code&amp;gt;: an UUID&lt;br /&gt;
&lt;br /&gt;
and &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; may be one of the following:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt;: the value of NowDate or StartDate will be in date format&lt;br /&gt;
* &amp;lt;code&amp;gt;Milliseconds&amp;lt;/code&amp;gt;: the value of NowDate or StartDate will be in millisecond&lt;br /&gt;
* &amp;lt;code&amp;gt;Nanoseconds&amp;lt;/code&amp;gt;: the value of NowDate or StartDate will be in nanosconds&lt;br /&gt;
* &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt;: the value of UUID will be random&lt;br /&gt;
* &amp;lt;code&amp;gt;ExecuteContext&amp;lt;/code&amp;gt;: the value of UUID will be unique for the execute context&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;lt;code&amp;gt;Random&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ExecuteContext&amp;lt;/code&amp;gt; should be only combined with &amp;lt;code&amp;gt;UniversallyUniqueIdentifier&amp;lt;/code&amp;gt;, while the other types should be only combined with &amp;lt;code&amp;gt;NowDate&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;StartDate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  entity McurrencyStream createOn &amp;quot;/Envelope/Cube&amp;quot; marker latest expression {&lt;br /&gt;
      assign importDate with NowDate as Date&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will assign the &amp;lt;code&amp;gt;importDate&amp;lt;/code&amp;gt; as the current date in &amp;lt;code&amp;gt;Date&amp;lt;/code&amp;gt; format.&lt;br /&gt;
&lt;br /&gt;
The other type of expression has the form:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  copy &amp;lt;target-property&amp;gt; from &amp;lt;entity-name&amp;gt; property &amp;lt;from-property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will copy the value of &amp;lt;code&amp;gt;from-property&amp;lt;/code&amp;gt; from the &amp;lt;code&amp;gt;entity-name&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;target-property&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  entity Mcurrency createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; expression {&lt;br /&gt;
      copy currencyDate from McurrencyDay property ratingDate&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will copy the value of &amp;lt;code&amp;gt;ratingDate&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;McurrencyDay&amp;lt;/code&amp;gt; entity to &amp;lt;code&amp;gt;currencyDate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====lookup====&lt;br /&gt;
&amp;lt;div id=&amp;quot;lookup&amp;quot;&amp;gt;&lt;br /&gt;
With a &amp;lt;code&amp;gt;lookup&amp;lt;/code&amp;gt; { ... } block, the user can define a set of '''lookup-rules''' to identify complex data within our persistence layer (DB or In-Memory...). This makes sense when the data in a source file can't be clearly identified by an attribute (id), but moreover when the set data it contains is persisted over several entities.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
lookup {&lt;br /&gt;
   [&amp;lt;lookup-rules&amp;gt;]*&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lookup-rule expression:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
lookup-rule: &lt;br /&gt;
 'for' .. 'on' .. 'createOn' .. 'with' .. 'cacheSize' .. 'mapTo' .. ['allowNoResult' | 'allowNoResult' | 'markerPath']&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interchange Currencies describedBy &amp;quot;european central bank currency exchange rates based on euro&amp;quot; persist elementSize 50 file&lt;br /&gt;
	XML &amp;quot;C:/git/development/net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/eurofxref-hist-90d.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	mapByAttribute beans {&lt;br /&gt;
		entity McurrencyStream createOn &amp;quot;/Envelope/Cube&amp;quot; marker latest expression {&lt;br /&gt;
			assign importDate with NowDate as Date&lt;br /&gt;
		}&lt;br /&gt;
		entity McurrencyDay createOn &amp;quot;/Envelope/Cube/Cube&amp;quot; format {&lt;br /&gt;
			for ratingDate coding &amp;quot;yyyy-MM-dd&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		mapping {&lt;br /&gt;
			map ratingDate to &amp;quot;time&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		entity Mcurrency createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; expression {&lt;br /&gt;
			copy currencyDate from McurrencyDay property ratingDate&lt;br /&gt;
		}&lt;br /&gt;
		lookup {&lt;br /&gt;
			for currency_name on McurrencyName createOn &amp;quot;/Envelope/Cube/Cube/Cube&amp;quot; with isoCode cacheSize 300 mapTo &amp;quot;currency&amp;quot; allowNoResult&lt;br /&gt;
			markerPath {&lt;br /&gt;
				markerEntity McurrencyNameStream markedBy latest&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		mapping {&lt;br /&gt;
			map conversion_ratio to &amp;quot;rate&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We will provide you in upcoming releases with more information about so called '''locator''' instances, which are generated in the background on the basis of the '''lookups''' you would have defined, in order to query persisted data. This will give you more insights about how the Datainterchange DSL really works at the lower level.&lt;br /&gt;
&lt;br /&gt;
====format====&lt;br /&gt;
&lt;br /&gt;
With a &amp;lt;code&amp;gt;format { ... }&amp;lt;/code&amp;gt; block, the user can define the format of the entity property being converted. A &amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt; block can have more than one format definitions, in the following format:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    format {&lt;br /&gt;
        for &amp;lt;property&amp;gt; coding &amp;lt;format-string&amp;gt; [locale &amp;lt;locale-string&amp;gt;]&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    entity McurrencyDay createOn &amp;quot;/Envelope/Cube/Cube&amp;quot; format {&lt;br /&gt;
        for ratingDate coding &amp;quot;yyyy-MM-dd&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will convert the &amp;lt;code&amp;gt;&amp;quot;/Envelope/Cube/Cube&amp;quot;&amp;lt;/code&amp;gt; data to &amp;lt;code&amp;gt;ratingDate&amp;lt;/code&amp;gt; property of &amp;lt;code&amp;gt;McurrencyDay&amp;lt;/code&amp;gt; in format &amp;lt;code&amp;gt;&amp;quot;yyyy-MM-dd&amp;quot;&amp;lt;/code&amp;gt;, where&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    entity EDIOrderHeader createOn &amp;quot;/Order/header&amp;quot; format {&lt;br /&gt;
        for hdrDate coding &amp;quot;EEE MMM dd HH:mm:ss zzz yyyy&amp;quot; locale &amp;quot;en_US&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will format the &amp;lt;code&amp;gt;hdrDate&amp;lt;/code&amp;gt; in format &amp;lt;code&amp;gt;&amp;quot;EEE MMM dd HH:mm:ss zzz yyyy&amp;quot;&amp;lt;/code&amp;gt; with English locale, i.e. the month and weekday names will be in English.&lt;br /&gt;
&lt;br /&gt;
====expose====&lt;br /&gt;
&lt;br /&gt;
With a &amp;lt;code&amp;gt;expose { ... }&amp;lt;/code&amp;gt; block, when and only when exporting an entity, the user can expose properties of its referenced entity. A &amp;lt;code&amp;gt;expose&amp;lt;/code&amp;gt; block can have more than one expose definitions, in the following syntax format:&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    expose {&lt;br /&gt;
        ref &amp;lt;EntityReference&amp;gt; &lt;br /&gt;
            on &amp;lt;EntityAttribute&amp;gt; &lt;br /&gt;
          | subExpose&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''subExpose''' has the same syntax format as '''expose''', which is: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    expose {&lt;br /&gt;
        ref &amp;lt;EntityReference&amp;gt; &lt;br /&gt;
            on &amp;lt;EntityAttribute&amp;gt; &lt;br /&gt;
          | subExpose&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&lt;br /&gt;
Entities are defined as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entity CashSlip {&lt;br /&gt;
     ...&lt;br /&gt;
     var boolean payed&lt;br /&gt;
     ref cascade CashPosition[ * ]positions opposite slip&lt;br /&gt;
     ref Mcustomer customer opposite slips  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
entity Mcustomer extends BaseID {&lt;br /&gt;
     ...&lt;br /&gt;
     var long account_num&lt;br /&gt;
     var String name&lt;br /&gt;
     ref Mregion region opposite customers&lt;br /&gt;
     ref Msales_fact[ * ]sales opposite customer  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In datainterchange DSL, when exporting entity &amp;quot;'''CashSlip'''&amp;quot;, the user can use  &amp;quot;'''expose'''&amp;quot; keyword to export the &amp;quot;'''account_num'''&amp;quot; property of &amp;quot;'''Mcustomer'''&amp;quot; referenced here as &amp;quot;'''customer'''&amp;quot;. &lt;br /&gt;
And sub-reference of the reference can also be exported. In the following example, the &amp;quot;'''region'''&amp;quot; reference (of entity &amp;quot;'''Mregion'''&amp;quot;) in &amp;quot;'''Mcustomer'''&amp;quot; has a property &amp;quot;'''sales_city'''&amp;quot;, it is also exported.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
interchange CashSlip describedBy &amp;quot;CashSlip&amp;quot; merge vectorName &amp;quot;cashslip&amp;quot; file XML &amp;quot;C:/MC/cashdata.xml&amp;quot; encoding &amp;quot;UTF-8&amp;quot;&lt;br /&gt;
     path {&lt;br /&gt;
         entity CashSlip&lt;br /&gt;
&lt;br /&gt;
         expose {&lt;br /&gt;
             customer on account_num&lt;br /&gt;
             customer expose {&lt;br /&gt;
                 region on sales_city&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the generated Smooks config XML, the section will look like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;account_num&amp;gt;${(CashSlip.customer.account_num)!}&amp;lt;/account_num&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the sub-expose part looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;sales_city&amp;gt;${(CashSlip.customer.region.sales_city)!}&amp;lt;/sales_city&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* This recursive-export can go as many levels as the user want.&lt;br /&gt;
&lt;br /&gt;
====mapping====&lt;br /&gt;
With a &amp;lt;code&amp;gt;mapping { ... }&amp;lt;/code&amp;gt; block, the user can easily '''map''' (or rather '''match''') attributes of the data model to values from external source files.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
mapping {&lt;br /&gt;
 [map &amp;lt;entity-attribute&amp;gt; to &amp;lt;Data&amp;gt;]*&lt;br /&gt;
 [mapBlob &amp;lt;entity-attribute&amp;gt; to &amp;lt;Data&amp;gt; [extension &amp;lt;blob-file-extension] [path &amp;lt;blob-path&amp;gt;] mimeType &amp;lt;mine-type&amp;gt; ]*&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
mapping{&lt;br /&gt;
  map conversion_ratio to &amp;quot;rate&amp;quot;&lt;br /&gt;
  mapBlob currency_icon to &amp;quot;currency_icon&amp;quot; extension &amp;quot;png&amp;quot; path &amp;quot;C:/data/currency_images&amp;quot; mimeType png&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first map of the above example will map the attribute conversion_ratio of the entity to field &amp;quot;rate&amp;quot;.&lt;br /&gt;
The second mapBlob does a bit more work, it will:&lt;br /&gt;
&lt;br /&gt;
  * generate full file paths by combining the path, the file names specified by &amp;quot;currency_icon&amp;quot; field, and the extension,&lt;br /&gt;
  * upload the files into database with the given mimeType, and&lt;br /&gt;
  * assign the UUID of the blob to property currency_icon of the entity.&lt;br /&gt;
&lt;br /&gt;
Please note that the only valid attributes here are the members of the corresponding entity, which the user has chosen prior defining the &amp;lt;code&amp;gt;mapping&amp;lt;/code&amp;gt; block itself.&lt;br /&gt;
&lt;br /&gt;
====keys====&lt;br /&gt;
With a &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; { ... } block, the user can define a set of '''keys''' to identify data within our persistence layer (DB or In-Memory...). &lt;br /&gt;
This makes sence when the data in a source file can't be clearly identified by an attribute (id). Therefore a set of attributes (keys) can be defined and then be used as identification parameter set by a [[#lookup|''lookups'']] instance in order to query our data pool and identify data using several criteria.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
keys {&lt;br /&gt;
 [key &amp;lt;entity-attribute&amp;gt;]*&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming you try to update the address data of an employee from an entity named Employee, but you happen not to have his/her personal id. By setting a &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; { ... } block, like shown here below, you allow the Datainterchange unit to look into the database after employee's data based on the key set inside this block, rather than using a personal id, which might have been here unique and more than enough to find the employee right away.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
keys {&lt;br /&gt;
  key last_name&lt;br /&gt;
  key first_name&lt;br /&gt;
  key age&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the only valid attributes here are members of the corresponding entity, that you would have chosen prior defining the &amp;lt;code&amp;gt;keys&amp;lt;/code&amp;gt; block itself.&lt;br /&gt;
&lt;br /&gt;
==TriggerView==&lt;br /&gt;
A TriggerView will be automatically generated by the DataInterchange DSL as soon as you define an interchange unit inside the model file and save it. &lt;br /&gt;
&lt;br /&gt;
You can see on the right side of the figure shown below, the definition of 10 interchange units within the Datainterchange model file (blue rectangles); and on the right side of the figure you can see, how the TriggerView looks like (green rectangle), when it is embedded inside an application page in its entirety. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TriggerView.png|600px|center|''Figure 5: Datainterchange TriggerView Definition and Application Views''|thumbnail|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To achieve this result you need to do two simple steps. You need first to either integrate the TriggerView into an existing perspective or create a new perspective and then integrate the view into it, like shown below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
► '''Example 1''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import ns net.osbee.sample.foodmart.datainterchanges&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
package net.osbee.sample.foodmart.perspectives {&lt;br /&gt;
&lt;br /&gt;
	perspective Currencies iconURI &amp;quot;employee&amp;quot; {&lt;br /&gt;
		sashContainer c1 orientation horizontal {&lt;br /&gt;
			part imex view dataInterchange datainterchanges spaceVolume &amp;quot;20&amp;quot;&lt;br /&gt;
			...&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The most important thing in this example is to notice the use of the keyword '''view''' followed by the keyword '''dataInterchange''' and the name ''datainterchanges'' referring to the package, in which all datainterchange unit definitions have to be found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second step would be to create a menu entry for you to be able to access the newly created or altered perspective in the application via the menu bar, like shown in the following example.&lt;br /&gt;
&lt;br /&gt;
► '''Example 2''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import ns net.osbee.sample.foodmart.perspectives.Currencies&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
package net.osbee.sample.foodmart.menues {  &lt;br /&gt;
	...&lt;br /&gt;
	entry Menu describedBy &amp;quot;my menu&amp;quot; { &lt;br /&gt;
		entry Perspectives {&lt;br /&gt;
			entry MasterData {&lt;br /&gt;
				entry Company image &amp;quot;company&amp;quot; perspective Company&lt;br /&gt;
				entry Employees image &amp;quot;employee&amp;quot; perspective Employee&lt;br /&gt;
				entry Products image &amp;quot;products&amp;quot; perspective Products&lt;br /&gt;
				entry CashRegisterData image &amp;quot;editor_area&amp;quot; perspective CashMasterDataRegister&lt;br /&gt;
&lt;br /&gt;
				entry Currencies image &amp;quot;products&amp;quot; perspective Currencies&lt;br /&gt;
&lt;br /&gt;
				entry People image &amp;quot;task_action_delegate&amp;quot; perspective PeopleMock&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		...&lt;br /&gt;
	...	}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:TriggerViewMenuSelection.png|600px|center|''Figure 6: Datainterchange TriggerView Menu Selection''|thumbnail|600px]]&lt;br /&gt;
&lt;br /&gt;
The figure above shows the same menu structure defined in the example 2 and results in showing the application with the TriggerView, as you can see on the left side of the figure 5. You can get and review more information on how to create menu entries and perspectives in both [[Menu DSL]] and [[Perspective DSL]] documentation pages. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Among all the components that are generated for the use of each interchange unit functions are action buttons, you would find inside toolbars in some dialogs. Usually you have to define them by yourself in the corresponding DSL files. This step is not needed here, since it has already been generated for this particular view.&lt;br /&gt;
&lt;br /&gt;
[[File:TriggerViewActionButtons.png|600px|center|''Figure 7: Action Buttons for datainterchange unit functions''|thumbnail|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that it is '''not mandatory''' to display all available functionalities through the use of the TriggerView like shown here above. It is customary to only use parts of the generated Datainterchange components (e.g. action buttons) where you see them fit; for instance in order to only use each interchange unit functionalities (import and/or export) in separated and dedicated views (dialogs). Therefore, we also recommend you to have a look at the [[Action DSL]] documentation page in order to understand how to create your own toolbars, and so forth creating the buttons using import or export functions of any datainterchange unit you would have created.&lt;br /&gt;
&lt;br /&gt;
==Smooks Configuration and Settings File==&lt;br /&gt;
'''Please note that whenever a model is saved''', the '''Datainterchange DSL''' will do three things '''automatically''':&lt;br /&gt;
&lt;br /&gt;
* generate Java classes,&lt;br /&gt;
* generate Smooks configuration files for both import and export functions, and&lt;br /&gt;
* generate a config file to modify the import and export paths on runtime.&lt;br /&gt;
&lt;br /&gt;
===Smooks Configuration File===&lt;br /&gt;
&lt;br /&gt;
The OS.bee implementation of Data Interchange interface is based on Smooks. Smooks is a Java framework for processing XML and non XML data (CSV, EDI, Java etc) by mapping data to JavaBeans, which can later be persisted, enriched (merge with existing data from other source), or converted and exported into other formats.&lt;br /&gt;
&lt;br /&gt;
Smooks relies on a proper configuration file for the import / export processes. These configuration files are generated by the Datainterchange DSL automatically. Here is a brief introduction of how the generated Smooks configuration files work.&lt;br /&gt;
&lt;br /&gt;
When a data import / export Smooks instance is initiated, it will be supplied with the generated config file. This file defines the actions to be performed upon certain events during the SAX parsing process. Here is an example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line='line'&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;smooks-resource-list xmlns=&amp;quot;http://www.milyn.org/xsd/smooks-1.1.xsd&amp;quot; xmlns:csv=&amp;quot;http://www.milyn.org/xsd/smooks/csv-1.2.xsd&amp;quot; xmlns:dao=&amp;quot;http://www.milyn.org/xsd/smooks/persistence-1.2.xsd&amp;quot; xmlns:jb=&amp;quot;http://www.milyn.org/xsd/smooks/javabean-1.2.xsd&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;jb:bean beanId=&amp;quot;McurrencyNameStream&amp;quot; class=&amp;quot;net.osbee.sample.foodmart.entities.McurrencyNameStream&amp;quot; createOnElement=&amp;quot;/csv-set&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;jb:expression property=&amp;quot;importDate&amp;quot;&amp;gt;PTIME.nowDate&amp;lt;/jb:expression&amp;gt;&lt;br /&gt;
        &amp;lt;jb:wiring beanIdRef=&amp;quot;McurrencyName&amp;quot; setterMethod=&amp;quot;addToCurrencyNames&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/jb:bean&amp;gt;&lt;br /&gt;
    &amp;lt;jb:bean beanId=&amp;quot;McurrencyName&amp;quot; class=&amp;quot;net.osbee.sample.foodmart.entities.McurrencyName&amp;quot; createOnElement=&amp;quot;/csv-set/csv-record&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;jb:value data=&amp;quot;/csv-set/csv-record/isoCode&amp;quot; decoder=&amp;quot;String&amp;quot; property=&amp;quot;isoCode&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;jb:value data=&amp;quot;/csv-set/csv-record/name&amp;quot; decoder=&amp;quot;String&amp;quot; property=&amp;quot;name&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;jb:value data=&amp;quot;/csv-set/csv-record/countries&amp;quot; decoder=&amp;quot;String&amp;quot; property=&amp;quot;countries&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/jb:bean&amp;gt;&lt;br /&gt;
    &amp;lt;csv:reader fields=&amp;quot;isoCode,name,countries&amp;quot; indent=&amp;quot;false&amp;quot; separator=&amp;quot;;&amp;quot; skipLines=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;params&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;stream.filter.type&amp;quot;&amp;gt;SAX&amp;lt;/param&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;inputType&amp;quot;&amp;gt;input.csv&amp;lt;/param&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;smooks.visitors.sort&amp;quot;&amp;gt;false&amp;lt;/param&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;input.csv&amp;quot; type=&amp;quot;input.type.actived&amp;quot;&amp;gt;C:/git/net.osbee.sample.foodmart/net.osbee.sample.foodmart.datainterchange/smooks-resources/ISOCurrencyCodes081507.csv&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/smooks-resource-list&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Further informations on the Smoooks framework are available and can be reviewed in its [http://www.smooks.org/guide documentation] you will find on the [http://www.smooks.org/index official website].&lt;br /&gt;
&lt;br /&gt;
===Path Config File===&lt;br /&gt;
&lt;br /&gt;
The file is interpreted using the Properties xml im- and export method and looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE properties SYSTEM &amp;quot;http://java.sun.com/dtd/properties.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
&amp;lt;comment&amp;gt;dataInterchange file URLs&amp;lt;/comment&amp;gt;&lt;br /&gt;
&amp;lt;entry key=&amp;quot;EmployeesDepartment-import&amp;quot;&amp;gt;C:/myimports/employeesdepartment.xml&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;entry key=&amp;quot;EmployeesDepartment-export&amp;quot;&amp;gt;C:/myexports/employeesdepartment.xml&amp;lt;/entry&amp;gt;&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default this file is named like the title in the Data Interchange package and extended by &amp;quot;Config&amp;quot; and has the extension &amp;quot;xml&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;package net.osbee.sample.foodmart.datainterchanges title &amp;quot;DataInterchange&amp;quot; {}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
leads to the filename:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DataInterchangeConfig.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and is stored platform independently in the current user's home directory under the subdirectory &amp;quot;.osbee&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An administrator must receive this configuration file with the application, modify it and place it somewhere on the application server. The path to this configuration file must be supplied in the product's preferences (&amp;lt;code&amp;gt;org.eclipse.osbp.production.prefs&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;datainterchange/datainterchangeConfiguration=c\:\\DataInterchangeConfig.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path value obviously depends on the operating system you are developing.&lt;br /&gt;
&lt;br /&gt;
===Further Reading===&lt;br /&gt;
&lt;br /&gt;
There is a lot of information to be found in the internet that describe the formal structure of the smooks configuration in any case. A very good one can be found at [https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.3/html-single/smooks_development_guide/index RedHat].&lt;br /&gt;
&lt;br /&gt;
== Copyright Notice ==&lt;br /&gt;
{{Copyright Notice}}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Perspective_DSL&amp;diff=3742</id>
		<title>Perspective DSL</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Perspective_DSL&amp;diff=3742"/>
				<updated>2019-08-30T15:56:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: added description for keyword &amp;quot;synchronized&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Os.bee Applications which are generated using the OS.bee software factory have by default a front end based on the E4-UI-Model. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:PerspectiveDSL_01.png|600px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can recognize on the above graphics the main elements of theE4-Model are:&lt;br /&gt;
&lt;br /&gt;
* Perspective.  A perspective is a container for a set of UI graphic elements, like sash, part stack, part, area, etc. Perspectives can be used to store different arrangements of UI graphic elements. Each Workbench window contains one or more perspectives. A perspective defines the initial set and layout of views in the Workbench window. Each perspective provides a set of functionality aimed at accomplishing a specific type of task or works with specific types of resources.&lt;br /&gt;
&lt;br /&gt;
* Sash. A sash is a UI graphic elements container, and it displays all its children at the same time either horizontally or vertically aligned. Default is vertically aligned.&lt;br /&gt;
&lt;br /&gt;
* Part. A Part is a container for a view. Parts are user interface components which allow you to navigate and modify data.  &lt;br /&gt;
&lt;br /&gt;
* Part stack. A part stack contains a stack of parts showing the content of one part while displaying only the headers of the other parts.&lt;br /&gt;
&lt;br /&gt;
* View. A view is used to work on a set of data, which might be a hierarchical structure. If data is changed via the view, this change is directly applied to the underlying data structure. A predefined view could be a chart, a dialog, a grid, an organigram, a report, a select table, a table or a topology in OS.bee.&lt;br /&gt;
&lt;br /&gt;
==Perspective DSL==&lt;br /&gt;
&lt;br /&gt;
The PerspectiveDSL is used to build the ui for Os.bee Application. &lt;br /&gt;
&lt;br /&gt;
You can find instances of these elements in Os.bee Applications as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:PerspectiveDSL_02.png|600px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main semantic elements of the PerspectiveDSL are:&lt;br /&gt;
&lt;br /&gt;
* “package” - the root element that contains all the other elements. A model can contain multiple packages. &lt;br /&gt;
&lt;br /&gt;
* “perspective” - define the perspective details, e.g. perspective name, the description… &lt;br /&gt;
&lt;br /&gt;
* “sashContainer” - define the main element sash container for the perspective. &lt;br /&gt;
&lt;br /&gt;
* “partStack” -  define the main element part stack for the perspective.&lt;br /&gt;
&lt;br /&gt;
* “part” -  the main element part for the perspective.&lt;br /&gt;
&lt;br /&gt;
* “view” -  define the part view of the perspective, it can be report, dialog, table, chart …&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
====package definition====&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package &amp;lt;package name&amp;gt; [{&lt;br /&gt;
	perspective &amp;lt;perspective name&amp;gt;  . . .&lt;br /&gt;
. . .&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One or more than one perspective could be defined in the same package.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package net.osbee.sample.foodmart.perspectives {&lt;br /&gt;
	perspective Employee . . .&lt;br /&gt;
&lt;br /&gt;
	perspective Supplier . . .&lt;br /&gt;
&lt;br /&gt;
	perspective Products . . .&lt;br /&gt;
&lt;br /&gt;
	. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Employee, &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Supplier, &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Products and also other perspectives are defined in the same &amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====perspective====&lt;br /&gt;
&lt;br /&gt;
This is the main part of this model. All the perspective details can be defined here.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective &amp;lt;perspective name&amp;gt; [described by &amp;lt;description&amp;gt;]&lt;br /&gt;
	[process &amp;lt;blip.blip name&amp;gt; usertask &amp;lt;blip.BlipUserTask name&amp;gt;]&lt;br /&gt;
	([icon &amp;lt;iconURI&amp;gt;] &lt;br /&gt;
     &amp;amp;&lt;br /&gt;
	 [accessibility &amp;lt;accessibilityPhrase&amp;gt;] &lt;br /&gt;
     &amp;amp;&lt;br /&gt;
	 [toolbar &amp;lt;action.ActionToolbar&amp;gt;])&lt;br /&gt;
	{ &lt;br /&gt;
        &amp;lt;PerspectiveElement&amp;gt; &lt;br /&gt;
		. . .&lt;br /&gt;
        [eventManager &amp;lt;PerspectiveEventManager&amp;gt;]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;described by&amp;lt;/code&amp;gt; is optional; you can use this keyword to define the description of this perspective.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;process. . . usertask. . . &amp;lt;/code&amp;gt; is optional, which define the blip process and blip usertask from predefined blipDSL for this perspective.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt; is optional, it defines the identifier for a resource, e.g. icon file.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt; is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;toolbar&amp;lt;/code&amp;gt; is optional, which define the action tool bar from predefined [[Action DSL]]. Graphical control elements are defined, on which on-screen buttons, icons, menus, or other input or output elements are placed.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
perspective ProductMaintenanceSelect process ProductMaintenance usertask SelectSomeProducts toolbar HandleTask icon &amp;quot;information&amp;quot; {&lt;br /&gt;
	. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the next sections, the important elements and keywords of perspective will be introduced one by one.&lt;br /&gt;
&lt;br /&gt;
====PerspectiveElement====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;PerspectiveElement&amp;lt;/code&amp;gt; is used to define the main elements of the perspective.&lt;br /&gt;
&lt;br /&gt;
The main elements are sash container, part stack and part.&lt;br /&gt;
&lt;br /&gt;
=====sashContainer=====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;sashContainer&amp;lt;/code&amp;gt; is used to define the main element sash container of perspective. &lt;br /&gt;
&lt;br /&gt;
A sash container displays all its children at the same time either horizontally or vertically aligned.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
sashContainer &amp;lt;PerspectiveSashContainer ID&amp;gt;&lt;br /&gt;
	[orientation horizontal|vertical] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[selectedElement &amp;lt;PerspectiveElement ID&amp;gt;]&lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;]&lt;br /&gt;
	{ &lt;br /&gt;
PerspectiveElement &lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;orientation&amp;lt;/code&amp;gt; is optional, it can be horizontal or vertical, and default value is vertical.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;selectedElement&amp;lt;/code&amp;gt; is optional; you can select one of the next level perspective element here and which is selected will be shown in the first place.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt; is optional, it redefine the space volume of this sash container in screen. A number will be defined to representing the relative size of this container.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt; is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
		sashContainer bottom orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, in the first place, the &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''outer''''' is defined, in this sash container, 2 second level &amp;lt;code&amp;gt;sash containers&amp;lt;/code&amp;gt; are defined as horizontal, they are '''''top''''' and '''''bottom'''''.&lt;br /&gt;
&lt;br /&gt;
=====partStack=====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;partStack&amp;lt;/code&amp;gt; is used to define the main element part stack of perspective.&lt;br /&gt;
&lt;br /&gt;
A part stack contains a stack of parts showing the contents of one part while displaying only the headers of the other parts.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
partStack &amp;lt;PerspectivePartStack ID&amp;gt;&lt;br /&gt;
	[selectedElement &amp;lt;PerspectivePart ID&amp;gt;]&lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[synchronize &amp;lt;PerspectivePartStack ID&amp;gt;]&lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;]&lt;br /&gt;
	{&lt;br /&gt;
PerspectiveElement &lt;br /&gt;
. . .&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;selectedElement&amp;lt;/code&amp;gt;  is optional; you can select the next level perspective element here and which is selected will be shown in the first place.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;synchronize&amp;lt;/code&amp;gt; is optional; if you have two part stacks in the perspective and want them to show their parts synchronously (i.e. if you open the second part in part stack 1, then you want to also activate the second part in part stack 2), here you can name the ID of the other part stack.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt;  is optional, it redefine the space volume of this part stack in screen. A number will be defined to representing the relative size of this part stack.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt;  is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
		sashContainer bottom orientation horizontal {&lt;br /&gt;
			partStack EmployeeStack spaceVolume &amp;quot;70&amp;quot; {&lt;br /&gt;
				. . .&lt;br /&gt;
			}&lt;br /&gt;
			partStack Payroll spaceVolume &amp;quot;30&amp;quot; {&lt;br /&gt;
				. . .&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, 2 &amp;lt;code&amp;gt;part stacks&amp;lt;/code&amp;gt; are defined under &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''bottom''''', they are '''''EmployeeStack''''' and '''''Payroll'''''. The sizes of them are redefined here, '''''EmployeeStack''''' takes 70% of the screen width and '''''payroll''''' takes the rest 30%. &lt;br /&gt;
&lt;br /&gt;
=====part=====&lt;br /&gt;
&lt;br /&gt;
Keyword part is used to define the main element part of perspective.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
part &amp;lt;PerspectivePart ID&amp;gt;&lt;br /&gt;
	[described by &amp;lt;description String&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[icon &amp;lt;iconURI string&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[view  select &amp;lt;table.Table&amp;gt; | table &amp;lt;table.Table&amp;gt;&lt;br /&gt;
| chart &amp;lt;chart.Chart&amp;gt; | report &amp;lt;report.Report&amp;gt;&lt;br /&gt;
| organigram &amp;lt;organization.Organization&amp;gt;&lt;br /&gt;
| topology &amp;lt;topology.Topology&amp;gt;&lt;br /&gt;
| dialog &amp;lt;dialog.Dialog&amp;gt; | grid &amp;lt;table.Table&amp;gt;&lt;br /&gt;
 ] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[isClosable]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;described by&amp;lt;/code&amp;gt;  is optional; you can use this keyword to define the description of this part.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt;  is optional, it redefine the space volume of this part in screen. A number will be defined to representing the relative size of this part.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt;  is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt;  is optional, it defines the identifier for a resource, e.g. icon file&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;  is optional, it defines the predefined view of this part, it can be report, dialog, table, chart, organigram, topology.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;isClosable&amp;lt;/code&amp;gt;  is optional; it will allow the user to close this part when this keyword is selected.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			part Orga spaceVolume &amp;quot;40&amp;quot; view organigram FoodMart&lt;br /&gt;
			part Employees spaceVolume &amp;quot;20&amp;quot; view table Employees&lt;br /&gt;
			part EmployeeDialog spaceVolume &amp;quot;40&amp;quot; view dialog Employee&lt;br /&gt;
		}&lt;br /&gt;
		. . .&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, 3 &amp;lt;code&amp;gt;parts&amp;lt;/code&amp;gt; are defined under &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''top''''', they are '''''Orga''''', '''''Employees''''' and '''''EmployeeDialog'''''. The sizes of them are redefined here, '''''Orga''''' and '''''EmployeeDialog''''' take each 40% of the screen width and '''''Employees''''' takes the remaining 20%.  The view of '''''Orga''''' is the predefined &amp;lt;code&amp;gt;organigram&amp;lt;/code&amp;gt; '''''FoodMart'''''; the view of '''''Employees''''' is the predefined &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt; '''''Employee'''''; and the view of '''''EmployeeDialog''''' is the predefined &amp;lt;code&amp;gt;dialog&amp;lt;/code&amp;gt; '''''Employee'''''.&lt;br /&gt;
&lt;br /&gt;
====PerspectiveEventManager====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;eventManager&amp;lt;/code&amp;gt; is used to describe an optional event manager for the perspective. By default (i.e. if no event manager is defined) a change of the data in one perspective part automatically changes the associated data in all other perspective parts (e.g. if one part is a table and another part a dialog to edit this table, then clicking on a line in the table automatically affect the data shown in the dialog). This behaviour can be restricted by using a PerspectiveEventManager &lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
eventManager &amp;lt;name&amp;gt; { &lt;br /&gt;
         targetPart &amp;lt;PerspectivePart partName1&amp;gt; allowedSources {&lt;br /&gt;
                 &amp;lt;PerspectivePart sourceName1&amp;gt; &lt;br /&gt;
                 &amp;lt;PerspectivePart sourceName2&amp;gt; &lt;br /&gt;
                 ...&lt;br /&gt;
         }&lt;br /&gt;
         targetPart &amp;lt;PerspectivePart partName2&amp;gt; allowedSources { &lt;br /&gt;
                 ...&lt;br /&gt;
         } &lt;br /&gt;
	 ... &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;targetPart&amp;lt;/code&amp;gt; describes the perspective part for which we want to restrict the changes automatically being made by other parts.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;allowedSources&amp;lt;/code&amp;gt; describes which parts are allowed to affect the target part.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
     perspective My1stApp icon &amp;quot;employee&amp;quot; { &lt;br /&gt;
    	sashContainer My1stApp orientation horizontal {&lt;br /&gt;
    			part My1stAppTable1 spaceVolume &amp;quot;50&amp;quot;  view editableTable Persons&lt;br /&gt;
    			part My1stAppView1 spaceVolume &amp;quot;50&amp;quot;   view dialog        Person&lt;br /&gt;
    			part My1stAppTable2 spaceVolume &amp;quot;50&amp;quot; view editableTable Persons2&lt;br /&gt;
    			part My1stAppView2 spaceVolume &amp;quot;50&amp;quot;  view dialog        Person2&lt;br /&gt;
    	}&lt;br /&gt;
    	eventManager My1stAppEventManager {&lt;br /&gt;
    		  targetPart My1stAppView1  allowedSources  {My1stAppTable1}&lt;br /&gt;
    		  targetPart My1stAppView2  allowedSources  {My1stAppTable1 My1stAppTable2}&lt;br /&gt;
    	}&lt;br /&gt;
    }    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, there are two perspective parts displaying a table and two parts displaying a dialog corresponding to the table data. By using an &amp;lt;code&amp;gt;eventManager&amp;lt;/code&amp;gt; we ensure that&lt;br /&gt;
&lt;br /&gt;
* clicking on a line in the first  table part, '''''My1stAppTable1''''', shows the corresponding data in both dialogs&lt;br /&gt;
* clicking on a line in the second table part, '''''My1stAppTable2''''', shows the corresponding data only in the second dialog, because the table part '''''My1stAppView1''''', that displays the first dialog, does not have '''''My1stAppTable2''''' in its allowed sources.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copyright Notice ==&lt;br /&gt;
{{Copyright Notice}}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Perspective_DSL&amp;diff=3741</id>
		<title>Perspective DSL</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Perspective_DSL&amp;diff=3741"/>
				<updated>2019-08-28T09:45:11Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: Added example for event managers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Os.bee Applications which are generated using the OS.bee software factory have by default a front end based on the E4-UI-Model. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:PerspectiveDSL_01.png|600px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can recognize on the above graphics the main elements of theE4-Model are:&lt;br /&gt;
&lt;br /&gt;
* Perspective.  A perspective is a container for a set of UI graphic elements, like sash, part stack, part, area, etc. Perspectives can be used to store different arrangements of UI graphic elements. Each Workbench window contains one or more perspectives. A perspective defines the initial set and layout of views in the Workbench window. Each perspective provides a set of functionality aimed at accomplishing a specific type of task or works with specific types of resources.&lt;br /&gt;
&lt;br /&gt;
* Sash. A sash is a UI graphic elements container, and it displays all its children at the same time either horizontally or vertically aligned. Default is vertically aligned.&lt;br /&gt;
&lt;br /&gt;
* Part. A Part is a container for a view. Parts are user interface components which allow you to navigate and modify data.  &lt;br /&gt;
&lt;br /&gt;
* Part stack. A part stack contains a stack of parts showing the content of one part while displaying only the headers of the other parts.&lt;br /&gt;
&lt;br /&gt;
* View. A view is used to work on a set of data, which might be a hierarchical structure. If data is changed via the view, this change is directly applied to the underlying data structure. A predefined view could be a chart, a dialog, a grid, an organigram, a report, a select table, a table or a topology in OS.bee.&lt;br /&gt;
&lt;br /&gt;
==Perspective DSL==&lt;br /&gt;
&lt;br /&gt;
The PerspectiveDSL is used to build the ui for Os.bee Application. &lt;br /&gt;
&lt;br /&gt;
You can find instances of these elements in Os.bee Applications as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:PerspectiveDSL_02.png|600px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main semantic elements of the PerspectiveDSL are:&lt;br /&gt;
&lt;br /&gt;
* “package” - the root element that contains all the other elements. A model can contain multiple packages. &lt;br /&gt;
&lt;br /&gt;
* “perspective” - define the perspective details, e.g. perspective name, the description… &lt;br /&gt;
&lt;br /&gt;
* “sashContainer” - define the main element sash container for the perspective. &lt;br /&gt;
&lt;br /&gt;
* “partStack” -  define the main element part stack for the perspective.&lt;br /&gt;
&lt;br /&gt;
* “part” -  the main element part for the perspective.&lt;br /&gt;
&lt;br /&gt;
* “view” -  define the part view of the perspective, it can be report, dialog, table, chart …&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
====package definition====&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package &amp;lt;package name&amp;gt; [{&lt;br /&gt;
	perspective &amp;lt;perspective name&amp;gt;  . . .&lt;br /&gt;
. . .&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One or more than one perspective could be defined in the same package.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package net.osbee.sample.foodmart.perspectives {&lt;br /&gt;
	perspective Employee . . .&lt;br /&gt;
&lt;br /&gt;
	perspective Supplier . . .&lt;br /&gt;
&lt;br /&gt;
	perspective Products . . .&lt;br /&gt;
&lt;br /&gt;
	. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Employee, &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Supplier, &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Products and also other perspectives are defined in the same &amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====perspective====&lt;br /&gt;
&lt;br /&gt;
This is the main part of this model. All the perspective details can be defined here.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective &amp;lt;perspective name&amp;gt; [described by &amp;lt;description&amp;gt;]&lt;br /&gt;
	[process &amp;lt;blip.blip name&amp;gt; usertask &amp;lt;blip.BlipUserTask name&amp;gt;]&lt;br /&gt;
	([icon &amp;lt;iconURI&amp;gt;] &lt;br /&gt;
     &amp;amp;&lt;br /&gt;
	 [accessibility &amp;lt;accessibilityPhrase&amp;gt;] &lt;br /&gt;
     &amp;amp;&lt;br /&gt;
	 [toolbar &amp;lt;action.ActionToolbar&amp;gt;])&lt;br /&gt;
	{ &lt;br /&gt;
        &amp;lt;PerspectiveElement&amp;gt; &lt;br /&gt;
		. . .&lt;br /&gt;
        [eventManager &amp;lt;PerspectiveEventManager&amp;gt;]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;described by&amp;lt;/code&amp;gt; is optional; you can use this keyword to define the description of this perspective.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;process. . . usertask. . . &amp;lt;/code&amp;gt; is optional, which define the blip process and blip usertask from predefined blipDSL for this perspective.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt; is optional, it defines the identifier for a resource, e.g. icon file.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt; is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;toolbar&amp;lt;/code&amp;gt; is optional, which define the action tool bar from predefined [[Action DSL]]. Graphical control elements are defined, on which on-screen buttons, icons, menus, or other input or output elements are placed.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
perspective ProductMaintenanceSelect process ProductMaintenance usertask SelectSomeProducts toolbar HandleTask icon &amp;quot;information&amp;quot; {&lt;br /&gt;
	. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the next sections, the important elements and keywords of perspective will be introduced one by one.&lt;br /&gt;
&lt;br /&gt;
====PerspectiveElement====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;PerspectiveElement&amp;lt;/code&amp;gt; is used to define the main elements of the perspective.&lt;br /&gt;
&lt;br /&gt;
The main elements are sash container, part stack and part.&lt;br /&gt;
&lt;br /&gt;
=====sashContainer=====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;sashContainer&amp;lt;/code&amp;gt; is used to define the main element sash container of perspective. &lt;br /&gt;
&lt;br /&gt;
A sash container displays all its children at the same time either horizontally or vertically aligned.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
sashContainer &amp;lt;PerspectiveSashContainer ID&amp;gt;&lt;br /&gt;
	[orientation horizontal|vertical] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[selectedElement &amp;lt;PerspectiveElement ID&amp;gt;]&lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;]&lt;br /&gt;
	{ &lt;br /&gt;
PerspectiveElement &lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;orientation&amp;lt;/code&amp;gt; is optional, it can be horizontal or vertical, and default value is vertical.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;selectedElement&amp;lt;/code&amp;gt; is optional; you can select one of the next level perspective element here and which is selected will be shown in the first place.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt; is optional, it redefine the space volume of this sash container in screen. A number will be defined to representing the relative size of this container.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt; is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
		sashContainer bottom orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, in the first place, the &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''outer''''' is defined, in this sash container, 2 second level &amp;lt;code&amp;gt;sash containers&amp;lt;/code&amp;gt; are defined as horizontal, they are '''''top''''' and '''''bottom'''''.&lt;br /&gt;
&lt;br /&gt;
=====partStack=====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;partStack&amp;lt;/code&amp;gt; is used to define the main element part stack of perspective.&lt;br /&gt;
&lt;br /&gt;
A part stack contains a stack of parts showing the contents of one part while displaying only the headers of the other parts.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
partStack &amp;lt;PerspectivePartStack ID&amp;gt;&lt;br /&gt;
	[selectedElement &amp;lt;PerspectivePart ID&amp;gt;]&lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;]&lt;br /&gt;
	{&lt;br /&gt;
PerspectiveElement &lt;br /&gt;
. . .&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;selectedElement&amp;lt;/code&amp;gt;  is optional; you can select the next level perspective element here and which is selected will be shown in the first place.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt;  is optional, it redefine the space volume of this part stack in screen. A number will be defined to representing the relative size of this part stack.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt;  is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
		sashContainer bottom orientation horizontal {&lt;br /&gt;
			partStack EmployeeStack spaceVolume &amp;quot;70&amp;quot; {&lt;br /&gt;
				. . .&lt;br /&gt;
			}&lt;br /&gt;
			partStack Payroll spaceVolume &amp;quot;30&amp;quot; {&lt;br /&gt;
				. . .&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, 2 &amp;lt;code&amp;gt;part stacks&amp;lt;/code&amp;gt; are defined under &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''bottom''''', they are '''''EmployeeStack''''' and '''''Payroll'''''. The sizes of them are redefined here, '''''EmployeeStack''''' takes 70% of the screen width and '''''payroll''''' takes the rest 30%. &lt;br /&gt;
&lt;br /&gt;
=====part=====&lt;br /&gt;
&lt;br /&gt;
Keyword part is used to define the main element part of perspective.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
part &amp;lt;PerspectivePart ID&amp;gt;&lt;br /&gt;
	[described by &amp;lt;description String&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[icon &amp;lt;iconURI string&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[view  select &amp;lt;table.Table&amp;gt; | table &amp;lt;table.Table&amp;gt;&lt;br /&gt;
| chart &amp;lt;chart.Chart&amp;gt; | report &amp;lt;report.Report&amp;gt;&lt;br /&gt;
| organigram &amp;lt;organization.Organization&amp;gt;&lt;br /&gt;
| topology &amp;lt;topology.Topology&amp;gt;&lt;br /&gt;
| dialog &amp;lt;dialog.Dialog&amp;gt; | grid &amp;lt;table.Table&amp;gt;&lt;br /&gt;
 ] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[isClosable]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;described by&amp;lt;/code&amp;gt;  is optional; you can use this keyword to define the description of this part.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt;  is optional, it redefine the space volume of this part in screen. A number will be defined to representing the relative size of this part.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt;  is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt;  is optional, it defines the identifier for a resource, e.g. icon file&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;  is optional, it defines the predefined view of this part, it can be report, dialog, table, chart, organigram, topology.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;isClosable&amp;lt;/code&amp;gt;  is optional; it will allow the user to close this part when this keyword is selected.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			part Orga spaceVolume &amp;quot;40&amp;quot; view organigram FoodMart&lt;br /&gt;
			part Employees spaceVolume &amp;quot;20&amp;quot; view table Employees&lt;br /&gt;
			part EmployeeDialog spaceVolume &amp;quot;40&amp;quot; view dialog Employee&lt;br /&gt;
		}&lt;br /&gt;
		. . .&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, 3 &amp;lt;code&amp;gt;parts&amp;lt;/code&amp;gt; are defined under &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''top''''', they are '''''Orga''''', '''''Employees''''' and '''''EmployeeDialog'''''. The sizes of them are redefined here, '''''Orga''''' and '''''EmployeeDialog''''' take each 40% of the screen width and '''''Employees''''' takes the remaining 20%.  The view of '''''Orga''''' is the predefined &amp;lt;code&amp;gt;organigram&amp;lt;/code&amp;gt; '''''FoodMart'''''; the view of '''''Employees''''' is the predefined &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt; '''''Employee'''''; and the view of '''''EmployeeDialog''''' is the predefined &amp;lt;code&amp;gt;dialog&amp;lt;/code&amp;gt; '''''Employee'''''.&lt;br /&gt;
&lt;br /&gt;
====PerspectiveEventManager====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;eventManager&amp;lt;/code&amp;gt; is used to describe an optional event manager for the perspective. By default (i.e. if no event manager is defined) a change of the data in one perspective part automatically changes the associated data in all other perspective parts (e.g. if one part is a table and another part a dialog to edit this table, then clicking on a line in the table automatically affect the data shown in the dialog). This behaviour can be restricted by using a PerspectiveEventManager &lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
eventManager &amp;lt;name&amp;gt; { &lt;br /&gt;
         targetPart &amp;lt;PerspectivePart partName1&amp;gt; allowedSources {&lt;br /&gt;
                 &amp;lt;PerspectivePart sourceName1&amp;gt; &lt;br /&gt;
                 &amp;lt;PerspectivePart sourceName2&amp;gt; &lt;br /&gt;
                 ...&lt;br /&gt;
         }&lt;br /&gt;
         targetPart &amp;lt;PerspectivePart partName2&amp;gt; allowedSources { &lt;br /&gt;
                 ...&lt;br /&gt;
         } &lt;br /&gt;
	 ... &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;targetPart&amp;lt;/code&amp;gt; describes the perspective part for which we want to restrict the changes automatically being made by other parts.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;allowedSources&amp;lt;/code&amp;gt; describes which parts are allowed to affect the target part.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
     perspective My1stApp icon &amp;quot;employee&amp;quot; { &lt;br /&gt;
    	sashContainer My1stApp orientation horizontal {&lt;br /&gt;
    			part My1stAppTable1 spaceVolume &amp;quot;50&amp;quot;  view editableTable Persons&lt;br /&gt;
    			part My1stAppView1 spaceVolume &amp;quot;50&amp;quot;   view dialog        Person&lt;br /&gt;
    			part My1stAppTable2 spaceVolume &amp;quot;50&amp;quot; view editableTable Persons2&lt;br /&gt;
    			part My1stAppView2 spaceVolume &amp;quot;50&amp;quot;  view dialog        Person2&lt;br /&gt;
    	}&lt;br /&gt;
    	eventManager My1stAppEventManager {&lt;br /&gt;
    		  targetPart My1stAppView1  allowedSources  {My1stAppTable1}&lt;br /&gt;
    		  targetPart My1stAppView2  allowedSources  {My1stAppTable1 My1stAppTable2}&lt;br /&gt;
    	}&lt;br /&gt;
    }    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, there are two perspective parts displaying a table and two parts displaying a dialog corresponding to the table data. By using an &amp;lt;code&amp;gt;eventManager&amp;lt;/code&amp;gt; we ensure that&lt;br /&gt;
&lt;br /&gt;
* clicking on a line in the first  table part, '''''My1stAppTable1''''', shows the corresponding data in both dialogs&lt;br /&gt;
* clicking on a line in the second table part, '''''My1stAppTable2''''', shows the corresponding data only in the second dialog, because the table part '''''My1stAppView1''''', that displays the first dialog, does not have '''''My1stAppTable2''''' in its allowed sources.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Copyright Notice ==&lt;br /&gt;
{{Copyright Notice}}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Perspective_DSL&amp;diff=3740</id>
		<title>Perspective DSL</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Perspective_DSL&amp;diff=3740"/>
				<updated>2019-08-26T12:20:21Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Os.bee Applications which are generated using the OS.bee software factory have by default a front end based on the E4-UI-Model. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:PerspectiveDSL_01.png|600px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can recognize on the above graphics the main elements of theE4-Model are:&lt;br /&gt;
&lt;br /&gt;
* Perspective.  A perspective is a container for a set of UI graphic elements, like sash, part stack, part, area, etc. Perspectives can be used to store different arrangements of UI graphic elements. Each Workbench window contains one or more perspectives. A perspective defines the initial set and layout of views in the Workbench window. Each perspective provides a set of functionality aimed at accomplishing a specific type of task or works with specific types of resources.&lt;br /&gt;
&lt;br /&gt;
* Sash. A sash is a UI graphic elements container, and it displays all its children at the same time either horizontally or vertically aligned. Default is vertically aligned.&lt;br /&gt;
&lt;br /&gt;
* Part. A Part is a container for a view. Parts are user interface components which allow you to navigate and modify data.  &lt;br /&gt;
&lt;br /&gt;
* Part stack. A part stack contains a stack of parts showing the content of one part while displaying only the headers of the other parts.&lt;br /&gt;
&lt;br /&gt;
* View. A view is used to work on a set of data, which might be a hierarchical structure. If data is changed via the view, this change is directly applied to the underlying data structure. A predefined view could be a chart, a dialog, a grid, an organigram, a report, a select table, a table or a topology in OS.bee.&lt;br /&gt;
&lt;br /&gt;
==Perspective DSL==&lt;br /&gt;
&lt;br /&gt;
The PerspectiveDSL is used to build the ui for Os.bee Application. &lt;br /&gt;
&lt;br /&gt;
You can find instances of these elements in Os.bee Applications as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:PerspectiveDSL_02.png|600px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main semantic elements of the PerspectiveDSL are:&lt;br /&gt;
&lt;br /&gt;
* “package” - the root element that contains all the other elements. A model can contain multiple packages. &lt;br /&gt;
&lt;br /&gt;
* “perspective” - define the perspective details, e.g. perspective name, the description… &lt;br /&gt;
&lt;br /&gt;
* “sashContainer” - define the main element sash container for the perspective. &lt;br /&gt;
&lt;br /&gt;
* “partStack” -  define the main element part stack for the perspective.&lt;br /&gt;
&lt;br /&gt;
* “part” -  the main element part for the perspective.&lt;br /&gt;
&lt;br /&gt;
* “view” -  define the part view of the perspective, it can be report, dialog, table, chart …&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
====package definition====&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package &amp;lt;package name&amp;gt; [{&lt;br /&gt;
	perspective &amp;lt;perspective name&amp;gt;  . . .&lt;br /&gt;
. . .&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One or more than one perspective could be defined in the same package.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package net.osbee.sample.foodmart.perspectives {&lt;br /&gt;
	perspective Employee . . .&lt;br /&gt;
&lt;br /&gt;
	perspective Supplier . . .&lt;br /&gt;
&lt;br /&gt;
	perspective Products . . .&lt;br /&gt;
&lt;br /&gt;
	. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Employee, &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Supplier, &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Products and also other perspectives are defined in the same &amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====perspective====&lt;br /&gt;
&lt;br /&gt;
This is the main part of this model. All the perspective details can be defined here.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective &amp;lt;perspective name&amp;gt; [described by &amp;lt;description&amp;gt;]&lt;br /&gt;
	[process &amp;lt;blip.blip name&amp;gt; usertask &amp;lt;blip.BlipUserTask name&amp;gt;]&lt;br /&gt;
	([icon &amp;lt;iconURI&amp;gt;] &lt;br /&gt;
     &amp;amp;&lt;br /&gt;
	 [accessibility &amp;lt;accessibilityPhrase&amp;gt;] &lt;br /&gt;
     &amp;amp;&lt;br /&gt;
	 [toolbar &amp;lt;action.ActionToolbar&amp;gt;])&lt;br /&gt;
	{ &lt;br /&gt;
        &amp;lt;PerspectiveElement&amp;gt; &lt;br /&gt;
		. . .&lt;br /&gt;
        [eventManager &amp;lt;PerspectiveEventManager&amp;gt;]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;described by&amp;lt;/code&amp;gt; is optional; you can use this keyword to define the description of this perspective.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;process. . . usertask. . . &amp;lt;/code&amp;gt; is optional, which define the blip process and blip usertask from predefined blipDSL for this perspective.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt; is optional, it defines the identifier for a resource, e.g. icon file.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt; is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;toolbar&amp;lt;/code&amp;gt; is optional, which define the action tool bar from predefined [[Action DSL]]. Graphical control elements are defined, on which on-screen buttons, icons, menus, or other input or output elements are placed.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
perspective ProductMaintenanceSelect process ProductMaintenance usertask SelectSomeProducts toolbar HandleTask icon &amp;quot;information&amp;quot; {&lt;br /&gt;
	. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the next sections, the important elements and keywords of perspective will be introduced one by one.&lt;br /&gt;
&lt;br /&gt;
====PerspectiveElement====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;PerspectiveElement&amp;lt;/code&amp;gt; is used to define the main elements of the perspective.&lt;br /&gt;
&lt;br /&gt;
The main elements are sash container, part stack and part.&lt;br /&gt;
&lt;br /&gt;
=====sashContainer=====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;sashContainer&amp;lt;/code&amp;gt; is used to define the main element sash container of perspective. &lt;br /&gt;
&lt;br /&gt;
A sash container displays all its children at the same time either horizontally or vertically aligned.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
sashContainer &amp;lt;PerspectiveSashContainer ID&amp;gt;&lt;br /&gt;
	[orientation horizontal|vertical] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[selectedElement &amp;lt;PerspectiveElement ID&amp;gt;]&lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;]&lt;br /&gt;
	{ &lt;br /&gt;
PerspectiveElement &lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;orientation&amp;lt;/code&amp;gt; is optional, it can be horizontal or vertical, and default value is vertical.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;selectedElement&amp;lt;/code&amp;gt; is optional; you can select one of the next level perspective element here and which is selected will be shown in the first place.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt; is optional, it redefine the space volume of this sash container in screen. A number will be defined to representing the relative size of this container.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt; is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
		sashContainer bottom orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, in the first place, the &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''outer''''' is defined, in this sash container, 2 second level &amp;lt;code&amp;gt;sash containers&amp;lt;/code&amp;gt; are defined as horizontal, they are '''''top''''' and '''''bottom'''''.&lt;br /&gt;
&lt;br /&gt;
=====partStack=====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;partStack&amp;lt;/code&amp;gt; is used to define the main element part stack of perspective.&lt;br /&gt;
&lt;br /&gt;
A part stack contains a stack of parts showing the contents of one part while displaying only the headers of the other parts.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
partStack &amp;lt;PerspectivePartStack ID&amp;gt;&lt;br /&gt;
	[selectedElement &amp;lt;PerspectivePart ID&amp;gt;]&lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;]&lt;br /&gt;
	{&lt;br /&gt;
PerspectiveElement &lt;br /&gt;
. . .&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;selectedElement&amp;lt;/code&amp;gt;  is optional; you can select the next level perspective element here and which is selected will be shown in the first place.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt;  is optional, it redefine the space volume of this part stack in screen. A number will be defined to representing the relative size of this part stack.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt;  is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
		sashContainer bottom orientation horizontal {&lt;br /&gt;
			partStack EmployeeStack spaceVolume &amp;quot;70&amp;quot; {&lt;br /&gt;
				. . .&lt;br /&gt;
			}&lt;br /&gt;
			partStack Payroll spaceVolume &amp;quot;30&amp;quot; {&lt;br /&gt;
				. . .&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, 2 &amp;lt;code&amp;gt;part stacks&amp;lt;/code&amp;gt; are defined under &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''bottom''''', they are '''''EmployeeStack''''' and '''''Payroll'''''. The sizes of them are redefined here, '''''EmployeeStack''''' takes 70% of the screen width and '''''payroll''''' takes the rest 30%. &lt;br /&gt;
&lt;br /&gt;
=====part=====&lt;br /&gt;
&lt;br /&gt;
Keyword part is used to define the main element part of perspective.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
part &amp;lt;PerspectivePart ID&amp;gt;&lt;br /&gt;
	[described by &amp;lt;description String&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[icon &amp;lt;iconURI string&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[view  select &amp;lt;table.Table&amp;gt; | table &amp;lt;table.Table&amp;gt;&lt;br /&gt;
| chart &amp;lt;chart.Chart&amp;gt; | report &amp;lt;report.Report&amp;gt;&lt;br /&gt;
| organigram &amp;lt;organization.Organization&amp;gt;&lt;br /&gt;
| topology &amp;lt;topology.Topology&amp;gt;&lt;br /&gt;
| dialog &amp;lt;dialog.Dialog&amp;gt; | grid &amp;lt;table.Table&amp;gt;&lt;br /&gt;
 ] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[isClosable]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;described by&amp;lt;/code&amp;gt;  is optional; you can use this keyword to define the description of this part.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt;  is optional, it redefine the space volume of this part in screen. A number will be defined to representing the relative size of this part.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt;  is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt;  is optional, it defines the identifier for a resource, e.g. icon file&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;  is optional, it defines the predefined view of this part, it can be report, dialog, table, chart, organigram, topology.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;isClosable&amp;lt;/code&amp;gt;  is optional; it will allow the user to close this part when this keyword is selected.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			part Orga spaceVolume &amp;quot;40&amp;quot; view organigram FoodMart&lt;br /&gt;
			part Employees spaceVolume &amp;quot;20&amp;quot; view table Employees&lt;br /&gt;
			part EmployeeDialog spaceVolume &amp;quot;40&amp;quot; view dialog Employee&lt;br /&gt;
		}&lt;br /&gt;
		. . .&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, 3 &amp;lt;code&amp;gt;parts&amp;lt;/code&amp;gt; are defined under &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''top''''', they are '''''Orga''''', '''''Employees''''' and '''''EmployeeDialog'''''. The sizes of them are redefined here, '''''Orga''''' and '''''EmployeeDialog''''' take each 40% of the screen width and '''''Employees''''' takes the remaining 20%.  The view of '''''Orga''''' is the predefined &amp;lt;code&amp;gt;organigram&amp;lt;/code&amp;gt; '''''FoodMart'''''; the view of '''''Employees''''' is the predefined &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt; '''''Employee'''''; and the view of '''''EmployeeDialog''''' is the predefined &amp;lt;code&amp;gt;dialog&amp;lt;/code&amp;gt; '''''Employee'''''.&lt;br /&gt;
&lt;br /&gt;
====PerspectiveEventManager====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;eventManager&amp;lt;/code&amp;gt; is used to describe an optional event manager for the perspective. By default (i.e. if no event manager is defined) a change of the data in one perspective part automatically changes the associated data in all other perspective parts (e.g. if one part is a table and another part a dialog to edit this table, then changes in the dialog automatically affect the table data). This behaviour can be restricted by using a PerspectiveEventManager &lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
eventManager &amp;lt;name&amp;gt; { &lt;br /&gt;
         targetPart &amp;lt;PerspectivePart partName1&amp;gt; allowedSources {&lt;br /&gt;
                 &amp;lt;PerspectivePart sourceName1&amp;gt; &lt;br /&gt;
                 &amp;lt;PerspectivePart sourceName2&amp;gt; &lt;br /&gt;
                 ...&lt;br /&gt;
         }&lt;br /&gt;
         targetPart &amp;lt;PerspectivePart partName2&amp;gt; allowedSources { &lt;br /&gt;
                 ...&lt;br /&gt;
         } &lt;br /&gt;
	 ... &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;targetPart&amp;lt;/code&amp;gt; describes the perspective part for which we want to restrict the changes automatically being made by other parts.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;allowedSources&amp;lt;/code&amp;gt; describes which parts are allowed to affect the target part.&lt;br /&gt;
&lt;br /&gt;
== Copyright Notice ==&lt;br /&gt;
{{Copyright Notice}}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Perspective_DSL&amp;diff=3733</id>
		<title>Perspective DSL</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Perspective_DSL&amp;diff=3733"/>
				<updated>2019-08-22T07:50:22Z</updated>
		
		<summary type="html">&lt;p&gt;Kraeling: Changed keyword &amp;quot;IconURI&amp;quot; to &amp;quot;Icon&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
Os.bee Applications which are generated using the OS.bee software factory have by default a front end based on the E4-UI-Model. &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:PerspectiveDSL_01.png|600px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can recognize on the above graphics the main elements of theE4-Model are:&lt;br /&gt;
&lt;br /&gt;
* Perspective.  A perspective is a container for a set of UI graphic elements, like sash, part stack, part, area, etc. Perspectives can be used to store different arrangements of UI graphic elements. Each Workbench window contains one or more perspectives. A perspective defines the initial set and layout of views in the Workbench window. Each perspective provides a set of functionality aimed at accomplishing a specific type of task or works with specific types of resources.&lt;br /&gt;
&lt;br /&gt;
* Sash. A sash is a UI graphic elements container, and it displays all its children at the same time either horizontally or vertically aligned. Default is vertically aligned.&lt;br /&gt;
&lt;br /&gt;
* Part. A Part is a container for a view. Parts are user interface components which allow you to navigate and modify data.  &lt;br /&gt;
&lt;br /&gt;
* Part stack. A part stack contains a stack of parts showing the content of one part while displaying only the headers of the other parts.&lt;br /&gt;
&lt;br /&gt;
* View. A view is used to work on a set of data, which might be a hierarchical structure. If data is changed via the view, this change is directly applied to the underlying data structure. A predefined view could be a chart, a dialog, a grid, an organigram, a report, a select table, a table or a topology in OS.bee.&lt;br /&gt;
&lt;br /&gt;
==Perspective DSL==&lt;br /&gt;
&lt;br /&gt;
The PerspectiveDSL is used to build the ui for Os.bee Application. &lt;br /&gt;
&lt;br /&gt;
You can find instances of these elements in Os.bee Applications as follows: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:PerspectiveDSL_02.png|600px]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main semantic elements of the PerspectiveDSL are:&lt;br /&gt;
&lt;br /&gt;
* “package” - the root element that contains all the other elements. A model can contain multiple packages. &lt;br /&gt;
&lt;br /&gt;
* “perspective” - define the perspective details, e.g. perspective name, the description… &lt;br /&gt;
&lt;br /&gt;
* “sashContainer” - define the main element sash container for the perspective. &lt;br /&gt;
&lt;br /&gt;
* “partStack” -  define the main element part stack for the perspective.&lt;br /&gt;
&lt;br /&gt;
* “part” -  the main element part for the perspective.&lt;br /&gt;
&lt;br /&gt;
* “view” -  define the part view of the perspective, it can be report, dialog, table, chart …&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
&lt;br /&gt;
====package definition====&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package &amp;lt;package name&amp;gt; [{&lt;br /&gt;
	perspective &amp;lt;perspective name&amp;gt;  . . .&lt;br /&gt;
. . .&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One or more than one perspective could be defined in the same package.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package net.osbee.sample.foodmart.perspectives {&lt;br /&gt;
	perspective Employee . . .&lt;br /&gt;
&lt;br /&gt;
	perspective Supplier . . .&lt;br /&gt;
&lt;br /&gt;
	perspective Products . . .&lt;br /&gt;
&lt;br /&gt;
	. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Employee, &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Supplier, &amp;lt;code&amp;gt;perspective&amp;lt;/code&amp;gt; Products and also other perspectives are defined in the same &amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====perspective====&lt;br /&gt;
&lt;br /&gt;
This is the main part of this model. All the perspective details can be defined here.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective &amp;lt;perspective name&amp;gt; [described by &amp;lt;description&amp;gt;]&lt;br /&gt;
	[process &amp;lt;blip.blip name&amp;gt; usertask &amp;lt;blip.BlipUserTask name&amp;gt;]&lt;br /&gt;
	([icon &amp;lt;iconURI&amp;gt;] &lt;br /&gt;
     &amp;amp;&lt;br /&gt;
	 [accessibility &amp;lt;accessibilityPhrase&amp;gt;] &lt;br /&gt;
     &amp;amp;&lt;br /&gt;
	 [toolbar &amp;lt;action.ActionToolbar&amp;gt;])&lt;br /&gt;
	{ &lt;br /&gt;
PerspectiveElement &lt;br /&gt;
		. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;described by&amp;lt;/code&amp;gt; is optional; you can use this keyword to define the description of this perspective.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;process. . . usertask. . . &amp;lt;/code&amp;gt; is optional, which define the blip process and blip usertask from predefined blipDSL for this perspective.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt; is optional, it defines the identifier for a resource, e.g. icon file.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt; is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;toolbar&amp;lt;/code&amp;gt; is optional, which define the action tool bar from predefined [[Action DSL]]. Graphical control elements are defined, on which on-screen buttons, icons, menus, or other input or output elements are placed.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
perspective ProductMaintenanceSelect process ProductMaintenance usertask SelectSomeProducts toolbar HandleTask icon &amp;quot;information&amp;quot; {&lt;br /&gt;
	. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the next sections, the important elements and keywords of perspective will be introduced one by one.&lt;br /&gt;
&lt;br /&gt;
====PerspectiveElement====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;PerspectiveElement&amp;lt;/code&amp;gt; is used to define the main elements of the perspective.&lt;br /&gt;
&lt;br /&gt;
The main elements are sash container, part stack and part.&lt;br /&gt;
&lt;br /&gt;
=====sashContainer=====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;sashContainer&amp;lt;/code&amp;gt; is used to define the main element sash container of perspective. &lt;br /&gt;
&lt;br /&gt;
A sash container displays all its children at the same time either horizontally or vertically aligned.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
sashContainer &amp;lt;PerspectiveSashContainer ID&amp;gt;&lt;br /&gt;
	[orientation horizontal|vertical] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[selectedElement &amp;lt;PerspectiveElement ID&amp;gt;]&lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;]&lt;br /&gt;
	{ &lt;br /&gt;
PerspectiveElement &lt;br /&gt;
. . .&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;orientation&amp;lt;/code&amp;gt; is optional, it can be horizontal or vertical, and default value is vertical.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;selectedElement&amp;lt;/code&amp;gt; is optional; you can select one of the next level perspective element here and which is selected will be shown in the first place.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt; is optional, it redefine the space volume of this sash container in screen. A number will be defined to representing the relative size of this container.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt; is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
		sashContainer bottom orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, in the first place, the &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''outer''''' is defined, in this sash container, 2 second level &amp;lt;code&amp;gt;sash containers&amp;lt;/code&amp;gt; are defined as horizontal, they are '''''top''''' and '''''bottom'''''.&lt;br /&gt;
&lt;br /&gt;
=====partStack=====&lt;br /&gt;
&lt;br /&gt;
Keyword &amp;lt;code&amp;gt;partStack&amp;lt;/code&amp;gt; is used to define the main element part stack of perspective.&lt;br /&gt;
&lt;br /&gt;
A part stack contains a stack of parts showing the contents of one part while displaying only the headers of the other parts.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
partStack &amp;lt;PerspectivePartStack ID&amp;gt;&lt;br /&gt;
	[selectedElement &amp;lt;PerspectivePart ID&amp;gt;]&lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;]&lt;br /&gt;
	{&lt;br /&gt;
PerspectiveElement &lt;br /&gt;
. . .&lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;selectedElement&amp;lt;/code&amp;gt;  is optional; you can select the next level perspective element here and which is selected will be shown in the first place.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt;  is optional, it redefine the space volume of this part stack in screen. A number will be defined to representing the relative size of this part stack.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt;  is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			. . .&lt;br /&gt;
		}&lt;br /&gt;
		sashContainer bottom orientation horizontal {&lt;br /&gt;
			partStack EmployeeStack spaceVolume &amp;quot;70&amp;quot; {&lt;br /&gt;
				. . .&lt;br /&gt;
			}&lt;br /&gt;
			partStack Payroll spaceVolume &amp;quot;30&amp;quot; {&lt;br /&gt;
				. . .&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, 2 &amp;lt;code&amp;gt;part stacks&amp;lt;/code&amp;gt; are defined under &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''bottom''''', they are '''''EmployeeStack''''' and '''''Payroll'''''. The sizes of them are redefined here, '''''EmployeeStack''''' takes 70% of the screen width and '''''payroll''''' takes the rest 30%. &lt;br /&gt;
&lt;br /&gt;
=====part=====&lt;br /&gt;
&lt;br /&gt;
Keyword part is used to define the main element part of perspective.&lt;br /&gt;
&lt;br /&gt;
► '''Syntax''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
part &amp;lt;PerspectivePart ID&amp;gt;&lt;br /&gt;
	[described by &amp;lt;description String&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[spaceVolume &amp;lt;containerData STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[accessibility &amp;lt;accessibilityPhrase STRING&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[icon &amp;lt;iconURI string&amp;gt;] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[view  select &amp;lt;table.Table&amp;gt; | table &amp;lt;table.Table&amp;gt;&lt;br /&gt;
| chart &amp;lt;chart.Chart&amp;gt; | report &amp;lt;report.Report&amp;gt;&lt;br /&gt;
| organigram &amp;lt;organization.Organization&amp;gt;&lt;br /&gt;
| topology &amp;lt;topology.Topology&amp;gt;&lt;br /&gt;
| dialog &amp;lt;dialog.Dialog&amp;gt; | grid &amp;lt;table.Table&amp;gt;&lt;br /&gt;
 ] &lt;br /&gt;
    &amp;amp;&lt;br /&gt;
	[isClosable]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;described by&amp;lt;/code&amp;gt;  is optional; you can use this keyword to define the description of this part.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;spaceVolume&amp;lt;/code&amp;gt;  is optional, it redefine the space volume of this part in screen. A number will be defined to representing the relative size of this part.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;accessibility&amp;lt;/code&amp;gt;  is optional, it can be any string; this field is provided as a way to inform accessibility screen readers with extra information. The intent is that the reader should 'say' this phrase as well as what it would normally emit given the widget hierarchy. A screen reader is an essential piece of software for a blind or visually impaired person. Simply put, a screen reader transmits whatever text is displayed on the computer screen into a form that a visually impaired user can process (usually tactile, auditory or a combination of both). While the most basic screen readers will not help blind users navigate a computer, those with additional features can give people with visual impairment much more independence.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt;  is optional, it defines the identifier for a resource, e.g. icon file&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;  is optional, it defines the predefined view of this part, it can be report, dialog, table, chart, organigram, topology.&lt;br /&gt;
* Keyword &amp;lt;code&amp;gt;isClosable&amp;lt;/code&amp;gt;  is optional; it will allow the user to close this part when this keyword is selected.&lt;br /&gt;
&lt;br /&gt;
► '''Example''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
perspective Employee described by &amp;quot;Employee maintenance&amp;quot; icon &amp;quot;employee&amp;quot; {&lt;br /&gt;
	sashContainer outer orientation vertical {&lt;br /&gt;
		sashContainer top orientation horizontal {&lt;br /&gt;
			part Orga spaceVolume &amp;quot;40&amp;quot; view organigram FoodMart&lt;br /&gt;
			part Employees spaceVolume &amp;quot;20&amp;quot; view table Employees&lt;br /&gt;
			part EmployeeDialog spaceVolume &amp;quot;40&amp;quot; view dialog Employee&lt;br /&gt;
		}&lt;br /&gt;
		. . .&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, 3 &amp;lt;code&amp;gt;parts&amp;lt;/code&amp;gt; are defined under &amp;lt;code&amp;gt;sash container&amp;lt;/code&amp;gt; '''''top''''', they are '''''Orga''''', '''''Employees''''' and '''''EmployeeDialog'''''. The sizes of them are redefined here, '''''Orga''''' and '''''EmployeeDialog''''' take each 40% of the screen width and '''''Employees''''' takes the remaining 20%.  The view of '''''Orga''''' is the predefined &amp;lt;code&amp;gt;organigram&amp;lt;/code&amp;gt; '''''FoodMart'''''; the view of '''''Employees''''' is the predefined &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt; '''''Employee'''''; and the view of '''''EmployeeDialog''''' is the predefined &amp;lt;code&amp;gt;dialog&amp;lt;/code&amp;gt; '''''Employee'''''.&lt;br /&gt;
&lt;br /&gt;
== Copyright Notice ==&lt;br /&gt;
{{Copyright Notice}}&lt;/div&gt;</summary>
		<author><name>Kraeling</name></author>	</entry>

	</feed>