use of de.metas.ui.web.process.ProcessInstanceResult in project metasfresh-webui-api by metasfresh.
the class ViewActionInstance method startProcess.
@Override
public ProcessInstanceResult startProcess(@NonNull final ProcessExecutionContext context) {
assertNotExecuted();
// Validate parameters, if any
if (parametersDocument != null) {
final DocumentValidStatus validStatus = parametersDocument.checkAndGetValidStatus();
if (!validStatus.isValid()) {
throw new AdempiereException(validStatus.getReason());
}
}
//
// Execute view action's method
final IView view = getView();
final Method viewActionMethod = viewActionDescriptor.getViewActionMethod();
final Object[] viewActionParams = viewActionDescriptor.extractMethodArguments(view, parametersDocument, selectedDocumentIds);
try {
final Object targetObject = Modifier.isStatic(viewActionMethod.getModifiers()) ? null : view;
final Object resultActionObj = viewActionMethod.invoke(targetObject, viewActionParams);
final ResultAction resultAction = viewActionDescriptor.convertReturnType(resultActionObj);
final ResultAction resultActionProcessed = processResultAction(resultAction, context.getViewsRepo());
final ProcessInstanceResult result = ProcessInstanceResult.builder(pinstanceId).action(resultActionProcessed).build();
this.result = result;
return result;
} catch (final Throwable ex) {
throw AdempiereException.wrapIfNeeded(ex);
}
}
use of de.metas.ui.web.process.ProcessInstanceResult in project metasfresh-webui-api by metasfresh.
the class HUReportProcessInstance method startProcess.
@Override
public synchronized ProcessInstanceResult startProcess(@NonNull final ProcessExecutionContext context) {
final int numberOfCopies = getCopies();
if (numberOfCopies <= 0) {
throw new AdempiereException("@" + PARAM_Copies + "@ > 0");
}
final IViewsRepository viewsRepo = context.getViewsRepo();
final DocumentCollection documentsCollection = context.getDocumentsCollection();
final ViewId viewId = viewRowIdsSelection.getViewId();
final HUEditorView view = HUEditorView.cast(viewsRepo.getView(viewId));
final HUReportExecutorResult reportExecutorResult = HUReportExecutor.newInstance(context.getCtx()).numberOfCopies(numberOfCopies).printPreview(true).executeNow(reportADProcessId, extractHUsToReport(view));
final ADProcessPostProcessService postProcessService = ADProcessPostProcessService.builder().viewsRepo(viewsRepo).documentsCollection(documentsCollection).build();
final ProcessInstanceResult result = postProcessService.postProcess(ADProcessPostProcessRequest.builder().viewId(viewId).processInfo(reportExecutorResult.getProcessInfo()).processExecutionResult(reportExecutorResult.getProcessExecutionResult()).instanceIdOverride(instanceId).build());
return lastExecutionResult = result;
}
Aggregations