Error to create a table property (Camunda)

Hi all,

I’m working with Angular 7 and trying to use bpmn.io (properties) and camunda to create a table property but when I try to add a row at this table, the following error appears:

ERROR Error: unknown type camunda:Properties
at Registry.push…/node_modules/moddle/dist/index.esm.js.Registry.mapTypes (vendor.js:259526)
at Registry.push…/node_modules/moddle/dist/index.esm.js.Registry.getEffectiveDescriptor (vendor.js:259551)
at BpmnModdle.push…/node_modules/moddle/dist/index.esm.js.Moddle.getType (vendor.js:259776)
at BpmnModdle.push…/node_modules/moddle/dist/index.esm.js.Moddle.create (vendor.js:259744)
at BpmnFactory…/src/app/components/roteirizador/flow-editor/bpmn/custom/CustomBpmnFactory.ts.CustomBpmnFactory.create (main.js:38564)
at Object.push…/node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js.ElementHelper.createElement (vendor.js:113447)
at addElement (vendor.js:124710)
at Object.set (vendor.js:112846)
at PropertiesPanel.push…/node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js.PropertiesPanel.applyChanges (vendor.js:110482)
at HTMLDivElement.onClick (vendor.js:110349)

My code from CustomBpmnFactory.ts:

CustomBpmnFactory.prototype.create = function(type, attrs) {
if(type === ‘bpmn:ExtensionElements’ || type === ‘camunda:Properties’){
this._model = Modeler.prototype._createModdle(CamundaModdleDescriptor);
}

const element = this._model.create(type, attrs || {});

this._ensureId(element);

return element;
};

My code from app.component.ts

const CamundaModdleDescriptor = require(‘camunda-bpmn-moddle/resources/camunda.json’);
ngOnInit(): void {

data = FlowDataService.prototype.getData() as IFlowInformationCreateDto;
this.sessaoUsuario = JSON.parse(sessionStorage.getItem('dataUser'));

this.modeler = new Modeler({
  container: '#canvas',
  width: '100%',
  height: '610px',
  additionalModules: [
    PropertiesPanelModule,
    PropertiesProviderModule,

    {[InjectionNames.bpmnFactory]: ['type', CustomBpmnFactory]},
    {[InjectionNames.baseRenderer]: ['type', CustomBaseRenderer]},

    {[InjectionNames.bpmnPropertiesProvider]: ['type', OriginalPropertiesProvider.propertiesProvider[1]]},
    {[InjectionNames.propertiesProvider]: ['type', CustomPropsProvider]},

    {[InjectionNames.originalPaletteProvider]: ['type', OriginalPaletteProvider]},
    {[InjectionNames.paletteProvider]: ['type', CustomPaletteProvider]},

    {[InjectionNames.contextPadProvider]: ['type', CustomContextPadProvider]},
  ],
  propertiesPanel: {
    parent: '#properties'
  },
  moddleExtension: {
    camunda: CamundaModdleDescriptor,
    bpmn: customModdle,
    bpmn2: bpmn2Moddle
  }
});

}

https://help.github.com/en/github/writing-on-github/creating-and-highlighting-code-blocks

Please make sure to make your code contributions readable.

It’s hard to understand your problem when your shared code is not readable.

1 Like

Errors Log:

ERROR Error: unknown type camunda:Properties
at Registry.push…/node_modules/moddle/dist/index.esm.js.Registry.mapTypes (vendor.js:259526)
at Registry.push…/node_modules/moddle/dist/index.esm.js.Registry.getEffectiveDescriptor (vendor.js:259551)
at BpmnModdle.push…/node_modules/moddle/dist/index.esm.js.Moddle.getType (vendor.js:259776)
at BpmnModdle.push…/node_modules/moddle/dist/index.esm.js.Moddle.create (vendor.js:259744)
at BpmnFactory…/src/app/components/roteirizador/flow-editor/bpmn/custom/CustomBpmnFactory.ts.CustomBpmnFactory.create (main.js:38564)
at Object.push…/node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js.ElementHelper.createElement (vendor.js:113447)
at addElement (vendor.js:124710)
at Object.set (vendor.js:112846)
at PropertiesPanel.push…/node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js.PropertiesPanel.applyChanges (vendor.js:110482)
at HTMLDivElement.onClick (vendor.js:110349)

My code from CustomBpmnFactory.ts:

CustomBpmnFactory.prototype.create = function(type, attrs) {
if(type === ‘bpmn:ExtensionElements’ || type === ‘camunda:Properties’){
this._model = Modeler.prototype._createModdle(CamundaModdleDescriptor);
}

const element = this._model.create(type, attrs || {});

this._ensureId(element);

return element;
};

My code from app.component.ts:

const CamundaModdleDescriptor = require(‘camunda-bpmn-moddle/resources/camunda.json’);
ngOnInit(): void {

data = FlowDataService.prototype.getData() as IFlowInformationCreateDto;
this.sessaoUsuario = JSON.parse(sessionStorage.getItem('dataUser'));

this.modeler = new Modeler({
  container: '#canvas',
  width: '100%',
  height: '610px',
  additionalModules: [
    PropertiesPanelModule,
    PropertiesProviderModule,

    {[InjectionNames.bpmnFactory]: ['type', CustomBpmnFactory]},
    {[InjectionNames.baseRenderer]: ['type', CustomBaseRenderer]},

    {[InjectionNames.bpmnPropertiesProvider]: ['type', OriginalPropertiesProvider.propertiesProvider[1]]},
    {[InjectionNames.propertiesProvider]: ['type', CustomPropsProvider]},

    {[InjectionNames.originalPaletteProvider]: ['type', OriginalPaletteProvider]},
    {[InjectionNames.paletteProvider]: ['type', CustomPaletteProvider]},

    {[InjectionNames.contextPadProvider]: ['type', CustomContextPadProvider]},
  ],
  propertiesPanel: {
    parent: '#properties'
  },
  moddleExtension: {
    camunda: CamundaModdleDescriptor,
    bpmn: customModdle,
    bpmn2: bpmn2Moddle
  }
});
}

Are you aware of that you need to give an object of the form

{
    moddleExtensions: {
       ....
   }
}

into Viewer#_createModdle? (Same for the Modeler)

1 Like

Thanks,
I tried this too, but unfortunately the error is the same.
Do you have another idea?

Hi, @nikku !
Please, have you any idea about how can i solve this problem?
Thanks a lot!

Can you debug what your moddle looks like after you executed Modeler.prototype._createModdle ?