In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
MicroFrontEnd (MFE) ist ein Architekturmuster, bei dem verschiedene Fragmente von Benutzeroberflächen-Seiten zur Buildzeit oder Laufzeit zusammengesetzt werden. Jede MFE wird unabhängig entwickelt.
Anwendungen, die mit einem beliebigen Framework entwickelt wurden, können als MFE geladen werden. Der folgende Abschnitt ist ein Beispiel für das Hinzufügen einer Angular-Anwendung als MFE.
ng new test-mfe —routing —style=scss
cd aus, um zu test-mfe zu wechseln.ng add single-spa-angular@7 —project test-mfe
Anmerkung: Es wird eine kompatible Version von Angular 14 und single-spa-angular@7 verwendet.
Anmerkung: Die deployUrl-Einstellung dient nur der lokalen Entwicklung.
"deployUrl": "http://localhost:4201/"
npx create-nx-workspace@15.0.0 —pre-set=angle —npmScope=cisco-bpa-platform
Der Arbeitsbereich bpa-test-mfe Nx wird mit der Applikation bpa-test-mfe erstellt.
cd aus, um zu test-mfe zu wechseln.npm install single-spa-angular@7 \--legacy-peer-deps && npx nx g
single-spa-angular:ng-add \--project bpa-test-mfe
Die folgenden Dateien werden erstellt und aktualisiert:
Anmerkung: Die deployUrl-Einstellung dient nur der lokalen Entwicklung.
"deployUrl": "http://localhost:4201",
Aktualisieren Sie die "@angular-builders/custom-webpack"-Version, die der Angular-Version entspricht. Die Version im folgenden Beispiel wird für Angular 14-Anwendungen verwendet.
"@angular-builders/custom-webpack": "14.1.0",
Aktualisieren Sie die Vorlage mit dem eindeutigen Selektor "<app-test-mfe-root>" in ./src/main.single-spa.ts.
Aktualisieren Sie denselben Selektornamen "<app-test-mfe-root>" in ./src/app/app.component.ts.
Das NPM-Paket "systemsjs-web-interop" dient zur dynamischen Festlegung des öffentlichen Pfads für Ressourcen.
systemjs-webpack-interop": "^2.3.7",
Installieren Sie "systemsjs-web-interop" und fügen Sie die folgende Zeile als erste Importanweisung in die Datei "main.single-spa.ts" ein.
systemjsModuleName muss eindeutig sein und als Name verwendet werden, der die MFE wie oben dargestellt identifiziert. Die obige Änderung hilft beim Auflösen der langsam geladenen Ressourcen vom entsprechenden Host der MFE.
Schließen Sie die anwendungsspezifischen Routen in die Datei "app.routes.ts" der neuen eckigen Anwendung ein.
Anmerkung: Der folgende Pfad zu "app.routes.ts" muss enthalten sein.
{ path: '**', component: EmptyRouteComponent }
Die meisten UI-Anwendungen sind einem Microservice per Design zugeordnet. Die folgenden Schritte in den folgenden Abschnitten sollten ausgeführt werden, damit der verknüpfte Mikrodienst die verknüpfte Benutzeroberflächenanwendung als MFE lädt.
[
{
"layoutenabled" : true,
"name" : "@cisco-bpa-platform/test-mfe-root",
"type": "application",
"path": "ex/test-mfe",
"display_name": "Test MFE",
"menu_path": "Application",
"custom": true,
"default": false,
"distribution_path": "/assets/cisco-bpa-platform/mw-device-manager/test-mfe/main.js",
"version": "4.1.0-501"
}
]
Aufrufen eines Core-API-Endpunkts (z. B. POST-mfe/apps), um die entsprechenden MFE(s) zu integrieren Zur Vereinfachung des Prozesses wird eine addMfeApps-Dienstprogrammmethode erstellt, um die MFE-Informationen zu akzeptieren. So registrieren Sie die in der BPA-Datei "mfe.json" definierten MFE-Details
const { mfeHelper } = require('@cisco-bpa-platform/mw-util-common-app');
Die MFE ist bereit zum Testen.
Anmerkung: Beim Laden der neuen MFE wird die Seitennavigation nicht angezeigt, da sie nicht in die neue MFE integriert ist.
declare module '@cisco-bpa-platform/utility-state';
config.externals = ['@cisco-bpa-platform/utility-state'] hinzu.Die obigen Schritte definieren @cisco-bpa-platform/Betriebszustand und überspringen den Importfehler.
@angular/cdk: "~14,2,7""@angular/material": "~14,2,5""@angular/localize": "^14,2,6""@cisco-bpa-platform/cxui-components": "4.0.1-1003""@cisco-bpa-platform/data-access-services": "4.1.1-1003""@cisco-bpa-platform/Anmeldung": "4.0.3-1002""@cisco-bpa-platform/shared-library": "4.0.1-1001""@cisco-bpa-platform/spogui-components": "4.1.1-1005""@cisco-bpa-platform/ui-shared-components": "4.1.1-1005"@cisco-bpa-platform/util: "4.0.1-1002""@ngrx/Component Store": "~14,0,0""@ngrx/Effekte": "~14,0,0""@ngrx/entity": "~14,0,0""@ngrx/router-store": "~14,0,0""@ngrx/store": "~14,0,0""Dateischoner": "^2,0,5"Entwicklungsabhängigkeiten"@types/Dateischoner": "^2.0.7"Anmerkung: Es müssen die korrekten Versionen für alle cisco-bpa-Plattform-Bibliotheken verwendet werden.
import { Component, HostListener } from @angular/core';
import { Router } from @angular/router';
import { Observable } from 'rxjs';
import { Loaderservice } from '@cisco-bpa-platform/data-access-services/auth';
@Component({
selector: 'app-test-mfe-root',
templateUrl : '. /app. component. html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'test-mfe';
showLoader = false;
loadingSpinner$: Observable
= this.loaderService.spinnerObsv$; leftNavWidth = ['50px', '250px']; isExpanded = false; innerWidth: any; innerHeight: any; constructor(public router: Router, public loaderservice: Loaderservice, ) { this.onResize(); } @HostListener('window:resize', ['$event']) onResize() { this.innerWidth = window.innerWidth; this.innerHeight = (window.innerHeight - 73); } shareExpandStatus (event: boolean) { this.isExpanded = event; } }
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
import { NgModule } from '@angular/core' ;
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { LoaderModule } from '@cisco-bpa-platform/cxui-components/loader';
import { AuthEffects, Authlnterceptor, authReducer } from '@cisco-bpa-platform/login/feature-login';
import { SideNavModule } from '@cisco-bpa-platform/spogui-components/side-nav';
import { EffectsModule } from '@ngrx/effects';
import { StoreModule } from '@ngrx/store';
import { environment } from '../environments/environment';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations : [AppComponent],
imports: [BrowserModule, AppRoutingModule, HttpClientModule,
BrowserAnimationsModule,
HttpClientModule,
StoreModule. forRoot({ ['auth']: authReducer }, {
runtimechecks: {
strictStatelmmutability: false,
strictActionlmmutability: false
}
}),
EffectsModule.forRoot([AuthEffects]), LoaderModule, SideNavModule],
providers: [
{ provide: ‘config’, useValue: { apiUrl: environment .apiUrl, mfa: environment .mfa } },
{
provide: HTTP_INTERCEPTORS,
useClass: Authlnterceptor,
multi: true,
},
],
bootstrap: [AppComponent]
})
export class AppModule { }
const URL = `${i window.location.href.substring(0, window.location.href.lastIndexOf('ex'))}bpa` ;
export const environment = {
production: true,
appTitle: "BPA | ”,
appName: "Business Process Automation”,
apiurl: `${URL}`,
assetsUrl: "./assets”,
packageUr1: "./assets/packages",
mfa: {
enabled: false,
o t p_u r 1 : 'https://ssologon-prd.sm.bankofamerica.com/ssoconnect/sendOTP.htm1'
},
sync: {
groups: false,
users: false
},
autoRef reshlnterval : 60000,
showFormBuilderListltems: false,
deploymentType: "not_on_prem"
};
const HOSTNAME = window.location.hostname;
const URL = `http ://${HOSTNAME}: 8000`;
export const environment = {
production: false,
appTitle: "BPA | ",
appName: "Business Process Automation",
apiUrl: `${URL}`,
packageUrl: `http://${HOSTNAME}:9090/assets/packages`,
mfa : {
enabled: false,
otp_url: 'https://ssologon-prd.sm.bankofamerica.com/ssoconnect/sendOTP.html'
},
sync: {
groups: false,
users: false
},
autoRefreshinterval: 60000,
showFormBuilderListltems: false,
deploymentType: "not_on_prem"
}; Die Seitennavigation ist bereit zum Testen.
import { CompOneComponent } from './comp-one/comp-one.component';
import { CompTwoComponent } from './comp-two/comp-two. component';
const includePath = window.location.pathname.substring(1, window.location.pathname.lastIndexOf('/ex'));
let prefixPath = 'ex';
if (includePath.length > 1) {
prefixPath = `${includePath}/${prefixPath}`
}
const routes: Routes = [
{ path: `$iprefixPath}/test-mfe/compone`, component: CompOneComponent },
{ path: `${prefixPath}/test-mfe/comptwo`, component: CompTwoComponent },
{ path: '**', component: EmptyRouteComponent }
];
Ein geschachteltes Menü kann aus einer benutzerdefinierten Anwendung gerendert werden. In diesem Abschnitt werden die erforderlichen Schritte zur Vorbereitung des MFE-Registrierungsdokuments beschrieben. Zu diesem Zweck wurden die folgenden Eigenschaften eingeführt:
Beispiel für ein geschachteltes Menü, das für die benutzerdefinierte Test MFE-MFE-Anwendung erstellt wurde:
So rendern Sie ein verschachteltes Menü:
"layout_enabled": true,
"name": "@cisco-bpa-platform/test-mfe-root",
"type": "application",
"display_name": "Test MFE",
"menu_path": "Application",
"custom": true,
"default": false,
"level": 1,
"distribution_path": "/assets/cisco-bpa-platform/mw-device-manager/test-mfe/main.js",
"version": "4.1.0-501"
Die Pfadeigenschaft sollte nicht vorhanden sein, wenn ein Menü über untergeordnete Menüs verfügt. Stufe 1 gibt an, dass dieses Menü zuerst registriert werden soll.
"layout_enabled": true,
"name": "@cisco-bpa-platform/test-mfe-root",
"type": "application",
"display_name": "Test MFE",
"menu_path": "Application",
"custom": true,
"default": false,
"level": 1,
"distribution_path": "/assets/cisco-bpa-platform/mw-device-manager/test-mfe/main.js",
"version": "4.1.0-501"
In der obigen Abbildung ist der übergeordnete Wert Test MFE. Daher ist das Menü Test MFE Level One unter dem Menü Test MFE verschachtelt.
Stufe 2
"layout_enabled": true,
"name": "@cisco-bpa-platform/test-mfe-root",
"type": "application",
"path": "ex/test-mfe/compone",
"display_name": "Test MFE One",
"menu_path": "Application",
"parents": "Test MFE",
"custom": true,
"default": false,
"level": 2,
"distribution_path": "/assets/cisco-bpa-platform/mw-device-manager/test-mfe/main.js",
"version": "4.1.0-501"
Stufe 4
"layout_enabled": true,
"name": "@cisco-bpa-platform/test-mfe-root",
"type": "application",
"path": "ex/test-mfe/comptwo",
"display_name": "Test MFE Two",
"menu_path": "Application",
"parents": "Test MFE",
"custom": true,
"default": false,
"level": 4,
"distribution_path": "/assets/cisco-bpa-platform/mw-device-manager/test-mfe/main.js",
"version": "4.1.0-501"
Stufe 5
"layout_enabled": true,
"name": "@cisco-bpa-platform/test-mfe-root",
"type": "application",
"path": "ex/test-mfe/compone",
"display_name": "Test MFE First one",
"menu_path": "Application",
"parents": "Test MFE Level One",
"custom": true,
"default": false,
"level": 5,
"distribution_path": "/assets/cisco-bpa-platform/mw-device-manager/test-mfe/main.js",
"version": "4.1.0-501"
Das Menü Test MFE First One ist unter dem Menü Test MFE Level One verschachtelt.
Stufe 6
"layout_enabled": true,
"name": "@cisco-bpa-platform/test-mfe-root",
"type": "application",
"path": "ex/test-mfe/comptwo",
"display_name": "Test MFE First Two",
"menu_path": "Application",
"parents": "Test MFE Level One",
"custom": true,
"default": false,
"level": 6,
"distribution_path" : "/assets/cisco-bpa-platform/mw-device-manager/test-mfe/main.js",
"version": "4.1.0-501"
Das Menü Test MFE First Two (Erste MFE testen) ist unter dem Menü Test MFE Level One verschachtelt.
Starten Sie nach dem Vorbereiten der Datei "mfe.json" in Schritt 1 den Microservice-Container neu, um die Einträge zu registrieren.
| Überarbeitung | Veröffentlichungsdatum | Kommentare |
|---|---|---|
1.0 |
26-Nov-2024
|
Erstveröffentlichung |
Feedback