You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

能否在Web应用中嵌入Kogito DMN编辑器?求DMN规则管理工具

Great question! Let's break this down into the two key parts you're asking about: off-the-shelf tools for DMN rule management, and embedding the Kogito DMN Editor into your app.

Off-the-Shelf Tools to Replace Custom DMN Rule Management

Since you're already using Drools DMN and dealing with 1000+ rules plus model dependencies, here are the best tools that fit your stack and requirements:

  • Red Hat Decision Manager (RHDM)
    This is the enterprise-grade evolution of Business Central, built explicitly for managing large-scale Drools/DMN rule sets. It solves your dependency management pain with built-in visual dependency mapping, version control for DMN models, team collaboration features, and direct integration with the Drools DMN engine. It eliminates the need for manual import/export by centralizing rule storage and deployment.

  • Camunda Platform + Camunda Modeler
    Camunda has robust DMN support, including a feature-rich desktop/online modeler. The platform offers rule lifecycle management, dependency resolution, and deployment automation. If you don't need strict Drools-only integration, this is a flexible open-source option that scales well for 1000+ rules.

  • IBM Operational Decision Manager (ODM)
    For enterprise-level needs, ODM provides end-to-end DMN rule management: versioning, impact analysis for dependencies, collaborative editing, and integration with Drools (via interoperability layers). It's a heavy-duty solution designed for large rule bases and complex dependency networks.

  • OptaPlanner (with DMN Integration)
    If your rules include planning/optimization logic alongside decision tables, OptaPlanner integrates seamlessly with DMN and offers a management interface for combined rule sets. It's more niche but perfect if you have hybrid decision-planning requirements.

Kogito DMN Editor Embedding & API Capabilities

Yes, the Kogito DMN Editor can be embedded into your custom web app, and it has the API support you need for loading/saving models:

Embedding Options

  1. Iframe Embedding
    You can embed the hosted Kogito Editor instance directly via an iframe. To load a specific DMN model, use a URL parameter like:

    https://<kogito-editor-url>?modelUrl=https://your-app.com/path/to/your.dmn
    

    For cross-domain communication, you'll need to configure CORS on your backend. You can use postMessage to send commands to the iframe (like triggering a save) and receive updates (like model changes).

  2. npm Package Integration
    Kogito provides an official npm package @kie-tools/dmn-editor that lets you embed the editor directly into React or Angular apps. This gives you full control over the UI layout and integration with your app's state.

Core Interaction APIs

  • Loading DMN Models: Use the loadModel() method to load a DMN model from either a raw XML string or a remote URL.
  • Saving DMN Models: Call getModel() to retrieve the current edited DMN XML content, which you can then persist to your backend storage.
  • Event Listeners: The editor emits events for model changes, validation errors, and save actions. You can hook into these to sync with your app's workflow (e.g., auto-save triggers).
  • Dependency Visualization: The editor includes built-in tools to view and manage dependencies between DMN models, which aligns perfectly with your current pain points.

Note: Make sure the version of the Kogito Editor (whether iframe or npm package) matches the version of the Kogito/Drools libraries you're using in your Java project to avoid compatibility issues.

内容的提问来源于stack exchange,提问作者Gnanavel

火山引擎 最新活动