basic steps error handling
This commit is contained in:
@@ -58,6 +58,7 @@ public class ScenarioController {
|
|||||||
|
|
||||||
@PostMapping("scenarios/execute")
|
@PostMapping("scenarios/execute")
|
||||||
public ScenarioOutput executeScenario(@RequestBody ScenarioExecutionInput scenarioExecutionInput) {
|
public ScenarioOutput executeScenario(@RequestBody ScenarioExecutionInput scenarioExecutionInput) {
|
||||||
|
|
||||||
ScenarioOutput preOutput = scenarioExecutionService.prepareScrenarioExecution(scenarioExecutionInput);
|
ScenarioOutput preOutput = scenarioExecutionService.prepareScrenarioExecution(scenarioExecutionInput);
|
||||||
scenarioExecutionService.executeScenarioAsync(preOutput);
|
scenarioExecutionService.executeScenarioAsync(preOutput);
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ public class ScenarioExecution {
|
|||||||
private String currentStepDescription;
|
private String currentStepDescription;
|
||||||
|
|
||||||
private String executedByUserId;
|
private String executedByUserId;
|
||||||
|
private String latestStepStatus;
|
||||||
|
private String latestStepOutput;
|
||||||
|
|
||||||
private ScenarioExecutionInput scenarioExecutionInput;
|
private ScenarioExecutionInput scenarioExecutionInput;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,6 +97,12 @@ public class ScenarioExecutionService {
|
|||||||
scenarioOutput.setStatus("IN_PROGRESS");
|
scenarioOutput.setStatus("IN_PROGRESS");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(scenarioExecution.getLatestStepStatus().equals("ERROR")){
|
||||||
|
scenarioOutput.setScenarioExecution_id(scenarioExecution.getId());
|
||||||
|
scenarioOutput.setStatus("ERROR");
|
||||||
|
scenarioOutput.setMessage(scenarioExecution.getLatestStepOutput());
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
scenarioOutput.setScenarioExecution_id(null);
|
scenarioOutput.setScenarioExecution_id(null);
|
||||||
scenarioOutput.setStatus("ERROR");
|
scenarioOutput.setStatus("ERROR");
|
||||||
@@ -168,9 +174,12 @@ public class ScenarioExecutionService {
|
|||||||
while (scenarioExecution.getNextStepId()!=null) {
|
while (scenarioExecution.getNextStepId()!=null) {
|
||||||
ScenarioStep step = steps.stream().filter(s -> s.getStepId().equals(scenarioExecution.getNextStepId())).findFirst().orElse(null);
|
ScenarioStep step = steps.stream().filter(s -> s.getStepId().equals(scenarioExecution.getNextStepId())).findFirst().orElse(null);
|
||||||
executeScenarioStep(step, scenarioExecution);
|
executeScenarioStep(step, scenarioExecution);
|
||||||
}
|
|
||||||
|
|
||||||
|
if(scenarioExecution.getLatestStepStatus().equals("ERROR")){
|
||||||
|
logger.error("Error while executing step: " + step.getStepId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,18 +213,30 @@ public class ScenarioExecutionService {
|
|||||||
|
|
||||||
|
|
||||||
logger.info("Initializing step: " + step.getStepId());
|
logger.info("Initializing step: " + step.getStepId());
|
||||||
solver.init(step, scenarioExecution,
|
|
||||||
vectorStore,chatModel,chatClient,graphDriver,neo4JUitilityService
|
|
||||||
,discoveryClient);
|
|
||||||
|
|
||||||
logger.info("Solving step: " + step.getStepId());
|
logger.info("Solving step: " + step.getStepId());
|
||||||
scenarioExecution.setCurrentStepId(step.getStepId());
|
scenarioExecution.setCurrentStepId(step.getStepId());
|
||||||
scenarioExecution.setCurrentStepDescription(step.getName());
|
scenarioExecution.setCurrentStepDescription(step.getName());
|
||||||
|
|
||||||
ScenarioExecution scenarioExecutionNew = solver.solveStep();
|
|
||||||
|
|
||||||
logger.info("Step solved: " + step.getStepId());
|
ScenarioExecution scenarioExecutionNew=scenarioExecution;
|
||||||
logger.info("Next step: " + scenarioExecutionNew.getNextStepId());
|
|
||||||
|
try{
|
||||||
|
solver.init(step, scenarioExecution,
|
||||||
|
vectorStore,chatModel,chatClient,graphDriver,neo4JUitilityService
|
||||||
|
,discoveryClient);
|
||||||
|
|
||||||
|
scenarioExecutionNew = solver.solveStep();
|
||||||
|
|
||||||
|
logger.info("Step solved: " + step.getStepId());
|
||||||
|
logger.info("Next step: " + scenarioExecutionNew.getNextStepId());
|
||||||
|
|
||||||
|
}catch (Exception e){
|
||||||
|
logger.error("Error while solving step: " + step.getStepId() + " => " + e.getMessage());
|
||||||
|
scenarioExecutionNew.setNextStepId(null);
|
||||||
|
scenarioExecutionNew.setLatestStepStatus("ERROR");
|
||||||
|
scenarioExecutionNew.setLatestStepOutput(e.getMessage());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
scenarioExecutionRepository.save(scenarioExecutionNew);
|
scenarioExecutionRepository.save(scenarioExecutionNew);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user