UNPKG

@sap/dwf-generator

Version:

SAP HANA Data Warehousing Foundation - Generator

92 lines (85 loc) 3.28 kB
'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 };