private ApprovalStageExecutionPreviewType createStageExecutionPreview(WfContextType wfc, String requestChannel,
ApprovalStageDefinitionType stageDef, Task opTask, OperationResult result) {
ApprovalStageExecutionPreviewType rv = new ApprovalStageExecutionPreviewType(prismContext);
try {
WfStageComputeHelper.ComputationResult computationResult = computeHelper
.computeStageApprovers(stageDef, () -> computeHelper.getDefaultVariables(wfc, requestChannel, result), opTask, result);
rv.getExpectedApproverRef().addAll(computationResult.getApproverRefs());
rv.setExpectedAutomatedOutcome(computationResult.getPredeterminedOutcome());
rv.setExpectedAutomatedCompletionReason(computationResult.getAutomatedCompletionReason());
} catch (Throwable t) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't compute stage execution preview", t);
rv.setErrorMessage(MiscUtil.formatExceptionMessageWithCause(t));
rv.getExpectedApproverRef().addAll(CloneUtil.cloneCollectionMembers(stageDef.getApproverRef()));
}
return rv;
}