Вам понадобится использовать плагиновую конструкцию Pentaho, SPARKL.
С его помощью вы можете загрузить преобразование в качестве вызываемой конечной точки и использовать панель управления CDE для ее вызова.
Прежде всего, вам нужно преобразование, которое ожидает параметров. Вы можете попробовать его с испытанием один перед выходом на более продвинутую трансформацию:
Пример: 
определение параметра и выборку с получением переменного шагом
Во-вторых, вы создадите новый плагин на SPARKL.
Sparkl экран приветствия 
Дайте ваш плагин имя и добавить чайника конечную точку к нему. Если вы сейчас посмотрите на папку pentaho-solutions/system, у вас будет новая папка с именем плагина. Откройте его и найдите файл ktr внутри подпапок, чтобы заменить его на вашу трансформацию.
Последний шаг - добавить новую панель управления в свой плагин и отредактировать ее. Если вы перейдете на вкладку источников данных, обратите внимание на источники данных с «конечной точкой» в названии. Мы будем обращаться к ним по коду, но хорошо знать, что они здесь, чтобы вы могли читать данные из него, а не только вводить данные.
добавить новый ресурс JavaScript для макета CDE со следующим кодом:
var myPluginName = {};
(function(myself) {
myself.runEndpoint = function (pluginId, endpoint, opts) {
if (!pluginId && !endpoint) {
Dashboards.log('PluginId or endpointName not defined.');
return false
}
var _opts = {
success: function() {
Dashboards.log(pluginId + ': ' + endpoint + ' ran successfully.')
},
error: function(){
Dashboards.log(pluginId + ': error running ' + endpoint + '.')
},
params: {},
systemParams: {},
type: 'POST',
dataType: 'json'
}
var opts = $.extend({}, _opts, opts);
var url = Dashboards.getWebAppPath() + '/plugin/' + pluginId + '/api/' + endpoint;
function successHandler (json) {
if (json && json.result == false) {
opts.error.apply(this, arguments);
} else {
opts.success.apply(this, arguments);
}
}
function errorHandler() {
opts.error.apply(this, arguments);
}
if (endpoint != 'renderer/refresh') {
var ajaxOpts = {
url: url,
async: true,
type: opts.type,
dataType: opts.dataType,
success: successHandler,
error: errorHandler,
data: {}
}
} else {
var ajaxOpts = {
url: url,
async: true,
type: 'GET',
dataType: opts.dataType,
success: successHandler,
error: errorHandler,
data: {}
}
}
_.each(opts.params , function (value , key) {
ajaxOpts.data['param' + key] = value;
});
_.each(opts.systemParams , function (value , key) {
ajaxOpts.data[key] = value;
});
$.ajax(ajaxOpts)
}
})(myPluginName);
Вы можете изменить myPluginName с тем, что вы хотите, но, что позволяет назвать эту конечную точку отправки параметров любой кнопкой. Для этого вы можете использовать этот код:
myPluginName.runEndpoint(
'myPluginName', // Plugin identifier.
'endpointName', // Put your endpoint name here!
{
params: {
'EXAMPLE_PARAMETER' : foo_bar
},
success: function() { Dashboards.fireChange('refresh', 1); alert('data sent'); },
error: function() { alert('Ops, something went wrong. Check the logs.'); }
})
Вы можете следить за выполнением путем мониторинга журналов би-сервера.
Более подробную информацию об источниках:
Diethard Steiner - Blog
Francesco Corti - Blog
Следуйте этим парням, они удивительны.
Вам не нужен искр. Достаточно простого источника данных CDA для чайника. Вам просто нужно убедиться, что вы задаете не только параметры запроса, но также сопоставление между параметрами CDA и параметрами чайника, заполнив тег Variables. – nsousa
спасибо. Это проверит. :-) – user3702039