@sap/dwf-generator
Version:
SAP HANA Data Warehousing Foundation - Generator
92 lines (85 loc) • 3.28 kB
JavaScript
'use strict';
const coCommon = require('./common');
function lfnGeneratePruningCds(ioGenerator, ioConnection) {
let loPruningCds = {};
loPruningCds.fileName = ioConnection.pathOfFiles.view.pruning.cds;
loPruningCds.fileContent = coCommon.replace('cds', {
namespace: ioGenerator.namespace,
context: ioGenerator.getPruningViewTableContext(ioConnection),
tables: [
{
tableName: 'TABLE',
attributs: [
{
name: 'SCHEMA',
type: 'String(64)'
}, {
name: 'CALC_SCENARIO',
type: 'String(128)'
}, {
name: 'INPUT',
type: 'String(200)'
}, {
name: 'COLUMN',
type: 'String(20)'
}, {
name: 'OPTION',
type: 'String(10)'
}, {
name: 'LOW_VALUE',
type: 'String(209)'
}, {
name: 'HIGH_VALUE',
type: 'String (20)'
}
]
}
]
});
ioGenerator.createFile(loPruningCds);
}
function lfnGenerateTableData(ioGenerator, ioConnection) {
let loTableData = {};
loTableData.fileName = ioConnection.pathOfFiles.view.pruning.tableData;
loTableData.fileContent = coCommon.replace('pruningTableData', {
pruningViewName: ioGenerator.getObjectFullName(ioGenerator.getPruningViewName(ioConnection)),
pruningViewTable: ioGenerator.getObjectFullName(ioGenerator.getPruningViewTable(ioConnection)),
pruningViewCds: ioGenerator.getObjectFullName(ioGenerator.getPruningViewCsv(ioConnection))
});
ioGenerator.createFile(loTableData);
}
function lfnGenerateCsv(ioGenerator, ioConnection) {
let loCsv = {};
let lsRuleType = ioConnection.rule.type;
loCsv.fileName = ioConnection.pathOfFiles.view.pruning.csv;
loCsv.fileContent = coCommon.replace('pruningTableCsv', {
pruningViewName: ioGenerator.getObjectFullName(ioGenerator.
getPruningViewName(ioConnection)),
sourceToTarget: ioConnection.rule[lsRuleType].source_to_target,
targetToSource: ioConnection.rule[lsRuleType].target_to_source
});
ioGenerator.createFile(loCsv);
}
function lfnGeneratePruningView(ioGenerator, ioConnection) {
let loPruningView = {};
loPruningView.fileName = ioConnection.pathOfFiles.view.pruning.calcView;
loPruningView.fileContent = coCommon.replace('pruningView', {
calcDesc: 'pruning scenario',
pruningViewName: ioGenerator.getObjectFullName(ioGenerator.getPruningViewName(ioConnection)),
outputViewType: 'Aggregation',
pruningTable: ioGenerator.getObjectFullName(ioGenerator.getPruningViewTable(ioConnection)),
sourceTable: ioGenerator.getObjectFullName(ioGenerator.getAccessTableName(ioConnection.source)),
targetTable: ioGenerator.getObjectFullName(ioGenerator.getAccessTableName(ioConnection.target)),
keys: ioGenerator.getKeys(ioConnection.source),
attributes: ioGenerator.getColumns(ioConnection.source)
});
ioGenerator.createFile(loPruningView);
}
module.exports = {
generatePruningTable: function (ioGenerator, ioConnection) {
lfnGeneratePruningCds(ioGenerator, ioConnection);
lfnGenerateCsv(ioGenerator, ioConnection);
lfnGenerateTableData(ioGenerator, ioConnection);
},
generatePruningView: lfnGeneratePruningView
};