Task:
dmn-js-decision-table, table head - input expression --> Change this to Dropdown list and populate dynamically from rest api
Approach:
- dmn-js-shared, features/added a new probiver (rule-fact-provider), contains getRuleFacts() returns empty array
- from my application, while creating a modeler, provided overridden rule-fact-provider using additional modules
3.InputCellContextMenuExt retrived rule-fact-provider using context.inject.get(‘rule-fact-provider’)
Issue:
Returning empty from default provider instead of overridden rule-fact-provider that is given while creating modeler using additional modules
code
import RuleFactsProvider from './RuleFactsProvider';
export default {
__init__: [ 'ruleFactsProvider' ],
ruleFactsProvider: [ 'type', RuleFactsProvider ]
};
'use strict';
function RuleFactsProvider() {
this.getRuleFacts = function() {
console.log('RuleFactsProvider');
return [{
label: 'POTATO',
value: 'potato'
}];
};
}
export default RuleFactsProvider;
from my application
this.dmnDiagramModeler = new DmnModelerExt({
keyboard: { bindTo: window },
drd: {
additionalModules: [ ruleFactsProviderExt ]
}});
ruleFactsProviderExt in my application
export default function RuleFactsProviderExt() {
this.getRuleFacts = function() {
console.log('RuleFactsProviderExt');
return [{
label: 'TOMATO',
value: 'tomato'
}];
};
}
I’m expecting TOMATO but POTATO is appearing in the dropdown
Implementation of InputCellContextMenuExt in dmn-js-decition-table
constructor(props, context) {
super(props, context);
this.state = {};
inject(this);
this.persistChanges = this.debounceInput(this.persistChanges);
this._expressionLanguages = context.injector.get('expressionLanguages');
this._ruleFactsService = context.injector.get('ruleFactsProvider');
console.log('this._ruleFactsService.getRuleFacts()', this._ruleFactsService.getRuleFacts());
}