Version 3.17.0

Sorry, this entry is only available in German. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.

Neues in Faktor-IPS 3.17

Mit dem neuen Release 3.17 bekommen Produkt- und Anwendungsentwickler neue Funktionen an die Hand, die das tägliche Arbeiten spürbar beschleunigen und verbessern können. Insbesondere die neuen Produktvorlagen wurden lange erwartet! Aber auch für die Java Entwickler werden zusätzliche Klassen generiert, die das Arbeiten mit dem generierten Code einfacher und effizienter machen.

Vorlagen

Mit Vorlagen wird Faktor-IPS um eine Funktion erweitert, die das Anlegen und Warten von Produktbausteinen vereinfacht. Eine Vorlage in Faktor-IPS ist eine spezielle Art Produktbaustein. Produktbausteine (und somit auch Vorlagen) können auf einer Vorlage basieren.

editor-status-buttonsIn einer Vorlage können Werte für Produktattribute, Wertebereiche, Tabellen, Formeln und produktkonfigurierbare Validierungsregeln sowie Beziehungen definiert werden. In einem Baustein, der auf der Vorlage basiert, können diese Werte geerbt werden. Wenn der Wert in der Vorlage geändert wird, ändert sich auch der Wert in allen Bausteinen, die ihn erben. Bausteine können die Werte aus den Vorlagen auch überschreiben oder fest übernehmen, so dass der Wert bei einer Änderung der Vorlage nicht mit geändert wird.

Zusätzlich wurde eine neue Ansicht eingeführt, die auflistet, in welchen Bausteinen die Werte aus einer Vorlage verwendet werden.

vorlagenverwendung

Vorlagen sind eine optionale Funktion, ein Produktbaustein muss nicht auf einer Vorlage basieren. Bestehende Bausteine können genau wie bisher weiter verwendet werden und auch neue Bausteine müssen keine Vorlage enthalten.

Eine ausführliche Dokumentation wird in kürze Online gestellt.

Generierte Builderklassen für Produkte und Verträge

Generierte Builderklassen ermöglichen es schnell und unkompliziert neue Instanzen von Produkten und Verträgen zu erstellen. Während die Produkt-Builder vorwiegend zu Testzwecken verwendet werden, eignen sich die Vertrags-Builder zusätzlich für die Instantiierung von Vertragsstrukturen im Produktivsystem. Dabei orientiert sich die Umsetzung am Builder-Pattern wie es beispielsweise in dem Buch “Effective Java” beschrieben ist.

Faktor-IPS generiert zu jeder Vertragsklasse “Vertrag” eine Builderklasse “VertragBuilder”. Diese stellt alle Methoden bereit, die notwendig sind, um eine Instanz der entsprechenden Vertragsklasse zu erstellen und zu bearbeiten. Auch Instanzen assoziierter Vertragsklassen können erstellt und in Beziehung gesetzt werden. Folgende Code-Beispiele geben einen Einblick in die Verwendungsmöglichkeiten:

Beispielcode:

// Erstellt einen HausratVertrag mit Postleitzahl und Zahlweise
IHausratVertrag hausratVertrag = IHausratVertrag.BUILD.with()
     .plz("12345")
     .zahlweise(12)
     .get();

// Erzeugt ein Deckungsobjekt und fügt es dem Vertrag hinzu
hausratVertrag.builder().associate().hausratGrunddeckung(); 

// Erzeugt ein konfiguriertes HausratGrunddeckungsobjekt und fügt es dem Vertrag hinzu. Zusätzlich wird an 
// dieser Deckung die Wohnfläche gesetzt und ein weiteres referenziertes Objekt (ZuNa) hinzugefügt. 
hausratVertrag.builder(repository)      
    .associate().hausratGrunddeckung("beispiel.Basis 2015-06")      
    .wohnflaeche(120)      
    .associate().zuNa();

Um die Erzeugung von Builderklassen zu aktivieren, müssen die Faktor-IPS Einstellungen für alle betreffenden Projekte angepasst werden. Rechtsklick auf das Projekt -> Einstellungen -> Faktor-IPS Code Generator -> “Generate builder classes”.

Bei den Buildern handelt es sich derzeit noch um ein experimentelles Feature. Anregungen und Fehler melden Sie bitte über dieses Formular.

Editoren für Tabellen und Aufzählungen (Enums)

Wir arbeiten aktuell an diversen Verbesserungen für die Editoren und Import Wizards von Tabellen und Aufzählungen. Es wird kein großer Sprung aber auch Kleinigkeiten wie die Anzeige der Zeilennummer in der Statuszeile oder das Löschen von mehreren Zeilen können die tägliche Arbeit mit Tabellen erleichtern. Ein Teil dieser Verbesserungen ist bereits in dieser Version enthalten, einige weitere werden im nächsten Patch Release kommen.

Generierter Code und Runtime

Die bereits in Faktor-IPS 3.15 auf deprecated gesetzte Methode IConfigurableModelObject#getProductCmptGeneration() wurde nun entfernt. Die richtige Methode liegt im davon abgeleiteten Interface ITimedConfigurableModelObject.

Release Notes – Faktor-IPS – Version 3.17.0

Bugs

  • Multi-Select auf Beziehungen im Bausteineditor zum Ändern der Kardinalität geht nicht (FIPS-4485)
  • Attribut für ProductConfiguration ist final – auch bei JPA (FIPS-4642)
  • Fix Differences bei Produktvorlagen bezieht sich auf Modell (FIPS-4669)
  • In Vorlagen sollten Mindest-Kardinalitäten nicht validiert werden (FIPS-4670)
  • Überschriebene gelöschte Beziehungen funktionieren nicht korrekt (FIPS-4671)
  • Auswahl von bei Attributen vom Typ ENUM (FIPS-4753)
  • Refresh bei Änderung des Vorlagenwertes und im Editor geöffnetem Baustein (FIPS-4837)

Improvements

  • Gesamtanzahl der Zeilen und aktuelle Position in Tabellen und Enums in der Statusleiste anzeigen (FIPS-673)
  • Ändern oder entfernen von Vorlagen (FIPS-4431)
  • Multiselect in Tabellen und Enuminhalten (FIPS-4463)
  • Beziehungen beim extrahieren von Vorlagen berücksichtigen (FIPS-4609)
  • Default Locale und Fallback bei DefaultInternationalString (FIPS-4657)
  • Unterstützung von Joda MonthDay als Datentyp (FIPS-4702)
  • Kleine Verbesserungen (FIPS-4770)
  • Methode getProductCmptGeneration in IConfigurableModelObject löschen (FIPS-4781)
  • Warning bei mehreren Vorlagen auf gleicher Ebene ausbauen (FIPS-4836)

New Features

  • Filter im Bausteineditor für Werte aus der Vorlage (FIPS-4429)
  • Behandeln von Beziehungen in Vorlagen (Stufe 1) (FIPS-4432)
  • Unterstützung der Java8 Datentypen für Datum / Uhrzeit (LocalDate etc.) (FIPS-4607)
  • Builder Generator übernehmen (FIPS-4760)

//