UNPKG

trm-core

Version:

TRM (Transport Request Manager) Core

107 lines (106 loc) 6.2 kB
"use strict"; 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); } } } } }) };