@sapui5/sap.ushell_abap 1.140.0 → 1.141.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.
Files changed (41) hide show
  1. package/package.json +2 -2
  2. package/src/main/js/sap/ushell_abap/.library +1 -1
  3. package/src/main/js/sap/ushell_abap/adapters/abap/AdapterContainer.js +12 -9
  4. package/src/main/js/sap/ushell_abap/adapters/abap/AppStateAdapter.js +9 -9
  5. package/src/main/js/sap/ushell_abap/adapters/abap/ClientSideTargetResolutionAdapter.js +39 -36
  6. package/src/main/js/sap/ushell_abap/adapters/abap/CommonDataModelAdapter.js +1 -1
  7. package/src/main/js/sap/ushell_abap/adapters/abap/ConfigurationDefaultsAdapter.js +1 -1
  8. package/src/main/js/sap/ushell_abap/adapters/abap/ContainerAdapter.js +8 -10
  9. package/src/main/js/sap/ushell_abap/adapters/abap/FlpLaunchPageAdapter.js +150 -91
  10. package/src/main/js/sap/ushell_abap/adapters/abap/LaunchPageAdapter.js +1 -1
  11. package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionAdapter.js +1 -1
  12. package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionInternalAdapter.js +1 -1
  13. package/src/main/js/sap/ushell_abap/adapters/abap/PageBuildingAdapter.js +1 -1
  14. package/src/main/js/sap/ushell_abap/adapters/abap/PagePersistenceAdapter.js +18 -15
  15. package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationAdapter.js +3 -3
  16. package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationV2Adapter.js +1 -1
  17. package/src/main/js/sap/ushell_abap/adapters/abap/SearchAdapter.js +1 -1
  18. package/src/main/js/sap/ushell_abap/adapters/abap/SupportTicketAdapter.js +2 -2
  19. package/src/main/js/sap/ushell_abap/adapters/abap/Ui5ComponentLoaderAdapter.js +1 -1
  20. package/src/main/js/sap/ushell_abap/adapters/abap/UserInfoAdapter.js +28 -20
  21. package/src/main/js/sap/ushell_abap/adapters/hana/ContainerAdapter.js +1 -1
  22. package/src/main/js/sap/ushell_abap/bootstrap/evo/SAPCompanionConditionSetter.js +1 -1
  23. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.configure.ushell.js +1 -1
  24. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.pageset.js +1 -1
  25. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.startup.js +17 -13
  26. package/src/main/js/sap/ushell_abap/bootstrap/evo/boottask.js +58 -56
  27. package/src/main/js/sap/ushell_abap/components/TCodeNavigation/MessageCode.js +47 -0
  28. package/src/main/js/sap/ushell_abap/components/TCodeNavigation/TCodeNavigationError.js +59 -0
  29. package/src/main/js/sap/ushell_abap/components/TCodeNavigation.js +129 -116
  30. package/src/main/js/sap/ushell_abap/integration/fileshares/AppRuntimeFileShareSupport.js +4 -4
  31. package/src/main/js/sap/ushell_abap/library.js +8 -1
  32. package/src/main/js/sap/ushell_abap/pbServices/ui2/Bag.js +11 -11
  33. package/src/main/js/sap/ushell_abap/pbServices/ui2/Catalog.js +2 -2
  34. package/src/main/js/sap/ushell_abap/pbServices/ui2/Chip.js +4 -8
  35. package/src/main/js/sap/ushell_abap/pbServices/ui2/ChipInstance.js +4 -8
  36. package/src/main/js/sap/ushell_abap/pbServices/ui2/ODataWrapper.js +18 -6
  37. package/src/main/js/sap/ushell_abap/pbServices/ui2/Utils.js +6 -9
  38. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/actions.js +2 -2
  39. package/src/main/js/sap/ushell_abap/pbServices/ui2/contracts/visible.js +2 -2
  40. package/src/main/js/sap/ushell_abap/ui5appruntime/AppInfoAdapter.js +2 -2
  41. package/ui5.yaml +33 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.ushell_abap",
3
- "version": "1.140.0",
3
+ "version": "1.141.0",
4
4
  "description": "SAPUI5 Library sap.ushell_abap",
5
5
  "homepage": "https://sap.github.io/ui5-tooling/pages/SAPUI5/",
6
6
  "keywords": [
@@ -15,7 +15,7 @@
15
15
  "build-themes": "cross-env-shell ui5 build --exclude-task=* --include-task=buildThemes --framework-version $npm_package_version"
16
16
  },
17
17
  "devDependencies": {
18
- "@ui5/cli": "^3.11.6",
18
+ "@ui5/cli": "^4.0.24",
19
19
  "cross-env": "^7.0.3"
20
20
  }
21
21
  }
@@ -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.140.0</version>
5
+ <version>1.141.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
 
@@ -6,14 +6,16 @@ sap.ui.define([
6
6
  "sap/ui/thirdparty/jquery",
7
7
  "sap/ui/core/format/DateFormat",
8
8
  "sap/ushell_abap/pbServices/ui2/ODataService",
9
- "sap/ushell/services/_Personalization/constants"
9
+ "sap/ushell/services/_Personalization/constants",
10
+ "sap/ushell/utils/LaunchpadError"
10
11
  ], (
11
12
  ObjectPath,
12
13
  Log,
13
14
  jQuery,
14
15
  DateFormat,
15
16
  ODataService,
16
- constants
17
+ constants,
18
+ LaunchpadError
17
19
  ) => {
18
20
  "use strict";
19
21
 
@@ -92,11 +94,12 @@ sap.ui.define([
92
94
  // response contains items.results (!)
93
95
  that._oJSONContainer.PersContainerItems = (that._oJSONContainer.PersContainerItems && that._oJSONContainer.PersContainerItems.results) || [];
94
96
  oDeferred.resolve(that);
95
- }, (sErrorMessage) => {
97
+ }, (sErrorMessage, oParsedError) => {
96
98
  // this error handler used to resolve with an empty personalization container
97
99
  // but was changed to reject the promise so that the caller can react to the error
98
100
  Log.error(sErrorMessage);
99
- oDeferred.reject(sErrorMessage);
101
+
102
+ oDeferred.reject(new LaunchpadError(sErrorMessage, oParsedError));
100
103
  });
101
104
  return oDeferred.promise();
102
105
  };
@@ -114,8 +117,8 @@ sap.ui.define([
114
117
 
115
118
  oDataWrapper.create(sRelativeURL, this._oJSONContainer, (/* response */) => {
116
119
  oDeferred.resolve(that);
117
- }, (sErrorMessage) => {
118
- oDeferred.reject(sErrorMessage);
120
+ }, (sErrorMessage, oParsedError) => {
121
+ oDeferred.reject(new LaunchpadError(sErrorMessage, oParsedError));
119
122
  });
120
123
  return oDeferred.promise();
121
124
  };
@@ -132,8 +135,8 @@ sap.ui.define([
132
135
 
133
136
  oDataWrapper.del(sRelativeURL, (response) => {
134
137
  oDeferred.resolve(that);
135
- }, (sErrorMessage) => {
136
- oDeferred.reject(sErrorMessage);
138
+ }, (sErrorMessage, oParsedError) => {
139
+ oDeferred.reject(new LaunchpadError(sErrorMessage, oParsedError));
137
140
  });
138
141
  this._reset();
139
142
  return oDeferred.promise();
@@ -276,7 +279,7 @@ sap.ui.define([
276
279
  sItemValue = this._oJSONContainer.PersContainerItems[oItemRef.index].value;
277
280
  try {
278
281
  oItemValue = JSON.parse(sItemValue);
279
- } catch (e) {
282
+ } catch {
280
283
  // Workaround for
281
284
  // GW Bug "true" => "X" and false => "" at the backend
282
285
  // can be removed once Correction of Note 2013368 is implemented in landscape
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The Unified Shell's AppStateAdapter for the ABAP platform.
5
- * @version 1.140.0
5
+ * @version 1.141.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/util/ObjectPath",
@@ -47,8 +47,8 @@ sap.ui.define([
47
47
  "sap-client": Container.getLogonSystem().getClient()
48
48
  };
49
49
  this._oWrapper = ODataWrapper.createODataWrapper(oODataWrapperSettings);
50
- function fnDefaultFailure (oMessage) {
51
- throw new SrvcError(oMessage, "sap.ushell_abap.adapters.abap.AppStateAdapter");
50
+ function fnDefaultFailure (sErrorMessage) {
51
+ throw new SrvcError(sErrorMessage, "sap.ushell_abap.adapters.abap.AppStateAdapter");
52
52
  }
53
53
  ODataService.call(this, this._oWrapper, fnDefaultFailure);
54
54
  }
@@ -83,8 +83,8 @@ sap.ui.define([
83
83
  this._oWrapper.create(sRelativeUrl, oPayload, (/* response */) => {
84
84
  oDeferred.resolve();
85
85
  }, (sErrorMessage) => {
86
- oDeferred.reject(sErrorMessage);
87
- Log.error(sErrorMessage);
86
+ Log.error(`AppState save failed: ${sErrorMessage}`);
87
+ oDeferred.reject(new Error(sErrorMessage));
88
88
  });
89
89
 
90
90
  return oDeferred.promise();
@@ -111,12 +111,12 @@ sap.ui.define([
111
111
  this._oWrapper.read(sRelativeUrl, (response) => {
112
112
  oDeferredRead.resolve(response.id, response.value);
113
113
  }, (sErrorMessage) => {
114
- Log.error(sErrorMessage);
115
- oDeferredRead.reject(sErrorMessage);
114
+ Log.error(`AppState load failed: ${sErrorMessage}`);
115
+ oDeferredRead.reject(new Error(sErrorMessage));
116
116
  }, false);
117
117
  this._oWrapper.submitBatchQueue(() => { }, (sErrorMessage) => {
118
- Log.error(sErrorMessage);
119
- oDeferredRead.reject(sErrorMessage);
118
+ Log.error(`AppState load failed: ${sErrorMessage}`);
119
+ oDeferredRead.reject(new Error(sErrorMessage));
120
120
  });
121
121
 
122
122
  return oDeferredRead.promise();
@@ -9,7 +9,7 @@
9
9
  * <li>provide the resolveHashFragmentFallback function, a fallback method called by ClientSideTargetResolution service.</li>
10
10
  * </ul>
11
11
  *
12
- * @version 1.140.0
12
+ * @version 1.141.0
13
13
  */
14
14
  sap.ui.define([
15
15
  "sap/base/util/ObjectPath",
@@ -214,8 +214,8 @@ sap.ui.define([
214
214
  that._storeFromFullStartupResponse(oFullStartupResult);
215
215
  fnResolve(); // resolve the full promise
216
216
  })
217
- .catch((sMsg) => {
218
- fnReject(sMsg); // reject the full promise
217
+ .catch((oError) => {
218
+ fnReject(oError); // reject the full promise
219
219
  });
220
220
  };
221
221
 
@@ -271,10 +271,10 @@ sap.ui.define([
271
271
  "sap.ushell_abap.adapters.abap.ClientSideTargetResolutionAdapter"
272
272
  );
273
273
  }
274
- }).catch((sReason) => {
274
+ }).catch((oError) => {
275
275
  Log.error(
276
276
  "Initial segment promise was rejected.",
277
- sReason,
277
+ oError,
278
278
  "sap.ushell_abap.adapters.abap.ClientSideTargetResolutionAdapter"
279
279
  );
280
280
  });
@@ -450,26 +450,26 @@ sap.ui.define([
450
450
  });
451
451
 
452
452
  // must wait on the full target mappings promise to complete before returning
453
- this._oNavTargetPromise.then(() => {
454
- Log.debug(
455
- "Got inbounds from full start_up response",
456
- "",
457
- "sap.ushell_abap.adapters.abap.ClientSideTargetResolutionAdapter"
458
- );
453
+ this._oNavTargetPromise
454
+ .then(() => {
455
+ Log.debug(
456
+ "Got inbounds from full start_up response",
457
+ "",
458
+ "sap.ushell_abap.adapters.abap.ClientSideTargetResolutionAdapter"
459
+ );
459
460
 
460
- // convert (once) when needed
461
- this._aInbounds = this._formatDirectStart(this._aTargetMappings);
461
+ // convert (once) when needed
462
+ this._aInbounds = this._formatDirectStart(this._aTargetMappings);
462
463
 
463
- // we don't want to check for the initial segment in the future anymore, since we've got all the inbounds now.
464
- this.getInbounds = function () {
465
- // replace implementation of this method (no conversion in future calls anymore!)
466
- return Promise.resolve(this._aInbounds);
467
- };
464
+ // we don't want to check for the initial segment in the future anymore, since we've got all the inbounds now.
465
+ this.getInbounds = function () {
466
+ // replace implementation of this method (no conversion in future calls anymore!)
467
+ return Promise.resolve(this._aInbounds);
468
+ };
468
469
 
469
- fnResolve(this._aInbounds);
470
- }, (sMsg) => {
471
- fnReject(sMsg);
472
- });
470
+ fnResolve(this._aInbounds);
471
+ })
472
+ .catch(fnReject);
473
473
  });
474
474
  };
475
475
 
@@ -528,12 +528,12 @@ sap.ui.define([
528
528
  (sNavTargetDataResult) => {
529
529
  const oNavTargetDataResult = JSON.parse(sNavTargetDataResult);
530
530
  if (!oNavTargetDataResult) {
531
- fnReject("Malformed Full TM Result");
531
+ fnReject(new Error("Malformed Full TM Result"));
532
532
  }
533
533
  fnResolve(oNavTargetDataResult);
534
534
  },
535
- (sMessage) => {
536
- fnReject(sMessage);
535
+ (sErrorMessage) => {
536
+ fnReject(new Error(sErrorMessage));
537
537
  }
538
538
  );
539
539
  });
@@ -1204,18 +1204,21 @@ sap.ui.define([
1204
1204
 
1205
1205
  that._compactTooLongWdaUrl(oAdjustedResult).then((oCompactedResult) => {
1206
1206
  fnResolve(oCompactedResult);
1207
- }).catch((sMsg) => {
1208
- fnReject(`Could not resolve link '${sFragmentNoHash}' due to compactation failure${sMsg}`);
1207
+ }).catch((oError) => {
1208
+ Log.error(`Could not resolve link '${sFragmentNoHash}' due to compactation failure`, oError);
1209
+ fnReject(oError);
1209
1210
  });
1210
1211
  } else {
1211
- fnReject(`Could not resolve link '${sFragmentNoHash}'`);
1212
+ fnReject(new Error(`Could not resolve link '${sFragmentNoHash}'`));
1212
1213
  }
1213
- }, (sMessage) => {
1214
- fnReject(sMessage);
1214
+ }, (sErrorMessage) => {
1215
+ fnReject(new Error(sErrorMessage));
1215
1216
  });
1216
1217
 
1217
1218
  if (bBatchQueueOpened) {
1218
- that._getODataWrapper().submitBatchQueue(() => { }, fnReject);
1219
+ that._getODataWrapper().submitBatchQueue(() => { }, (sErrorMessage) => {
1220
+ fnReject(new Error(sErrorMessage));
1221
+ });
1219
1222
  }
1220
1223
  });
1221
1224
  };
@@ -1342,8 +1345,8 @@ sap.ui.define([
1342
1345
  "sap.ushell_abap.adapters.abap.ClientSideTargetResolutionAdapter"
1343
1346
  );
1344
1347
  that._readSystemAliasViaInterop(sSystemAlias)
1345
- .catch((sError) => {
1346
- fnReject(sError);
1348
+ .catch((oError) => {
1349
+ fnReject(oError);
1347
1350
  })
1348
1351
  .then((oOdataSystemAliasData) => {
1349
1352
  oSystemAliasData = that._fixSystemAlias(oOdataSystemAliasData);
@@ -1379,7 +1382,7 @@ sap.ui.define([
1379
1382
 
1380
1383
  // must wait at least on the small start_up response before using INTEROP
1381
1384
 
1382
- this._oInitialSegmentPromise.then(fnRetryBufferOrUseInterop, fnRetryBufferOrUseInterop);
1385
+ this._oInitialSegmentPromise.finally(fnRetryBufferOrUseInterop);
1383
1386
  }
1384
1387
  });
1385
1388
  };
@@ -1517,8 +1520,8 @@ sap.ui.define([
1517
1520
  (oSystemAliasData) => {
1518
1521
  fnResolve(oSystemAliasData);
1519
1522
  },
1520
- (sMessage) => {
1521
- fnReject(sMessage);
1523
+ (sErrorMessage) => {
1524
+ fnReject(new Error(sErrorMessage));
1522
1525
  }
1523
1526
  );
1524
1527
  });
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview The Unified Shell's CommonDataModelAdapter for the ABAP platform, it is used to avoid 404 when no adapter is found
4
4
  *
5
- * @version 1.140.0
5
+ * @version 1.141.0
6
6
  */
7
7
  sap.ui.define([
8
8
  ], () => {
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The ConfigurationDefaults adapter for the ABAP platform.
5
- * @version 1.140.0
5
+ * @version 1.141.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ushell_abap/bootstrap/evo/abap.constants",
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview The Unified Shell's container adapter for the ABAP platform.
4
4
  *
5
- * @version 1.140.0
5
+ * @version 1.141.0
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ui/thirdparty/jquery",
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  abapUtils,
26
26
  ODataWrapper,
27
27
  URI,
28
- OData,
28
+ datajs,
29
29
  deepClone,
30
30
  ObjectPath,
31
31
  Log,
@@ -391,11 +391,9 @@ sap.ui.define([
391
391
  });
392
392
  }
393
393
  oDeferred.resolve();
394
- }, (sError) => { // error handler
395
- Log.error(`Reading REMOTE catalogs failed: ${
396
- sError}`, null,
397
- "sap.ushell_abap.adapters.abap.ContainerAdapter");
398
- oDeferred.reject();
394
+ }, (sErrorMessage) => { // error handler
395
+ Log.error("Reading REMOTE catalogs failed:", sErrorMessage, "sap.ushell_abap.adapters.abap.ContainerAdapter");
396
+ oDeferred.reject(new Error(sErrorMessage));
399
397
  });
400
398
  })
401
399
  .catch(oDeferred.reject);
@@ -513,13 +511,13 @@ sap.ui.define([
513
511
  }
514
512
 
515
513
  if (isUserImageEnabled() && oUser && oUser.isJamActive && oUser.isJamActive()) {
516
- OData.read("/sap/bc/ui2/smi/rest_tunnel/Jam/api/v1/OData/Self?$format=json", (oResponseData) => {
514
+ datajs.read("/sap/bc/ui2/smi/rest_tunnel/Jam/api/v1/OData/Self?$format=json", (oResponseData) => {
517
515
  const sJamUserId = oResponseData.results.Id;
518
516
  const sJamUserImageUrl = `/sap/bc/ui2/smi/rest_tunnel/Jam/api/v1/OData/Members('${sJamUserId}')/ProfilePhoto/$value`;
519
517
 
520
518
  oUser.setImage(sJamUserImageUrl);
521
- }, () => {
522
- Log.error("Could not recieve JAM user data");
519
+ }, (oDataJsError) => {
520
+ Log.error("Could not receive JAM user data");
523
521
  });
524
522
  }
525
523
  };