@sapui5/sap.ushell_abap 1.141.3 → 1.142.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/main/js/sap/ushell_abap/.library +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/AppStateAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/ClientSideTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/CommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/ConfigurationDefaultsAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/FlpLaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/LaunchPageAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionInternalAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/PageBuildingAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/PagePersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationV2Adapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/SearchAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/SupportTicketAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/abap/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/adapters/hana/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.configure.ushell.js +1 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.constants.js +0 -1
- package/src/main/js/sap/ushell_abap/bootstrap/evo/boottask.js +66 -41
- package/src/main/js/sap/ushell_abap/components/TCodeNavigation/MessageCode.js +19 -1
- package/src/main/js/sap/ushell_abap/components/TCodeNavigation.js +58 -19
- package/src/main/js/sap/ushell_abap/library.js +1 -1
- package/ui5.yaml +14 -6
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<library xmlns="http://www.sap.com/sap.ui.library.xsd">
|
|
3
3
|
<name>sap.ushell_abap</name>
|
|
4
4
|
<vendor>SAP SE</vendor>
|
|
5
|
-
<version>1.
|
|
5
|
+
<version>1.142.0</version>
|
|
6
6
|
<copyright>Copyright (c) 2009-2025 SAP SE, All Rights Reserved</copyright>
|
|
7
7
|
<documentation>SAP library: sap.ushell_abap</documentation>
|
|
8
8
|
|
|
@@ -22,7 +22,6 @@ sap.ui.define([
|
|
|
22
22
|
customPreload: {
|
|
23
23
|
enabled: true,
|
|
24
24
|
coreResources: [
|
|
25
|
-
"sap/ushell/preload-bundles/thirdparty.js",
|
|
26
25
|
"sap/ushell_abap/bootstrap/evo/core-min-0.js",
|
|
27
26
|
"sap/ushell_abap/bootstrap/evo/core-min-1.js",
|
|
28
27
|
"sap/ushell_abap/bootstrap/evo/core-min-2.js",
|
|
@@ -737,6 +737,7 @@ sap.ui.define([
|
|
|
737
737
|
const oFrameLogonManager = oXhrLogonLib.FrameLogonManager.getInstance();
|
|
738
738
|
getContainer().oFrameLogonManager = oFrameLogonManager;
|
|
739
739
|
});
|
|
740
|
+
|
|
740
741
|
if (isDirectStart(sShellHash)) { // only set on direct app start (not #Shell-home)
|
|
741
742
|
let fnResolve;
|
|
742
743
|
let fnReject;
|
|
@@ -744,53 +745,77 @@ sap.ui.define([
|
|
|
744
745
|
fnResolve = resolve;
|
|
745
746
|
fnReject = reject;
|
|
746
747
|
});
|
|
747
|
-
window["sap-ushell-async-libs-promise-directstart"].catch((oError) => {
|
|
748
|
-
|
|
748
|
+
window["sap-ushell-async-libs-promise-directstart"].catch((oError) => {
|
|
749
|
+
Log.error("Direct app start failed", oError, "sap.ushell_abap.bootstrap");
|
|
749
750
|
});
|
|
751
|
+
|
|
752
|
+
let oPromise = Promise.resolve();
|
|
753
|
+
let sSSBShellHash;
|
|
754
|
+
if (sShellHash.includes("sap-ssb-eval-id")) {
|
|
755
|
+
// For a Smart Business direct start the parameter sap-ssb-eval-id has to be
|
|
756
|
+
// resolved by Smart Business early so that the resolved parameters are already
|
|
757
|
+
// passed to the app component during the early component creation.
|
|
758
|
+
oPromise = Promise.resolve()
|
|
759
|
+
.then(async () => {
|
|
760
|
+
const SmartBusiness = await new Promise((resolve, reject) => {
|
|
761
|
+
sap.ui.require(["sap/ushell/utils/SmartBusiness"], resolve, reject);
|
|
762
|
+
});
|
|
763
|
+
|
|
764
|
+
let oParsedShellHash = UrlParsing.parseShellHash(sShellHash);
|
|
765
|
+
oParsedShellHash = await SmartBusiness.resolveEvaluationId(oParsedShellHash, true);
|
|
766
|
+
sSSBShellHash = UrlParsing.constructShellHash(oParsedShellHash);
|
|
767
|
+
});
|
|
768
|
+
}
|
|
769
|
+
|
|
750
770
|
// resolve the shell hash and try to load a UI5 component for it; if successful,
|
|
751
771
|
// the application context for the component will be attached to the resolution result
|
|
752
772
|
// for non-UI5 targets, it will be empty
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
oResolutionResult
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
773
|
+
oPromise
|
|
774
|
+
.then(() => {
|
|
775
|
+
return getContainer().getServiceAsync("NavTargetResolutionInternal");
|
|
776
|
+
})
|
|
777
|
+
.then((oNavTargetResolutionInternal) => {
|
|
778
|
+
const sShellHash = `#${sSSBShellHash || oBoottask._getShellHash()}`;
|
|
779
|
+
oNavTargetResolutionInternal.resolveHashFragment(sShellHash)
|
|
780
|
+
.done((oResolutionResult) => {
|
|
781
|
+
sap.ui.require(["sap/ushell/services/AppConfiguration"], (AppConfiguration) => {
|
|
782
|
+
AppConfiguration.setCurrentApplication(oResolutionResult);
|
|
783
|
+
|
|
784
|
+
if (oResolutionResult && oResolutionResult.ui5ComponentName) {
|
|
785
|
+
oResolutionResult.ui5ComponentId = `application-${UrlParsing.getBasicHash(sShellHash)}-component`;
|
|
786
|
+
// create UI5 component early
|
|
787
|
+
getContainer().getServiceAsync("Ui5ComponentLoader").then((oUi5ComponentLoader) => {
|
|
788
|
+
oUi5ComponentLoader.createComponent(
|
|
789
|
+
oResolutionResult,
|
|
790
|
+
[createWaitForRendererCreatedPromise()],
|
|
791
|
+
"Application"
|
|
792
|
+
)
|
|
793
|
+
.then((oResolutionResultWithComponentHandle) => {
|
|
794
|
+
fnResolve({
|
|
795
|
+
resolvedHashFragment: oResolutionResultWithComponentHandle,
|
|
796
|
+
dependenciesLoaded: true
|
|
797
|
+
});
|
|
798
|
+
})
|
|
799
|
+
.catch((oError) => {
|
|
800
|
+
fnReject(oError);
|
|
775
801
|
});
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
802
|
+
});
|
|
803
|
+
} else {
|
|
804
|
+
// non-ui5 app
|
|
805
|
+
fnResolve({
|
|
806
|
+
resolvedHashFragment: oResolutionResult,
|
|
807
|
+
dependenciesLoaded: false
|
|
808
|
+
});
|
|
809
|
+
}
|
|
810
|
+
});
|
|
811
|
+
})
|
|
812
|
+
.fail((oError) => {
|
|
813
|
+
fnReject(oError);
|
|
788
814
|
});
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
});
|
|
815
|
+
})
|
|
816
|
+
.catch((oError) => {
|
|
817
|
+
fnReject(oError);
|
|
818
|
+
});
|
|
794
819
|
}
|
|
795
820
|
}
|
|
796
821
|
|
|
@@ -25,7 +25,16 @@ sap.ui.define([
|
|
|
25
25
|
NAV_SUCCESS: "NAV_SUCCESS",
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Navigation failed.
|
|
29
|
+
*
|
|
30
|
+
* @since 1.142.0
|
|
31
|
+
* @private
|
|
32
|
+
* @ui5-restricted sap.esh.search.ui
|
|
33
|
+
*/
|
|
34
|
+
NAVFLP_HOME_FAILED: "NAV_FLP_HOME_FAILED",
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* No matching inbound was found for the transaction code.
|
|
29
38
|
*
|
|
30
39
|
* @since 1.140.0
|
|
31
40
|
* @private
|
|
@@ -33,6 +42,15 @@ sap.ui.define([
|
|
|
33
42
|
*/
|
|
34
43
|
NO_INBOUND_FOUND: "NO_INBOUND_FOUND",
|
|
35
44
|
|
|
45
|
+
/**
|
|
46
|
+
* At least one mandatory parameter is missing for each navigation result of the transaction code.
|
|
47
|
+
*
|
|
48
|
+
* @since 1.141.0
|
|
49
|
+
* @private
|
|
50
|
+
* @ui5-restricted sap.esh.search.ui
|
|
51
|
+
*/
|
|
52
|
+
MANDATORY_PARAMETER_MISSING: "MANDATORY_PARAMETER_MISSING",
|
|
53
|
+
|
|
36
54
|
/**
|
|
37
55
|
* An unknown error occurred during navigation.
|
|
38
56
|
*
|
|
@@ -4,6 +4,7 @@ sap.ui.define([
|
|
|
4
4
|
"sap/ushell/Container",
|
|
5
5
|
"sap/base/Log",
|
|
6
6
|
"sap/ushell/api/performance/Extension",
|
|
7
|
+
"sap/ushell/utils/WindowUtils",
|
|
7
8
|
"sap/ushell/api/performance/NavigationSource",
|
|
8
9
|
"sap/ushell_abap/components/TCodeNavigation/TCodeNavigationError",
|
|
9
10
|
"sap/ushell_abap/components/TCodeNavigation/MessageCode"
|
|
@@ -11,6 +12,7 @@ sap.ui.define([
|
|
|
11
12
|
Container,
|
|
12
13
|
Log,
|
|
13
14
|
Extension,
|
|
15
|
+
WindowUtils,
|
|
14
16
|
NavigationSource,
|
|
15
17
|
TCodeNavigationError,
|
|
16
18
|
MessageCode
|
|
@@ -52,6 +54,7 @@ sap.ui.define([
|
|
|
52
54
|
|
|
53
55
|
/**
|
|
54
56
|
* Navigates to an app intent if the given sTCode matches an inbound's appInfo parameter abap.transaction.
|
|
57
|
+
* The transaction code is case-insensitive and will be converted to uppercase for matching.
|
|
55
58
|
* If a matching inbound is found, it extracts the semantic object, action, and parameters
|
|
56
59
|
* and uses the Navigation service to perform the navigation.
|
|
57
60
|
* @param {string} sTCode The transaction code to search for, can also be an App ID.
|
|
@@ -69,28 +72,36 @@ sap.ui.define([
|
|
|
69
72
|
const NavDataProvider = await Container.getServiceAsync("NavigationDataProvider");
|
|
70
73
|
const oNavigationData = await NavDataProvider.getNavigationData();
|
|
71
74
|
|
|
72
|
-
const
|
|
75
|
+
const sTCodeUpper = sTCode.toUpperCase();
|
|
76
|
+
const oValidInbound = this.#getValidInbound(oNavigationData, sTCodeUpper);
|
|
73
77
|
|
|
74
78
|
if (oValidInbound) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
await TCodeNavigation.#navigateByInbound(oValidInbound, bExplace);
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
successful: true,
|
|
83
|
+
messagecode: MessageCode.NAV_SUCCESS
|
|
84
|
+
};
|
|
85
|
+
} else if (sTCode === "") {
|
|
78
86
|
if (bExplace) {
|
|
79
|
-
|
|
87
|
+
// Opens Shell home in a new tab
|
|
88
|
+
const sFLPUrl = Container.getFLPUrl();
|
|
89
|
+
const bResult = WindowUtils.openURL(sFLPUrl);
|
|
90
|
+
if (!bResult) {
|
|
91
|
+
throw new TCodeNavigationError(
|
|
92
|
+
`Navigation to FLP home failed: ${sFLPUrl}`,
|
|
93
|
+
{ code: MessageCode.NAVFLP_HOME_FAILED }
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
} else {
|
|
97
|
+
await Container.getServiceAsync("Navigation").then((oNavService) => {
|
|
98
|
+
oNavService.navigate({
|
|
99
|
+
target: {
|
|
100
|
+
shellHash: "#"
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
});
|
|
80
104
|
}
|
|
81
|
-
|
|
82
|
-
// Log the navigation source for performance tracking
|
|
83
|
-
this.#oExtension.addNavigationSource(NavigationSource.SearchDirectLaunch);
|
|
84
|
-
|
|
85
|
-
const oNavService = await Container.getServiceAsync("Navigation");
|
|
86
|
-
await oNavService.navigate({
|
|
87
|
-
target: {
|
|
88
|
-
semanticObject: sSemanticObject,
|
|
89
|
-
action: sAction
|
|
90
|
-
},
|
|
91
|
-
params: oParams
|
|
92
|
-
});
|
|
93
|
-
|
|
94
105
|
return {
|
|
95
106
|
successful: true,
|
|
96
107
|
messagecode: MessageCode.NAV_SUCCESS
|
|
@@ -113,6 +124,34 @@ sap.ui.define([
|
|
|
113
124
|
}
|
|
114
125
|
}
|
|
115
126
|
|
|
127
|
+
/**
|
|
128
|
+
* Performs navigation using the Navigation service based on the provided inbound.
|
|
129
|
+
* @param {object} oValidInbound The valid inbound object containing semanticObject and action.
|
|
130
|
+
* @param {boolean} bExplace Indicates whether to open the navigation in a new tab.
|
|
131
|
+
*
|
|
132
|
+
* @since 1.142.0
|
|
133
|
+
* @private
|
|
134
|
+
*/
|
|
135
|
+
static async #navigateByInbound (oValidInbound, bExplace) {
|
|
136
|
+
const { semanticObject: sSemanticObject, action: sAction } = oValidInbound;
|
|
137
|
+
const oParams = {};
|
|
138
|
+
if (bExplace) {
|
|
139
|
+
oParams["sap-ushell-navmode"] = "explace";
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Log the navigation source for performance tracking
|
|
143
|
+
this.#oExtension.addNavigationSource(NavigationSource.SearchDirectLaunch);
|
|
144
|
+
|
|
145
|
+
const oNavService = await Container.getServiceAsync("Navigation");
|
|
146
|
+
await oNavService.navigate({
|
|
147
|
+
target: {
|
|
148
|
+
semanticObject: sSemanticObject,
|
|
149
|
+
action: sAction
|
|
150
|
+
},
|
|
151
|
+
params: oParams
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
|
|
116
155
|
/**
|
|
117
156
|
* Finds the first inbound that matches the given transaction code and doesn't have mandatory parameters.
|
|
118
157
|
* @param {object} oNavigationData The navigation data containing inbounds.
|
|
@@ -151,7 +190,7 @@ sap.ui.define([
|
|
|
151
190
|
if (!oValidInbound) {
|
|
152
191
|
throw new TCodeNavigationError(
|
|
153
192
|
`Mandatory parameter is missing for transaction ${sTCode}`,
|
|
154
|
-
{ code: MessageCode.
|
|
193
|
+
{ code: MessageCode.MANDATORY_PARAMETER_MISSING }
|
|
155
194
|
);
|
|
156
195
|
}
|
|
157
196
|
|
package/ui5.yaml
CHANGED
|
@@ -241,8 +241,6 @@ builder:
|
|
|
241
241
|
- '!sap/ushell/appRuntime/ui5/plugins/rtaAgent/'
|
|
242
242
|
- '!sap/ushell/appRuntime/ui5/plugins/rtaShell/'
|
|
243
243
|
- '!sap/ushell/appRuntime/neo/*.js'
|
|
244
|
-
- '!sap/ushell/thirdparty/'
|
|
245
|
-
- '!sap/ushell/gen/'
|
|
246
244
|
resolve: false
|
|
247
245
|
renderer: false
|
|
248
246
|
- mode: require
|
|
@@ -324,6 +322,16 @@ builder:
|
|
|
324
322
|
- mode: preload
|
|
325
323
|
name: sap/ushell/core-lib-preload
|
|
326
324
|
filters: &core-min-preload
|
|
325
|
+
- sap/f/gen/ui5/webcomponents/dist/Avatar.js
|
|
326
|
+
- sap/f/gen/ui5/webcomponents/dist/Button.js
|
|
327
|
+
- sap/f/gen/ui5/webcomponents_fiori/dist/ShellBar.js
|
|
328
|
+
- sap/f/gen/ui5/webcomponents_fiori/dist/ShellBarBranding.js
|
|
329
|
+
- sap/f/gen/ui5/webcomponents_fiori/dist/ShellBarItem.js
|
|
330
|
+
- sap/f/gen/ui5/webcomponents_fiori/dist/ShellBarSearch.js
|
|
331
|
+
- sap/f/gen/ui5/webcomponents_fiori/dist/ShellBarSpacer.js
|
|
332
|
+
- sap/f/thirdparty/ui5/webcomponents_icons_business_suite/AllIcons.js
|
|
333
|
+
- sap/f/thirdparty/ui5/webcomponents_icons_tnt/AllIcons.js
|
|
334
|
+
- sap/f/thirdparty/ui5/webcomponents_icons/AllIcons.js
|
|
327
335
|
- sap/f/GridContainer.js
|
|
328
336
|
- sap/f/GridContainerItemLayoutData.js
|
|
329
337
|
- sap/m/App.js
|
|
@@ -418,6 +426,7 @@ builder:
|
|
|
418
426
|
- sap/ushell/components/tiles/utils.js
|
|
419
427
|
- sap/ushell/iconfonts.js
|
|
420
428
|
- sap/ushell/library.js
|
|
429
|
+
- sap/ushell/modules
|
|
421
430
|
- sap/ushell/override.js
|
|
422
431
|
- sap/ushell/renderer/History.js
|
|
423
432
|
- sap/ushell/renderer/Renderer.js
|
|
@@ -490,8 +499,6 @@ builder:
|
|
|
490
499
|
- sap/ushell_abap/pbServices/
|
|
491
500
|
- '!sap/viz/libs/sap-viz.js'
|
|
492
501
|
- '!sap/ui/unified/'
|
|
493
|
-
- '!sap/ushell/thirdparty/'
|
|
494
|
-
- '!sap/ushell/gen/'
|
|
495
502
|
resolve: true
|
|
496
503
|
renderer: true
|
|
497
504
|
- mode: require
|
|
@@ -532,11 +539,10 @@ builder:
|
|
|
532
539
|
- sap/ui/util/
|
|
533
540
|
- sap/ushell/
|
|
534
541
|
- sap/ushell_abap/
|
|
535
|
-
- '!sap/ushell/thirdparty/'
|
|
536
|
-
- '!sap/ushell/gen/'
|
|
537
542
|
- '!**/*-preload*.js'
|
|
538
543
|
- '!**/*.support.js'
|
|
539
544
|
- '!**/designtime/'
|
|
545
|
+
- '!sap/f/thirdparty/_dynamics/'
|
|
540
546
|
- '!sap/m/rules/'
|
|
541
547
|
- '!sap/ui/core/messagebundle*.properties'
|
|
542
548
|
- '!sap/ui/core/plugin/'
|
|
@@ -581,6 +587,8 @@ builder:
|
|
|
581
587
|
- sap/ushell/utils/Deferred.js
|
|
582
588
|
# dependency of sap.ushell.ui.QuickAccess
|
|
583
589
|
- sap/ushell/utils/AppType.js
|
|
590
|
+
# Default ushell modules
|
|
591
|
+
- sap/ushell/components/shell/Notifications/NotificationsModule.js
|
|
584
592
|
resolve: false
|
|
585
593
|
bundleOptions:
|
|
586
594
|
optimize: true
|