CRM, C4C和Hybris的工作流簡介

i042416發表於2018-03-20

CRM的例子

Step by Step to debug IC inbox workflow WS14000164

C4C

CRM, C4C和Hybris的工作流簡介

Hybris

Hybris workflow的框架實現程式碼在這個folder裡:

CRM, C4C和Hybris的工作流簡介

而應用層面使用的workflow,和ABAP workflow一樣有所謂workflow template的概念。下圖是ABAP workflow template的一個例子:

CRM, C4C和Hybris的工作流簡介

Hybris workflow:

CRM, C4C和Hybris的工作流簡介

也是透過impex定義的:

CRM, C4C和Hybris的工作流簡介
CRM, C4C和Hybris的工作流簡介

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);

} 

要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:

CRM, C4C和Hybris的工作流簡介
CRM, C4C和Hybris的工作流簡介

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2152052/,如需轉載,請註明出處,否則將追究法律責任。

相關文章