trm-core 6.9.1 → 7.1.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/changelog.txt CHANGED
@@ -8,6 +8,15 @@ Legend
8
8
  + : added
9
9
  - : removed
10
10
 
11
+ 2025-06-03 v7.1.0
12
+ -------------------
13
+ * change tr owner on install tr update
14
+
15
+ 2025-06-03 v7.0.0
16
+ -------------------
17
+ ! trm-server ^4.0.0
18
+ + change tr owner on install tr update
19
+
11
20
  2025-05-29 v6.9.1
12
21
  -------------------
13
22
  * remote function for updating server
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.generateInstallTransport = void 0;
13
13
  const trm_commons_1 = require("trm-commons");
14
14
  const commons_1 = require("../../commons");
15
+ const systemConnector_1 = require("../../systemConnector");
15
16
  const transport_1 = require("../../transport");
16
17
  exports.generateInstallTransport = {
17
18
  name: 'generate-install-transport',
@@ -36,6 +37,9 @@ exports.generateInstallTransport = {
36
37
  if (context.runtime.installData.transport) {
37
38
  trm_commons_1.Logger.log(`Install transport (${context.runtime.installData.transport.trkorr}) already exists, won't create a new one.`, true);
38
39
  trm_commons_1.Logger.loading(`Updating install transport...`);
40
+ if (commons_1.TrmServerUpgrade.getInstance().changeTrOwner()) {
41
+ yield context.runtime.installData.transport.changeOwner(systemConnector_1.SystemConnector.getLogonUser());
42
+ }
39
43
  if (commons_1.TrmServerUpgrade.getInstance().removeComments()) {
40
44
  yield context.runtime.installData.transport.removeComments();
41
45
  }
@@ -118,23 +122,28 @@ exports.generateInstallTransport = {
118
122
  }
119
123
  }
120
124
  if (context.runtime.installData.namespace[0] === '/') {
121
- trm_commons_1.Logger.log(`Adding namespace ${context.runtime.installData.namespace} without lock`, true);
122
- try {
123
- yield context.runtime.installData.transport.addObjects([{
124
- pgmid: 'R3TR',
125
- object: 'NSPC',
126
- objName: context.runtime.installData.namespace
127
- }], false);
125
+ if (!trObjs.find(o => o.pgmid === 'R3TR' && o.object === 'NSPC' && o.objName === context.runtime.installData.namespace)) {
126
+ trm_commons_1.Logger.log(`Adding namespace ${context.runtime.installData.namespace} without lock`, true);
127
+ try {
128
+ yield context.runtime.installData.transport.addObjects([{
129
+ pgmid: 'R3TR',
130
+ object: 'NSPC',
131
+ objName: context.runtime.installData.namespace
132
+ }], false);
133
+ }
134
+ catch (e) {
135
+ trm_commons_1.Logger.error(`Failed adding namespace ${context.runtime.installData.namespace}`, true);
136
+ trm_commons_1.Logger.error(e.toString(), true);
137
+ }
128
138
  }
129
- catch (e) {
130
- trm_commons_1.Logger.error(`Failed adding namespace ${context.runtime.installData.namespace}`, true);
131
- trm_commons_1.Logger.error(e.toString(), true);
139
+ else {
140
+ trm_commons_1.Logger.log(`Namespace ${context.runtime.installData.namespace} already in install transport`, true);
132
141
  }
133
142
  }
134
143
  trm_commons_1.Logger.success(`Use ${context.runtime.installData.transport.trkorr} for transports in your landscape.`);
135
144
  }
136
145
  catch (e) {
137
- trm_commons_1.Logger.error(`An error occurred during install transport generation.`);
146
+ trm_commons_1.Logger.error(`An error occurred during install transport generation/update.`);
138
147
  trm_commons_1.Logger.error(e.toString(), true);
139
148
  }
140
149
  })
@@ -66,4 +66,5 @@ export declare class RESTClient implements IClient {
66
66
  }>;
67
67
  getInstalledPackagesBackend(): Promise<struct.ZTY_TRM_PACKAGE[]>;
68
68
  isServerApisAllowed(): Promise<true | RESTClientError>;
69
+ changeTrOwner(trkorr: components.TRKORR, owner: components.TR_AS4USER): Promise<void>;
69
70
  }
@@ -90,6 +90,12 @@ class RESTClient {
90
90
  return response;
91
91
  }, (error) => __awaiter(this, void 0, void 0, function* () {
92
92
  var axiosError;
93
+ var message;
94
+ var messageError;
95
+ var sapMessage = {
96
+ class: undefined,
97
+ no: undefined
98
+ };
93
99
  if (error.name === `Trm${AXIOS_CTX}Error`) {
94
100
  axiosError = error.axiosError;
95
101
  }
@@ -101,26 +107,29 @@ class RESTClient {
101
107
  throw error;
102
108
  }
103
109
  }
104
- var message;
105
- var messageError;
106
- const sapMessage = {
107
- no: `${axiosError.response.data.message.msgno}`,
108
- class: axiosError.response.data.message.msgid,
109
- v1: axiosError.response.data.message.msgv1,
110
- v2: axiosError.response.data.message.msgv2,
111
- v3: axiosError.response.data.message.msgv3,
112
- v4: axiosError.response.data.message.msgv4
113
- };
114
- try {
115
- message = yield this.getMessage(sapMessage);
110
+ if (axiosError.response.data.message) {
111
+ sapMessage = {
112
+ no: `${axiosError.response.data.message.msgno}`,
113
+ class: axiosError.response.data.message.msgid,
114
+ v1: axiosError.response.data.message.msgv1,
115
+ v2: axiosError.response.data.message.msgv2,
116
+ v3: axiosError.response.data.message.msgv3,
117
+ v4: axiosError.response.data.message.msgv4
118
+ };
119
+ try {
120
+ message = yield this.getMessage(sapMessage);
121
+ }
122
+ catch (k) {
123
+ messageError = k;
124
+ message = `Couldn't read error message ${axiosError.response.data.message.msgid} ${axiosError.response.data.message.msgno} ${axiosError.response.data.message.msgv1} ${axiosError.response.data.message.msgv2} ${axiosError.response.data.message.msgv3} ${axiosError.response.data.message.msgv4}`;
125
+ }
116
126
  }
117
- catch (k) {
118
- messageError = k;
119
- message = `Couldn't read error message ${axiosError.response.data.message.msgid} ${axiosError.response.data.message.msgno} ${axiosError.response.data.message.msgv1} ${axiosError.response.data.message.msgv2} ${axiosError.response.data.message.msgv3} ${axiosError.response.data.message.msgv4}`;
127
+ else {
128
+ throw error;
120
129
  }
121
130
  var rfcClientError = new _1.RESTClientError(error.message, sapMessage, axiosError, message);
122
131
  if (messageError) {
123
- rfcClientError.messageError = messageError;
132
+ rfcClientError.messageError = messageError.toString();
124
133
  }
125
134
  if (axiosError.response.data.log) {
126
135
  rfcClientError.messageLog = axiosError.response.data.log;
@@ -667,5 +676,13 @@ class RESTClient {
667
676
  }
668
677
  });
669
678
  }
679
+ changeTrOwner(trkorr, owner) {
680
+ return __awaiter(this, void 0, void 0, function* () {
681
+ yield this._axiosInstance.post('/change_tr_owner', {
682
+ trkorr,
683
+ new_owner: owner
684
+ });
685
+ });
686
+ }
670
687
  }
671
688
  exports.RESTClient = RESTClient;
@@ -66,4 +66,5 @@ export declare class RFCClient implements IClient {
66
66
  }>;
67
67
  getInstalledPackagesBackend(): Promise<struct.ZTY_TRM_PACKAGE[]>;
68
68
  isServerApisAllowed(): Promise<true | RFCClientError>;
69
+ changeTrOwner(trkorr: components.TRKORR, owner: components.TR_AS4USER): Promise<void>;
69
70
  }
@@ -677,5 +677,13 @@ class RFCClient {
677
677
  }
678
678
  });
679
679
  }
680
+ changeTrOwner(trkorr, owner) {
681
+ return __awaiter(this, void 0, void 0, function* () {
682
+ yield this._call("ZTRM_CHANGE_TR_OWNER", {
683
+ iv_trkorr: trkorr,
684
+ iv_new_owner: owner
685
+ });
686
+ });
687
+ }
680
688
  }
681
689
  exports.RFCClient = RFCClient;
@@ -0,0 +1 @@
1
+ export type TR_AS4USER = string;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -55,3 +55,4 @@ export * from "./SEOCLSNAME";
55
55
  export * from "./LANGU";
56
56
  export * from "./SEODESCR";
57
57
  export * from "./PROGNAME";
58
+ export * from "./TR_AS4USER";
@@ -71,3 +71,4 @@ __exportStar(require("./SEOCLSNAME"), exports);
71
71
  __exportStar(require("./LANGU"), exports);
72
72
  __exportStar(require("./SEODESCR"), exports);
73
73
  __exportStar(require("./PROGNAME"), exports);
74
+ __exportStar(require("./TR_AS4USER"), exports);
@@ -12,4 +12,5 @@ export declare class TrmServerUpgrade {
12
12
  executePostActivities(): boolean;
13
13
  removeComments(): boolean;
14
14
  refreshTmsTxt(): boolean;
15
+ changeTrOwner(): boolean;
15
16
  }
@@ -77,5 +77,13 @@ class TrmServerUpgrade {
77
77
  return !((0, semver_1.lt)(this.currentVersion, '2.2.0') && (0, semver_1.gte)(this.installVersion, '2.2.0'));
78
78
  }
79
79
  }
80
+ changeTrOwner() {
81
+ if (this.dummy) {
82
+ return true;
83
+ }
84
+ else {
85
+ return !((0, semver_1.lt)(this.currentVersion, '4.0.0') && (0, semver_1.gte)(this.installVersion, '4.0.0'));
86
+ }
87
+ }
80
88
  }
81
89
  exports.TrmServerUpgrade = TrmServerUpgrade;
@@ -59,4 +59,5 @@ export interface ISystemConnector extends ISystemConnectorBase {
59
59
  execute?: boolean;
60
60
  }>;
61
61
  isServerApisAllowed: () => Promise<true | ClientError>;
62
+ changeTrOwner: (trkorr: components.TRKORR, owner: components.TR_AS4USER) => Promise<void>;
62
63
  }
@@ -79,4 +79,5 @@ export declare class RESTSystemConnector extends SystemConnectorBase implements
79
79
  execute?: boolean;
80
80
  }>;
81
81
  isServerApisAllowed(): Promise<true | ClientError>;
82
+ changeTrOwner(trkorr: components.TRKORR, owner: components.TR_AS4USER): Promise<void>;
82
83
  }
@@ -327,5 +327,10 @@ class RESTSystemConnector extends SystemConnectorBase_1.SystemConnectorBase {
327
327
  return this._isServerApisAllowed;
328
328
  });
329
329
  }
330
+ changeTrOwner(trkorr, owner) {
331
+ return __awaiter(this, void 0, void 0, function* () {
332
+ return this._client.changeTrOwner(trkorr, owner);
333
+ });
334
+ }
330
335
  }
331
336
  exports.RESTSystemConnector = RESTSystemConnector;
@@ -78,4 +78,5 @@ export declare class RFCSystemConnector extends SystemConnectorBase implements I
78
78
  execute?: boolean;
79
79
  }>;
80
80
  isServerApisAllowed(): Promise<true | ClientError>;
81
+ changeTrOwner(trkorr: components.TRKORR, owner: components.TR_AS4USER): Promise<void>;
81
82
  }
@@ -303,5 +303,10 @@ class RFCSystemConnector extends SystemConnectorBase_1.SystemConnectorBase {
303
303
  return this._isServerApisAllowed;
304
304
  });
305
305
  }
306
+ changeTrOwner(trkorr, owner) {
307
+ return __awaiter(this, void 0, void 0, function* () {
308
+ return this._client.changeTrOwner(trkorr, owner);
309
+ });
310
+ }
306
311
  }
307
312
  exports.RFCSystemConnector = RFCSystemConnector;
@@ -92,4 +92,5 @@ export declare namespace SystemConnector {
92
92
  }>;
93
93
  function readClassDescriptions(clsname: components.SEOCLSNAME): Promise<struct.SEOCLASSTX[]>;
94
94
  function isServerApisAllowed(): Promise<true | ClientError>;
95
+ function changeTrOwner(trkorr: components.TRKORR, owner: components.TR_AS4USER): Promise<void>;
95
96
  }
@@ -527,4 +527,11 @@ var SystemConnector;
527
527
  });
528
528
  }
529
529
  SystemConnector.isServerApisAllowed = isServerApisAllowed;
530
+ function changeTrOwner(trkorr, owner) {
531
+ return __awaiter(this, void 0, void 0, function* () {
532
+ yield checkSystemConnector();
533
+ return SystemConnector.systemConnector.changeTrOwner(trkorr, owner);
534
+ });
535
+ }
536
+ SystemConnector.changeTrOwner = changeTrOwner;
530
537
  })(SystemConnector || (exports.SystemConnector = SystemConnector = {}));
@@ -6,7 +6,7 @@ import { TransportContent } from "./TransportContent";
6
6
  import { Documentation } from "./Documentation";
7
7
  import { TrmTransportIdentifier } from "./TrmTransportIdentifier";
8
8
  import { TrmPackage } from "../trmPackage";
9
- import { TROBJTYPE, E070, E071, TRKORR, TR_TARGET, DEVCLASS, TROBJ_NAME, AS4TEXT, PGMID, SOBJ_NAME, TMSSYSNAM, TDEVC } from "../client";
9
+ import { TROBJTYPE, E070, E071, TRKORR, TR_TARGET, DEVCLASS, TROBJ_NAME, AS4TEXT, PGMID, SOBJ_NAME, TMSSYSNAM, TDEVC, TR_AS4USER } from "../client";
10
10
  export declare const COMMENT_OBJ: TROBJTYPE;
11
11
  export declare class Transport {
12
12
  trkorr: TRKORR;
@@ -87,4 +87,5 @@ export declare class Transport {
87
87
  migrate(rollback?: boolean): Promise<Transport | void>;
88
88
  deleteFromTms(system: TMSSYSNAM): Promise<void>;
89
89
  refreshTmsTxt(): Promise<void>;
90
+ changeOwner(newOwner: TR_AS4USER): Promise<void>;
90
91
  }
@@ -827,5 +827,10 @@ class Transport {
827
827
  yield systemConnector_1.SystemConnector.refreshTransportTmsTxt(this.trkorr);
828
828
  });
829
829
  }
830
+ changeOwner(newOwner) {
831
+ return __awaiter(this, void 0, void 0, function* () {
832
+ yield systemConnector_1.SystemConnector.changeTrOwner(this.trkorr, newOwner);
833
+ });
834
+ }
830
835
  }
831
836
  exports.Transport = Transport;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trm-core",
3
- "version": "6.9.1",
3
+ "version": "7.1.0",
4
4
  "description": "TRM (Transport Request Manager) Core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "license": "MIT",
36
36
  "trmDependencies": {
37
- "trm-server": "^3.1.0"
37
+ "trm-server": "^4.0.0"
38
38
  },
39
39
  "dependencies": {
40
40
  "@esm2cjs/normalize-url": "^8.0.0",