
Custom recipient determination in workflow rule done on Account BO
Automatically send an Email notification to line manager via Workflow in Account application
Hybris
Hybris workflow的架構實作代碼在這個folder裡:
而應用層面使用的workflow,和ABAP workflow一樣有所謂workflow template的概念。下圖是ABAP workflow template的一個例子:
Hybris workflow:
也是通過impex定義的:
impex 中包括 WorkflowTemplate, WorkflowActionTemplate, WorkflowDecisionTemplate, WorkflowActionTemplateLinkTemplateRelation 這四種類型的model
1. 一個workflow至少有3三 種類型(start/normal/end)的 action
2. 一個action最少有一種decision
3. 一個decision 可以通過 WorkflowActionTemplateLinkTemplateRelation 連結到下一個action上 直到結束節點 end.
建立workflow及觸發decision:
public void autoCreateWorkFlow(PrincipalModel principal, KeyInfoModel info) {
validateParameterNotNull(principal, "principal model cannot be null");
UserModel admin = userService.getUserForUID(ADMIN_CODE);
WorkflowTemplateModel workflowTemplate = workflowTemplateService.getWorkflowTemplateForCode(workflowTemplateCode);
//create a new workflow for given workflowtemplate
final WorkflowModel workflow = workflowService.createWorkflow(workflowTemplate, admin);
//add attachment for workflow
final WorkflowItemAttachmentModel attachment = modelService.create(WorkflowItemAttachmentModel.class);
AbstractOrderEntryModel orderEntry = info.getOrderEntry();
attachment.setItem(info.getOrderEntry());
attachment.setWorkflow(workflow);
attachment.setCode(orderEntry.getPk()+"_OrderEntry");
this.modelService.save(attachment);
this.modelService.refresh(attachment);
workflow.setAttachments(Collections.singletonList(attachment));
workflowProcessingService.startWorkflow(workflow);
this.autoDoStartDecision(workflow, admin);
}