Im Folgenden werden spezielle Anpassungen aufgelistet, die Sie zwingend manuell durchführen müssen, wenn Sie ein bestimmtes neues Release einspielen.
Wenn Sie mehrere Releases überspringen, müssen Sie ALLE zwischenzeitlich notwendig gewordenen Anpassungen durchführen.
Darüber hinaus werden hier auch optionale Anpassungen erläutert.
Ebenso werden hier Anpassungen angekündigt, die den öffentlichen Teil der B2B betreffen, und die Codeänderungen in externen, vom Kunden implementierten Funktionalitäten erfordern.
Release 2022-03
Neue Technologie im Nachrichtenmonitor-UI
Mit dem März-Release der B2B-UI wird der Nachrichtenmonitor auf Webcomponent-Technologie umgestellt. Wenn Sie vom Februar-Release zum März-Release updaten ist nichts zu tun, außer wie üblich das neue Release der B2B-UI einzuspielen. Bei der Umstellung achten wir darauf, dass keine administrativen Konfigurationsanpassungen notwendig sind.
Release 2021-03
NUI-759 Additional Columns
Beachten Sie auch die Konfigurationsanpassungen zu den AdditionalColumns NUI-1356 aus dem Februar-Release: Die Datenbank-View b2bbp_data_message_view
musste dort aktualisiert werden. Die Änderungen vom letzten Monat sind hier dokumentiert. Die Sqls finden hier & hier. Die AdditionalColumns unterstützen nur noch das Laden aus der Datenbank und nicht mehr aus der Extension. Kommen Sie auf uns zu, wenn Sie sich Unterstützung bei der Umstellung wünschen.
Beim ersten Boot des neuen Releases aktualisiert die B2B automatisch das Customizing. Bitte starten Sie die B2B danach neu, damit die Überschriften der AdditionalColumns wieder korrekt dargestellt werden.
Nach dem automatischen Update wird der Eintrag der GlobalProperty B3P_MON_ADDITIONAL1_VALUE
in B3P_MON_ADDITIONAL1_KEY
gespeichert und danach durch additional1
ersetzt. Dies erfolgt analog für alle AdditionalColumns. Außerdem werden die Extensions DISPLAY_EDICONTENT_IN_ADDITIONAL_COLUMN
& DISPLAY_EDICONTENT_IN_ADDITIONAL_COLUMN_EXTENDED
entsprechend angepasst. Die GlobalProperty B3P_MON_ADDITIONAL_SAVE_CONTRL_AND_APERAK_REFERENCE_NUMBERS
wird durch die Properties STORE_ADDITIONAL_CONTRLREF
& STORE_ADDITIONAL_APERAKREF
abgelöst.
Der Inhalt der Additional Columns wird nur für Nachrichten angezeigt, die nach dem beschriebenen Update die Datenbank durchlaufen. Falls Sie auch Inhalte älterer Nachrichten anzeigen möchten, können Sie den Inhalt der Tabelle aktualisieren. Das folgende Script aktualisiert die AdditionalColumns aller Nachrichten, die jünger sind als 18.3.2021 00:00. Da diese Tabelle auf produktiven Systemen sehr viele Einträge enthalten kann, sollte die Größe des Zeitfensters nicht zu groß gewählt werden. Das Script kann nur erfolgreich ausgeführt werden, wenn das automatische Customizing-Update bereits durchgeführt worden ist.
--- NO PARTITIONING ---
update b2bbp_data_additional_columns
set datakey = 'additional1'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL1_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional2'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL2_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional3'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL3_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional4'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL4_KEY'));
--- WITH PARTITIONING (Postgres, MSSQL) ---
update b2bbp_data_additional_columns
set datakey = 'additional1'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL1_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional2'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL2_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional3'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL3_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional4'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL4_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional1'
where exists (select messageid from b2bbp_data_message_clearing where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL1_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional2'
where exists (select messageid from b2bbp_data_message_clearing where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL2_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional3'
where exists (select messageid from b2bbp_data_message_clearing where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL3_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional4'
where exists (select messageid from b2bbp_data_message_clearing where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL4_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional1'
where exists (select messageid from b2bbp_data_message_offline where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL1_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional2'
where exists (select messageid from b2bbp_data_message_offline where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL2_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional3'
where exists (select messageid from b2bbp_data_message_offline where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL3_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional4'
where exists (select messageid from b2bbp_data_message_offline where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL4_KEY'));
--- WITH PARTITIONING (Oracle) ---
update b2bbp_data_additional_columns
set datakey = 'additional1'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL1_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional2'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL2_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional3'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL3_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional4'
where exists (select messageid from b2bbp_data_message where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL4_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional1'
where exists (select messageid from b2bbp_data_messagec where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL1_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional2'
where exists (select messageid from b2bbp_data_messagec where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL2_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional3'
where exists (select messageid from b2bbp_data_messagec where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL3_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional4'
where exists (select messageid from b2bbp_data_messagec where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL4_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional1'
where exists (select messageid from b2bbp_data_messageo where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL1_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional2'
where exists (select messageid from b2bbp_data_messageo where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL2_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional3'
where exists (select messageid from b2bbp_data_messageo where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL3_KEY'));
update b2bbp_data_additional_columns
set datakey = 'additional4'
where exists (select messageid from b2bbp_data_messageo where b2bbp_data_message.messageid = b2bbp_data_additional_columns.messageid and started > '2021-03-18 00:00:00')
and (datakey = (select val from b2bbp_adm_global_property where propertykey = 'B3P_MON_ADDITIONAL4_KEY'));
Additional Columns per Extension laden
Dieser Abschnitt bezieht sich auf Systeme, auf denen das 2021-März Release bereits eingespielt worden ist.
Falls Sie bisher die Additional Columns per Extension (Doku) und nicht aus der Datenbank geladen haben und zu dieser Funktionalität zurückkehren möchten, gehen Sie bitte wie folgt vor:
Kopieren Sie den Wert der Global-Property B3P_MON_ADDITIONAL1_KEY
zurück in die Global-Property B3P_MON_ADDITIONAL1_VALUE
. Verfahren Sie analog für die Properties der Spalten 2, 3 und 4.
Danach werden die Additional Columns in der alten UI wieder per Extension geladen und angezeigt. Falls Sie zusätzlich die neue UI auf das Laden per Extension umschalten möchten, deployen Sie bitte den 2021-Februar Release auf den per Keycloak gesicherten Tomcat-Knoten, welche als Backend für die neue UI dienen. Die Knoten, auf denen die Services (z.B. QueueService) ausgeführt werden, sollten für die Formatumstellung hingegen auf dem 2021-März Release basieren.
Technischer Hintergrund: durch das automatische Customizing-Update wurde der Wert aus der Global-Property B3P_MON_ADDITIONAL1_VALUE
in die Global-Property B3P_MON_ADDITIONAL1_KEY
kopiert und danach durch den fixen Wert additional1
ersetzt. Diese Änderung ist zu reverten. Hierfür kopieren Sie den Wert der Global-Property B3P_MON_ADDITIONAL1_KEY
zurück in die Global-Property B3P_MON_ADDITIONAL1_VALUE
und überschreiben somit den Wert additional1
. Bitte löschen Sie NICHT die Global-Property B3P_MON_ADDITIONAL1_KEY
, da ihre Präsenz sicherstellt, dass das automatische Customizing-Update nicht erneut ausgeführt wird.
NUI-1291 Aktualisierung der Image-Namen
Die Benamung der Images wird vereinheitlicht. Deswegen ändern sich folgende Namen:
- message -> notification-service
- user-messages-ui -> notification-ui
Bitte passen Sie die Namen in der docker-compose.yml
entsprechend an.
NUI-1414 B2B Encoding im Docker
Das Default B2B Tomcat Encoding im Docker ist nun gemäß BDEW ISO-8859-1
. Es kann bei Bedarf über die Umgebungsvariable CATALINA_OPTS
überschrieben werden, Beispiel:
ENV CATALINA_OPTS="-Dfile.encoding=<Ihr-Encoding>"
NUI-1475 b2b-basicauth Image
Wir stellen neben dem Image b2b
(ein per Keycloak gesicherter Tomcat) nun auch das Image b2b-basicauth
bereit. Dieses Image enthält eine B2B, die per BasicAuth abgesichert wird. Das neue Image kann somit bei Bedarf die alten Backend Tomcats ablösen.
Release 2021-Feb
Notwendige Anpassungen
NUI-1356 Additional Columns
Die folgenden Datenbank-Anpassungen sind zwingend auf allen Systemen durchzuführen, selbst wenn keine Additional Columns eingesetzt werden.
Damit zukünftig Filter für Additional Columns in der neuen UI genutzt werden können, wird das Datenbankschema vereinheitlicht. Falls noch nicht passiert, ergänzen Sie die übliche Tabelle der Additional Columns.
Die Skripte für alle Datenbanken sind hier zu finden.
Aktualisieren Sie danach die Datenbank-View b2bbp_data_message_view
. Die zugehörigen Skripte finden Sie hier.
Bisher war es möglich, AdditionalColumns entweder aus der Datenbank oder aus einer Extension zu laden. Das Laden der AdditionalColumns aus einer Extension wird ab März in der neuen UI nicht mehr unterstützt. Bitte nutzen Sie stattdessen die Datenbank gemäß unserer Doku. Falls Sie Unterstützung bei der Umkonfiguration benötigen, kommen Sie auf uns zu.
NUI-1274 Volltextsuche
Der letzte Hotfix enthält notwendige Anpassungen an der Datenbank. Bitte führen Sie die Anpassung durch, falls Sie den Hotfix noch nicht eingespielt haben. Sie finden hier die entsprechenden Anpassungen.
Informationen
Die folgenden Punkte dienen der Information. Wenn Sie die aufgelisteten Themen nicht nutzen, müssen Sie nicht tätig werden.
NUI-1316 Mandanten aus Gruppen
Falls Sie die Mandanten nicht direkt den Usern sondern Gruppen zuweisen möchten, ist das folgende Vorgehen anzuwenden (gemäß unser Doku):
Ähnlich wie Rollen können Mandantenattribute Gruppen zugewiesen werden. Das tenants
Attribut gilt dann für die User mit entsprechender Gruppe. Somit ist es möglich, dass Mandanten über mehrere Gruppen den Usern zugewiesen werden.
Beispiel: der User Müller kann Nachrichten von Netz & Lief sowie allgemeine Nachrichten sehen, da er selber über das Mandantenattribut tenants=general
verfügt und zusätzlich den Gruppen NETZ & LIEF zugeordnet ist, welche jeweils über die Attribute tenants=netz
& tenants=lief
verfügen.
Für dieses Feature müssen für jede UI im Keycloak Tenant-Mapper
die Eigenschaften Multivalued
und Aggregate attribute values
aktiviert werden.
NUI-1211 HTTPS mit selbst signierten Zertifikaten
Falls Sie die B2B via HTTPS mit selbst signierten Zertifikaten absichern wollen, können Sie unser Anleitung folgen. Die Zertifikate müssen an den Backends hinterlegt werden.
NUI-106 FSS CRL Button
Falls Sie in der FSS-UI den CRL-Button (Sperrlistendownload) nutzen wollen, gehen Sie wie folgt vor:
Der User benötigt die neue Rolle FSS-Crl
um den Button nutzen zu dürfen.
Fall der Fastlane Security Server via keylcoak abgesichert wurde, muss dem b2b-tomcat-war Backend Client die Service Account Role FSS-Crl
in keycloak zugeordnet werden damit der Sperrlistendownload erfolgreich ausgeführt werden kann.
Es muss ein B2B-Service zum Sperrlistendownload konfiguriert sein. Weitere Details zur Konfiguration des Service finden Sie hier.
Falls Sie nicht mit Docker arbeiten, muss die nginx.conf
der FSS-UI angepasst werden. Ergänzen Sie bitte folgende location
und passen Sie dabei die Adresse b2b-tomcat-server
an:
location /FSS-UI/api/administration/ {
proxy_pass http://<b2b-tomcat-server>/b2bbp-engine/api/administration/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
proxy_read_timeout 360s;
}
Die location
s sind im Abschnitt http { server {
aufgelistet.
NUI-1381 CATALINA_OPTS des gedockerten Tomcats konfigurieren
Es ist nun möglich die CATALINA_OPTS
des gedockerten b2b Tomcats als Umgebungsvariable zu definieren. Beispiel:
b2b:
image: ${NEXUS_ERF}/b2b:2021-02-17
environment:
CATALINA_OPTS: "-Dfile.encoding=ISO-8859-1 -Djava.net.preferIPv4Stack=true -Duser.country=DE -Duser.language=de -Dspring.profiles.active=roles-activated -Drevision.info.server.url=http://revision:8080 -Xmx4096m -Xms4096m"
Das Beispiel enthält den Default des Images.
Folgender Eintrag wird benötigt, damit die REST-Endpunkte der B2B abgesichert werden: -Dspring.profiles.active=roles-activated
Folgender Eintrag wird benötigt, damit die B2B mit dem Revision-Service sprechen kann: -Drevision.info.server.url=http://revision:8080
Ports im Docker vereinfachen
Die empfohlene docker-compose.yml
enthält nun auch Traefik Konfiguration.
Dank Traefik können alle Microfrontends auf dem gleichen Port laufen. Dadurch wird die Konfiguration & der Zugriff vereinfacht.
NUI-610 Startseite anpassen
Es ist nun möglich das B2B Dashboard durch eine kundenspezifische Startseite zu ersetzen. Die eigene Startseite ist in der system.json
unter der Property customDashboardUrl
zu ergänzen, Beispiel:
{
"customDashboardUrl": "http://b2bbp.next-level-help.org/"
}
Die zugehörige Dokumentation finden Sie hier.
Hotfix 2021-01_1
NUI-1274 Volltextsuche
Für die Volltextsuche wird eine neue Tabelle benötigt. Bitte legen Sie die Tabelle mit Hilfe des beigefügten SQL Scripts an.
Falls es bei Ihnen zu Abbrüchen während der Volltextsuche kommt (besonders bei MSSQL Datenbanken beobachtet), müssen Sie die neue Eigenschaft auxiliarySearchThreshold
konfigurieren.
Diese steuert, ab welcher Anzahl an Volltextsuchtreffern die Hilfstabelle zum Einsatz kommen soll. Die Hilfstabelle verhindert, dass Datenbankanfragen zu groß werden. Reduzieren Sie den Wert der Eigenschaft, wenn es zu Abbrüchen bei der Volltextsuche kommt. Default ist 30000, für MSSQL empfehlen wir als Wert 2000.
Die Eigenschaft kann als Umgebungsvariable bei einer Docker Installation in der docker-compose.yml
gesetzt werden:
b2b:
environment:
AUXILIARY_SEARCH_THRESHOLD: 2000
(Die docker-compose unterstützt für Umgebungsvariablen alternativ auch die Listensyntax. Dabei werden Umgebungsvariablen in der Form - key=value
angegeben. Die beiden unterschiedlichen Syntaxen dürfen nicht gleichzeitig verwendet werden.)
Alternativ kann die Eigenschaft bei einer klassischen Serverinstallation ohne Docker in der setenv.sh
angegeben werden:
CATALINA_OPTS="... -DauxiliarySearchThreshold=2000"
SQL
POSTGRES:
CREATE TABLE b2bbp.b2bbp_auxiliary_search (
queryId varchar(100) NOT NULL,
messageId varchar(100) NOT NULL,
CONSTRAINT b2bbp_auxiliary_search_pkey PRIMARY KEY (queryid, messageid)
);
ORACLE:
create table b2bbp_auxiliary_search (
queryId varchar2(100) not null,
messageId varchar2(100) not null,
PRIMARY KEY (queryId, messageId)
);
MSSQL:
CREATE TABLE b2bbp_auxiliary_search (
queryId varchar(100) NOT NULL,
messageId varchar(100) NOT NULL,
PRIMARY KEY (queryId,messageId)
);
Release 2021-01
Konfigurationsanpassungen
NUI-1219 Customizing Upload Größe
Falls Sie Docker nutzen, wird die folgende Konfiguration automatisch vorgenommen.
Um sicherzustellen, dass auch große Customizings hochgeladen werden können, ist in der nginx.conf
der B2B-Admin-UI die Upload-Größe & -Zeit hinreichend groß zu wählen:
location /B2B-Admin-UI/api/ {
...
proxy_read_timeout 360s;
client_max_body_size 1G;
}
Informationen
NUI-1197 Connection Pooling Optimierung
Das Datenbank Connection Pooling der Backend Microservices Notification & Revision wurde optimiert. Die Default Poolsize beträgt nun nur noch 2.
Falls Sie die Poolsize manuell anpassen möchten, kann dies über die application.yml
wie folgt passieren:
spring:
datasource:
hikari:
maximumPoolSize: 2
NUI-1208 Rollen beim manuellen Versand
Der manuelle Versand benötigt nun nur noch eine Rolle: B2B-ManualMarketCommunication
.
Sie können die alte Rolle B2B-Manualforward
löschen.
NUI-1114 Extension KEYCLOAK & keycloak.json
Damit die B2B mit einem per Keycloak gesicherten FSS kommunizieren kann, muss Keycloak-Konfiguration hinterlegt werden. Dies geschah bisher über die Extension KEYCLOAK. Ab jetzt wird stattdessn die Konfiguration aus der keycloak.json
übernommen. Die Extension wird nur noch als Fallback Lösung genutzt. Die JSON kann direkt aus der Keycloak-Oberfläche exportiert werden.
Wir empfehlen die Extension zu löschen und stattdessen nur noch über die JSON zu arbeiten.
http://b2bbp.next-level-help.org/fss_integrating_fss_and_b2b.html#keycloak-json
Release 17. Dezember 2020
Installation- & Konfigurationsanpassungen
Mandantenfilterung & Portal-UI
Damit die Mandantenfilterung in der B2B-UI genutzt werden kann, muss der Attribute-Mapper für JEDES Frontend im zugehörigen Keycloak Client konfiguriert werden. Der Mapper ist gemäß der üblichen Anleitung anzulegen.
Fix der B2B-Admin-UI API
Falls Sie dockern und weder die gedockerte nginx.conf
überschreiben, noch die api.json
selbst definieren, ist nichts zu tun.
Für alle anderen gilt:
Der Default-Pfad, über den die B2B-Admin-UI das Revision-Backend anspricht, lautet nun analog zu allen anderen Frontends api/revisionmanager
. Entsprechend wurde auch die Default-nginx.conf wie folgt angepasst:
location /B2B-Admin-UI/api/revisionmanager/ {
Dementsprechend müssen sie ihre manuell gepflegte nginx.conf
oder api.json
an den neuen Standard angleichen.
HTTPS mit selbst signierten Zertifikaten
Falls Sie Ihren Keycloak wie empfohlen per HTTPS absichern, dabei aber selbst signierte Zertifikate nutzen, müssen entsprechend die Zertifikate den Backends zur Verfügung gestellt werden. Unsere Docker-Images bieten nun hierfür eine Hilfestellung an:
Mounten Sie die Zertifikate in den Docker Container. Mounten Sie außerdem ein Script, das beim Boot ausgeführt wird. Dieses Script bereitet die Zertifikate für Java auf. Eine detailierte Anleitung inklusive Script finden Sie in unserer Doku.
Release Anfang Dezember 2020
Installation- & Konfigurationsanpassungen
MpidEditor SecurityRules
Aktuell ist es für den MpidEditor notwendig, die Extension MPID_SECURITY
anzulegen. Selbst wenn Sie das optionale Feature SecurityRules nicht nutzen, muss die Extension zumindest mit leerem Inhalt angelegt sein.
Docker-Default-Konfiguration
Unsere Docker-Images für die Frontends bringen default nginx.conf
Dateien mit. Diese wurden nun mit NUI-1185 aktualisiert und vereinheitlicht. Wir empfehlen nach Möglichkeit die nginx.conf
nicht selber zu pflegen sondern unsere Defaults zu nutzen. Diese greifen automatisch, wenn Sie die Dateien nicht mehr mounten.
Damit die Default-Konfigurationen anwendbar sind, müssen Sie sich an unsere nun definierten Hostname & Port Konventionen (im Docker internen Netzwerk) halten. Wenn Sie den Hostname nicht explizit konfigurieren, entspricht er dem Servicenamen in der docker-compose.yml
. Die Port-Konventionen entsprechen den Default-Ports (selbst beim FSS). Konfigurieren Sie diese also nicht um. Eine standard-kompatible docker-compose.yml
wird in unserer Doku mitgegeben. Bitte passen Sie die Service-Namen gemäß dem Standard an.
Wir definieren folgende Namenskonventionen für die Hostnamen & Ports:
- keycloak:8080
- b2b:8080 (der tomcat)
- b2b-ui:8080
- b2b-admin-ui:8080
- revision:8080
- revision-ui:8080
- notification:8080 (bisher auch bekannt als UserMessages)
- notification-ui:8080
- index:8080
- index-ui:8080
- fss:2222
- fss-ui:8080
- portal-ui:8080
RevisionInfo im FSS
Wenn Sie sowohl die RevisionInfo als auch den FSS nutzen, ist es ab diesem Release dank NUI-444 wieder möglich, in der FSS-UI die RevisionInfo anzuzeigen und abzuspeichern. Hierfür muss sowohl in der UI als auch im Backend der Zugriff auf den Revision-Service konfiguriert werden.
Revision im FSS Backend
Im Backend FSS ist die Adresse des Revision-Service in der application.yml
anzugeben:
revision:
info:
server:
url: http://revision:8080
Damit das FSS Backend auf den Revision-Service zugreifen darf, müssen außerdem in Keycloak der Access-Type des FSS-Clients auf confidential
gestellt und die Service Accounts Enabled
werden.
Somit ergibt sich folgende Konfiguration für eine application-secure.yml
:
keycloak:
enabled: true
auth-server-url: http://my-keycloak-server/auth/
realm: my-realm
resource: fss
credentials:
secret: xxx
Revision im FSS Frontend
Wenn Sie unserer Docker-Default-Konfiguration folgen, ist nichts weiter zu tun.
Wenn Sie die nginx.conf
der FSS-UI selber pflegen, müssen Sie dort folgenden Eintrag ergänzen:
location /api/b2b-revision/revisionmanager {
proxy_pass http://revision:8080/revisionmanager;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
FSS-UI Systemname & Farbe
Systemname & Farbe werden für die FSS-UI nun genau wie für alle anderen UIs über die Datei system.json
konfiguriert. Wenn Sie die Datei nicht angeben, werden die üblichen Defaultwerte genutzt.
Mounten Sie die Datei wie üblich in das assets/config
Verzeichnis. Beim Einsatz von Docker können Sie also wie folgt mounten:
volumes:
- system.json:/usr/share/nginx/html/FSS-UI/assets/config/system.json
Docker-User wechseln
Sie können nun selbst in der docker-compose.yml
einen User (und Gruppe) angeben, der zum Ausführen der Applikation im Container genutzt wird. Das ist z.B. nützlich, wenn Sie nur bestimmten Usern Schreibzugriff auf das Log-Verzeichnis gewähren möchten. Beispiel:
b2b:
image: ${NEXUS}/b2b:2020-12-07
user: 1000:1000
Tenant General
Wir wiederholen an dieser Stelle nochmal den gleichen Hinweis vom letzten Release:
Falls Sie Nachrichten sehen möchten, die keinem Mandanten zuzuordnen sind (z.b. Protokolle von ausgeführten Schedulern), so muss Ihr User zusätzlich über den neuen tenants
Wert general
verfügen. Natürlich können diese Nachrichten weiterhin gesehen werden, wenn sie tenants=all
gesetzt haben oder gar keine Mandantenfilterung nutzen. Die Werte general & all
sind als mandantenübergreifender Zugriff anzusehen.
Optional: Fehlermeldungen aktivieren
Wir empfehlen den Einsatz der Rolle B2B-Errors
. Somit werden in der UI oben rechts Fehler aufgelistet. Wenn Sie Tickets bei uns erstellen, geben Sie diese Fehlermeldungen direkt mit an, das erleichtert uns die Fehleranalyse.
Optional: Portal-UI & fremde Adressen
Falls Sie möchten, können Sie auch b2b-fremde Adressen in der Portal-UI auflisten. Weitere Details entnehmen Sie der Doku.
Release 18. November 2020
Installation- & Konfigurationsanpassungen
CodeFlow
Die Frontends wurden vom OAuth ImplicitFlow auf den CodeFlow umgestellt. Deshalb müssen die Frontend-Clients in der Keycloak-Adminoberfläche ebenfalls von ImplicitFlow auf StandardFlow umgestellt werden.
system.json
Alle Frontends können nun über eine neue optionale system.json
konfiguriert werden. Diese ist ähnlich wie die keycloak.json
im Ordner assets/config
zu hinterlegen. Konfiguriert werden können der angezeigte Systemname sowie die Hintergrundfarbe. Außerdem muss das optionale Feature UserMessages nun explizit über diese Datei aktiviert werden. Beispiel:
{
"systemName": "B2B",
"backgroundColor": "#008ECC",
"activateUserMessages": true
}
Die entsprechenden Global Properties sind damit nicht mehr von Relevanz für die NUI.
Ein Farbverlauf wird nicht mehr unterstützt, es muss eine einzige Farbe angegeben werden.
Die Unterstützung der system.json erfolgt für die FSS-UI voraussichtlich mit dem nächsten Release.
Zugriff UserMessages
Alle Frontends laden die UserMessages nun über den Message-Service & nicht mehr über den Tomcat. Entsprechend muss der Message-Service in allen nginx.conf
hinterlegt werden. Beispiel für die B2B-UI im Docker:
location /B2B-UI/api/b2b-user-messages/system-messages {
proxy_pass http://message-service:8080/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
Zugriff RevisionInfo
Alle Frontends (B2B-UI & Admin-UI) laden die RevisionInfo nun über den RevisionService und nicht mehr über den Tomcat. Entsprechend muss der RevisionService in der nginx.conf
von B2B-UI und Admin-UI hinterlegt werden. (In RevisionUI wurde er vorher schon genutzt.) Beispiel für die B2B-UI im Docker:
location /B2B-UI/api/revisionmanager/ {
proxy_pass http://revision-service:8080/revisionmanager/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
Zugriff Tomcat
Auf Grund der vorherigen Änderungen ist es nun möglich einige Frontends vom Tomcat komplett zu entkoppeln. Der zugehörige Eintrag zum Tomcat-Zugriff in der nginx.conf
kann entsprechend entfernt werden. Konkret müssen folgende Frontends nicht mehr auf den Tomcat zugreifen: Portal-UI, RevisionInfo-UI, UserMessages-UI, IndexManagement-UI.
Zeitzone
Achten Sie darauf, auf Ihren Servern die korrekte Zeitzone zu konfigurieren. In der docker-compose
können Sie für jeden Service die Zeitzone wie folgt mitgeben:
environment:
TZ: Europe/Berlin
Confidential Client Access
Der Client AccessType in der Keycloak-Adminoberfläche für Backends (Tomcat, FSS) ist auf confidential
zu setzen. Dies führt dazu, dass innerhalb der keycloak.json
ein secret
mitgegeben wird. Die anderen Backends (RevisionInfo, UserMessages, Index-Management) sprechen aktuell selber keine weiteren Backends an und können deshalb auf AccessType BearerOnly gestellt werden. Ein Frontend kann das secret nicht schützen, weshalb es beim Frontend keinen Sinn macht, confidential einzustellen. Hier ist stattdessen public zu setzen.
Keycloak Client Tips
Wenn Sie einen neuen Keycloak Client anlegen, sollten Sie als root-url
die Adresse des jeweiligen Servers sowie den Port der Application angeben. Die resultierenden Werte für redirect-url & Web Origins können dann übernommen werden.
Tenants Attribut
Das Keycloak-Attribute tenant
für den FSS wird ersetzt durch das Attribute tenants
welches bereits für die B2B genutzt wird. Bitte passen Sie das Attribute entsprechend an. Falls Ihre Tenant-Konfiguration zwischen B2B & FSS zu unterschiedlich ist, können Sie für den FSS alternativ auch das neue Attribut fss_tenants
nutzen.
B2B Tenants werden in der Extension TENANTS
aufgelistet, während FSS Tenants in der FSS Tabelle client
aufgeführt werden. Wenn beide Listen übereinstimmen, können sich B2B & FSS das Attribut tenants
teilen.
Tenant General
Falls Sie Nachrichten sehen möchten, die keinem Mandanten zuzuordnen sind (z.b. Protokolle von ausgeführten Schedulern), so muss ihr User zusätzlich über den neuen tenants
Wert general
verfügen. Natürlich können diese Nachrichten weiterhin gesehen werden, wenn sie tenants=all
gesetzt haben oder gar keine Mandantenfilterung nutzen.
Auf Grund eines Bugs ist es aktuell nicht möglich, das Attribut general
völlig allein zu setzen. Es funktioniert nur, wenn mind. ein weiterer Mandant mit angegeben wird. Dieser Bug wird zum nächsten Release behoben.
Rollen
Einige gedoppelte neue Rollen wurden vereinheitlicht. Übrig bleiben:
- RevisionManager-Read
- RevisionManager-Write
- B2B-UserMessages-Read
- B2B-UserMessages-Write
- B2B-IndexManagement
- B2BAdmin-SystemInfo
Aus Keycloak entfernt werden können die Rollen:
- B2B-RevisionInfo
- B2BRevision-Read
- B2BUser-Messages-Write
- B2BIndexManagement-Read
- Index-Management
- B2BIndexManagement-Read
- B2B-SystemInfo
Entsprechend müssen Sie ggf. die Rollen in der portal-config.json der Portal-UI anpassen.
Damit User die Systemnachrichten als gelesen markieren können, benötigen sie aktuell die Rolle B2B-UserMessages-MarkRead
. Diese Rolle wird mit dem nächsten Release nicht mehr benötigt, dann genügt die Rolle B2B-UserMessages-Read
.
FSS per Keycloak sichern
Das Absichern des FSS durch Keycloak wird nun zwingend vorausgesetzt, wenn dieser zusammen mit der neuen FSS-UI genutzt werden soll. Hierfür muss in der application.yml
das entsprechende Profil aktiviert werden:
spring:
profiles:
active: secure
Wie bei den anderen Backends muss in der application.yml der Zugang zu Keycloak konfiguriert werden.
Beachten Sie, dass ein B2B-Knoten, der selber nicht mit Keycloak verbunden ist, einen per Keycloak abgesicherten FSS-Knoten nicht mehr ansprechen kann. Falls Sie solche B2B Knoten verwenden, müssen diese entsprechend auf einen anderen FSS Knoten zugreifen, der nicht per Keycloak gesichert wird. Da dieser FSS Release den Modus ohne Keycloak nicht vollständig unterstützt (ein Bug der zum nächsten Release behoben wird), empfehlen wir in diesem Fall parallel einen FSS-Knoten in alter Version zu betreiben.
FSS & Keycloak Https
Falls Keycloak per HTTPS gesichert ist und falls der FSS genutzt werden soll, muss am FSS (Backend) folgender Parameter ergänzt werden:
JAVA_OPTS=-Djavax.net.ssl.trustStoreType=jks
Portal-UI
Die Installation der Portal-UI ist optional.
Keycloak & application.yml
Beachten Sie, dass aktuell die Backends (RevisionInfo, UserMessages, Index-Management, FSS) ihre Keycloak-Einstellungen ausschließlich über die application.yml
und nicht über die keycloak.json
steuern.
Tomcat Logging (Docker)
Der gedockerte Tomcat arbeitet mit Gruppe & User 5000 tomcat. Achten Sie darauf, dass der User in das Logverzeichnis schreiben darf. Das B2B-UI Dashboard wird nicht korrekt angezeigt, wenn das Logging nicht funktioniert.
Keycloak Cache
Wir empfehlen nach dem Einspielen des Releases den Keycloak-User-Cache zu leeren. Dies kann über die Keycloak-Adminoberfläche unter den Realm-Settings/Cache durchgeführt werden. Alternativ erfolgt dies automatisch, wenn Keycloak neugestartet wird.
RevisionInfo Backend
Der RevisionInfoServer ist am Tomcat zu konfigurieren. Falls Sie mit Docker arbeiten, geben Sie eine Umgebungsvariable in der docker-compose.yml
an:
environment:
- REVISION_INFO_SERVER_URL={revision_url}
Falls Sie ohne Docker arbeiten, aktualisieren Sie die tomcat/bin/setenv.sh
und ergänzen Sie:
CATALINA_OPTS = -Drevision.info.server.url={revision_url}
Falls Sie diese Konfiguration nicht oder nicht korrekt vornehmen, wird der Tomcat auf die alte integrierte Revision Lösung zurückgreifen. Diese soll jedoch mittelfristig deaktiviert werden.
keycloak.json im Classpath
Wir empfehlen nun ein Standardverfahren zur Angabe der keycloak.json
im Tomcat: bitte hinterlegen/mounten Sie die Datei im Verzeichnis tomcat/conf/keycloak.json
. Wie bisher muss dann das Verzeichnis in der b2bbp-engine.xml
angegeben werden.
<Context>
...
<Parameter name="keycloak.config.file" value="/usr/local/tomcat/conf/keycloak.json" override="false"/>
Im Docker muss ansonsten nichts getan werden. Bei Installationen ohne Docker muss der Pfad zur Datei noch dem Classpath hinzugefügt werden: in der tomcat/conf/catalina.properties
ist der Pfad folgendermaßen zu ergänzen:
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${Pfad-zur-keycloak.json}"
Die Angabe des Classpaths ist insbesondere wichtig, wenn der Tomcat auf das Revision-Backend zugreifen soll.
Release 2. November 2020
Beachten Sie, dass dieses Release noch nicht für Produktion bereit ist. Voraussichtlich das nächste Release (bereits Mitte November) wird produktionsbereit sein.
Installation- & Konfigurationsanpassungen
Falls die Frontends im Docker betrieben werden, müssen alle nginx.conf
Dateien angepasst werden. (Hintergrund ist, dass nicht mehr der root-User benutzt wird)
...
pid /tmp/nginx.pid;
...
http {
...
server {
listen 8080;
...
Die exportierte keycloak.json
enthält die konfigurierte clientId
(in der Json heißt der zugehörige Key resource
). Diese wurde von den Backend-Services (z.B. RevisionInfo-Service) bisher ignoriert und der definierte Standardwert wurde genutzt. Diese Default-Werte wurden teilweise angepasst (vgl. NUI-925). Dafür wird jetzt, falls konfiguriert, der Wert aus der keycloak.json genutzt. Falls Ihre keycloak.json
den Key resource
noch nicht enthält, müssen Sie ggf. Ihre Konfiguration anpassen. Als Lösung empfehlen wir, die resource
zu ergänzen.
Die Portal-UI ist ein neues Feature. Um die Portal-UI zu nutzen muss die portal-config.json
konfiguriert werden. Hier müssen die Adressen zu den anderen Microfrontends hinterlegt werden. Umgekehrt muss die Portal-UI von allen anderen UIs erreichbar sein und überall konfiguriert werden (wenn sie benutzt werden soll). Benötigt wird außerdem die neue Rolle B2BPortal-UI. In Keycloak ist ein neuer Client für die Portal-UI zu konfigurieren. Die Keycloak.json Datei ist entsprechend zu hinterlegen. Weitere Details zur Konfiguration der Portal-UI und der portal-config.json finden Sie in der Portal-UI-Doku.
Das IndexManagement ist ein optionales Feature. In der IndexManagement-UI muss die Adresse des IndexManagement-Service hinterlegt werden. Benötigt wird außerdem die neue Rolle B2BIndexManagement-Read. In Keycloak müssen neue Clients für IndexManagement-UI & IndexManagement-Service angelegt werden. Die Keycloak.json Dateien sind entsprechend zu hinterlegen. Konfiguriert wird der Backend-Service über eine application.yml
in der die Index-Pfade hinterlegt werden müssen:
search-system:
vendor: LUCENE2
search-types:
FULLTEXT: ../index/full
ARCHIVE: ../index/archive
Die UserMessages sind ein optionales Feature. In der UserMessages-UI muss die Adresse des UserMessages-Service hinterlegt werden. Benötigt wird außerdem die Rolle B2B-UserMessages-Write. In Keycloak müssen neue Clients angelegt werden für UserMessages-UI & UserMessages-Service. Die Keycloak.json Dateien sind entsprechend zu hinterlegen.
Der UserMessages-Service ist mit der existierenden B2B-Datenbank zu verbinden, er nutzt die existierenden Tabellen für UserMessages. Diese erweitert er automatisch um zwei neue Spalten. Falls Sie dem Service nicht die dafür benötigten Rechte geben, müssen Sie diese Tabellen von Hand anlegen. Konfiguriert wird der Service über eine application.yml
innerhalb derer die Datenbank angegeben werden muss:
spring:
main:
allow-bean-definition-overriding: true
jpa:
hibernate:
ddl-auto: update
database-platform: org.hibernate.dialect.PostgreSQLDialect
datasource:
url: jdbc:postgresql://b2b-postgres:5432/b2bbp
username: postgres
password: password
Postgres
alter table b3p_adm_systemmessages add column messagesubject varchar(255);
alter table b3p_adm_systemmessages add column status varchar(50) default 'ACTIVE';
MSSQL
alter table B3P_ADM_SYSTEMMESSAGES add MESSAGESUBJECT varchar(255);
alter table B3P_ADM_SYSTEMMESSAGES add STATUS varchar(50) DEFAULT 'ACTIVE';
ORACLE
alter table B3P_ADM_SYSTEMMESSAGES add MESSAGESUBJECT varchar(255);
alter table B3P_ADM_SYSTEMMESSAGES add STATUS varchar(50) DEFAULT 'ACTIVE';
Die Dokumentation zur Installation des RevisionInfo Backends finden Sie hier. Die Installation des UserMessage- und des IndexManagement-Backends verläuft größtenteils analog.
Nicht notwendig, aber empfohlen ist die Konfiguration des RevisionInfo Backends innerhalb der B2B im Tomcat. Ist das neue Backend nicht konfiguriert, greift die B2B automatisch auf die existierende alte Implementierung zurück. Zur Konfiguration sind folgende Schritte nötig:
- ergänzen Sie den Pfad zum Backend in den JavaOpts:
JAVA_OPTS=-Drevision.info.server.url=<Die-URL>
- ergänzen Sie die
keycloak.json
der B2B im Classpath. Der Classpath kann in dersetenv.bat
konfiguriert werden:export CLASSPATH=$CLASSPATH:{path-to-keycloak.json-folder}
Release Oktober 2020
Bitte beachten Sie, dass das neue Frontend für den produktiven Einsatz noch nicht bereit ist und zunächst nur auf Testsystem eingespielt werden darf. Der erste produktionsbereite Release ist Mitte November geplant.
Installation- & Konfigurationsanpassungen
- Die Adresse des Nexus, über den die Docker-Images bezogen werden, hat sich geändert: sie lautet nun:
- B2B: docker-nob-erf.next-level-apps.com
- FSS: docker-nob-erp.next-level-apps.com
- Zugangsdaten erhalten Sie über unseren Support.
-
Mit diesem Release können erstmalig das RevisionInfo Frontend & Backend installiert werden. Die Installationsdoku wird nachgereicht.
-
Falls Sie nginx nutzen und gemäß unserer Doku konfiguriert haben, bitte updaten Sie die nginx.conf gemäß unserer aktualisierten Doku. In der alten Version war es für Nutzer bisher zwingend nötig, am Ende der URL einen Slash anzugeben. Mit der neuen Version ist das nicht mehr nötig.
-
Falls Sie die neue UI ohne Docker im nginx installieren, muss beim Deployment-Update beachtet werden, dass die Dateien im Ordner assets/config (z.B. die keycloak.json) nicht überschrieben werden dürfen. Hierbei kann die nginx.conf helfen: geben Sie hier einen alternativen Pfad zu diesem Ordner an. Die Alternative kann außerhalb des Deployments gelegen sein. Dieses Verfahren wird in der Doku genauer beschrieben.
-
Die Startseite der B2B-Admin-UI erfordert nun die neue Rolle
B2BAdmin-Dashboard
. -
Falls die neue UI im nginx betrieben wird, werden manche Bilder nicht angezeigt. Aktuell gibt es hierzu einen Workaround: nachdem Sie die UI deployed haben, kopieren Sie den Ordner assets in den Ordner html/assets. Dies wird mit dem nächsten Release gefixt.
- Für die Keycloak Passwort-Migration muss die von NLI bereitgestellte b2bbp-hash.jar im Keycloak Deployment hinterlegt werden. (Dies ist im Dockerimage automatisch der Fall.)
Release September 2020
Installation- & Konfigurationsanpassungen
Bitte beachten Sie die folgenden neuen Anpassungen, die mit diesem Release nötig werden:
- Bei den Frontend Deployments muss die
keycloak_config.json
durch die Standardkeycloak.json
, welche aus Keycloak exportiert werden kann, ersetzt werden. - Zum Einsatz der neuen Arbeitsvorräte muss eine neue Extension konfiguriert werden. Hierbei unterstützt das Migration-Tool. Weitere Details entnehmen Sie bitte unserer neuen Doku zu den Arbeitsvorräten
- Es ist das neue Microfrontend Admin-UI zu installieren.
- Für die neuen Features müssen in Keycloak auch neue Rollen gepflegt werden. Vergleichen Sie hierzu die Rollenübersicht.
Release 1905.1.10
BTOB-5325
Der CCM ProzessMonitor (BPT) wurde auf SearchLayer umgestellt. Der CCM ProzessMonitor (BPT) funktioniert ab sofort nur noch in Verbindung mit einer korrekt konfigurierten SEARCH_LAYER_CONFIGURATION – Extension. Es ist zudem nötig, alle in der Extension B3P_BPT_CONFIGURATION konfigurierten Prozesse auch in der SEARCH_LAYER_CONFIGURATION - Extension zu hinterlegen. Hier ein Beispiel für die nötige Konfiguration in der SEARCH_LAYER_CONFIGURATION am Beispielprozess „DISCONN“:
SEARCH_TYPES= BackendObject_DISCONN,ControlPoint_DISCONN, InstanceId_DISCONN,InstanceOverview_DISCONN
BackendObject_DISCONN_PATH=../bpt/OBJECT_INDEX/DISCONN
ControlPoint_DISCONN_PATH=../bpt/CONTROL_POINT_INDEX/DISCONN
InstanceId_DISCONN_PATH=../bpt/INSTANCE_ID_INDEX/DISCONN
InstanceOverview_DISCONN_PATH= ../bpt/INSTANCE_OVERVIEW_INDEX/DISCONN
Release 1.13.8_1.x
API Anpassung
- org.b2bbp.service.inbound.scheduled.SchedulerRegisterServiceRepeat wird gelöscht
- Ersatz: org.b2bbp.service.inbound.scheduled.SchedulerRegisterService
- Methodensignaturen vom Interface org.b2bbp.service.inbound.scheduled.IArchiveMsg werden angepasst
- die Methoden werfen keine DocumentExistsException und ExternalMailNotFoundException mehr.
- org.b2bbp.service.inbound.scheduled.ExternalMailNotFoundException wird gelöscht.
- Ersatz: org.b2bbp.service.inbound.scheduled.ArchiveMsgException
- org.b2bbp.service.inbound.scheduled.DocumentExistsException wird gelöscht
- Ersatz: org.b2bbp.service.inbound.scheduled.ArchiveMsgException
Release 1.13.7_1.x
FSS-74
Es muss folgende Datenbank-Anpassung durchgeführt werden:
ALTER TABLE B2BBP_DATA_REVISION ADD rid VARCHAR(250) DEFAULT '?' NOT NULL;
CREATE INDEX IDX_B2BBP_DATA_REVISION
ON B2BBP_DATA_REVISION (
RTYPE,
RID,
UNIXTIME
);
Falls Sie den von uns empfohlenen RevisionManager nicht nutzen, ist die Tabelle eventuell noch überhaupt nicht angelegt.
Release 1.13.6_3.x
BTOB-4710
Die folgende Anpassung betrifft Sie nur, wenn Sie den org.b2bbp.eai.outbound.WebServiceSenderService
nutzen.
Die ServiceProperty REINIT_SERVICE_CONF_FROM_PROPERTIES
ist nun per default auf true
gestellt. Falls Sie diese Property nicht konfiguriert haben, sollten Sie sie nun explizit auf false
setzen, um Ihr bisheriges Verhalten beizubehalten. Wir wählen den Defaultwert true
, damit eine Service-Konfiguration eine Konfiguration per Extension überschreiben kann. Dies entspricht unserer typischen Erwartungshaltung an ein Customizing. Wir empfehlen Ihnen, nach Möglichkeit den Default zu nutzen.