27.2. ビジネスプロセスを実行する要求の例

有効なプロセス定義インスタンスを作成したら、パブリック KIE API と内部 KIE API の組み合わせを使用してこれを実行できます。プロセスを実行するには、KieBase の作成に使用する Resource を作成します。KieBase を使用して、プロセスを実行するために KieSession を作成できます。

以下の例は ProcessBuilderFactory.toBytes プロセスを使用して ByteArrayResource リソースを作成します。

プロセスを実行する要求の例

// Build resource from Process
KieResources resources = ServiceRegistry.getInstance().get(KieResources.class);
Resource res = resources
                        .newByteArrayResource(factory.toBytes(process))
                        .setSourcePath("/tmp/processFactory.bpmn2"); // source path or target path must be set to be added into kbase
// Build kie base from this resource using KIE API
KieServices ks = KieServices.Factory.get();
KieRepository kr = ks.getRepository();
KieFileSystem kfs = ks.newKieFileSystem();
kfs.write(res);
KieBuilder kb = ks.newKieBuilder(kfs);
kb.buildAll(); // kieModule is automatically deployed to KieRepository if successfully built.
KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId());
KieBase kbase = kContainer.getKieBase();
// Create kie session using KieBase
KieSessionConfiguration conf = ...;
Environment env = ....;
KieSession ksession = kbase.newKieSession(conf,env);
// execute process using same process Id that is used to obtain ProcessBuilder instance
ksession.startProcess(processId)