이 콘텐츠는 선택한 언어로 제공되지 않습니다.

3.2. Using a Process in Your Application


There are two things you need to do to be able to execute processes from within your application:
Firstly, you need to create a knowledge base that contains the definition of the process,
Secondly you need to start the process by creating a session to communicate with the process engine.
  1. Creating a knowledge base: once you have a valid process, you can add it to your knowledge base. Note that this process is almost identical to that for adding rules to the knowledge base: only the type of knowledge that is added is changed:
    KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
    kbuilder.add( ResourceFactory.newClassPathResource("MyProcess.rf"),
                  ResourceType.DRF );
    Copy to Clipboard Toggle word wrap
    After adding all your knowledge to the builder (you can add more than one process, and even rules), create a new knowledge base:
    KnowledgeBase kbase = kbuilder.newKnowledgeBase();
    Copy to Clipboard Toggle word wrap

    Warning

    This will throw an exception if the knowledge base contains errors (because it will not be able to parse your processes correctly).
  2. Starting a process: processes are only executed if you explicitly state that they should be. This is because you could potentially define a lot of processes in your knowledge base and the engine has no way to know when you would like to start each of them. To activate a particular process, call the startProcess method:
    StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
    ksession.startProcess("com.sample.MyProcess");
    Copy to Clipboard Toggle word wrap
    The startProcess method's parameter represents the ID. of the process to be started. This process ID. needs to be specified as a property of the process, shown in the Properties View when you click the background canvas.

    Important

    If your process also needs to execute rules, you must also call the ksession.fireAllRules() method.

    Note

    You can specify additional parameters to pass input data to the process. To do so, use the startProcess(String processId, Map parameters) method. This method takes an additional set of parameters as name-value pairs and copies to the newly-created process instance as top-level variables.

    Note

    To start a process from within a rule consequence, or from inside a process action, use the predefined kcontext parameter:
    kcontext.getKnowledgeRuntime().startProcess("com.sample.MyProcess");
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동