Developer-Changelog

Diese Seite zeigt Änderungen, die in den Releases der einzelnen Versionen enthalten sind und für BPC Modulentwickler relevant sind.

Für die Auflistung aller Änderungen siehe Changelog.

BPC 5.0.1

Release Datum: 2025-11-24

Mit diesem Update müssen folgende Komponenten aktualisiert werden: BPC Module

Verbesserungen

  • Bessere Testbarkeit von Comboboxen BPC-10196

    Die Werte der verschiedenen Optionen in Comboboxen werden nun nicht mehr pauschalt durch ein   ergänzt. Dies erleichtert das automatisierte Testen der Oberflächen.

    Betrifft: BPC Core |

  • Code löschen, der als Deprecated und Marked for Removal gekennzeichnet ist BPC-10243

    Code, der als deprecated markiert war, wurde aus BPC entfernt.

    Betrifft: BPC Core |

BPC 5.0.0

Release Datum: 2025-10-24

Mit diesem Update müssen folgende Komponenten aktualisiert werden: BPC Module | Karaf

Breaking Changes

Sie sollten die Beschreibungen in diesem Abschnitt genau lesen. Es können Handlungsanweisungen enthalten sein, die Sie für ein Update befolgen müssen.

  • Harmonisierung der Schnittstellen für verschiedene Monitor Funktionen BPC-9770

    Die Query String Parameter gridId, gridExtId, multiRecords, buttonId und der Form Parameter tablePrefix wurden aus den Prozess Aktion Anfragen entfernt. Um zusätzliche Kontext- oder Konfigurationsinformationen mitzusenden, kann "Prozessaktions-Metadaten" in den Monitor-Einstellungen konfiguriert werden.

    In Prozess Startern wurde das mitgesendete XML durch JSON ersetzt. Dadurch wurden portletArchiveName, operation, mandant, gridID, key, bpcModule, bpcModuleInstanceId und custom entfernt. key wurde einheitlich zu id umbenannt. Zusätzliche Kontext- oder Konfigurationsinformationen können durch die "metadata" Konfiguration in der Prozesstarter-Konfiguration in den Monitor-Einstellungen zuverlässig mitgesendet werden. Die Prozessparameter sind gebündelt unter config.parameters im Request Payload zu finden. Fileuploads enthalten filename, type und data. Grids enthalten eine Liste mit ihren Records.

    Bei Change State wurden tablePrefix, mandant und changeStatusBox_<Spaltenname> entfernt. command wurde einheitlich umbenannt zu type und erhält den Wert "statusChange". columnsstring wurde umbenannt zu column. newStatusCombo_<Spaltenname> wurde umbenannt zu newStatus. commentfield wurde umbenannt zu comment. childStatus wird nicht mehr per Default in der Change State Konfiguration auf "Info" gesetzt und wird, falls konfiguriert, nach metadata migriert. Im "metadata" Objekt in der Change State Konfiguration können zusätzliche Informationen übergeben werden.

    Die ungenutzten Einstellungen inubit_aperakEndPoint, inubit_dbGridId und inubit_pmMandant wurden entfernt. Die Einstellungen inubit_actionEndpoint, inubit_changeStateEndpoint und inubit_VpsEndpoint wurden durch actionEndpointProcessor, changeStateEndpointProcessor und vpsEndpointProcessor ersetzt.

  • Eingeschränkte Weiterleitung von Session-Informationen BPC-9925

    HTTP-Proxy Backend-Connections und Flow-Verbindungen filtern jetzt stets den Session-Cookie, damit ein Empfänger nicht im Kontext des Benutzers Aufrufe im BPC tätigen kann. Die Einstellung filterSessionCookie entfällt somit. Stattdessen gibt es mit der neuen Einstellung sendSessionId die Möglichkeit, die Session-ID des Benutzers mitzuschicken, welche am Endpunkt GET /cxf/bpc-core/authentication/session/{sessionid} überprüft werden kann. Bei aktivierter Einstellung injectUserSessionJWT wird nun nicht mehr ein selbst-erstellter JWT mitgeschickt, sondern der signierte ID-Token des OpenID Connect Providers gesendet. Genaueres können Sie in Backend Connections - HTTP-Proxy nachlesen.

    Betrifft: BPC Core | Dokumentation |

  • Umbennenung von childs zu children im Log Service Payload BPC-8478

    Benutzer der Log Service API müssen in ihren POST-Daten alle Vorkommen von childs durch children ersetzen. Innerhalb einer Übergangszeit kann childs eingehend noch verwendet werden. Diese Rückwärtskompatibilität wird in einem folgenden Release entfernt. Auch ist darauf zu achten, dass in den Rückantworten der Log Service Endpunkte nun children anstatt childs enthalten ist.

    Betrifft: BPC Core |

Neue Funktionen

  • OpenAPI Spezifikation für REST API BPC-8513

    Mit diesem Update ist es erforderlich, den Karaf zu aktualisieren.

    Das BPC stellt OpenApi-konforme Spezifikationsdateien für unsere APIs bereit. Diese befinden sich unter Downloads und können alternativ auch dynamisch über das BPC aufgerufen werden, sofern diese Option aktiviert ist. Mehr Informationen finden Sie im Abschnitt BPC-API.

    Betrifft: BPC Core | Dokumentation | Forms | Karaf |

  • BPC Deeplinks über LogService BPC-8798

    Man kann sich über die Log Service API direkt in die Log Service Konfiguration oder zu angebundene Monitore weiterleiten zu lassen. Dazu gibt es gibt zwei neue LogService Endpunkte, welche den Benutzer beim Aufruf auf die entsprechenden BPC Seiten weiterleiten:

    Siehe auch API Dokumentation: Log Service API

    Betrifft: BPC Core | Dokumentation |

  • Referenz im Auditlog BPC-8824

    Es ist nun möglich beim Schreiben von Audit-Informationen Referenzen auf externe Ressourcen anzugeben. So kann zum Beispiel auf die IGUASU-Instanz verwiesen werden, die den Eintrag erzeugt hat.

    Betrifft: BPC Core | Dokumentation |

  • Neuer Setting Type zur Auswahl von Modulinstanzen aus mehreren Modulen (Flow & Backend Connections) BPC-9289

    Es wurde ein neues Setting hinzugefügt, mit dem sich die Endpunkte bzw. Prozessoren von Flow & Backend Connections auswählen lassen. Die Auswahl generiert eine BPC URL nach dem Schema bpc://<flow/backendconnection>/<instanceId>/<endpointOrProcessor>. Es gibt jeweils Settings für Prozess Aktionen, Prozess Starter und Change State.

  • Validierungsergebnisse im `state` BPC-8481

    Ergebnisse aus der Validierung werden nun im state vorgehalten. Dadurch können diese z.B. auch für Bindungs verwendet werden. Siehe auch validate

    Betrifft: Forms |

Verbesserungen

  • Editor mit SQL Support BPC-9351

    Das Setting Common Table Expression Abfrage in der Replikation kann nun in einem Editor bearbeitet werden, der SQL Syntax unterstützt.

    Betrifft: BPC Core |

  • Überarbeitung von Link-Benachrichtigungen BPC-9624

    Für Benachrichtigungen gibt es nicht mehr den Typen 'link', stattdessen können alle Benachrichtigungen nun Verlinkungen angeben. Dafür wird das Feld linkData verwendet (davor typeSpecificData). Für Verweise auf externe Webseiten wird weiterhin das Feld url verwendet, für BPC-interne Navigationen wird nun die Hash-Komponente der BPC-URL im Feld navigation angegeben. Weiteres lesen sie in Benachrichtigungstypen und unter Notification API nach.

    In der Benachrichtigungsoberfläche (BPC → Konfiguration → Übersicht → Benachrichtigungen) kann nun auch eine Verlinkung konfiguriert werden (siehe Benachrichtigungen an Anwender).

    Betrifft: BPC Core | Dokumentation |

  • Harmonisierung der Schnittstellen für verschiedene Monitor Funktionen BPC-9770

    Die Query String Parameter gridId, gridExtId, multiRecords, buttonId und der Form Parameter tablePrefix wurden aus den Prozess Aktion Anfragen entfernt. Um zusätzliche Kontext- oder Konfigurationsinformationen mitzusenden, kann "Prozessaktions-Metadaten" in den Monitor-Einstellungen konfiguriert werden.

    In Prozess Startern wurde das mitgesendete XML durch JSON ersetzt. Dadurch wurden portletArchiveName, operation, mandant, gridID, key, bpcModule, bpcModuleInstanceId und custom entfernt. key wurde einheitlich zu id umbenannt. Zusätzliche Kontext- oder Konfigurationsinformationen können durch die "metadata" Konfiguration in der Prozesstarter-Konfiguration in den Monitor-Einstellungen zuverlässig mitgesendet werden. Die Prozessparameter sind gebündelt unter config.parameters im Request Payload zu finden. Fileuploads enthalten filename, type und data. Grids enthalten eine Liste mit ihren Records.

    Bei Change State wurden tablePrefix, mandant und changeStatusBox_<Spaltenname> entfernt. command wurde einheitlich umbenannt zu type und erhält den Wert "statusChange". columnsstring wurde umbenannt zu column. newStatusCombo_<Spaltenname> wurde umbenannt zu newStatus. commentfield wurde umbenannt zu comment. childStatus wird nicht mehr per Default in der Change State Konfiguration auf "Info" gesetzt und wird, falls konfiguriert, nach metadata migriert. Im "metadata" Objekt in der Change State Konfiguration können zusätzliche Informationen übergeben werden.

    Die ungenutzten Einstellungen inubit_aperakEndPoint, inubit_dbGridId und inubit_pmMandant wurden entfernt. Die Einstellungen inubit_actionEndpoint, inubit_changeStateEndpoint und inubit_VpsEndpoint wurden durch actionEndpointProcessor, changeStateEndpointProcessor und vpsEndpointProcessor ersetzt.

  • Klassen für Menu-Buttons für geringeren Pfeil-Abstand BPC-10060

    An Buttons können nun die Klassen arrow-spacing-sm (small) und arrow-spacing-xs (extra small) genutzt werden, um den Abstand des Pfeils zu reduzieren.

    Betrifft:

  • Backend Bundles sollten keine feature.xml enthalten BPC-10115

    Für BPC Modul Entwickler:

    Wenn in den Modul-Sourcen eine feature/feature.xml verwendet wird, dann bitte in der pom.xml den folgenden resource-Block entfernen:

    <resources>
    ...
        <resource>
            <directory>src/main/feature</directory>
            <filtering>true</filtering>
            <targetPath>${project.build.directory}/feature</targetPath>
        </resource>
    </resources>

    Durch diesen Eintrag wurde die feature.xml als Ressource festgelegt und mit in die JAR-Datei eingebettet. Das ist nicht notwendig.

    Allerdings muss trotzdem noch das maven-resources-plugin verwendet werden um Platzhalter in der feature.xml zu ersetzen.

    Dazu folgendes Plugin-Aufruf hinzufügen:

    <plugins>
        <!-- Replace the placeholders in the feature.xml file -->
        <!-- Documentation : https://maven.apache.org/plugins/maven-resources-plugin/ [https://maven.apache.org/plugins/maven-resources-plugin/] -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>${maven-resources-plugin.version}</version>
            <executions>
                <execution>
                    <id>copy-feature-file</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/feature</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/feature</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        ...
    </plugins>
  • Umbennenung von childs zu children im Log Service Payload BPC-8478

    Benutzer der Log Service API müssen in ihren POST-Daten alle Vorkommen von childs durch children ersetzen. Innerhalb einer Übergangszeit kann childs eingehend noch verwendet werden. Diese Rückwärtskompatibilität wird in einem folgenden Release entfernt. Auch ist darauf zu achten, dass in den Rückantworten der Log Service Endpunkte nun children anstatt childs enthalten ist.

    Betrifft: BPC Core |

  • Event Erstellung von der veralteten Dictionary auf Map umstellen BPC-9483

    Beim Event Handling sollte Map anstelle von Dictionary verwendet werden.

    Betrifft: BPC Core |

Security

  • Eingeschränkte Weiterleitung von Session-Informationen BPC-9925

    HTTP-Proxy Backend-Connections und Flow-Verbindungen filtern jetzt stets den Session-Cookie, damit ein Empfänger nicht im Kontext des Benutzers Aufrufe im BPC tätigen kann. Die Einstellung filterSessionCookie entfällt somit. Stattdessen gibt es mit der neuen Einstellung sendSessionId die Möglichkeit, die Session-ID des Benutzers mitzuschicken, welche am Endpunkt GET /cxf/bpc-core/authentication/session/{sessionid} überprüft werden kann. Bei aktivierter Einstellung injectUserSessionJWT wird nun nicht mehr ein selbst-erstellter JWT mitgeschickt, sondern der signierte ID-Token des OpenID Connect Providers gesendet. Genaueres können Sie in Backend Connections - HTTP-Proxy nachlesen.

    Betrifft: BPC Core | Dokumentation |

Interne Abhängigkeiten / Dependency Updates

  • Update CXF BPC-9852

    Betrifft: BPC Core | Karaf |

  • Update ExtJS BPC-9567

    Der Core wird nun nicht mehr in alte ECMAScript transpiliert und es werden keine Polyfills mehr hinzugefügt. Damit wird eine Unterstützung neuerer Sprachfeatures ermöglicht. Dies bedeutet, dass auch ExtJS-Packages in ihrer packages/local/PACKAGENAME/package.json folgenden Inhalt haben sollten:

    {
      "...",
      "compressor": {
        "polyfills": "none"
      },
      "language": {
        "js": {
          "output": "ANY"
        }
      }