trm-core 6.9.0 → 7.0.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 +10 -0
- package/dist/actions/install/generateInstallTransport.js +4 -0
- package/dist/actions/install/readTadir.js +31 -13
- package/dist/client/RESTClient.d.ts +1 -0
- package/dist/client/RESTClient.js +33 -16
- package/dist/client/RFCClient.d.ts +1 -0
- package/dist/client/RFCClient.js +14 -1
- package/dist/client/components/TR_AS4USER.d.ts +1 -0
- package/dist/client/components/TR_AS4USER.js +2 -0
- package/dist/client/components/index.d.ts +1 -0
- package/dist/client/components/index.js +1 -0
- package/dist/commons/TrmServerUpgradeService.d.ts +1 -0
- package/dist/commons/TrmServerUpgradeService.js +8 -0
- package/dist/systemConnector/ISystemConnector.d.ts +1 -0
- package/dist/systemConnector/RESTSystemConnector.d.ts +1 -0
- package/dist/systemConnector/RESTSystemConnector.js +5 -0
- package/dist/systemConnector/RFCSystemConnector.d.ts +1 -0
- package/dist/systemConnector/RFCSystemConnector.js +5 -0
- package/dist/systemConnector/SystemConnector.d.ts +1 -0
- package/dist/systemConnector/SystemConnector.js +7 -0
- package/dist/transport/Transport.d.ts +2 -1
- package/dist/transport/Transport.js +5 -0
- package/package.json +2 -2
package/changelog.txt
CHANGED
|
@@ -8,6 +8,16 @@ Legend
|
|
|
8
8
|
+ : added
|
|
9
9
|
- : removed
|
|
10
10
|
|
|
11
|
+
2025-06-03 v7.0.0
|
|
12
|
+
-------------------
|
|
13
|
+
! trm-server ^4.0.0
|
|
14
|
+
+ change tr owner on install tr update
|
|
15
|
+
|
|
16
|
+
2025-05-29 v6.9.1
|
|
17
|
+
-------------------
|
|
18
|
+
* remote function for updating server
|
|
19
|
+
+ confirm if objects exists but no root sap package found
|
|
20
|
+
|
|
11
21
|
2025-05-29 v6.9.0
|
|
12
22
|
-------------------
|
|
13
23
|
! check server api auth before install and publish
|
|
@@ -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',
|
|
@@ -39,6 +40,9 @@ exports.generateInstallTransport = {
|
|
|
39
40
|
if (commons_1.TrmServerUpgrade.getInstance().removeComments()) {
|
|
40
41
|
yield context.runtime.installData.transport.removeComments();
|
|
41
42
|
}
|
|
43
|
+
if (commons_1.TrmServerUpgrade.getInstance().changeTrOwner()) {
|
|
44
|
+
yield context.runtime.installData.transport.changeOwner(systemConnector_1.SystemConnector.getLogonUser());
|
|
45
|
+
}
|
|
42
46
|
}
|
|
43
47
|
else {
|
|
44
48
|
trm_commons_1.Logger.loading(`Generating install transport...`);
|
|
@@ -35,23 +35,41 @@ exports.readTadir = {
|
|
|
35
35
|
const rootPackage = context.rawInput.contextData.systemPackages.find(o => o.packageName === context.rawInput.packageData.name);
|
|
36
36
|
if (rootPackage) {
|
|
37
37
|
const rootDevclass = rootPackage.getDevclass();
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
else {
|
|
44
|
-
if (context.rawInput.installData.checks.noExistingObjects) {
|
|
45
|
-
trm_commons_1.Logger.warning(`${o.pgmid} ${o.object} ${o.objName} already exist on target system ${systemConnector_1.SystemConnector.getDest()}`);
|
|
38
|
+
if (rootDevclass) {
|
|
39
|
+
const subpackages = (yield systemConnector_1.SystemConnector.getSubpackages(rootDevclass)).map(o => o.devclass);
|
|
40
|
+
existingObjects.find(o => {
|
|
41
|
+
if (subpackages.includes(o.devclass) || rootDevclass === o.devclass) {
|
|
42
|
+
trm_commons_1.Logger.log(`${o.pgmid} ${o.object} ${o.objName} already in system but devclass ${o.devclass} is part of the same trm package in update`, true);
|
|
46
43
|
}
|
|
47
44
|
else {
|
|
48
|
-
|
|
45
|
+
if (context.rawInput.installData.checks.noExistingObjects) {
|
|
46
|
+
trm_commons_1.Logger.warning(`${o.pgmid} ${o.object} ${o.objName} already exist on target system ${systemConnector_1.SystemConnector.getDest()}`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
trm_commons_1.Logger.error(`${o.pgmid} ${o.object} ${o.objName} already exist on target system ${systemConnector_1.SystemConnector.getDest()}`);
|
|
50
|
+
}
|
|
51
|
+
throwExistingObjectsError = true;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
if (throwExistingObjectsError && !context.rawInput.installData.checks.noExistingObjects) {
|
|
55
|
+
throw new Error(`Cannot overwrite existing objects.`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
if (context.rawInput.installData.checks.noExistingObjects || context.rawInput.contextData.noInquirer) {
|
|
60
|
+
trm_commons_1.Logger.warning(`${existingObjects.length} object(s) already exist on target system ${systemConnector_1.SystemConnector.getDest()}:\n${sObjs}`);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const ow = (yield trm_commons_1.Inquirer.prompt({
|
|
64
|
+
message: `Couldn't determine root SAP package for "${rootPackage.packageName}", ${existingObjects.length} object(s) already exist on target system ${systemConnector_1.SystemConnector.getDest()}. Continue?`,
|
|
65
|
+
type: 'confirm',
|
|
66
|
+
name: 'ow',
|
|
67
|
+
default: true
|
|
68
|
+
})).ow;
|
|
69
|
+
if (!ow) {
|
|
70
|
+
throw new Error(`${existingObjects.length} object(s) already exist on target system ${systemConnector_1.SystemConnector.getDest()}:\n${sObjs}`);
|
|
49
71
|
}
|
|
50
|
-
throwExistingObjectsError = true;
|
|
51
72
|
}
|
|
52
|
-
});
|
|
53
|
-
if (throwExistingObjectsError && !context.rawInput.installData.checks.noExistingObjects) {
|
|
54
|
-
throw new Error(`Cannot overwrite existing objects.`);
|
|
55
73
|
}
|
|
56
74
|
}
|
|
57
75
|
else {
|
|
@@ -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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
|
|
118
|
-
|
|
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
|
}
|
package/dist/client/RFCClient.js
CHANGED
|
@@ -668,9 +668,22 @@ class RFCClient {
|
|
|
668
668
|
return true;
|
|
669
669
|
}
|
|
670
670
|
catch (e) {
|
|
671
|
-
|
|
671
|
+
if (e.exceptionType !== 'CALL_FUNCTION_NOT_REMOTE') {
|
|
672
|
+
return e;
|
|
673
|
+
}
|
|
674
|
+
else {
|
|
675
|
+
return true;
|
|
676
|
+
}
|
|
672
677
|
}
|
|
673
678
|
});
|
|
674
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
|
+
}
|
|
675
688
|
}
|
|
676
689
|
exports.RFCClient = RFCClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type TR_AS4USER = string;
|
|
@@ -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;
|
|
@@ -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;
|
|
@@ -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": "
|
|
3
|
+
"version": "7.0.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": "^
|
|
37
|
+
"trm-server": "^4.0.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@esm2cjs/normalize-url": "^8.0.0",
|