Developer Changelog

This page lists the changes included in each version’s release that are relevant to BPC module developers.

For a complete list of changes, see Changelog.

BPC 5.0.8

Release Date: 2026-06-29

With this update, the following components must be updated: BPC Modules

BPC 5.0.7

Release Date: 2026-06-01

The following components must be updated with this update: BPC Modules

BPC 5.0.6

Release Date: 2026-05-22

The following components must be updated with this update: BPC Modules

Bugs

  • Storage API: The GET endpoint filter/query cannot search by value and `additionalProperties ` BPC-9846

    The Storage API’s ` GET` endpoint can now also filter by ` value ` and ` customFields ` using the parameters ` query ` and ` filter . To filter by subfields, use dot-separated syntax: `value.name:Alicia filters entries where the name field in value has the value Alicia.

    Since Storage indexes do not contain timestamp fields, the parameters timezoneOffset and timezoneName have been removed from the GET endpoint.

    For BPC Module Developers If you use the ` StorageService class and its ` `getItems functions in your BPC modules, please note that these have been marked as deprecated and replaced with a variant that does not include the ` `timeZoneId` Parameter.

    Applies to: BPC Core |

BPC 5.0.5

Release Date: 2026-03-26

With this update, the following components must be updated: BPC Module

BPC 5.0.4

Release Date: 2026-03-16

The following components must be updated with this update: BPC Modules

Improvements

  • Record ID as data-testid in the DOM BPC-10662

    This change allows for better automated testing of tables in the GUI.

    Affects: BPC Core |

Bugs

  • Default settings - groupname - "config" BPC-10402

    Fix for BpcCommon.Api.getTranslation: If a translation incorrectly returns an object (e.g., for "config"), the system now falls back to the key string to avoid [object Object].

    Subject: BPC Core |

BPC 5.0.3

Release Date: 2026-01-23

The following components must be updated with this release: BPC Modules

Improvements

  • BPC Frontend: Custom modules should be able to interrupt routing in BPC BPC-10507

    In the frontend, the global event beforeShowModule is fired before switching to a new view (module or module component). The following parameters are passed: the module ID of the current view, the module ID of the new view to be displayed, and additional options. If an event listener returns ` false `, the transition to the new view is canceled. If this behavior is implemented, the user should also receive feedback explaining why the transition was canceled.

    Affects: BPC Core |

BPC 5.0.2

Release Date: 2026-01-15

The following components must be updated with this update: BPC Module

BPC 5.0.1

Release Date: 2025-11-24

The following components must be updated with this update: BPC Modules

Improvements

  • Improved Testability of Combo Boxes BPC-10196

    The values of the various options in combo boxes are no longer uniformly appended with a "   ". This facilitates automated testing of the user interfaces.

    Re: BPC Core |

  • Remove code marked as "Deprecated" and "Marked for Removal " BPC-10243

    Code that was marked as deprecated has been removed from BPC.

    Subject: BPC Core |

BPC 5.0.0

Release Date: 2025-10-24

The following components must be updated with this release: BPC Module | Karaf

Breaking Changes

You should read the descriptions in this section carefully. They may contain instructions that you must follow to perform an update.

  • Harmonization of Interfaces for Various Monitor Functions BPC-9770

    The query string parameters gridId, gridExtId, multiRecords, buttonId, and the form parameter tablePrefix have been removed from process action requests. To send additional context or configuration information, "Process Action Metadata" can be configured in the monitor settings.

    In process starters, the XML that was sent along with the request has been replaced by JSON. As a result, portletArchiveName, operation, mandant, gridID, key, bpcModule, bpcModuleInstanceId, and custom have been removed. key has been uniformly renamed to id. Additional context or configuration information can be reliably included by using the "metadata" configuration in the process starter settings within the monitor settings. The process parameters are grouped under config.parameters in the request payload. File uploads contain ` filename, ` `type `, and ` `data. Grids contain a list of their records. `

    ` For Change State, tablePrefix, mandant, and changeStatusBox_<Spaltenname> have been removed. command has been uniformly renamed to type and is assigned the value "statusChange". columnsstring has been renamed to column. newStatusCombo_<Spaltenname> has been renamed to newStatus. commentfield has been renamed to comment. childStatus is no longer set to "Info" by default in the Change State configuration and, if configured, is migrated to metadata. Additional information can be passed in the "metadata" object in the Change State configuration.

    The unused settings inubit_aperakEndPoint, inubit_dbGridId, and inubit_pmMandant have been removed. The settings inubit_actionEndpoint, inubit_changeStateEndpoint, and inubit_VpsEndpoint have been replaced by actionEndpointProcessor, changeStateEndpointProcessor, and vpsEndpointProcessor.

  • Restricted Forwarding of Session Information BPC-9925

    HTTP proxy backend Connections and flow Connections now always filter the session cookie so that a recipient cannot make requests in BPC within the user’s context. The setting ` filterSessionCookie ` is therefore no longer needed. Instead, the new setting ` sendSessionId ` allows you to include the user’s session ID, which can be verified at the endpoint ` GET /cxf/bpc-core/authentication/session/{sessionid} . When the " `injectUserSessionJWT " setting is enabled, a self-generated JWT is no longer sent; instead, the signed ID token from the OpenID Connect provider is sent. You can find more details in Backend Connections - HTTP Proxy.

    Affects: BPC Core | Documentation |

  • Renaming “childs” to “children” in the Log Service Payload BPC-8478

    Users of the Log Service API must replace all instances of childs with children in their POST data. During a transition period, childs can still be used for incoming requests. This backward compatibility will be removed in a future release. Please also note that the responses from the Log Service endpoints now contain children instead of childs.

    Affects: BPC Core |

New Features

Improvements

  • Editor with SQL Support BPC-9351

    The " Common Table Expression Abfrage " setting in replication can now be edited in an editor that supports SQL syntax.

    Re: BPC Core |

  • Revision of Link Notifications BPC-9624

    The 'link' type no longer exists for notifications; instead, all notifications can now specify links. The field linkData is used for this (previously typeSpecificData). The field url is still used for links to external websites; for internal BPC navigation, the hash component of the BPC URL is now specified in the field navigation. For more information, see Notification Types and the Notification API.

    In the notification interface (BPC → Configuration → Overview → Notifications), you can now also configure a link (see Notifications to Users).

    Subject: BPC Core | Documentation |

  • Harmonization of Interfaces for Various Monitor Functions BPC-9770

    The query string parameters gridId, gridExtId, multiRecords, buttonId, and the form parameter tablePrefix have been removed from process action requests. To send additional context or configuration information, "Process Action Metadata" can be configured in the monitor settings.

    In process starters, the XML that was sent along with the request has been replaced by JSON. As a result, portletArchiveName, operation, mandant, gridID, key, bpcModule, bpcModuleInstanceId, and custom have been removed. key has been uniformly renamed to id. Additional context or configuration information can be reliably included by using the "metadata" configuration in the process starter settings within the monitor settings. The process parameters can be found grouped under config.parameters in the request payload. File uploads contain ` filename, ` `type `, and ` `data. Grids contain a list of their records. `

    ` For "Change State," ` tablePrefix`, ` mandant , and ` `changeStatusBox_<Spaltenname> ` have been removed. ` command ` has been uniformly renamed to ` type ` and is assigned the value "statusChange." ` columnsstring ` has been renamed to column. newStatusCombo_<Spaltenname> has been renamed to newStatus. commentfield has been renamed to comment. childStatus is no longer set to "Info" by default in the Change State configuration and, if configured, will be migrated to metadata. Additional information can be passed in the "metadata" object in the Change State configuration.

    The unused settings inubit_aperakEndPoint, inubit_dbGridId, and inubit_pmMandant have been removed. The settings inubit_actionEndpoint, inubit_changeStateEndpoint, and inubit_VpsEndpoint have been replaced by actionEndpointProcessor, changeStateEndpointProcessor, and vpsEndpointProcessor.

  • Flexible Arrow Spacing for Menu Buttons BPC-10060

    The classes arrow-spacing-sm (small) and arrow-spacing-xs (extra small) can now be applied to buttons to reduce the arrow spacing.

    Re:

  • Backend bundles should not contain feature.xml BPC-10115

    For BPC module developers:

    If feature/feature.xml is used in the module sources, please remove the following resource block from pom.xml:

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

    This entry defined feature.xml as a resource and embedded it in the JAR file. This is not necessary.

    However, you must still use the maven-resources-plugin to replace placeholders in the feature.xml.

    To do this, add the following plugin call:

    <plugins>
        <!-- Replace the placeholders in the feature.xml file -->
        <!-- Documentation : 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>
  • Renaming "childs" to "children" in the Log Service Payload BPC-8478

    Users of the Log Service API must replace all instances of childs with children in their POST data. During a transition period, childs can still be used for incoming traffic. This backward compatibility will be removed in a future release. Please also note that the responses from the Log Service endpoints now contain children instead of childs.

    Subject: BPC Core |

  • Switch event creation from the deprecated dictionary to Map BPC-9483

    When handling events, Map should be used instead of Dictionary.

    Subject: BPC Core |

Security

  • Restricted Forwarding of Session Information BPC-9925

    HTTP proxy backend Connections and flow Connections now always filter the session cookie to prevent a recipient from making requests in the BPC within the user’s context. The setting ` filterSessionCookie ` is therefore no longer needed. Instead, the new setting ` sendSessionId ` allows you to include the user’s session ID, which can be verified at the endpoint ` GET /cxf/bpc-core/authentication/session/{sessionid} . When the " `injectUserSessionJWT " setting is enabled, a self-generated JWT is no longer sent; instead, the signed ID token from the OpenID Connect provider is sent. You can find more details in Backend Connections - HTTP Proxy.

    Subject: BPC Core | Documentation |

Internal Dependencies / Dependency Updates

  • Update CXF BPC-9852

    Subject: BPC Core | Karaf |

  • Update ExtJS BPC-9567

    The Core is no longer transpiled to legacy ECMAScript, and polyfills are no longer added. This enables support for newer language features. This means that ExtJS packages should also have the following content in their ` packages/local/PACKAGENAME/package.json ` file:

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