我是业务流程自动化的新手,正在尝试为我的Node.js应用程序实现使用Red hat流程自动化管理器。
请帮助我解决这个过程,或者如果有任何Node.js源代码可用
发布于 2019-08-13 00:55:02
您需要使用REST API,您可以在其中找到在服务器上运行的swagger文档。例如http://localhost:8080/kie-server/docs
。您必须创建一个流程并部署它,然后从您的应用程序控制它。
我没有javascript示例,但我有一个Java语言的示例,用于jBPM团队使用的常见Evaluation
流程示例。也许这对你有帮助。
private void runjBPMApi() throws IOException {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("content-type", "application/json");
headers.add("accept", "application/json");
HttpHeaders headersMary = new HttpHeaders();
headersMary.addAll(headers);
headersMary.add("Authorization", "Basic " + new String(Base64.getEncoder().encode("mary:mary".getBytes())));
HttpHeaders headersJack = new HttpHeaders();
headersJack.addAll(headers);
headersJack.add("Authorization", "Basic " + new String(Base64.getEncoder().encode("jack:jack".getBytes())));
HttpHeaders headersJohn = new HttpHeaders();
headersJohn.addAll(headers);
headersJohn.add("Authorization", "Basic " + new String(Base64.getEncoder().encode("john:john".getBytes())));
ObjectMapper mapper = new ObjectMapper();
String startEval = "{\"employee\":\"jack\"}";
HttpEntity<String> requestEval = new HttpEntity<>(startEval, headersMary);
ResponseEntity<String> evaluation =
restTemplate.exchange(serverRestUrl+"/containers/"+containerId+"/processes/Evaluation.Evaluation/instances",
HttpMethod.POST,
requestEval, String.class );
Long processId = Long.parseLong( evaluation.getBody() );
log.info("Started Process Instance: " + processId.toString());
String selfEval = "{\"selfeval\":\"did lots of work\"}";
performUserTaskApi(restTemplate, headersJack, selfEval, false, mapper);
String pmEval = "{\"pmeval\":\"Projects Done\"}";
performUserTaskApi(restTemplate, headersJohn, pmEval, true, mapper);
String hrEval = "{\"hreval\":\"No Incidents\"}";
performUserTaskApi(restTemplate, headersMary, hrEval, true, mapper);
HttpEntity<String> requestVariables = new HttpEntity<>(headersMary);
ResponseEntity<String> variables =
restTemplate.exchange(serverRestUrl+"/containers/"+containerId+"/processes/instances/"+processId+"/variables/instances",
HttpMethod.GET,
requestVariables, String.class );
JsonNode variableTree = mapper.readTree(variables.getBody());
Iterator<JsonNode> variablesItr = variableTree.findValue("variable-instance").elements();
while ( variablesItr.hasNext() ) {
log.info( variablesItr.next().toString() );
}
}
private void performUserTaskApi(RestTemplate restTemplate, HttpHeaders userHeaders, String params, boolean claim, ObjectMapper mapper) throws IOException {
HttpEntity<String> emptyEntity = new HttpEntity<>(userHeaders);
HttpEntity<String> paramsEntity = new HttpEntity<>(params, userHeaders);
ResponseEntity<String> potOwners =
restTemplate.exchange(serverRestUrl+"/queries/tasks/instances/pot-owners",
HttpMethod.GET, emptyEntity, String.class );
JsonNode evalTree = mapper.readTree(potOwners.getBody());
Long taskId = evalTree.findValue("task-id").asLong();
if ( claim ) {
restTemplate.exchange(serverRestUrl+"/containers/"+containerId+"/tasks/"+taskId+"/states/claimed",
HttpMethod.PUT, emptyEntity, String.class );
}
restTemplate.exchange(serverRestUrl+"/containers/"+containerId+"/tasks/"+taskId+"/states/started",
HttpMethod.PUT, emptyEntity, String.class );
restTemplate.exchange(serverRestUrl+"/containers/"+containerId+"/tasks/"+taskId+"/states/completed",
HttpMethod.PUT, paramsEntity, String.class );
}
发布于 2019-08-13 20:02:08
您可以使用Business Central对您的项目进行建模并将其部署到KIE Server上(通常您不需要在这里使用应用程序,Business Central功能就足够了。或者,您可以在首选的IDE中创建项目,然后手动将其部署到KIE Server。
一旦您的项目完成并部署到KIE Server上,您就可以使用Kie Server API来控制您的项目及其资产(如业务流程)。你可以编写你的应用程序来控制你在KIE Server上的项目,使用任何语言和技术,如Node.JS或移动应用程序。
使用K. Nicholas http://localhost:8080/kie-server/docs提供的链接访问KIE Server的REST API文档。
下面是一个这样的API示例:
https://stackoverflow.com/questions/57441534
复制相似问题