@sap/dwf-generator
Version:
SAP HANA Data Warehousing Foundation - Generator
73 lines (67 loc) • 2 kB
JavaScript
;
const coCommon = require('../generate/common');
function lfnAssignViews(ioGenerator, ioConnection) {
if (typeof ioConnection.action == 'undefined') {
ioConnection.action = [];
}
let loViews = [{
type: 'union',
object: ioGenerator.getObjectFullName(ioGenerator
.getUnionViewName(ioConnection))
}];
if (ioConnection.rule.type == 'pruning') {
loViews.push({
type: 'pruning',
object: ioGenerator.getObjectFullName(ioGenerator
.getUnionViewName(ioConnection))
});
}
let loSelect = JSON.parse(coCommon.replace('runtimeViews', {
views: loViews
}));
ioConnection.action.push(loSelect);
}
function lfnAssignProcedures(ioGenerator, ioConnection) {
if (typeof ioConnection.action == 'undefined') {
ioConnection.action = [];
}
let loExecute = {
procedures: []
};
let lsRuleType = ioConnection.rule.type;
if (typeof ioConnection.rule[lsRuleType]['source_to_target'] != 'undefined') {
let loSourceToTarget = {
type: 'source_to_target',
object: ioGenerator.getObjectFullName(ioGenerator.
getRelocationNameSourceToTarget(ioConnection))
};
loExecute.procedures.push(loSourceToTarget);
}
if (typeof ioConnection.rule[lsRuleType]['target_to_source'] != 'undefined') {
let loTargetToSource = {
type: 'target_to_source',
object: ioGenerator.getObjectFullName(ioGenerator.
getRelocationNameTargetToSource(ioConnection))
};
loExecute.procedures.push(loTargetToSource);
}
loExecute = JSON.parse(coCommon.replace('runtimeProcedures', loExecute));
ioConnection.action.push(loExecute);
}
function lfnGetRuntime(iaConnections) {
let loRuntime = {
node: []
};
for (let i in iaConnections) {
loRuntime.node.push({
id: iaConnections[i].id,
action: iaConnections[i].action
});
}
return loRuntime;
}
module.exports = {
assignViews: lfnAssignViews,
assignProcedures: lfnAssignProcedures,
getRuntime: lfnGetRuntime
};