trm-core
Version:
TRM (Transport Request Manager) Core
107 lines (106 loc) • 6.2 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateDevclass = void 0;
const logger_1 = require("../../logger");
const commons_1 = require("../../commons");
const systemConnector_1 = require("../../systemConnector");
exports.generateDevclass = {
name: 'generate-devclass',
filter: (context) => __awaiter(void 0, void 0, void 0, function* () {
if (context.rawInput.installData.installDevclass.keepOriginal) {
logger_1.Logger.log(`Skipping generate devclass devclass (user input)`, true);
return false;
}
else {
return true;
}
}),
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b;
logger_1.Logger.log('Generate devclass step', true);
logger_1.Logger.loading(`Checking ABAP packages...`);
var generate = [];
for (const replacement of context.rawInput.installData.installDevclass.replacements) {
logger_1.Logger.loading(`Checking existance of devclass ${replacement.installDevclass}...`, true);
const oDevclass = yield systemConnector_1.SystemConnector.getDevclass(replacement.installDevclass);
if (oDevclass) {
logger_1.Logger.log(`Devclass ${replacement.installDevclass} exists, skipping generation`, true);
}
else {
logger_1.Logger.log(`Devclass ${replacement.installDevclass} doesn't exist, will be generated`, true);
generate.push(replacement.installDevclass);
}
}
if (generate.length > 0) {
const dlvunit = context.runtime.installData.namespace === '$' ? 'LOCAL' : 'HOME';
for (const devclass of generate) {
logger_1.Logger.loading(`Creating package ${devclass}...`);
const originalDevclass = context.rawInput.installData.installDevclass.replacements.find(o => o.installDevclass === devclass).originalDevclass;
logger_1.Logger.log(`Original devclass ${originalDevclass}`, true);
const ctext = ((_a = context.runtime.packageTransportsData.tdevct.find(o => o.devclass === originalDevclass)) === null || _a === void 0 ? void 0 : _a.ctext) || `TRM ${context.rawInput.packageData.name}`;
yield systemConnector_1.SystemConnector.createPackage({
as4user: systemConnector_1.SystemConnector.getLogonUser(),
pdevclass: context.rawInput.installData.installDevclass.transportLayer,
devclass,
ctext,
dlvunit
});
context.runtime.generatedData.devclass.push(devclass);
if (dlvunit !== 'LOCAL') {
yield systemConnector_1.SystemConnector.tadirInterface({
pgmid: 'R3TR',
object: 'DEVC',
objName: devclass,
devclass,
srcsystem: 'TRM'
});
}
}
}
logger_1.Logger.loading(`Updating ABAP packages hierarchy...`);
const aDummyTdevc = [];
const originalPackageHierarchy = (0, commons_1.getPackageHierarchy)(context.runtime.packageTransportsData.tdevc);
for (const packageReplacement of context.rawInput.installData.installDevclass.replacements) {
const originalRoot = originalPackageHierarchy.devclass === packageReplacement.originalDevclass;
var parentcl;
if (!originalRoot) {
const originalParentCl = context.runtime.packageTransportsData.tdevc.find(o => o.devclass === packageReplacement.originalDevclass).parentcl;
if (originalParentCl) {
parentcl = context.rawInput.installData.installDevclass.replacements.find(o => o.originalDevclass === originalParentCl).installDevclass;
}
}
aDummyTdevc.push({
devclass: packageReplacement.installDevclass,
parentcl: parentcl || ''
});
}
const installPackageHierarchy = (0, commons_1.getPackageHierarchy)(aDummyTdevc);
for (const packageReplacement of context.rawInput.installData.installDevclass.replacements) {
const installRoot = installPackageHierarchy.devclass === packageReplacement.installDevclass;
if (!installRoot) {
yield systemConnector_1.SystemConnector.clearPackageSuperpackage(packageReplacement.installDevclass);
}
}
for (const packageReplacement of context.rawInput.installData.installDevclass.replacements) {
const installRoot = installPackageHierarchy.devclass === packageReplacement.installDevclass;
const originalParentCl = context.runtime.packageTransportsData.tdevc.find(o => o.devclass === packageReplacement.originalDevclass).parentcl;
if (originalParentCl) {
const installParentCl = (_b = context.rawInput.installData.installDevclass.replacements.find(o => o.originalDevclass === originalParentCl)) === null || _b === void 0 ? void 0 : _b.installDevclass;
if (installParentCl) {
if (!installRoot) {
yield systemConnector_1.SystemConnector.setPackageSuperpackage(packageReplacement.installDevclass, installParentCl);
}
}
}
}
})
};