CRM, C4C和Hybris的工作流简介
时间:2022-05-04
本文章向大家介绍CRM, C4C和Hybris的工作流简介,主要内容包括CRM的例子、C4C、Hybris、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
CRM的例子
Step by Step to debug IC inbox workflow WS14000164
C4C
- 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
- 一个workflow至少有3三 种类型(start/normal/end)的 action
- 一个action最少有一种decision
- 一个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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
- 网络安全黑暗森林法则:2015 ISC 深度回顾
- Codeforces 626G Raffles(贪心+线段树)
- window.opener.location 安全风险讨论
- Vijos P1497 立体图【模拟】
- Vijos P1127 级数求和【模拟】
- 新型漏洞:利用浏览器Cookie绕过HTTPS并窃取私人信息
- Vijos P1113 不高兴的津津【模拟】
- Linux下MySQL的彻底卸载和安装配置字符集
- Codeforces 626F Group Projects(滚动数组+差分dp)
- Vijos P1103 校门外的树【线段树,模拟】
- BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】
- SQL vs NoSQL:如何选择?
- 线性规划之单纯形法【超详解+图解】
- NodeJS 应用仓库钓鱼
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法