<?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=Mollik</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=Mollik"/>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php/Special:Contributions/Mollik"/>
		<updated>2026-04-10T22:10:31Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4568</id>
		<title>Releasenotes 2026 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4568"/>
				<updated>2026-04-10T14:38:13Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Version 4.5.7-V20260410 (OS) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20260410 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Fix Performanceproblem ( eingeführt mit 4.5.7-V20260402 (OS) ), dbcaching Einstellungen&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [[Releasenotes_2026_OS.Softwarefactory#Version_5.2.0.20260410|Softwarefactory 5.2.0.20260410]]&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20260402 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Automatischer Wechsel zum Status &amp;lt;code&amp;gt;PAYMENTTERMINAL_REPEATRECEIPT&amp;lt;/code&amp;gt; im Modus 'store' (statt 'print') bei leeren Bonzeilen&lt;br /&gt;
** Neue Funktion &amp;lt;code&amp;gt;attachRemarks&amp;lt;/code&amp;gt; zum Zeichnen von Bonbemerkungen und deren Verknüpfung mit dem Kassenbon&lt;br /&gt;
** Möglichkeit zur Eingabe von freien Bemerkungen zum Kassenbon&lt;br /&gt;
** Bonbemerkungen: &amp;lt;code&amp;gt;observeFocus&amp;lt;/code&amp;gt; von remark1/2 an Events gebunden&lt;br /&gt;
&lt;br /&gt;
* Kassenkonfiguration:&lt;br /&gt;
** Menüeintrag für Stammdaten der Bonbemerkungen hinzugefügt&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Neue Entitäten für Bonbemerkungen (SlipRemarks)&lt;br /&gt;
** Neue Spalten &amp;lt;code&amp;gt;remark_1&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;remark_2&amp;lt;/code&amp;gt; für CashSlip-Entität&lt;br /&gt;
** Dialoge, Tabellen und Perspektive für Bonbemerkungen implementiert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7.20260305 (OS) ==&lt;br /&gt;
* Verwendung der aktuellen [[Releasenotes_2026_OS.Softwarefactory#Version_5.2.0.20260305|Softwarefactory 5.2.0.20260305]]&lt;br /&gt;
&lt;br /&gt;
* Berichtanzeige&lt;br /&gt;
** Fix: Probleme bei der Berichtsanzeige mit schneller Klickfolge in Auswahltabelle behoben.&lt;br /&gt;
&lt;br /&gt;
* Kassenschluss:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;determineCloseExpectation&amp;lt;/code&amp;gt; - Sortierung von CashPaymentTermData nach traceNumber absteigend, um den letzten Eintrag zu erhalten&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Neues Systemprodukt &amp;quot;fee&amp;quot; aktiviert&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Einige Entitäten auf &amp;lt;code&amp;gt;cacheable=false&amp;lt;/code&amp;gt; gesetzt&lt;br /&gt;
** Entitäten mit escaped Spaltennamen aktualisiert&lt;br /&gt;
** Generierte Entitäten und DTOs aktualisiert&lt;br /&gt;
** Entitäten mit neuem Service Framework aktualisiert&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;canUnparkSelected&amp;lt;/code&amp;gt; - Ablehnung eines Slips mit Zahlungen an einer SiS-Kasse&lt;br /&gt;
** Fix: PRINT_SLIP - &amp;lt;code&amp;gt;onOK&amp;lt;/code&amp;gt; verlässt nicht, wenn Slip änderbar ist&lt;br /&gt;
** Neue Eingabeaktion für MODIFY_FLD, setzt &amp;lt;code&amp;gt;cashposiupdate&amp;lt;/code&amp;gt; auf ausgewählte Position&lt;br /&gt;
&lt;br /&gt;
* Archivierung:&lt;br /&gt;
** &amp;lt;code&amp;gt;archivDescription xml-os&amp;lt;/code&amp;gt; für XML-Format der Beschreibungsdatei für Archiv hinzugefügt&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4567</id>
		<title>Releasenotes 2026 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4567"/>
				<updated>2026-04-10T14:37:28Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20260410 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Fix Performanceproblem ( eingeführt mit 4.5.7-V20260402 (OS) )&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [[Releasenotes_2026_OS.Softwarefactory#Version_5.2.0.20260410|Softwarefactory 5.2.0.20260410]]&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20260402 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Automatischer Wechsel zum Status &amp;lt;code&amp;gt;PAYMENTTERMINAL_REPEATRECEIPT&amp;lt;/code&amp;gt; im Modus 'store' (statt 'print') bei leeren Bonzeilen&lt;br /&gt;
** Neue Funktion &amp;lt;code&amp;gt;attachRemarks&amp;lt;/code&amp;gt; zum Zeichnen von Bonbemerkungen und deren Verknüpfung mit dem Kassenbon&lt;br /&gt;
** Möglichkeit zur Eingabe von freien Bemerkungen zum Kassenbon&lt;br /&gt;
** Bonbemerkungen: &amp;lt;code&amp;gt;observeFocus&amp;lt;/code&amp;gt; von remark1/2 an Events gebunden&lt;br /&gt;
&lt;br /&gt;
* Kassenkonfiguration:&lt;br /&gt;
** Menüeintrag für Stammdaten der Bonbemerkungen hinzugefügt&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Neue Entitäten für Bonbemerkungen (SlipRemarks)&lt;br /&gt;
** Neue Spalten &amp;lt;code&amp;gt;remark_1&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;remark_2&amp;lt;/code&amp;gt; für CashSlip-Entität&lt;br /&gt;
** Dialoge, Tabellen und Perspektive für Bonbemerkungen implementiert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7.20260305 (OS) ==&lt;br /&gt;
* Verwendung der aktuellen [[Releasenotes_2026_OS.Softwarefactory#Version_5.2.0.20260305|Softwarefactory 5.2.0.20260305]]&lt;br /&gt;
&lt;br /&gt;
* Berichtanzeige&lt;br /&gt;
** Fix: Probleme bei der Berichtsanzeige mit schneller Klickfolge in Auswahltabelle behoben.&lt;br /&gt;
&lt;br /&gt;
* Kassenschluss:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;determineCloseExpectation&amp;lt;/code&amp;gt; - Sortierung von CashPaymentTermData nach traceNumber absteigend, um den letzten Eintrag zu erhalten&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Neues Systemprodukt &amp;quot;fee&amp;quot; aktiviert&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Einige Entitäten auf &amp;lt;code&amp;gt;cacheable=false&amp;lt;/code&amp;gt; gesetzt&lt;br /&gt;
** Entitäten mit escaped Spaltennamen aktualisiert&lt;br /&gt;
** Generierte Entitäten und DTOs aktualisiert&lt;br /&gt;
** Entitäten mit neuem Service Framework aktualisiert&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;canUnparkSelected&amp;lt;/code&amp;gt; - Ablehnung eines Slips mit Zahlungen an einer SiS-Kasse&lt;br /&gt;
** Fix: PRINT_SLIP - &amp;lt;code&amp;gt;onOK&amp;lt;/code&amp;gt; verlässt nicht, wenn Slip änderbar ist&lt;br /&gt;
** Neue Eingabeaktion für MODIFY_FLD, setzt &amp;lt;code&amp;gt;cashposiupdate&amp;lt;/code&amp;gt; auf ausgewählte Position&lt;br /&gt;
&lt;br /&gt;
* Archivierung:&lt;br /&gt;
** &amp;lt;code&amp;gt;archivDescription xml-os&amp;lt;/code&amp;gt; für XML-Format der Beschreibungsdatei für Archiv hinzugefügt&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4566</id>
		<title>Releasenotes 2026 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4566"/>
				<updated>2026-04-10T14:35:54Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260410 ==&lt;br /&gt;
&lt;br /&gt;
* OSBP Framework:&lt;br /&gt;
** org.eclipse.osbp.abstractstatemachine: Integration von Shared Terminal Locking in AbstractPeripheralService&lt;br /&gt;
** org.eclipse.osbp.abstractstatemachine: Performance-Verbesserung durch Handler-Cache für schnellen Command-Dispatch&lt;br /&gt;
** org.eclipse.osbp.system.configuration.api: Neue Konfigurationskonstante &amp;lt;code&amp;gt;PARAM_PAYMENT_TERMINAL_SHARED&amp;lt;/code&amp;gt; für geteilte Terminals&lt;br /&gt;
** org.eclipse.osbp.ui.api: Neues protokoll-agnostisches Payment-Terminal-Service-Interface mit Shared-Locking-Methoden&lt;br /&gt;
** Fix: org.eclipse.osbp.abstractstatemachine: Reflection-Method-Cache ist nun thread-safe&lt;br /&gt;
** Fix: org.eclipse.osbp.abstractstatemachine: Log-Level angepasst (weniger verbose)&lt;br /&gt;
&lt;br /&gt;
* POS Framework:&lt;br /&gt;
** Multi-Protokoll Payment-Terminal-Unterstützung mit frz. Protokollen &amp;quot;Concert&amp;quot;, &amp;quot;Protocol E&amp;quot; und &amp;quot;Mock&amp;quot; für Tests&lt;br /&gt;
** Shared Terminal Locking im PaymentTerminalService implementiert&lt;br /&gt;
** Per-Terminal Shared-Konfiguration über ConfigService&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260402 ==&lt;br /&gt;
&lt;br /&gt;
Die Version verbessert das Startverhalten einer Anwendung und bringt mehr Informationen über den Status des Starts auf den Bildschirm&lt;br /&gt;
&lt;br /&gt;
* OSBP Framework:&lt;br /&gt;
** Anzeige des Persistenzservice-Status auf dem Login-Bildschirm&lt;br /&gt;
** Information über den Persistenzservice auf der Fehlerseite hinzugefügt&lt;br /&gt;
** Beim Start wird nun überall auf den Persistenzservice statt nur auf den ConfigurationService gewartet&lt;br /&gt;
&lt;br /&gt;
* BPM:&lt;br /&gt;
** Fix: net.osbee.bpm: Deadlock beim Anwendungsstart behoben&lt;br /&gt;
&lt;br /&gt;
* POS Framework:&lt;br /&gt;
** Fix: net.osbee.pos.epay: Deadlock beim Anwendungsstart behoben&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260305 ==&lt;br /&gt;
&lt;br /&gt;
=== Report Anzeige ===&lt;br /&gt;
&lt;br /&gt;
Diese Version konzentriert sich auf '''Stabilitätsverbesserungen''' für das Report-Rendering-System, insbesondere auf die Behebung von Race Conditions und Anzeigeproblemen, die bei schnellen Benutzerinteraktionen auftraten.&lt;br /&gt;
&lt;br /&gt;
* Race Condition beim Report-Rendering&lt;br /&gt;
** '''Behoben: Schnelles Auswählen/Abwählen führte dazu, dass Reports mit ungültigen oder fehlenden Filtern gerendert wurden'''&lt;br /&gt;
*** Reports verarbeiten nun korrekt wenn Benutzer schnell Elemente auswählen und wieder abwählen&lt;br /&gt;
*** Filteränderungen werden blockiert, während ein Render-Vorgang läuft&lt;br /&gt;
*** Ausstehende Filteränderungen werden nachverfolgt und nach Abschluss des Renderings erneut ausgewertet&lt;br /&gt;
*** Reports mit &amp;lt;code&amp;gt;selectById&amp;lt;/code&amp;gt; werden nun korrekt ausgeblendet, wenn nichts ausgewählt ist&lt;br /&gt;
&lt;br /&gt;
* PDF-Anzeigeskalierungsproblem &lt;br /&gt;
** '''Behoben: PDF-Skalierungsprobleme durch Neuerstellung des BrowserFrames bei jedem Rendering'''&lt;br /&gt;
&lt;br /&gt;
=== Anmeldebildschirm ===&lt;br /&gt;
&lt;br /&gt;
Der Anmeldebildschirm zeigt nun während der Initialisierung des Persistence-Services einen Statustext an.&lt;br /&gt;
&lt;br /&gt;
* Lauftext-Anzeige (Marquee) mit dem aktuellen Status des Persistence-Services&lt;br /&gt;
* Deaktivierung aller Anmeldesteuerelemente während der Wartezeit&lt;br /&gt;
&lt;br /&gt;
=== Start der Anwendung ===&lt;br /&gt;
&lt;br /&gt;
* Blockierungen der Initialisierungsvorgänge durch Warten auf Serviceregistrierung während des Anwendungsstarts reduziert. &amp;lt;br&amp;gt;Dadurch verändert sich das Startverhalten, insbesondere die Reihenfolge der Anwendung. Insgesamt schnelleres Laden der Bundles.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4565</id>
		<title>Releasenotes 2026 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4565"/>
				<updated>2026-04-09T12:25:00Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Version 5.2.0.20260402 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260402 ==&lt;br /&gt;
&lt;br /&gt;
Die Version verbessert das Startverhalten einer Anwendung und bringt mehr Informationen über den Status des Starts auf den Bildschirm&lt;br /&gt;
&lt;br /&gt;
* OSBP Framework:&lt;br /&gt;
** Anzeige des Persistenzservice-Status auf dem Login-Bildschirm&lt;br /&gt;
** Information über den Persistenzservice auf der Fehlerseite hinzugefügt&lt;br /&gt;
** Beim Start wird nun überall auf den Persistenzservice statt nur auf den ConfigurationService gewartet&lt;br /&gt;
&lt;br /&gt;
* BPM:&lt;br /&gt;
** Fix: net.osbee.bpm: Deadlock beim Anwendungsstart behoben&lt;br /&gt;
&lt;br /&gt;
* POS Framework:&lt;br /&gt;
** Fix: net.osbee.pos.epay: Deadlock beim Anwendungsstart behoben&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260305 ==&lt;br /&gt;
&lt;br /&gt;
=== Report Anzeige ===&lt;br /&gt;
&lt;br /&gt;
Diese Version konzentriert sich auf '''Stabilitätsverbesserungen''' für das Report-Rendering-System, insbesondere auf die Behebung von Race Conditions und Anzeigeproblemen, die bei schnellen Benutzerinteraktionen auftraten.&lt;br /&gt;
&lt;br /&gt;
* Race Condition beim Report-Rendering&lt;br /&gt;
** '''Behoben: Schnelles Auswählen/Abwählen führte dazu, dass Reports mit ungültigen oder fehlenden Filtern gerendert wurden'''&lt;br /&gt;
*** Reports verarbeiten nun korrekt wenn Benutzer schnell Elemente auswählen und wieder abwählen&lt;br /&gt;
*** Filteränderungen werden blockiert, während ein Render-Vorgang läuft&lt;br /&gt;
*** Ausstehende Filteränderungen werden nachverfolgt und nach Abschluss des Renderings erneut ausgewertet&lt;br /&gt;
*** Reports mit &amp;lt;code&amp;gt;selectById&amp;lt;/code&amp;gt; werden nun korrekt ausgeblendet, wenn nichts ausgewählt ist&lt;br /&gt;
&lt;br /&gt;
* PDF-Anzeigeskalierungsproblem &lt;br /&gt;
** '''Behoben: PDF-Skalierungsprobleme durch Neuerstellung des BrowserFrames bei jedem Rendering'''&lt;br /&gt;
&lt;br /&gt;
=== Anmeldebildschirm ===&lt;br /&gt;
&lt;br /&gt;
Der Anmeldebildschirm zeigt nun während der Initialisierung des Persistence-Services einen Statustext an.&lt;br /&gt;
&lt;br /&gt;
* Lauftext-Anzeige (Marquee) mit dem aktuellen Status des Persistence-Services&lt;br /&gt;
* Deaktivierung aller Anmeldesteuerelemente während der Wartezeit&lt;br /&gt;
&lt;br /&gt;
=== Start der Anwendung ===&lt;br /&gt;
&lt;br /&gt;
* Blockierungen der Initialisierungsvorgänge durch Warten auf Serviceregistrierung während des Anwendungsstarts reduziert. &amp;lt;br&amp;gt;Dadurch verändert sich das Startverhalten, insbesondere die Reihenfolge der Anwendung. Insgesamt schnelleres Laden der Bundles.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4564</id>
		<title>Releasenotes 2026 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4564"/>
				<updated>2026-04-09T12:23:05Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260402 ==&lt;br /&gt;
&lt;br /&gt;
* OSBP Framework:&lt;br /&gt;
** Anzeige des Persistenzservice-Status auf dem Login-Bildschirm&lt;br /&gt;
** Information über den Persistenzservice auf der Fehlerseite hinzugefügt&lt;br /&gt;
** Beim Start wird nun auf den Persistenzservice statt auf den ConfigurationService gewartet&lt;br /&gt;
&lt;br /&gt;
* BPM:&lt;br /&gt;
** Fix: net.osbee.bpm: Deadlock beim Anwendungsstart behoben&lt;br /&gt;
&lt;br /&gt;
* POS Framework:&lt;br /&gt;
** Fix: net.osbee.pos.epay: Deadlock beim Anwendungsstart behoben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260305 ==&lt;br /&gt;
&lt;br /&gt;
=== Report Anzeige ===&lt;br /&gt;
&lt;br /&gt;
Diese Version konzentriert sich auf '''Stabilitätsverbesserungen''' für das Report-Rendering-System, insbesondere auf die Behebung von Race Conditions und Anzeigeproblemen, die bei schnellen Benutzerinteraktionen auftraten.&lt;br /&gt;
&lt;br /&gt;
* Race Condition beim Report-Rendering&lt;br /&gt;
** '''Behoben: Schnelles Auswählen/Abwählen führte dazu, dass Reports mit ungültigen oder fehlenden Filtern gerendert wurden'''&lt;br /&gt;
*** Reports verarbeiten nun korrekt wenn Benutzer schnell Elemente auswählen und wieder abwählen&lt;br /&gt;
*** Filteränderungen werden blockiert, während ein Render-Vorgang läuft&lt;br /&gt;
*** Ausstehende Filteränderungen werden nachverfolgt und nach Abschluss des Renderings erneut ausgewertet&lt;br /&gt;
*** Reports mit &amp;lt;code&amp;gt;selectById&amp;lt;/code&amp;gt; werden nun korrekt ausgeblendet, wenn nichts ausgewählt ist&lt;br /&gt;
&lt;br /&gt;
* PDF-Anzeigeskalierungsproblem &lt;br /&gt;
** '''Behoben: PDF-Skalierungsprobleme durch Neuerstellung des BrowserFrames bei jedem Rendering'''&lt;br /&gt;
&lt;br /&gt;
=== Anmeldebildschirm ===&lt;br /&gt;
&lt;br /&gt;
Der Anmeldebildschirm zeigt nun während der Initialisierung des Persistence-Services einen Statustext an.&lt;br /&gt;
&lt;br /&gt;
* Lauftext-Anzeige (Marquee) mit dem aktuellen Status des Persistence-Services&lt;br /&gt;
* Deaktivierung aller Anmeldesteuerelemente während der Wartezeit&lt;br /&gt;
&lt;br /&gt;
=== Start der Anwendung ===&lt;br /&gt;
&lt;br /&gt;
* Blockierungen der Initialisierungsvorgänge durch Warten auf Serviceregistrierung während des Anwendungsstarts reduziert. &amp;lt;br&amp;gt;Dadurch verändert sich das Startverhalten, insbesondere die Reihenfolge der Anwendung. Insgesamt schnelleres Laden der Bundles.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4563</id>
		<title>Releasenotes 2026 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4563"/>
				<updated>2026-04-09T09:30:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20260402 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Automatischer Wechsel zum Status &amp;lt;code&amp;gt;PAYMENTTERMINAL_REPEATRECEIPT&amp;lt;/code&amp;gt; im Modus 'store' (statt 'print') bei leeren Bonzeilen&lt;br /&gt;
** Neue Funktion &amp;lt;code&amp;gt;attachRemarks&amp;lt;/code&amp;gt; zum Zeichnen von Bonbemerkungen und deren Verknüpfung mit dem Kassenbon&lt;br /&gt;
** Möglichkeit zur Eingabe von freien Bemerkungen zum Kassenbon&lt;br /&gt;
** Bonbemerkungen: &amp;lt;code&amp;gt;observeFocus&amp;lt;/code&amp;gt; von remark1/2 an Events gebunden&lt;br /&gt;
&lt;br /&gt;
* Kassenkonfiguration:&lt;br /&gt;
** Menüeintrag für Stammdaten der Bonbemerkungen hinzugefügt&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Neue Entitäten für Bonbemerkungen (SlipRemarks)&lt;br /&gt;
** Neue Spalten &amp;lt;code&amp;gt;remark_1&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;remark_2&amp;lt;/code&amp;gt; für CashSlip-Entität&lt;br /&gt;
** Dialoge, Tabellen und Perspektive für Bonbemerkungen implementiert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7.20260305 (OS) ==&lt;br /&gt;
* Verwendung der aktuellen [[Releasenotes_2026_OS.Softwarefactory#Version_5.2.0.20260305|Softwarefactory 5.2.0.20260305]]&lt;br /&gt;
&lt;br /&gt;
* Berichtanzeige&lt;br /&gt;
** Fix: Probleme bei der Berichtsanzeige mit schneller Klickfolge in Auswahltabelle behoben.&lt;br /&gt;
&lt;br /&gt;
* Kassenschluss:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;determineCloseExpectation&amp;lt;/code&amp;gt; - Sortierung von CashPaymentTermData nach traceNumber absteigend, um den letzten Eintrag zu erhalten&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Neues Systemprodukt &amp;quot;fee&amp;quot; aktiviert&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Einige Entitäten auf &amp;lt;code&amp;gt;cacheable=false&amp;lt;/code&amp;gt; gesetzt&lt;br /&gt;
** Entitäten mit escaped Spaltennamen aktualisiert&lt;br /&gt;
** Generierte Entitäten und DTOs aktualisiert&lt;br /&gt;
** Entitäten mit neuem Service Framework aktualisiert&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;canUnparkSelected&amp;lt;/code&amp;gt; - Ablehnung eines Slips mit Zahlungen an einer SiS-Kasse&lt;br /&gt;
** Fix: PRINT_SLIP - &amp;lt;code&amp;gt;onOK&amp;lt;/code&amp;gt; verlässt nicht, wenn Slip änderbar ist&lt;br /&gt;
** Neue Eingabeaktion für MODIFY_FLD, setzt &amp;lt;code&amp;gt;cashposiupdate&amp;lt;/code&amp;gt; auf ausgewählte Position&lt;br /&gt;
&lt;br /&gt;
* Archivierung:&lt;br /&gt;
** &amp;lt;code&amp;gt;archivDescription xml-os&amp;lt;/code&amp;gt; für XML-Format der Beschreibungsdatei für Archiv hinzugefügt&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4562</id>
		<title>Releasenotes 2026 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4562"/>
				<updated>2026-04-09T08:41:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20260402 (OS) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7.20260305 (OS) ==&lt;br /&gt;
* Verwendung der aktuellen [[Releasenotes_2026_OS.Softwarefactory#Version_5.2.0.20260305|Softwarefactory 5.2.0.20260305]]&lt;br /&gt;
&lt;br /&gt;
* Berichtanzeige&lt;br /&gt;
** Fix: Probleme bei der Berichtsanzeige mit schneller Klickfolge in Auswahltabelle behoben.&lt;br /&gt;
&lt;br /&gt;
* Kassenschluss:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;determineCloseExpectation&amp;lt;/code&amp;gt; - Sortierung von CashPaymentTermData nach traceNumber absteigend, um den letzten Eintrag zu erhalten&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Neues Systemprodukt &amp;quot;fee&amp;quot; aktiviert&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Einige Entitäten auf &amp;lt;code&amp;gt;cacheable=false&amp;lt;/code&amp;gt; gesetzt&lt;br /&gt;
** Entitäten mit escaped Spaltennamen aktualisiert&lt;br /&gt;
** Generierte Entitäten und DTOs aktualisiert&lt;br /&gt;
** Entitäten mit neuem Service Framework aktualisiert&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;canUnparkSelected&amp;lt;/code&amp;gt; - Ablehnung eines Slips mit Zahlungen an einer SiS-Kasse&lt;br /&gt;
** Fix: PRINT_SLIP - &amp;lt;code&amp;gt;onOK&amp;lt;/code&amp;gt; verlässt nicht, wenn Slip änderbar ist&lt;br /&gt;
** Neue Eingabeaktion für MODIFY_FLD, setzt &amp;lt;code&amp;gt;cashposiupdate&amp;lt;/code&amp;gt; auf ausgewählte Position&lt;br /&gt;
&lt;br /&gt;
* Archivierung:&lt;br /&gt;
** &amp;lt;code&amp;gt;archivDescription xml-os&amp;lt;/code&amp;gt; für XML-Format der Beschreibungsdatei für Archiv hinzugefügt&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4561</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4561"/>
				<updated>2026-04-01T14:37:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Fehlerbehebungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 01.04.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Fehlerbehebungen ===&lt;br /&gt;
&lt;br /&gt;
* '''Konfigurationsdateien-Fix''': Korrektur der Konfiguration von logback.xml, log4j.xml und eclipse.ini während der Installation&lt;br /&gt;
** Behebt Probleme mit der Logging-Konfiguration nach der Installation, Eintragung der Pfade funktionierte nicht korrekt. Dadurch startet die Anwendung nicht.&lt;br /&gt;
** Stellt sicher, dass die eclipse.ini korrekt verarbeitet wird&lt;br /&gt;
&lt;br /&gt;
== Version 05.03.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== Persistierung des Dienstnamens ====&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;serviceName&amp;lt;/code&amp;gt; wird nun wie die &amp;lt;code&amp;gt;downloadUrl&amp;lt;/code&amp;gt; persistent gespeichert. Bei nachfolgenden Aufrufen ohne explizite Angabe des Dienstnamens wird der zuletzt verwendete Name aus der Datei &amp;lt;code&amp;gt;{productShort}-lastservice.txt&amp;lt;/code&amp;gt; im Konfigurationsverzeichnis geladen.&lt;br /&gt;
&lt;br /&gt;
==== srvstart INI-Konfiguration ====&lt;br /&gt;
Der Windows-Dienst wird nun über eine INI-Konfigurationsdatei für srvstart.exe konfiguriert. Damit wird das Problem behoben, dass der workspace der Application nicht im Installationsverzeichnis lag. Daher wurde der workspace bei update nicht entfernt.&lt;br /&gt;
&amp;lt;br&amp;gt;Die generierte INI-Datei enthält:&lt;br /&gt;
* Umgebungsvariablen für Pfade mit Leerzeichen&lt;br /&gt;
* &amp;lt;code&amp;gt;startup_dir&amp;lt;/code&amp;gt; für das Arbeitsverzeichnis&lt;br /&gt;
* &amp;lt;code&amp;gt;debug=2&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;debug_out&amp;lt;/code&amp;gt; Parameter für Debugging&lt;br /&gt;
* &amp;lt;code&amp;gt;workspace&amp;lt;/code&amp;gt;-Unterverzeichnis für den &amp;lt;code&amp;gt;-data&amp;lt;/code&amp;gt; Parameter&lt;br /&gt;
&lt;br /&gt;
Beispiel der generierten INI-Datei:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[pos]&lt;br /&gt;
env=OSBEE_WORKDIR=C:\OS.pos\pos&lt;br /&gt;
env=OSBEE_EXECUTABLE=C:\OS.pos\pos\eclipsec.exe&lt;br /&gt;
env=OSBEE_LOGFILE=C:\OS.pos\log\pos-service.log&lt;br /&gt;
startup=&amp;quot;%OSBEE_EXECUTABLE%&amp;quot; -data &amp;quot;%OSBEE_WORKDIR%\workspace&amp;quot;&lt;br /&gt;
startup_dir=%OSBEE_WORKDIR%&lt;br /&gt;
shutdown_method=winmessage&lt;br /&gt;
debug=2&lt;br /&gt;
debug_out=%OSBEE_LOGFILE%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4560</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4560"/>
				<updated>2026-04-01T14:36:46Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Fehlerbehebungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 01.04.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Fehlerbehebungen ===&lt;br /&gt;
&lt;br /&gt;
* '''Konfigurationsdateien-Fix''': Korrektur der Konfiguration von logback.xml, log4j.xml und eclipse.ini während der Installation&lt;br /&gt;
** Behebt Probleme mit der Logging-Konfiguration nach der Installation, Eintragung der Pfade funktionierte nicht korrekt&lt;br /&gt;
** Stellt sicher, dass die eclipse.ini korrekt verarbeitet wird&lt;br /&gt;
&lt;br /&gt;
== Version 05.03.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== Persistierung des Dienstnamens ====&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;serviceName&amp;lt;/code&amp;gt; wird nun wie die &amp;lt;code&amp;gt;downloadUrl&amp;lt;/code&amp;gt; persistent gespeichert. Bei nachfolgenden Aufrufen ohne explizite Angabe des Dienstnamens wird der zuletzt verwendete Name aus der Datei &amp;lt;code&amp;gt;{productShort}-lastservice.txt&amp;lt;/code&amp;gt; im Konfigurationsverzeichnis geladen.&lt;br /&gt;
&lt;br /&gt;
==== srvstart INI-Konfiguration ====&lt;br /&gt;
Der Windows-Dienst wird nun über eine INI-Konfigurationsdatei für srvstart.exe konfiguriert. Damit wird das Problem behoben, dass der workspace der Application nicht im Installationsverzeichnis lag. Daher wurde der workspace bei update nicht entfernt.&lt;br /&gt;
&amp;lt;br&amp;gt;Die generierte INI-Datei enthält:&lt;br /&gt;
* Umgebungsvariablen für Pfade mit Leerzeichen&lt;br /&gt;
* &amp;lt;code&amp;gt;startup_dir&amp;lt;/code&amp;gt; für das Arbeitsverzeichnis&lt;br /&gt;
* &amp;lt;code&amp;gt;debug=2&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;debug_out&amp;lt;/code&amp;gt; Parameter für Debugging&lt;br /&gt;
* &amp;lt;code&amp;gt;workspace&amp;lt;/code&amp;gt;-Unterverzeichnis für den &amp;lt;code&amp;gt;-data&amp;lt;/code&amp;gt; Parameter&lt;br /&gt;
&lt;br /&gt;
Beispiel der generierten INI-Datei:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[pos]&lt;br /&gt;
env=OSBEE_WORKDIR=C:\OS.pos\pos&lt;br /&gt;
env=OSBEE_EXECUTABLE=C:\OS.pos\pos\eclipsec.exe&lt;br /&gt;
env=OSBEE_LOGFILE=C:\OS.pos\log\pos-service.log&lt;br /&gt;
startup=&amp;quot;%OSBEE_EXECUTABLE%&amp;quot; -data &amp;quot;%OSBEE_WORKDIR%\workspace&amp;quot;&lt;br /&gt;
startup_dir=%OSBEE_WORKDIR%&lt;br /&gt;
shutdown_method=winmessage&lt;br /&gt;
debug=2&lt;br /&gt;
debug_out=%OSBEE_LOGFILE%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4559</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4559"/>
				<updated>2026-04-01T11:38:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* srvstart INI-Konfiguration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 01.04.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Fehlerbehebungen ===&lt;br /&gt;
&lt;br /&gt;
* '''Konfigurationsdateien-Fix''': Korrektur der Konfiguration von logback.xml, log4j.xml und eclipse.ini während der Installation&lt;br /&gt;
** Behebt Probleme bei der Logging-Konfiguration nach der Installation&lt;br /&gt;
** Stellt sicher, dass die eclipse.ini korrekt verarbeitet wird&lt;br /&gt;
&lt;br /&gt;
== Version 05.03.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== Persistierung des Dienstnamens ====&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;serviceName&amp;lt;/code&amp;gt; wird nun wie die &amp;lt;code&amp;gt;downloadUrl&amp;lt;/code&amp;gt; persistent gespeichert. Bei nachfolgenden Aufrufen ohne explizite Angabe des Dienstnamens wird der zuletzt verwendete Name aus der Datei &amp;lt;code&amp;gt;{productShort}-lastservice.txt&amp;lt;/code&amp;gt; im Konfigurationsverzeichnis geladen.&lt;br /&gt;
&lt;br /&gt;
==== srvstart INI-Konfiguration ====&lt;br /&gt;
Der Windows-Dienst wird nun über eine INI-Konfigurationsdatei für srvstart.exe konfiguriert. Damit wird das Problem behoben, dass der workspace der Application nicht im Installationsverzeichnis lag. Daher wurde der workspace bei update nicht entfernt.&lt;br /&gt;
&amp;lt;br&amp;gt;Die generierte INI-Datei enthält:&lt;br /&gt;
* Umgebungsvariablen für Pfade mit Leerzeichen&lt;br /&gt;
* &amp;lt;code&amp;gt;startup_dir&amp;lt;/code&amp;gt; für das Arbeitsverzeichnis&lt;br /&gt;
* &amp;lt;code&amp;gt;debug=2&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;debug_out&amp;lt;/code&amp;gt; Parameter für Debugging&lt;br /&gt;
* &amp;lt;code&amp;gt;workspace&amp;lt;/code&amp;gt;-Unterverzeichnis für den &amp;lt;code&amp;gt;-data&amp;lt;/code&amp;gt; Parameter&lt;br /&gt;
&lt;br /&gt;
Beispiel der generierten INI-Datei:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[pos]&lt;br /&gt;
env=OSBEE_WORKDIR=C:\OS.pos\pos&lt;br /&gt;
env=OSBEE_EXECUTABLE=C:\OS.pos\pos\eclipsec.exe&lt;br /&gt;
env=OSBEE_LOGFILE=C:\OS.pos\log\pos-service.log&lt;br /&gt;
startup=&amp;quot;%OSBEE_EXECUTABLE%&amp;quot; -data &amp;quot;%OSBEE_WORKDIR%\workspace&amp;quot;&lt;br /&gt;
startup_dir=%OSBEE_WORKDIR%&lt;br /&gt;
shutdown_method=winmessage&lt;br /&gt;
debug=2&lt;br /&gt;
debug_out=%OSBEE_LOGFILE%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4558</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4558"/>
				<updated>2026-04-01T11:37:17Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Version 01.04.2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 01.04.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Fehlerbehebungen ===&lt;br /&gt;
&lt;br /&gt;
* '''Konfigurationsdateien-Fix''': Korrektur der Konfiguration von logback.xml, log4j.xml und eclipse.ini während der Installation&lt;br /&gt;
** Behebt Probleme bei der Logging-Konfiguration nach der Installation&lt;br /&gt;
** Stellt sicher, dass die eclipse.ini korrekt verarbeitet wird&lt;br /&gt;
&lt;br /&gt;
== Version 05.03.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== Persistierung des Dienstnamens ====&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;serviceName&amp;lt;/code&amp;gt; wird nun wie die &amp;lt;code&amp;gt;downloadUrl&amp;lt;/code&amp;gt; persistent gespeichert. Bei nachfolgenden Aufrufen ohne explizite Angabe des Dienstnamens wird der zuletzt verwendete Name aus der Datei &amp;lt;code&amp;gt;{productShort}-lastservice.txt&amp;lt;/code&amp;gt; im Konfigurationsverzeichnis geladen.&lt;br /&gt;
&lt;br /&gt;
==== srvstart INI-Konfiguration ====&lt;br /&gt;
Der Windows-Dienst wird nun über eine INI-Konfigurationsdatei für srvstart.exe konfiguriert. Damit wird das Problem behoben, dass der workspace der Application nicht im Installationsverzeichnis lag. Daher wurde der workspace bei update nicht entfernt.&lt;br /&gt;
&amp;lt;br&amp;gt;Die generierte INI-Datei enthält:&lt;br /&gt;
* Umgebungsvariablen für Pfade mit Leerzeichen&lt;br /&gt;
* &amp;lt;code&amp;gt;startup_dir&amp;lt;/code&amp;gt; für das Arbeitsverzeichnis&lt;br /&gt;
* &amp;lt;code&amp;gt;debug=2&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;debug_out&amp;lt;/code&amp;gt; Parameter für Debugging&lt;br /&gt;
* &amp;lt;code&amp;gt;workspace&amp;lt;/code&amp;gt;-Unterverzeichnis für den &amp;lt;code&amp;gt;-data&amp;lt;/code&amp;gt; Parameter&lt;br /&gt;
&lt;br /&gt;
Beispiel der generierten INI-Datei:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[pos]&lt;br /&gt;
env=OSBEE_WORKDIR=C:\OS.RCpos\pos&lt;br /&gt;
env=OSBEE_EXECUTABLE=C:\OS.RCpos\pos\eclipsec.exe&lt;br /&gt;
env=OSBEE_LOGFILE=C:\OS.RCpos\log\pos-service.log&lt;br /&gt;
startup=&amp;quot;%OSBEE_EXECUTABLE%&amp;quot; -data &amp;quot;%OSBEE_WORKDIR%\workspace&amp;quot;&lt;br /&gt;
startup_dir=%OSBEE_WORKDIR%&lt;br /&gt;
shutdown_method=winmessage&lt;br /&gt;
debug=2&lt;br /&gt;
debug_out=%OSBEE_LOGFILE%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4557</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4557"/>
				<updated>2026-04-01T11:36:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Version 01.04.2026 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 01.04.2026 ==&lt;br /&gt;
&lt;br /&gt;
==== Fehlerbehebungen ====&lt;br /&gt;
&lt;br /&gt;
* '''Konfigurationsdateien-Fix''': Korrektur der Konfiguration von logback.xml, log4j.xml und eclipse.ini während der Installation&lt;br /&gt;
** Behebt Probleme bei der Logging-Konfiguration nach der Installation&lt;br /&gt;
** Stellt sicher, dass die eclipse.ini korrekt verarbeitet wird&lt;br /&gt;
&lt;br /&gt;
== Version 05.03.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== Persistierung des Dienstnamens ====&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;serviceName&amp;lt;/code&amp;gt; wird nun wie die &amp;lt;code&amp;gt;downloadUrl&amp;lt;/code&amp;gt; persistent gespeichert. Bei nachfolgenden Aufrufen ohne explizite Angabe des Dienstnamens wird der zuletzt verwendete Name aus der Datei &amp;lt;code&amp;gt;{productShort}-lastservice.txt&amp;lt;/code&amp;gt; im Konfigurationsverzeichnis geladen.&lt;br /&gt;
&lt;br /&gt;
==== srvstart INI-Konfiguration ====&lt;br /&gt;
Der Windows-Dienst wird nun über eine INI-Konfigurationsdatei für srvstart.exe konfiguriert. Damit wird das Problem behoben, dass der workspace der Application nicht im Installationsverzeichnis lag. Daher wurde der workspace bei update nicht entfernt.&lt;br /&gt;
&amp;lt;br&amp;gt;Die generierte INI-Datei enthält:&lt;br /&gt;
* Umgebungsvariablen für Pfade mit Leerzeichen&lt;br /&gt;
* &amp;lt;code&amp;gt;startup_dir&amp;lt;/code&amp;gt; für das Arbeitsverzeichnis&lt;br /&gt;
* &amp;lt;code&amp;gt;debug=2&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;debug_out&amp;lt;/code&amp;gt; Parameter für Debugging&lt;br /&gt;
* &amp;lt;code&amp;gt;workspace&amp;lt;/code&amp;gt;-Unterverzeichnis für den &amp;lt;code&amp;gt;-data&amp;lt;/code&amp;gt; Parameter&lt;br /&gt;
&lt;br /&gt;
Beispiel der generierten INI-Datei:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[pos]&lt;br /&gt;
env=OSBEE_WORKDIR=C:\OS.RCpos\pos&lt;br /&gt;
env=OSBEE_EXECUTABLE=C:\OS.RCpos\pos\eclipsec.exe&lt;br /&gt;
env=OSBEE_LOGFILE=C:\OS.RCpos\log\pos-service.log&lt;br /&gt;
startup=&amp;quot;%OSBEE_EXECUTABLE%&amp;quot; -data &amp;quot;%OSBEE_WORKDIR%\workspace&amp;quot;&lt;br /&gt;
startup_dir=%OSBEE_WORKDIR%&lt;br /&gt;
shutdown_method=winmessage&lt;br /&gt;
debug=2&lt;br /&gt;
debug_out=%OSBEE_LOGFILE%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4556</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4556"/>
				<updated>2026-04-01T07:58:16Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 01.04.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Fix ===&lt;br /&gt;
&lt;br /&gt;
==== logback.xml und log4j.xml fehlerhaft ====&lt;br /&gt;
&lt;br /&gt;
Die o.g. Dateien wurden bei einer Neuinstallation nicht korrekt konfiguriert. Die Pfadnamen für die log-Dateien wurden nicht korrekt gesetzt.&lt;br /&gt;
Dadurch startet die Anwendung nicht mehr korrekt. Das Problem ist behoben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 05.03.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== Persistierung des Dienstnamens ====&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;serviceName&amp;lt;/code&amp;gt; wird nun wie die &amp;lt;code&amp;gt;downloadUrl&amp;lt;/code&amp;gt; persistent gespeichert. Bei nachfolgenden Aufrufen ohne explizite Angabe des Dienstnamens wird der zuletzt verwendete Name aus der Datei &amp;lt;code&amp;gt;{productShort}-lastservice.txt&amp;lt;/code&amp;gt; im Konfigurationsverzeichnis geladen.&lt;br /&gt;
&lt;br /&gt;
==== srvstart INI-Konfiguration ====&lt;br /&gt;
Der Windows-Dienst wird nun über eine INI-Konfigurationsdatei für srvstart.exe konfiguriert. Damit wird das Problem behoben, dass der workspace der Application nicht im Installationsverzeichnis lag. Daher wurde der workspace bei update nicht entfernt.&lt;br /&gt;
&amp;lt;br&amp;gt;Die generierte INI-Datei enthält:&lt;br /&gt;
* Umgebungsvariablen für Pfade mit Leerzeichen&lt;br /&gt;
* &amp;lt;code&amp;gt;startup_dir&amp;lt;/code&amp;gt; für das Arbeitsverzeichnis&lt;br /&gt;
* &amp;lt;code&amp;gt;debug=2&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;debug_out&amp;lt;/code&amp;gt; Parameter für Debugging&lt;br /&gt;
* &amp;lt;code&amp;gt;workspace&amp;lt;/code&amp;gt;-Unterverzeichnis für den &amp;lt;code&amp;gt;-data&amp;lt;/code&amp;gt; Parameter&lt;br /&gt;
&lt;br /&gt;
Beispiel der generierten INI-Datei:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[pos]&lt;br /&gt;
env=OSBEE_WORKDIR=C:\OS.RCpos\pos&lt;br /&gt;
env=OSBEE_EXECUTABLE=C:\OS.RCpos\pos\eclipsec.exe&lt;br /&gt;
env=OSBEE_LOGFILE=C:\OS.RCpos\log\pos-service.log&lt;br /&gt;
startup=&amp;quot;%OSBEE_EXECUTABLE%&amp;quot; -data &amp;quot;%OSBEE_WORKDIR%\workspace&amp;quot;&lt;br /&gt;
startup_dir=%OSBEE_WORKDIR%&lt;br /&gt;
shutdown_method=winmessage&lt;br /&gt;
debug=2&lt;br /&gt;
debug_out=%OSBEE_LOGFILE%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4555</id>
		<title>Releasenotes 2026 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4555"/>
				<updated>2026-03-06T13:29:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7.20260305 (OS) ==&lt;br /&gt;
* Verwendung der aktuellen [[Releasenotes_2026_OS.Softwarefactory#Version_5.2.0.20260305|Softwarefactory 5.2.0.20260305]]&lt;br /&gt;
&lt;br /&gt;
* Berichtanzeige&lt;br /&gt;
** Fix: Probleme bei der Berichtsanzeige mit schneller Klickfolge in Auswahltabelle behoben.&lt;br /&gt;
&lt;br /&gt;
* Kassenschluss:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;determineCloseExpectation&amp;lt;/code&amp;gt; - Sortierung von CashPaymentTermData nach traceNumber absteigend, um den letzten Eintrag zu erhalten&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Neues Systemprodukt &amp;quot;fee&amp;quot; aktiviert&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Einige Entitäten auf &amp;lt;code&amp;gt;cacheable=false&amp;lt;/code&amp;gt; gesetzt&lt;br /&gt;
** Entitäten mit escaped Spaltennamen aktualisiert&lt;br /&gt;
** Generierte Entitäten und DTOs aktualisiert&lt;br /&gt;
** Entitäten mit neuem Service Framework aktualisiert&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;canUnparkSelected&amp;lt;/code&amp;gt; - Ablehnung eines Slips mit Zahlungen an einer SiS-Kasse&lt;br /&gt;
** Fix: PRINT_SLIP - &amp;lt;code&amp;gt;onOK&amp;lt;/code&amp;gt; verlässt nicht, wenn Slip änderbar ist&lt;br /&gt;
** Neue Eingabeaktion für MODIFY_FLD, setzt &amp;lt;code&amp;gt;cashposiupdate&amp;lt;/code&amp;gt; auf ausgewählte Position&lt;br /&gt;
&lt;br /&gt;
* Archivierung:&lt;br /&gt;
** &amp;lt;code&amp;gt;archivDescription xml-os&amp;lt;/code&amp;gt; für XML-Format der Beschreibungsdatei für Archiv hinzugefügt&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4554</id>
		<title>Releasenotes 2026 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4554"/>
				<updated>2026-03-06T13:26:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7.20260305 (OS) ==&lt;br /&gt;
* Verwendung der aktuellen [[Releasenotes_2025_OS.Softwarefactory|Softwarefactory 5.2.0-20250801]]&lt;br /&gt;
&lt;br /&gt;
* Berichtanzeige&lt;br /&gt;
** Fix: Probleme bei der Berichtsanzeige mit schneller Klickfolge in Auswahltabelle behoben.&lt;br /&gt;
&lt;br /&gt;
* Kassenschluss:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;determineCloseExpectation&amp;lt;/code&amp;gt; - Sortierung von CashPaymentTermData nach traceNumber absteigend, um den letzten Eintrag zu erhalten&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Neues Systemprodukt &amp;quot;fee&amp;quot; aktiviert&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Einige Entitäten auf &amp;lt;code&amp;gt;cacheable=false&amp;lt;/code&amp;gt; gesetzt&lt;br /&gt;
** Entitäten mit escaped Spaltennamen aktualisiert&lt;br /&gt;
** Generierte Entitäten und DTOs aktualisiert&lt;br /&gt;
** Entitäten mit neuem Service Framework aktualisiert&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;canUnparkSelected&amp;lt;/code&amp;gt; - Ablehnung eines Slips mit Zahlungen an einer SiS-Kasse&lt;br /&gt;
** Fix: PRINT_SLIP - &amp;lt;code&amp;gt;onOK&amp;lt;/code&amp;gt; verlässt nicht, wenn Slip änderbar ist&lt;br /&gt;
** Neue Eingabeaktion für MODIFY_FLD, setzt &amp;lt;code&amp;gt;cashposiupdate&amp;lt;/code&amp;gt; auf ausgewählte Position&lt;br /&gt;
&lt;br /&gt;
* Archivierung:&lt;br /&gt;
** &amp;lt;code&amp;gt;archivDescription xml-os&amp;lt;/code&amp;gt; für XML-Format der Beschreibungsdatei für Archiv hinzugefügt&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4553</id>
		<title>Releasenotes 2026 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4553"/>
				<updated>2026-03-06T13:25:12Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260209 ==&lt;br /&gt;
* Verwendung der aktuellen [[Releasenotes_2025_OS.Softwarefactory|Softwarefactory 5.2.0-20250801]]&lt;br /&gt;
&lt;br /&gt;
* Berichtanzeige&lt;br /&gt;
** Fix: Probleme bei der Berichtsanzeige mit schneller Klickfolge in Auswahltabelle behoben.&lt;br /&gt;
&lt;br /&gt;
* Kassenschluss:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;determineCloseExpectation&amp;lt;/code&amp;gt; - Sortierung von CashPaymentTermData nach traceNumber absteigend, um den letzten Eintrag zu erhalten&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Neues Systemprodukt &amp;quot;fee&amp;quot; aktiviert&lt;br /&gt;
&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Einige Entitäten auf &amp;lt;code&amp;gt;cacheable=false&amp;lt;/code&amp;gt; gesetzt&lt;br /&gt;
** Entitäten mit escaped Spaltennamen aktualisiert&lt;br /&gt;
** Generierte Entitäten und DTOs aktualisiert&lt;br /&gt;
** Entitäten mit neuem Service Framework aktualisiert&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix: &amp;lt;code&amp;gt;canUnparkSelected&amp;lt;/code&amp;gt; - Ablehnung eines Slips mit Zahlungen an einer SiS-Kasse&lt;br /&gt;
** Fix: PRINT_SLIP - &amp;lt;code&amp;gt;onOK&amp;lt;/code&amp;gt; verlässt nicht, wenn Slip änderbar ist&lt;br /&gt;
** Neue Eingabeaktion für MODIFY_FLD, setzt &amp;lt;code&amp;gt;cashposiupdate&amp;lt;/code&amp;gt; auf ausgewählte Position&lt;br /&gt;
&lt;br /&gt;
* Archivierung:&lt;br /&gt;
** &amp;lt;code&amp;gt;archivDescription xml-os&amp;lt;/code&amp;gt; für XML-Format der Beschreibungsdatei für Archiv hinzugefügt&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4552</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4552"/>
				<updated>2026-03-05T13:00:59Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 05.03.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== Persistierung des Dienstnamens ====&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;serviceName&amp;lt;/code&amp;gt; wird nun wie die &amp;lt;code&amp;gt;downloadUrl&amp;lt;/code&amp;gt; persistent gespeichert. Bei nachfolgenden Aufrufen ohne explizite Angabe des Dienstnamens wird der zuletzt verwendete Name aus der Datei &amp;lt;code&amp;gt;{productShort}-lastservice.txt&amp;lt;/code&amp;gt; im Konfigurationsverzeichnis geladen.&lt;br /&gt;
&lt;br /&gt;
==== srvstart INI-Konfiguration ====&lt;br /&gt;
Der Windows-Dienst wird nun über eine INI-Konfigurationsdatei für srvstart.exe konfiguriert. Damit wird das Problem behoben, dass der workspace der Application nicht im Installationsverzeichnis lag. Daher wurde der workspace bei update nicht entfernt.&lt;br /&gt;
&amp;lt;br&amp;gt;Die generierte INI-Datei enthält:&lt;br /&gt;
* Umgebungsvariablen für Pfade mit Leerzeichen&lt;br /&gt;
* &amp;lt;code&amp;gt;startup_dir&amp;lt;/code&amp;gt; für das Arbeitsverzeichnis&lt;br /&gt;
* &amp;lt;code&amp;gt;debug=2&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;debug_out&amp;lt;/code&amp;gt; Parameter für Debugging&lt;br /&gt;
* &amp;lt;code&amp;gt;workspace&amp;lt;/code&amp;gt;-Unterverzeichnis für den &amp;lt;code&amp;gt;-data&amp;lt;/code&amp;gt; Parameter&lt;br /&gt;
&lt;br /&gt;
Beispiel der generierten INI-Datei:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[pos]&lt;br /&gt;
env=OSBEE_WORKDIR=C:\OS.RCpos\pos&lt;br /&gt;
env=OSBEE_EXECUTABLE=C:\OS.RCpos\pos\eclipsec.exe&lt;br /&gt;
env=OSBEE_LOGFILE=C:\OS.RCpos\log\pos-service.log&lt;br /&gt;
startup=&amp;quot;%OSBEE_EXECUTABLE%&amp;quot; -data &amp;quot;%OSBEE_WORKDIR%\workspace&amp;quot;&lt;br /&gt;
startup_dir=%OSBEE_WORKDIR%&lt;br /&gt;
shutdown_method=winmessage&lt;br /&gt;
debug=2&lt;br /&gt;
debug_out=%OSBEE_LOGFILE%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4551</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4551"/>
				<updated>2026-03-05T12:59:51Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 05.03.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== Persistierung des Dienstnamens ====&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;serviceName&amp;lt;/code&amp;gt; wird nun wie die &amp;lt;code&amp;gt;downloadUrl&amp;lt;/code&amp;gt; persistent gespeichert. Bei nachfolgenden Aufrufen ohne explizite Angabe des Dienstnamens wird der zuletzt verwendete Name aus der Datei &amp;lt;code&amp;gt;{productShort}-lastservice.txt&amp;lt;/code&amp;gt; im Konfigurationsverzeichnis geladen.&lt;br /&gt;
&lt;br /&gt;
==== srvstart INI-Konfiguration ====&lt;br /&gt;
Der Windows-Dienst wird nun über eine INI-Konfigurationsdatei für srvstart.exe konfiguriert. Damit wird das Problem behoben, dass der workspace der Application nicht im Installationsverzeichnis lag. Daher wurde der workspace bei update nicht entfernt.&lt;br /&gt;
&amp;lt;br&amp;gt;Die generierte INI-Datei enthält:&lt;br /&gt;
* Umgebungsvariablen für Pfade mit Leerzeichen&lt;br /&gt;
* &amp;lt;code&amp;gt;startup_dir&amp;lt;/code&amp;gt; für das Arbeitsverzeichnis&lt;br /&gt;
* &amp;lt;code&amp;gt;debug=2&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;debug_out&amp;lt;/code&amp;gt; Parameter für Debugging&lt;br /&gt;
* &amp;lt;code&amp;gt;workspace&amp;lt;/code&amp;gt;-Unterverzeichnis für den &amp;lt;code&amp;gt;-data&amp;lt;/code&amp;gt; Parameter&lt;br /&gt;
&lt;br /&gt;
Beispiel der generierten INI-Datei:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[pos]&lt;br /&gt;
env=OSBEE_WORKDIR=C:\OS.RCpos\pos&lt;br /&gt;
env=OSBEE_EXECUTABLE=C:\OS.RCpos\pos\eclipsec.exe&lt;br /&gt;
env=OSBEE_LOGFILE=C:\OS.RCpos\log\pos-service.log&lt;br /&gt;
startup=&amp;quot;%OSBEE_EXECUTABLE%&amp;quot; -data &amp;quot;%OSBEE_WORKDIR%\workspace&amp;quot;&lt;br /&gt;
startup_dir=%OSBEE_WORKDIR%&lt;br /&gt;
shutdown_method=winmessage&lt;br /&gt;
debug=2&lt;br /&gt;
debug_out=%OSBEE_LOGFILE%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fehlerbehebungen ===&lt;br /&gt;
&lt;br /&gt;
* Zirkuläre Abhängigkeit behoben&amp;lt;br&amp;gt;Die zirkuläre Abhängigkeit zwischen &amp;lt;code&amp;gt;PlatformUtils&amp;lt;/code&amp;gt; und den Service-Managern wurde behoben:&lt;br /&gt;
** &amp;lt;code&amp;gt;LinuxServiceManager&amp;lt;/code&amp;gt;: Eigene Methoden &amp;lt;code&amp;gt;getServiceName()&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;getEclipseExecutable()&amp;lt;/code&amp;gt; hinzugefügt&lt;br /&gt;
** &amp;lt;code&amp;gt;WindowsServiceManager&amp;lt;/code&amp;gt;: Eigene Methoden &amp;lt;code&amp;gt;getServiceName()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;getServiceDisplayName()&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;getEclipseExecutable()&amp;lt;/code&amp;gt; hinzugefügt&lt;br /&gt;
** Die Abhängigkeit von &amp;lt;code&amp;gt;PlatformUtils&amp;lt;/code&amp;gt; in den Service-Managern wurde entfernt&lt;br /&gt;
&lt;br /&gt;
* Code-Bereinigung &amp;lt;br&amp;gt; Nicht verwendete Methoden aus &amp;lt;code&amp;gt;PlatformUtils&amp;lt;/code&amp;gt; wurden entfernt:&lt;br /&gt;
** &amp;lt;code&amp;gt;getServiceSuffix()&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;getServiceDisplayName()&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;getEclipseExecutable()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Kompatibilität&lt;br /&gt;
** Java 8 erforderlich&lt;br /&gt;
** Spring Boot 2.0.9&lt;br /&gt;
** Spring Shell 2.0.0&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4550</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4550"/>
				<updated>2026-03-05T12:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 05.03.2026 ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Funktionen ===&lt;br /&gt;
&lt;br /&gt;
==== Persistierung des Dienstnamens ====&lt;br /&gt;
Der Parameter &amp;lt;code&amp;gt;serviceName&amp;lt;/code&amp;gt; wird nun wie die &amp;lt;code&amp;gt;downloadUrl&amp;lt;/code&amp;gt; persistent gespeichert. Bei nachfolgenden Aufrufen ohne explizite Angabe des Dienstnamens wird der zuletzt verwendete Name aus der Datei &amp;lt;code&amp;gt;{productShort}-lastservice.txt&amp;lt;/code&amp;gt; im Konfigurationsverzeichnis geladen.&lt;br /&gt;
&lt;br /&gt;
==== srvstart INI-Konfiguration ====&lt;br /&gt;
Der Windows-Dienst wird nun über eine INI-Konfigurationsdatei für srvstart.exe konfiguriert. Die generierte INI-Datei enthält:&lt;br /&gt;
* Umgebungsvariablen für Pfade mit Leerzeichen&lt;br /&gt;
* &amp;lt;code&amp;gt;startup_dir&amp;lt;/code&amp;gt; für das Arbeitsverzeichnis&lt;br /&gt;
* &amp;lt;code&amp;gt;debug=2&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;debug_out&amp;lt;/code&amp;gt; Parameter für Debugging&lt;br /&gt;
* &amp;lt;code&amp;gt;workspace&amp;lt;/code&amp;gt;-Unterverzeichnis für den &amp;lt;code&amp;gt;-data&amp;lt;/code&amp;gt; Parameter&lt;br /&gt;
&lt;br /&gt;
Beispiel der generierten INI-Datei:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[pos]&lt;br /&gt;
env=OSBEE_WORKDIR=C:\OS.RCpos\pos&lt;br /&gt;
env=OSBEE_EXECUTABLE=C:\OS.RCpos\pos\eclipsec.exe&lt;br /&gt;
env=OSBEE_LOGFILE=C:\OS.RCpos\log\pos-service.log&lt;br /&gt;
startup=&amp;quot;%OSBEE_EXECUTABLE%&amp;quot; -data &amp;quot;%OSBEE_WORKDIR%\workspace&amp;quot;&lt;br /&gt;
startup_dir=%OSBEE_WORKDIR%&lt;br /&gt;
shutdown_method=winmessage&lt;br /&gt;
debug=2&lt;br /&gt;
debug_out=%OSBEE_LOGFILE%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fehlerbehebungen ===&lt;br /&gt;
&lt;br /&gt;
* Zirkuläre Abhängigkeit behoben&amp;lt;br&amp;gt;Die zirkuläre Abhängigkeit zwischen &amp;lt;code&amp;gt;PlatformUtils&amp;lt;/code&amp;gt; und den Service-Managern wurde behoben:&lt;br /&gt;
** &amp;lt;code&amp;gt;LinuxServiceManager&amp;lt;/code&amp;gt;: Eigene Methoden &amp;lt;code&amp;gt;getServiceName()&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;getEclipseExecutable()&amp;lt;/code&amp;gt; hinzugefügt&lt;br /&gt;
** &amp;lt;code&amp;gt;WindowsServiceManager&amp;lt;/code&amp;gt;: Eigene Methoden &amp;lt;code&amp;gt;getServiceName()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;getServiceDisplayName()&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;getEclipseExecutable()&amp;lt;/code&amp;gt; hinzugefügt&lt;br /&gt;
** Die Abhängigkeit von &amp;lt;code&amp;gt;PlatformUtils&amp;lt;/code&amp;gt; in den Service-Managern wurde entfernt&lt;br /&gt;
&lt;br /&gt;
* Code-Bereinigung &amp;lt;br&amp;gt; Nicht verwendete Methoden aus &amp;lt;code&amp;gt;PlatformUtils&amp;lt;/code&amp;gt; wurden entfernt:&lt;br /&gt;
** &amp;lt;code&amp;gt;getServiceSuffix()&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;getServiceDisplayName()&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;getEclipseExecutable()&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Kompatibilität&lt;br /&gt;
** Java 8 erforderlich&lt;br /&gt;
** Spring Boot 2.0.9&lt;br /&gt;
** Spring Shell 2.0.0&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4549</id>
		<title>Releasenotes 2026 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4549"/>
				<updated>2026-03-05T08:48:12Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260305 ==&lt;br /&gt;
&lt;br /&gt;
=== Report Anzeige ===&lt;br /&gt;
&lt;br /&gt;
Diese Version konzentriert sich auf '''Stabilitätsverbesserungen''' für das Report-Rendering-System, insbesondere auf die Behebung von Race Conditions und Anzeigeproblemen, die bei schnellen Benutzerinteraktionen auftraten.&lt;br /&gt;
&lt;br /&gt;
* Race Condition beim Report-Rendering&lt;br /&gt;
** '''Behoben: Schnelles Auswählen/Abwählen führte dazu, dass Reports mit ungültigen oder fehlenden Filtern gerendert wurden'''&lt;br /&gt;
*** Reports verarbeiten nun korrekt wenn Benutzer schnell Elemente auswählen und wieder abwählen&lt;br /&gt;
*** Filteränderungen werden blockiert, während ein Render-Vorgang läuft&lt;br /&gt;
*** Ausstehende Filteränderungen werden nachverfolgt und nach Abschluss des Renderings erneut ausgewertet&lt;br /&gt;
*** Reports mit &amp;lt;code&amp;gt;selectById&amp;lt;/code&amp;gt; werden nun korrekt ausgeblendet, wenn nichts ausgewählt ist&lt;br /&gt;
&lt;br /&gt;
* PDF-Anzeigeskalierungsproblem &lt;br /&gt;
** '''Behoben: PDF-Skalierungsprobleme durch Neuerstellung des BrowserFrames bei jedem Rendering'''&lt;br /&gt;
&lt;br /&gt;
=== Anmeldebildschirm ===&lt;br /&gt;
&lt;br /&gt;
Der Anmeldebildschirm zeigt nun während der Initialisierung des Persistence-Services einen Statustext an.&lt;br /&gt;
&lt;br /&gt;
* Lauftext-Anzeige (Marquee) mit dem aktuellen Status des Persistence-Services&lt;br /&gt;
* Deaktivierung aller Anmeldesteuerelemente während der Wartezeit&lt;br /&gt;
&lt;br /&gt;
=== Start der Anwendung ===&lt;br /&gt;
&lt;br /&gt;
* Blockierungen der Initialisierungsvorgänge durch Warten auf Serviceregistrierung während des Anwendungsstarts reduziert. &amp;lt;br&amp;gt;Dadurch verändert sich das Startverhalten, insbesondere die Reihenfolge der Anwendung. Insgesamt schnelleres Laden der Bundles.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4548</id>
		<title>Releasenotes 2026 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4548"/>
				<updated>2026-03-05T08:31:48Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Version 5.2.0.2026???? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20260305 ==&lt;br /&gt;
&lt;br /&gt;
== Report Runtime ==&lt;br /&gt;
&lt;br /&gt;
=== Überblick ===&lt;br /&gt;
&lt;br /&gt;
Diese Version konzentriert sich auf '''Stabilitätsverbesserungen''' für das Report-Rendering-System, insbesondere auf die Behebung von Race Conditions und Anzeigeproblemen, die bei schnellen Benutzerinteraktionen auftraten.&lt;br /&gt;
&lt;br /&gt;
=== Fehlerbehebungen ===&lt;br /&gt;
&lt;br /&gt;
==== Race Condition beim Report-Rendering (Kritisch) ====&lt;br /&gt;
* '''Behoben: Schnelles Auswählen/Abwählen führte dazu, dass Reports mit ungültigen oder fehlenden Filtern gerendert wurden'''&lt;br /&gt;
** Reports verarbeiten nun korrekt das Szenario, in dem Benutzer schnell Elemente auswählen und wieder abwählen&lt;br /&gt;
** Filteränderungen werden blockiert, während ein Render-Vorgang läuft&lt;br /&gt;
** Ausstehende Filteränderungen werden nachverfolgt und nach Abschluss des Renderings erneut ausgewertet&lt;br /&gt;
** Reports mit &amp;lt;code&amp;gt;selectById&amp;lt;/code&amp;gt; werden nun korrekt ausgeblendet, wenn nichts ausgewählt ist&lt;br /&gt;
&lt;br /&gt;
==== PDF-Anzeigeskalierungsproblem ====&lt;br /&gt;
* '''Behoben: PDF-Skalierungsprobleme durch Neuerstellung des BrowserFrames bei jedem Rendering'''&lt;br /&gt;
** Zuvor konnte die Wiederverwendung desselben BrowserFrames zu Inkonsistenzen bei der Anzeigeskalierung führen&lt;br /&gt;
** Jedes Rendering erstellt nun eine neue BrowserFrame-Komponente, um eine korrekte Darstellung zu gewährleisten&lt;br /&gt;
&lt;br /&gt;
==== Multi-Datamart-Filterverarbeitung ====&lt;br /&gt;
* '''Behoben: Abwählen löschte nur den ersten Filter statt aller Filter'''&lt;br /&gt;
** Reports mit mehreren Datamarts (z.B. Rechnungsreports mit 5+ Datamarts) löschen nun korrekt alle &amp;lt;code&amp;gt;selectById&amp;lt;/code&amp;gt;-Filter beim Abwählen&lt;br /&gt;
** Zuvor wurde nur der erste Filter gelöscht, was dazu führte, dass veraltete Daten gerendert wurden&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.peripheralssetup&amp;diff=4547</id>
		<title>Releasenotes 2026 OS.peripheralssetup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.peripheralssetup&amp;diff=4547"/>
				<updated>2026-01-07T08:57:37Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: Created page with &amp;quot;__TOC__  ==  --&amp;gt; zurück zu Releasenotes  ==  == Version 5.2.0.2026???? ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.2026???? ==&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4546</id>
		<title>Releasenotes 2026 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.setup&amp;diff=4546"/>
				<updated>2026-01-07T08:57:29Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: Created page with &amp;quot;__TOC__  ==  --&amp;gt; zurück zu Releasenotes  ==  == Version 5.2.0.2026???? ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.2026???? ==&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4545</id>
		<title>Releasenotes 2026 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Softwarefactory&amp;diff=4545"/>
				<updated>2026-01-07T08:57:21Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: Created page with &amp;quot;__TOC__  ==  --&amp;gt; zurück zu Releasenotes  ==  == Version 5.2.0.2026???? ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.2026???? ==&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Interchange&amp;diff=4544</id>
		<title>Releasenotes 2026 OS.Interchange</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.Interchange&amp;diff=4544"/>
				<updated>2026-01-07T08:57:11Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: Created page with &amp;quot;__TOC__  ==  --&amp;gt; zurück zu Releasenotes  ==  == Version 5.2.0.2026???? ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.2026???? ==&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.peripherals&amp;diff=4543</id>
		<title>Releasenotes 2026 OS.peripherals</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.peripherals&amp;diff=4543"/>
				<updated>2026-01-07T08:57:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: Created page with &amp;quot;__TOC__  ==  --&amp;gt; zurück zu Releasenotes  ==  == Version ???? ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version ???? ==&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4542</id>
		<title>Releasenotes 2026 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2026_OS.pos&amp;diff=4542"/>
				<updated>2026-01-07T08:56:40Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: Created page with &amp;quot;__TOC__  ==  --&amp;gt; zurück zu Releasenotes  ==  == Version 5.2.0.2026???? ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.2026???? ==&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=4541</id>
		<title>Releasenotes</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes&amp;diff=4541"/>
				<updated>2026-01-07T08:55:51Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 2026 ==&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes zu den einzelnen Themen finden Sie unter den folgenden Links&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2026_OS.pos | Releasenotes OS.pos]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2026_OS.peripherals | Releasenotes OS.peripherals]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2026_OS.Interchange | Releasenotes OS.interchange]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2026_OS.Softwarefactory | Releasenotes OS.Softwarefactory]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2026_OS.setup | Releasenotes OS.setup]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2026_OS.peripheralssetup | Releasenotes OS.peripheralssetup]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2025 ==&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes zu den einzelnen Themen finden Sie unter den folgenden Links&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2025_OS.pos | Releasenotes OS.pos]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2025_OS.peripherals | Releasenotes OS.peripherals]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2025_OS.Interchange | Releasenotes OS.interchange]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2025_OS.Softwarefactory | Releasenotes OS.Softwarefactory]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2025_OS.setup | Releasenotes OS.setup]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2025_OS.peripheralssetup | Releasenotes OS.peripheralssetup]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2024 ==&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes zu den einzelnen Themen finden Sie unter den folgenden Links&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2024_OS.pos | Releasenotes OS.pos]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2024_OS.peripherals | Releasenotes OS.peripherals]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2024_OS.Interchange | Releasenotes OS.interchange]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2024_OS.Softwarefactory | Releasenotes OS.Softwarefactory]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2024_OS.setup | Releasenotes OS.setup]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2024_OS.peripheralssetup | Releasenotes OS.peripheralssetup]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2023 ==&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes zu den einzelnen Themen finden Sie unter den folgenden Links&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2023_OS.pos | Releasenotes OS.pos]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2023_OS.peripherals | Releasenotes OS.peripherals]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2023_OS.Interchange | Releasenotes OS.interchange]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2023_OS.Softwarefactory | Releasenotes OS.Softwarefactory]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2023_OS.setup | Releasenotes OS.setup]]&lt;br /&gt;
&lt;br /&gt;
* [[Releasenotes_2023_OS.peripheralssetup | Releasenotes OS.peripheralssetup]]&lt;br /&gt;
&lt;br /&gt;
== 2022 ==&lt;br /&gt;
&lt;br /&gt;
Die Releasenotes 2022 finden sie '''[[Releasenotes_2022|hier]]'''&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4540</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4540"/>
				<updated>2025-11-25T08:40:26Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Grid Tabelle:&lt;br /&gt;
** Fix: Filtercombobox hat auf Eingabe von Zeichenkette zur Suche mit einer Exception reagiert. Wurde behoben.&lt;br /&gt;
** Erweiterung: Rücksetzen des zuvor eingegebenen Filtertextes durch Eingabe von Leerzeichen oder wie bisher durch Klick auf den Button &amp;quot;zurücksetzen&amp;quot; ( für alle Filter )&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251104 ==&lt;br /&gt;
&lt;br /&gt;
* Reports:&lt;br /&gt;
** Verbesserung der Anzeige und Druckfunktionalität&lt;br /&gt;
*** Optimierung Speicherbedarf&lt;br /&gt;
*** Optimierung CPU Bedarf durch Caching&lt;br /&gt;
*** Ergänzung von Metriken zur Überwachung der Reportgenerierung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251027 ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
** Zugriff auf Oracle DBs verbessert&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
*** [[File:ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4539</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4539"/>
				<updated>2025-11-25T08:37:37Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Grid Tabelle:&lt;br /&gt;
** Fix: Filtercombobox hat auf Eingabe von Zeichenkette zur Suche mit einer Exception reagiert. Wurde behoben.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251104 ==&lt;br /&gt;
&lt;br /&gt;
* Reports:&lt;br /&gt;
** Verbesserung der Anzeige und Druckfunktionalität&lt;br /&gt;
*** Optimierung Speicherbedarf&lt;br /&gt;
*** Optimierung CPU Bedarf durch Caching&lt;br /&gt;
*** Ergänzung von Metriken zur Überwachung der Reportgenerierung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251027 ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
** Zugriff auf Oracle DBs verbessert&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
*** [[File:ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Interchange&amp;diff=4538</id>
		<title>Releasenotes 2025 OS.Interchange</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Interchange&amp;diff=4538"/>
				<updated>2025-11-12T09:44:25Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20251024 ==&lt;br /&gt;
&lt;br /&gt;
* Korrektur des XRechnung Templates: Ausgabe Firmenemail&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20251011 ==&lt;br /&gt;
&lt;br /&gt;
* deutliche Performanceverbesserungen bei ZUGFerd und XRechnung&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250616 ==&lt;br /&gt;
&lt;br /&gt;
* Erweiterungen für den ZUGFeRD-Upload, Verbesserungen der Kompatibilität der exportierten Dateien&lt;br /&gt;
* Neuer Endpunkt postXML: Generischer Export einer XML-Datei durch Angabe eines XSD-Schemas und einer Mapping-Information&lt;br /&gt;
* Fehlerbehebungen und Verbesserungen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250422 ==&lt;br /&gt;
&lt;br /&gt;
* XRechnung&lt;br /&gt;
** Unterstützung von XRechnung im Down- und Upload&lt;br /&gt;
** Unterstützung von ZUGFeRD im Upload&lt;br /&gt;
** UI für beide Rechnungstypen&lt;br /&gt;
&lt;br /&gt;
* shipment Labels&lt;br /&gt;
**Unterstützung für das Setzen des Feldes shipmentReference in GLS Labels&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.pos&amp;diff=4537</id>
		<title>Releasenotes 2025 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.pos&amp;diff=4537"/>
				<updated>2025-11-05T09:02:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Version 5.2.0.20251104 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20251104 ==&lt;br /&gt;
&lt;br /&gt;
* Fix Memoryleak in Actions&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20251104 Softwarefactory 5.2.0-20251104]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20251027 ==&lt;br /&gt;
&lt;br /&gt;
* Kassenkonfiguration:&lt;br /&gt;
** Schalter &amp;quot;Teilzahlung&amp;quot;/&amp;quot;partialPay&amp;quot; default auf &amp;quot;nicht sichtbar&amp;quot;&lt;br /&gt;
** entity Mproduct, Attribut &amp;quot;owner&amp;quot; umbenannt nach &amp;quot;ownar&amp;quot;, um Konflikt mit anderem Feld zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20251027 Softwarefactory 5.2.0-20251027]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20251014 ==&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Fix: SystemProductType ist jetzt bekannt&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20251010 Softwarefactory 5.2.0-20251010]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix Bezahlen mit Mitarbeiterguthaben&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20250730 Softwarefactory 5.2.0-20250730]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250717 ==&lt;br /&gt;
&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für Endlosschleife in der Bearbeitung von Imports bei konfiguriertem Pfad mit &amp;quot;/&amp;quot; statt mit &amp;quot;\&amp;quot; unter Windows Installationen.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250716 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Behebung bei Selektion in der Positionsliste (353)&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250706 ==&lt;br /&gt;
&lt;br /&gt;
* Behebung der Sortierprobleme in der Positionsliste im Kassiervorgang&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250706 Softwarefactory 5.2.0-V20250706]&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250705 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Behebung der Sortierprobleme in der Positionsliste im Kassiervorgang&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250706 Softwarefactory 5.2.0-V20250706]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Ladenzählung:&lt;br /&gt;
** Problem bei Zählung mit Differenz gefixt&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250623 Softwarefactory 5.2.0-V20250523]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix Sortierung der Positionsliste&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250604 Softwarefactory 5.2.0-V20250504]&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250422 ==&lt;br /&gt;
&lt;br /&gt;
* Ladenzählung:&lt;br /&gt;
** neues Feld zur Steuerung des zeitlichen Verhaltens bei Zählung  CashRegisterType.delayInClose &lt;br /&gt;
** Besseres Verhalten bei schnellem Wechsel zwischen Münzen und Scheinen bei der Erfassung der Zählung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250409 ==&lt;br /&gt;
&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Datenmodell: Ergänzung von Referenz auf Owner in Claim&lt;br /&gt;
* Bezahlterminal:&lt;br /&gt;
** Tagesabschluss verbessert&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250206 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** mögliche NPE gefixt&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Klick in Bericht ohne Selektion löst keinen Bericht mehr aus.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Sortierung Positionsliste verbessert&lt;br /&gt;
** Berücksichtigung Schalter addressInPayview zur Ein-/Ausblendung der Kundenadresse in Positionserfassung&lt;br /&gt;
* Tagesabschluss:&lt;br /&gt;
** Performanceverbesserung durch Entfernung der Bedingung für rowtype&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Klick in Bericht ohne Selektion löst keinen Bericht mehr aus.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250128 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** mögliche NPE gefixt&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Entfernung der Referenz von Kunde auf Kundenpreise. Verbesserung der Performance&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4536</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4536"/>
				<updated>2025-11-05T08:55:33Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251104 ==&lt;br /&gt;
&lt;br /&gt;
* Reports:&lt;br /&gt;
** Verbesserung der Anzeige und Druckfunktionalität&lt;br /&gt;
*** Optimierung Speicherbedarf&lt;br /&gt;
*** Optimierung CPU Bedarf durch Caching&lt;br /&gt;
*** Ergänzung von Metriken zur Überwachung der Reportgenerierung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251027 ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
** Zugriff auf Oracle DBs verbessert&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
*** [[File:ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.pos&amp;diff=4535</id>
		<title>Releasenotes 2025 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.pos&amp;diff=4535"/>
				<updated>2025-11-05T08:53:50Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20251104 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20251104 Softwarefactory 5.2.0-20251104]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20251027 ==&lt;br /&gt;
&lt;br /&gt;
* Kassenkonfiguration:&lt;br /&gt;
** Schalter &amp;quot;Teilzahlung&amp;quot;/&amp;quot;partialPay&amp;quot; default auf &amp;quot;nicht sichtbar&amp;quot;&lt;br /&gt;
** entity Mproduct, Attribut &amp;quot;owner&amp;quot; umbenannt nach &amp;quot;ownar&amp;quot;, um Konflikt mit anderem Feld zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20251027 Softwarefactory 5.2.0-20251027]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20251014 ==&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Fix: SystemProductType ist jetzt bekannt&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20251010 Softwarefactory 5.2.0-20251010]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix Bezahlen mit Mitarbeiterguthaben&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20250730 Softwarefactory 5.2.0-20250730]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250717 ==&lt;br /&gt;
&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für Endlosschleife in der Bearbeitung von Imports bei konfiguriertem Pfad mit &amp;quot;/&amp;quot; statt mit &amp;quot;\&amp;quot; unter Windows Installationen.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250716 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Behebung bei Selektion in der Positionsliste (353)&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250706 ==&lt;br /&gt;
&lt;br /&gt;
* Behebung der Sortierprobleme in der Positionsliste im Kassiervorgang&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250706 Softwarefactory 5.2.0-V20250706]&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250705 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Behebung der Sortierprobleme in der Positionsliste im Kassiervorgang&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250706 Softwarefactory 5.2.0-V20250706]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Ladenzählung:&lt;br /&gt;
** Problem bei Zählung mit Differenz gefixt&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250623 Softwarefactory 5.2.0-V20250523]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix Sortierung der Positionsliste&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250604 Softwarefactory 5.2.0-V20250504]&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250422 ==&lt;br /&gt;
&lt;br /&gt;
* Ladenzählung:&lt;br /&gt;
** neues Feld zur Steuerung des zeitlichen Verhaltens bei Zählung  CashRegisterType.delayInClose &lt;br /&gt;
** Besseres Verhalten bei schnellem Wechsel zwischen Münzen und Scheinen bei der Erfassung der Zählung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250409 ==&lt;br /&gt;
&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Datenmodell: Ergänzung von Referenz auf Owner in Claim&lt;br /&gt;
* Bezahlterminal:&lt;br /&gt;
** Tagesabschluss verbessert&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250206 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** mögliche NPE gefixt&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Klick in Bericht ohne Selektion löst keinen Bericht mehr aus.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Sortierung Positionsliste verbessert&lt;br /&gt;
** Berücksichtigung Schalter addressInPayview zur Ein-/Ausblendung der Kundenadresse in Positionserfassung&lt;br /&gt;
* Tagesabschluss:&lt;br /&gt;
** Performanceverbesserung durch Entfernung der Bedingung für rowtype&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Klick in Bericht ohne Selektion löst keinen Bericht mehr aus.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250128 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** mögliche NPE gefixt&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Entfernung der Referenz von Kunde auf Kundenpreise. Verbesserung der Performance&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4534</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4534"/>
				<updated>2025-11-03T15:35:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Reports:&lt;br /&gt;
** Verbesserung der Anzeige und Druckfunktionalität&lt;br /&gt;
*** Optimierung Speicherbedarf&lt;br /&gt;
*** Optimierung CPU Bedarf durch Caching&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251027 ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
** Zugriff auf Oracle DBs verbessert&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
*** [[File:ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4533</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4533"/>
				<updated>2025-10-28T08:26:34Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Version 5.2.0-20251027 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251027 ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
** Zugriff auf Oracle DBs verbessert&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
*** [[File:ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.pos&amp;diff=4532</id>
		<title>Releasenotes 2025 OS.pos</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.pos&amp;diff=4532"/>
				<updated>2025-10-28T08:24:47Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20251027 ==&lt;br /&gt;
&lt;br /&gt;
* Kassenkonfiguration:&lt;br /&gt;
** Schalter &amp;quot;Teilzahlung&amp;quot;/&amp;quot;partialPay&amp;quot; default auf &amp;quot;nicht sichtbar&amp;quot;&lt;br /&gt;
** entity Mproduct, Attribut &amp;quot;owner&amp;quot; umbenannt nach &amp;quot;ownar&amp;quot;, um Konflikt mit anderem Feld zu vermeiden.&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20251027 Softwarefactory 5.2.0-20251027]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0.20251014 ==&lt;br /&gt;
&lt;br /&gt;
* Kassenentsorgung:&lt;br /&gt;
** Fix: SystemProductType ist jetzt bekannt&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20251010 Softwarefactory 5.2.0-20251010]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix Bezahlen mit Mitarbeiterguthaben&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-20250730 Softwarefactory 5.2.0-20250730]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250717 ==&lt;br /&gt;
&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für Endlosschleife in der Bearbeitung von Imports bei konfiguriertem Pfad mit &amp;quot;/&amp;quot; statt mit &amp;quot;\&amp;quot; unter Windows Installationen.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250716 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Behebung bei Selektion in der Positionsliste (353)&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250706 ==&lt;br /&gt;
&lt;br /&gt;
* Behebung der Sortierprobleme in der Positionsliste im Kassiervorgang&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250706 Softwarefactory 5.2.0-V20250706]&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250705 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Behebung der Sortierprobleme in der Positionsliste im Kassiervorgang&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250706 Softwarefactory 5.2.0-V20250706]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Ladenzählung:&lt;br /&gt;
** Problem bei Zählung mit Differenz gefixt&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250623 Softwarefactory 5.2.0-V20250523]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Fix Sortierung der Positionsliste&lt;br /&gt;
&lt;br /&gt;
* Verwendung der aktuellen [https://download.osbee.org/documentation/index.php/Releasenotes_2025_OS.Softwarefactory#Version_5.2.0-V20250604 Softwarefactory 5.2.0-V20250504]&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250422 ==&lt;br /&gt;
&lt;br /&gt;
* Ladenzählung:&lt;br /&gt;
** neues Feld zur Steuerung des zeitlichen Verhaltens bei Zählung  CashRegisterType.delayInClose &lt;br /&gt;
** Besseres Verhalten bei schnellem Wechsel zwischen Münzen und Scheinen bei der Erfassung der Zählung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250409 ==&lt;br /&gt;
&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Datenmodell: Ergänzung von Referenz auf Owner in Claim&lt;br /&gt;
* Bezahlterminal:&lt;br /&gt;
** Tagesabschluss verbessert&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250206 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** mögliche NPE gefixt&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Klick in Bericht ohne Selektion löst keinen Bericht mehr aus.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** Sortierung Positionsliste verbessert&lt;br /&gt;
** Berücksichtigung Schalter addressInPayview zur Ein-/Ausblendung der Kundenadresse in Positionserfassung&lt;br /&gt;
* Tagesabschluss:&lt;br /&gt;
** Performanceverbesserung durch Entfernung der Bedingung für rowtype&lt;br /&gt;
* Allgemein:&lt;br /&gt;
** Klick in Bericht ohne Selektion löst keinen Bericht mehr aus.&lt;br /&gt;
&lt;br /&gt;
== Version 4.5.7-V20250128 (OS) ==&lt;br /&gt;
&lt;br /&gt;
* Kassiervorgang:&lt;br /&gt;
** mögliche NPE gefixt&lt;br /&gt;
* Datenmodell:&lt;br /&gt;
** Entfernung der Referenz von Kunde auf Kundenpreise. Verbesserung der Performance&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4531</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4531"/>
				<updated>2025-10-28T08:17:01Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251027 ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
*** [[File:ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4530</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4530"/>
				<updated>2025-10-28T08:16:21Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
*** [[File:ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4529</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4529"/>
				<updated>2025-10-28T08:15:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
[[File:ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4528</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4528"/>
				<updated>2025-10-28T08:15:30Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
[[https://download.osbee.org/documentation/images/8/8c/ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4527</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4527"/>
				<updated>2025-10-28T08:15:12Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
[[File:../images/8/8c/ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4526</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4526"/>
				<updated>2025-10-28T08:14:54Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
[[File:documentation/images/8/8c/ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4525</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4525"/>
				<updated>2025-10-28T08:14:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
[[File:/documentation/images/8/8c/ThreadCPUMonitorKonfiguration.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=File:ThreadCPUMonitorKonfiguration.PNG&amp;diff=4524</id>
		<title>File:ThreadCPUMonitorKonfiguration.PNG</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=File:ThreadCPUMonitorKonfiguration.PNG&amp;diff=4524"/>
				<updated>2025-10-28T08:13:46Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4523</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4523"/>
				<updated>2025-10-28T08:12:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Aktivierung: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;enabled&amp;quot; als Ja/Neon Wert. Default: true.&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4522</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4522"/>
				<updated>2025-10-23T13:22:24Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann in der Systemkonfiguration konfiguriert werden:&lt;br /&gt;
*** Einstellung des Prüfintervalls: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
*** Ignorieren von wartenden Threads: durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;skipWaitingThread&amp;quot; als ja/nein Wert. Default: wahr, entspricht &amp;quot;Haken gesetzt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4521</id>
		<title>Releasenotes 2025 OS.Softwarefactory</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.Softwarefactory&amp;diff=4521"/>
				<updated>2025-10-23T12:19:00Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* nächste Version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== nächste Version ==&lt;br /&gt;
&lt;br /&gt;
* Datenbankverbindung&lt;br /&gt;
** für Verbindungen zu Datenbanken kann konfiguriert werden, ob das NULL Datum ( 28.02.1700 ) beim Einlesen aus der Datenbank als NULL oder als 28.02.1700 behandelt wird.&amp;lt;BR&amp;gt;Die Einstellung erfolgt über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;NULL-DATE-CONVERSION-xxxxx&amp;quot;. Für Oracledatenbanken ist der default true, für alle anderen false. Ziel ist die Kompatibilität mit Compex Commerce Datenbeständen.&lt;br /&gt;
** die Aktualisierung der Datenbankstruktur nach Initialisierung der Persistenceunit kann über die Systemkonfiguration mit der Parametergruppe &amp;quot;GLOBAL_PARAMETERS&amp;quot; und dem Parameter &amp;quot;DDL-GENERATION-xxxx&amp;quot; für jede Persistenceunit ein/ausgeschaltet werden. Default ist eingeschaltet. Der Schalter wirkt nur, wenn die Aktualisierung der Datenbankstruktur in den Preferences eingeschaltet ist.&lt;br /&gt;
* Systemmonitoring&lt;br /&gt;
** neue Monitoringfunktionalität: es kann die CPU Last überwacht werden. CPU-intenisive Threads werden im Systemmonitor festgehalten. Die Einträge erfolgen parallel zum &amp;quot;MemoryMonitor&amp;quot; unter &amp;quot;CPUMonitor&amp;quot;. Der Monitor kann konfiguriert werden:&lt;br /&gt;
*** Einstellung des Prüfintervalls in der Systemkonfiguration durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;checkIntervalMs&amp;quot; als ganzzahliger Wert in Millisekunden. Default: 50.&lt;br /&gt;
*** Einstellung der Warnschwelle in der Systemkonfiguration durch Anpassung des Wertes Gruppe &amp;quot;ThreadCpuMonitor&amp;quot;, Wert &amp;quot;cpuThresholdPercent&amp;quot; als ganzzahliger Wert in Prozent. Default: 2000, entspricht 2 Sekunden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20251010 ==&lt;br /&gt;
&lt;br /&gt;
* Entity:&lt;br /&gt;
** Verbesserung bei Verwendung von sequences in multitenant Tabellen&lt;br /&gt;
** Erweiterung der Suchmöglichkeiten in Referenzfeldern, Anpassung an Suche in Compex Commerce: &lt;br /&gt;
*** Eingabe Suchstring '''&amp;quot;a&amp;quot;''': Suche in Domainkey mit '''&amp;quot;%a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,&amp;quot;''': Suche mit '''&amp;quot;a%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;a,b&amp;quot;''': Suche mit '''&amp;quot;a% und %b%&amp;quot;'''&lt;br /&gt;
*** Eingabe von '''&amp;quot;,b&amp;quot;''': Suche mit '''&amp;quot;%b%&amp;quot;'''&lt;br /&gt;
*** Einagbe von '''&amp;quot;,a,b&amp;quot;''': Siche mit '''&amp;quot;%a% und %b%&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250806 ==&lt;br /&gt;
&lt;br /&gt;
* Monitoring:&lt;br /&gt;
** Spaltenlängen der DK Spalten in MonitoringCategory und MonitoringSubCategory korrigiert. Es kann notwendig sein, die tables zu löschen, damit die Änderung wirksam wird. &amp;lt;br&amp;gt;Dazu MONITORING_DETAIL, MONITORING_SUBCATEGORY, MONITORING_CATEGORY in dieser Reihenfolge löschen und den Dienst neu starten.&lt;br /&gt;
* Report:&lt;br /&gt;
** Logausgaben in RuntimeBaseReport ergänzt um Sessionobjekt und Benutzernamen&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250730 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** Verbesserung interner Abläufe bei Selektion eines Datensatzes&lt;br /&gt;
** Fix fehlende Tabellenüberschrift beim initialen Öffnen. Neugenerierung mit aktueller Softwarefactory erforderlich.&lt;br /&gt;
* Dialog:&lt;br /&gt;
** Verbesserung des internen Ablaufs bei Selektion im Fall von multitenancy. Keine Änderung bei bisheriger Verarbeitung.&lt;br /&gt;
* Entity:&lt;br /&gt;
** Erweiterung für Verwendung von Referenzen über andere als UUID / ID Felder&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** Fix für ungültige Pfadnamen. In Windows wurde / nicht als Verzeichnistrenner betrachtet. Dies resultierte in einer Endlosinitialisierung der Watcher Threads.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-20250623 ==&lt;br /&gt;
&lt;br /&gt;
* Fix OSBPServiceAddon: &lt;br /&gt;
** java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.osbp.vaaclipse.addons.softwarefactory.service.OSBPServiceAddon$3.run(OSBPServiceAddon.java:341)&amp;lt;br&amp;gt;bei Ausgabe einer Meldung für den Benutzer. Kann zu Abbruch eines DB commit führen&lt;br /&gt;
* Fix sessionManager: &lt;br /&gt;
** die Verwaltung der transactionHandler wurde für Sessions und batch Betrieb vereinheitlicht. Gleichzeitig wurde der zu durchlaufende Code reduziert, so dass sich ein minimaler Geschwindigkeitsvorteil ergibt.&lt;br /&gt;
* Fix AbstractDtoService:&lt;br /&gt;
** doppelter Aufruf von transactionBegin bei update(...) entfernt. Es wurde ein TransactionHandler erzeugt, der durch den 2. Aufruf sofort überschrieben wurde. Es ergibt sich ein minimaler Geschwindigkeitsvorteil.&lt;br /&gt;
** Vereinheitlichung der update/delete Aufrufe. Doppelimplementierungen zusammengeführt&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250604 ==&lt;br /&gt;
&lt;br /&gt;
* Entity-Modellierung: &lt;br /&gt;
** Spaltenlängendefinition über Property z.B. name=&amp;quot;length&amp;quot; value=&amp;quot;20&amp;quot;&lt;br /&gt;
* Statemachine-Laufzeit:&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;statemachineFireAsync-DataControl&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit dem Schalter kann der Ablauf der Statemachine von asynchroner Dateneventverarbeitung ( default, wie bisher ) auf synchrone Eventberarbeitung umgestellt werden.&lt;br /&gt;
** Einführung des Konfigurationsschalters &amp;quot;ApplicationContext&amp;quot; / &amp;quot;abstractStatemachine-ProcessEventInQueue&amp;quot; mit Defaultwert &amp;quot;true&amp;quot;&amp;lt;br&amp;gt; Mit den Schalter kann der Ablauf der Statemachine Eventverarbeitung von asynchron ( default ) auf synchron umgestellt werden. Bei synchroner Verarbeitung wirkt die Verarbeitung von Tastatureingaben unter Umständen blockierend auf das Frontend, was die Reaktion der Anwendung auf Benutzereingaben verlangsamen kann.&lt;br /&gt;
* Postupdateservice:&lt;br /&gt;
** Entfernung des Servicebindings für den Persistenceservice, stattdessen Benutzung von PersistenceServiceBinder.waitForPersistenceService() zur Prüfung, ob der PersistenceService verfügbar ist.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Datainterchange:&lt;br /&gt;
** beim Start wird nun auf den PersistenceService gewartet, nicht nur auf den ConfgurationService.&amp;lt;br&amp;gt;Ziel: Vermeidung von Deadlock Situationen beim Anwendungsstart&lt;br /&gt;
* Mandantenfähigkeit:&lt;br /&gt;
** Korrektur bei der Berechnung der verwendeten Tenants&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V20250526 ==&lt;br /&gt;
&lt;br /&gt;
* Grid:&lt;br /&gt;
** erster neu erstellter Satz in einem leeren Grid wird nun sofort angezeigt&lt;br /&gt;
** in einem &amp;quot;scroll to Bottom&amp;quot; Grid wird nicht gescrollt, wenn eine Zeile markiert ist.&lt;br /&gt;
&lt;br /&gt;
== Version 5.2.0-V202504 ==&lt;br /&gt;
&lt;br /&gt;
* '''Mandantenfähigkeit (multitenancy)''': Mit der Softwarefactory besteht nun die Möglichkeit, Anwendungen so zu bauen, dass diese Mandantenfähig sind.&amp;lt;br&amp;gt;Die Mandantenfähigkeit wird auf Basis von mandantenspezifischen Tabellen implementiert. Dies kann durch zwei unterschiedliche Verfahren erreicht werden: mandantenbezogene Tabellennamen oder Schemata.&amp;lt;br&amp;gt; Für die Benutzer der Anwendung wird dann bei der Anmeldung festgelegt, für welchen Mandanten die Anmeldung erfolgt. Dazu werden die zulässigen Mandanten für den Benutzer in der Benutzerverwaltung hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung org.eclipse.osbp.production.prefs''': Für die Persistenceunit kann angegeben werden, welche Tenants verwendet werden. z.B.&amp;lt;syntaxhighlight&amp;gt;persistenceUnit/businessdata/tenants=COMPEX,COMPEX_001,COMPEX_002&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung entity Modell''': es gibt neue Schlüsselworte &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt; multitenant [ tableBased | schemaBased ] entity { ... } &amp;lt;/syntaxhighlight&amp;gt;Hierdurch wird grundsätzlich die mulitenancy eingeschaltet und der Typ festgelegt.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Systemkonfiguration''': für jede multitenant Tabelle wird in der Systemkonfiguration ein String-Parameter eingetragen. Gruppe '''Multitenancy''', Schlüssel '''eclipselink.tenant-id.&amp;lt;tablename&amp;gt;'''. Wert: #TENANT#. Mit #TENANT# wird festgelegt, dass die Tabelle mandantenabhängig ist. Soll immer derselbe Mandant verwendet werden, so muss dieser hier eingetragen werden. Die Anwendung muss einmal gestartet werden, um die Einträge anzulegen. Dann können die Einstellungen verändert werden. Nach einer Änderung ist ein Neustart der Anwendung notwendig.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Benutzerkonfiguration''': Einem Benutzer oder einer Benutzergruppe kann nun ein Tenant oder mehrere Tenants zugeordnet werden, für die der Benutzer berechtigt ist. Damit wird der Benutzer einem oder mehreren Mandanten zugeordnet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Datenaustausch''':&lt;br /&gt;
*** '''Export''' durch zeitgesteuerte Jobs: Für jeden definierten Tenant wird ein eigener Job konfiguriert. Dazu wird der Tenant in der Jobkonfiguration eingetragen.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*** '''Import''': Für jeden Tenant wird ein eigener Import Watcher erzeugt. Das für den Tenant verwendete Importverzeichnis ergibt sich aus dem Importverzeichnis + &amp;quot;/#TENANT#. #TENANT# wird durch die konfigurierten Tenants ersetzt.&amp;lt;br&amp;gt;z.B. '''C:\OS.pos\import\COMPEX_001''' und '''C:\OS.pos\import\COMPEX_001'''.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
** '''Erweiterung Login''': beim Login wird für den Fall, dass für einen Benutzer mehrere Tenants konfiguriert sind, eine Auswahlbox für den zu verwendenden Tenant eingeblendet.&amp;lt;br&amp;gt;Falls nur ein Tenant zugeordnet ist, wird dieser automatisch verwendet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Anwendungsstart''': die Initialisierung der persistenceUnit &amp;quot;configurationData&amp;quot; wird vor allen anderen ausgeführt, damit die weiteren Initialisierungen auf die Systemkonfiguration zugreifen können.&amp;lt;br&amp;gt;Nach dem ersten Systemstart können die zu verwendenden Tenants in der Systemkonfiguration eingestellt werden. Die Anwendung muss dann nochmals gestartet werden.&lt;br /&gt;
&lt;br /&gt;
* '''Änderung bei Benutzerlogin''': auf dem Loginschirm wird, sofern Tenants verwendet werden, bei einem Benutzer, der für mehr als einen Tenant berechtigt ist, eine Auswahlbox für die berechtigten Tenants angeboten. Vor dem Login kann der entsprechende Tenant ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
== Version 5.1.0-V20250201 ==&lt;br /&gt;
&lt;br /&gt;
* Berichte:&lt;br /&gt;
** Verhindern der Berichtsanzeige, wenn eine Auswahl in einer Tabelle erwartet wird, diese jedoch nicht vorliegt.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.setup&amp;diff=4520</id>
		<title>Releasenotes 2025 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.setup&amp;diff=4520"/>
				<updated>2025-10-17T14:47:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: /* Setup für OS.app vom 09.09.2025 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Setup für OS.app vom 17.10.2025 ==&lt;br /&gt;
&lt;br /&gt;
* Korrektur für Linux Setup bei der Paketprüfung&lt;br /&gt;
&lt;br /&gt;
== Setup für OS.app vom 09.09.2025 ==&lt;br /&gt;
&lt;br /&gt;
* Korrektur für Windows Setup bei der Paketprüfung&lt;br /&gt;
* Korrektur bei der Erstellung der Konfigurationsdateien&lt;br /&gt;
&lt;br /&gt;
== Setup für OS.app vom 04.08.2025 ==&lt;br /&gt;
&lt;br /&gt;
* erste Version des neuen Setup. Es steht nun dieselbe Funktionalität auf Windows und auf Linux zur Verfügung. &amp;lt;br&amp;gt;Das setup ist von der kundenspezifischen Seite http://helpdesk.compex.de/products/cst/xxxxx herunterladbar.&amp;lt;br&amp;gt;Eine Beschreibung befindet sich ebenfalls dort.&amp;lt;br&amp;gt;Der Zugriff kann nur über den Kunden-VPN-Tunnel erfolgen.&lt;br /&gt;
&lt;br /&gt;
== Installation von Java ==&lt;br /&gt;
&lt;br /&gt;
* wir empfehlen die Verwendung von Eclipse Temurin. Java 8 ist die notwendige Version &lt;br /&gt;
* für SLES bitte zuerst das Repo hinzufügen, dann temurin-8-jdk installieren. Siehe [https://adoptium.net/de/installation/linux#opensusesles-instructions temurin auf SLES Installationsanleitung]&lt;br /&gt;
* für Windows kann eine Version hier [https://adoptium.net/de/temurin/releases?version=8&amp;amp;os=any&amp;amp;arch=any Adopium Temurin 8] heruntergeladen werden.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	<entry>
		<id>https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.setup&amp;diff=4519</id>
		<title>Releasenotes 2025 OS.setup</title>
		<link rel="alternate" type="text/html" href="https://download.osbee.org/documentation/index.php?title=Releasenotes_2025_OS.setup&amp;diff=4519"/>
				<updated>2025-10-17T14:47:44Z</updated>
		
		<summary type="html">&lt;p&gt;Mollik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== [[Releasenotes | --&amp;gt; zurück zu Releasenotes ]] ==&lt;br /&gt;
&lt;br /&gt;
== Setup für OS.app vom 09.09.2025 ==&lt;br /&gt;
&lt;br /&gt;
* Korrektur für Linux Setup bei der Paketprüfung&lt;br /&gt;
&lt;br /&gt;
== Setup für OS.app vom 09.09.2025 ==&lt;br /&gt;
&lt;br /&gt;
* Korrektur für Windows Setup bei der Paketprüfung&lt;br /&gt;
* Korrektur bei der Erstellung der Konfigurationsdateien&lt;br /&gt;
&lt;br /&gt;
== Setup für OS.app vom 04.08.2025 ==&lt;br /&gt;
&lt;br /&gt;
* erste Version des neuen Setup. Es steht nun dieselbe Funktionalität auf Windows und auf Linux zur Verfügung. &amp;lt;br&amp;gt;Das setup ist von der kundenspezifischen Seite http://helpdesk.compex.de/products/cst/xxxxx herunterladbar.&amp;lt;br&amp;gt;Eine Beschreibung befindet sich ebenfalls dort.&amp;lt;br&amp;gt;Der Zugriff kann nur über den Kunden-VPN-Tunnel erfolgen.&lt;br /&gt;
&lt;br /&gt;
== Installation von Java ==&lt;br /&gt;
&lt;br /&gt;
* wir empfehlen die Verwendung von Eclipse Temurin. Java 8 ist die notwendige Version &lt;br /&gt;
* für SLES bitte zuerst das Repo hinzufügen, dann temurin-8-jdk installieren. Siehe [https://adoptium.net/de/installation/linux#opensusesles-instructions temurin auf SLES Installationsanleitung]&lt;br /&gt;
* für Windows kann eine Version hier [https://adoptium.net/de/temurin/releases?version=8&amp;amp;os=any&amp;amp;arch=any Adopium Temurin 8] heruntergeladen werden.&lt;/div&gt;</summary>
		<author><name>Mollik</name></author>	</entry>

	</feed>