ID工作任务分配表

合集下载

计算机信息网络管理表格(新)

计算机信息网络管理表格(新)

计算机信息网络管理表格(新)背景在日常的计算机运维工作中,我们经常需要进行网络设备的管理和维护。

这些设备包括交换机、路由器、防火墙等,而它们之间互相连接,构成了一个庞大的网络环境。

在这样一个复杂的网络中,我们需要记录大量的信息,包括设备名称、设备IP地址、设备管理地址、设备型号、设备状态等。

管理这些信息是一个繁琐的过程,但却是必不可少的。

为了便于管理这些信息,我们设计了一个计算机信息网络管理表格(新),可以方便快捷地记录和管理各种设备的信息。

本文将详细介绍这个表格的设计和使用方法。

设计该表格是一个 Excel 文件,包含四个工作表,分别是:1.设备清单表:用于记录所有设备的基本信息,包括设备名称、设备IP地址、设备管理地址、设备登录密码、设备型号、设备厂商、设备位置、设备状态等。

其中,设备状态列可以选择“正常”、“故障”、“正在维修”、“已报废”等状态。

2.IP地址分配表:用于记录局域网内的IP地址分配情况,包括设备名称、设备IP地址、MAC地址、所属网段、分配时间等。

在使用该表时,需要先将设备的IP地址进行静态分配,并记录在该表中。

3.VLAN 划分表:用于记录不同 VLAN 单播域内的设备信息,包括VLAN 名称、VLAN ID、设备名称、设备IP地址、MAC地址、所属网段等。

在使用该表时,需要先将网络按 VLAN 划分,并将设备归类到相应的 VLAN 中。

4.交换机端口清单表:用于记录交换机端口的连接情况,包括端口号、连接的设备名称、MAC地址、所属 VLAN 等信息。

使用方法在实际操作中,我们可以按照以下步骤使用该表格:1.在设备清单表中添加设备信息。

一般情况下,需要记录设备名称、设备IP地址、设备管理地址、设备登录密码、设备型号、设备厂商、设备位置、设备状态等信息。

这些信息可以在设备安装后进行记录,也可以在购买设备时进行录入。

2.在 IP地址分配表中记录设备的 IP 地址等信息。

为了避免 IP 地址冲突,需要对每个设备进行静态 IP 地址分配,并记录在该表中。

IPD产品开发流程角色和职责说明

IPD产品开发流程角色和职责说明

产品开发流程角色和职责(仅供内部使用)For internal use only拟制: Prepared by 日期:Dateyyyy-mm-dd审核: Reviewed by 日期:Dateyyyy-mm-dd审核: Reviewed by 日期:Dateyyyy-mm-dd批准: Granted by 日期:Dateyyyy-mm-dd目录与索引1角色和职责42IPMT INTEGRATED PRODUCT MANAGE TEAM43PDT经理PDT LEADER43.1定义43.2PDT经理的职责包括:44PDT财务代表FINANCE PDT CORE TEAM MEMBER54.1定义54.2职责:55PDT开发代表R&D PDT CORE TEAM MEMBER65.1定义65.2RDPDT开发代表的职责包括:66PDT客户服务代表CUSTOMER SERVICE PDT CORE TEAM MEMBER66.1定义66.2PDT客户服务代表的职责包括:77PDT制造代表MANUFACTURING PDT CORE TEAM MEMBER77.1产品工艺工程师定义77.2PDT制造代表的职责包括:78PDT采购代表PROCUREMENT PDT CORE TEAM MEMBER88.1定义88.2PDT采购代表的职责包括:89PDT市场代表MARKETING PDT CORE TEAM MEMBER89.1定义89.2职责810系统工程师SYSTEMS ENGINEER910.1定义910.2系统工程师的职责包括:911项目操作员(POP) PROJECT OPERATIONS PERSON (POP)911.1定义:911.2项目操作员的职责912硬件工程师ELECTRICAL ENGINEER1012.1硬件工程师的职责1013软件工程师SOFTW ARE ENGINEER1013.1定义1013.2职责1014结构工程师MECHANICAL ENGINEER1114.1定义1114.2结构工程师的职责1115工业设计师INDUSTRIAL DESINGER1115.1定义1115.2外观设计师的职责包括:1116测试工程师TEST ENGINEER1216.1定义1216.2测试工程师的职责包括:1217客户服务专员CUSTOMER SERVICE SPECIALIST1217.1定义1217.2客户服务专员的职责包括:1218制造--试制工程师MANUFACTURING - PILOT PRODUCTION SPECIALIST1218.1定义1218.2制造-试制工程师的职责包括:1219制造--高级制造工程师1219.1定义1219.2制造--高级制造工程师的职责包括:1220采购人员PROCUREMENT SPECIALIST1320.1定义1320.2采购员的职责包括:1321市场行销计划和操作人员MARKETING PLANNING AND OPERATIONS SPECIALIST1321.1定义1321.2职责包括1322销售专员SALES SPECIALIST1322.1定义1322.2职责:1423质量工程师(QE)1423.1定义1423.2职责1424LMT经理(LLMT)1424.1定义1424.2职责:14修订记录Revision record1 角色和职责一个角色是以特定的职责和被要求的行为来定义的。

DISC 结果

DISC 结果

A12 DISC 结果目录一、D 型(低I、S、C):结果定向者(Result-Oriented pattern) (2)二、DI(低S、C):灵感启发者(Inspirational pattern) (2)三、DS(低I、C):高成就者(Achiever pattern) (3)四、DC(低I、S):创新者(Creative pattern) (4)五、DIS:咨询才(Counselor pattern) (4)六、高DIC:匆忙者模式 (5)七、IDC:评价者模式(Appraiser Pattern) (5)九、C:客观思考者(Objective Thinker Pattern) (7)十、ISC:代理者模式(Agent Pattern) (8)十二:SIC: (9)十三、Ⅰ:鼓舞者(Influencer Pattern) (10)十四、CIS:技术人员模式(Practitioner Pattern) (10)十五、ID:说服者(Persuader pattern) (11)十六、CS:完美主义者(Perfectionist Pattern) (12)十七、CSD (12)十八、IS 咨询者(Counselor Pattern) (13)十九、SC:专家型(Specialist Pattern) (14)二十、SD(低E、C):高成就者(Achiever Pattern) (14)二十一、S 稳健型(Steadiness Pattern) (15)二十二、IC (16)二十三、CD(低I、S)创新者(Creative pattern) (16)二十四、SI (17)二十五、SCI (18)一、D 型(低I、S、C):结果定向者(Result-Oriented pattern)1、行为描述控制、果断,您相信自己有足够的能力来改变周围的环境和他人,好发号施令,大胆、好竞争、好冒险。

在工作上,有很强的成就动机,进取心强,而且不顾一切努力实现自己的目标。

IPD-产品开发流程-角色和职责说明

IPD-产品开发流程-角色和职责说明

产品开发流程角色和职责(仅供内部使用)For internal use only拟制: Prepared by 日期:Dateyyyy-mm-dd审核: Reviewed by 日期:Dateyyyy-mm-dd审核: Reviewed by 日期:Dateyyyy-mm-dd批准: Granted by 日期:Dateyyyy-mm-dd目录与索引1角色和职责 (5)2IPMT INTEGRATED PRODUCT MANAGE TEAM (5)3PDT经理PDT LEADER (5)3.1 定义 (5)3.2 PDT经理的职责包括: (5)4PDT财务代表FINANCE PDT CORE TEAM MEMBER (6)4.1 定义 (6)4.2 职责: (6)5PDT开发代表R&D PDT CORE TEAM MEMBER (6)5.1 定义 (6)5.2 RDPDT开发代表的职责包括: (6)6PDT客户服务代表CUSTOMER SERVICE PDT CORE TEAM MEMBER (7)6.1 定义 (7)6.2 PDT客户服务代表的职责包括: (7)7PDT制造代表MANUFACTURING PDT CORE TEAM MEMBER (8)7.1 产品工艺工程师定义 (8)7.2 PDT制造代表的职责包括: (8)8PDT采购代表PROCUREMENT PDT CORE TEAM MEMBER (8)8.1 定义 (8)8.2 PDT采购代表的职责包括: (8)9PDT市场代表MARKETING PDT CORE TEAM MEMBER (9)9.1 定义 (9)9.2 职责 (9)10系统工程师SYSTEMS ENGINEER (9)10.1 定义 (9)10.2 系统工程师的职责包括: (9)11项目操作员(POP) PROJECT OPERATIONS PERSON (POP) (10)11.1 定义: (10)11.2 项目操作员的职责 (10)12硬件工程师ELECTRICAL ENGINEER (10)12.1 硬件工程师的职责 (10)13软件工程师SOFTW ARE ENGINEER (11)13.1 定义 (11)13.2 职责 (11)14结构工程师MECHANICAL ENGINEER (11)14.1 定义 (11)14.2 结构工程师的职责 (11)15工业设计师INDUSTRIAL DESINGER (12)15.1 定义 (12)15.2 外观设计师的职责包括: (12)16测试工程师TEST ENGINEER (12)16.1 定义 (12)16.2 测试工程师的职责包括: (12)17客户服务专员CUSTOMER SERVICE SPECIALIST (12)17.1 定义 (12)17.2 客户服务专员的职责包括: (12)18制造--试制工程师MANUFACTURING - PILOT PRODUCTION SPECIALIST (13)18.1 定义 (13)18.2 制造-试制工程师的职责包括: (13)19制造--高级制造工程师 (13)19.1 定义 (13)19.2 制造--高级制造工程师的职责包括: (13)20采购人员PROCUREMENT SPECIALIST (13)20.1 定义 (13)20.2 采购员的职责包括: (13)21市场行销计划和操作人员MARKETING PLANNING AND OPERATIONS SPECIALIST (14)21.1 定义 (14)21.2 职责包括 (14)22销售专员SALES SPECIALIST (14)22.1 定义 (14)22.2 职责: (14)23质量工程师(QE) (14)23.1 定义 (14)23.2 职责 (14)24LMT经理(LLMT) (15)24.1 定义 (15)24.2 职责: (15)修订记录Revision record1 角色和职责一个角色是以特定的职责和被要求的行为来定义的。

会务各类表格

会务各类表格

会务各类表格文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-会务申请表工作委托书工作委托表20-4 议题收集反馈表表20-5 内部会务工作准备清单会议名称:会议起止时间:表20-6 会务分工总表表20-7 会务人员分工明细表表20-8 经费预算表XXX有限公司注:“往返时间”栏由保卫科人员填写.委托书:今委托同志前来贵所办理我公司车牌号为的机动车违反道路交通安全法规有关事宜,请予以方便.谢谢xxx有限公司法人代表:年月日表20-10 住房登记表表20-11 住房结算表表20-12 车辆安排表表20-13 会务车辆用车信息登记表表20-14 会务任务进度跟踪表表20-15 会务工作准备清单会议名称:会议起止时间:表20-16 会务签到表表20-17来清晰明了地列出会务资料的详细情况表20-18 费用管理表表20-19 会务费用接收清单会议记录(二)会议通知年度会议实施计划表会议审核表邀集与会人员的选定标准:1.对于该项议题确实深有感触者.2.对于该项议题确实握有资料、学有专精并富有经验者.3.本次会议的结论将会对其有所影响者.4.邀其与会参与发言讨论的好处要比因该员工出席会议而致工作停顿所造成的损失来得更大者.年度会议活动计划表提高会议效率的会议记录年月会议记录主持者:出席者时间: 年月日星期时分记录:缺席者:~时分黑板:理由:地点:例行会议一览表会议功能分析会议议案检查表主席的会议准备表会议议事录时间:年月日时分时分出席者:地点:缺席者:主席:记录:会议议案检查表主席的会议准备表会议进行检查表会议议事录时间:年月日时分时分出席者:地点:缺席者:主席:记录:会议发言要点表会议决定事项确认表会议决定事项管理表有效的散会检查表未决事项检讨表年度行事历决定会议表格。

致远A8数据字典-工作流

致远A8数据字典-工作流
Case_history
历史流程实例表
记录已流转完毕的流程实例相关信息
workitem_run
工作项表
记录运行中工作项的相关信息
workitem_history
历史工作项表
记录已完成工作项的相关信息
workitem_delegater
委托,代理工作项表
记录委托,代理工作项的相关信息
table_key
状态
int(11)
流程实例流转状态
subprocess
子流程ID
int(11)
关联子流程ID,关联表process_running
startsubprocessnum
启动子流程数
int(11)
已启动的关联子流程数
processindex
流程模版索引
varchar(110)
关联流程模版索引,关联表process_running
更新日期
bigint(13)
流程实例更新日期
caseobject
流程实例对象
blob
流程实例对象
数据表
流程实例表(case_history)
字段名
中文名
类型
值域
描述
id
主键ID
bigint
唯一id
casename
实例名
varchar(100)
流程实例名
startuser
流程发起者ID
varchar(36)
Processname
流程模版名称
varchar(100)
关联流程模版名称,关联表process_running
processid
流程模版ID
varchar(100)

FANUC PMC IO地址分配

FANUC PMC I/O地址分配【任务目标】1.掌握I/O LINK设定的基本步骤和方法;2.掌握手轮的连接和相关注意事项;3.能完成I/O模块的硬件连接;4.能够根据技术要求完成PMC地址的分配。

【任务描述】某公司生产某一系列数控车床,现需要对PMC的输入信号和输出信号进行地址分配,要求X地址从X2.0开始,Y地址从Y3.0开始。

【资讯计划】一、资料准备要完成本任务,需要配备以下资料:1.FANUC 0i D数控系统梯形图语言编程说明书;2.FANUC 0i D数控系统梯形图语言补充编程说明书;3.FANUC 0i D数控系统维修说明书;4.该数控车床的使用说明书。

二、工具、材料准备要完成本任务中的PMC地址分配工作,需要配备以下工具,具体见表6-2-1。

表6-2-1 工具清单三、知识准备1.FANUC I/O 单元的连接FANUC I/O Link 是一个串行接口,将CNC、单元控制器、分布式I/O、机床操作面板或Power Mate 连接起来,并在各设备间高速传送I/O 信号(位数据)。

当连接多个设备时,FANUC I/O Link 将一个设备认作主单元,其它设备作为子单元。

子单元的输入信号每隔一定周期送到主单元,主单元的输出信号也每隔一定周期送至子单元。

0i-D 系列和0i Mate-D 系列中,JD51A 插座位于主板上。

I/O Link 分为主单元和子单元。

作为主单元的0i/0i Mate系列控制单元与作为子单元的分布式I/O 相连接。

子单元分为若干个组,一个I/O Link 最多可连接16 组子单元。

(0i Mate 系统中I/O 的点数有所限制)根据单元的类型以及I/O 点数的不同,I/O Link 有多种连接方式。

PMC 程序可以对I/O 信号的分配和地址进行设定,用来连接I/O Link。

I/O 点数最多可达1024/1024 点。

I/O Link 的两个插座分别叫做JD1A 和JD1B。

activiti act_hi_taskinst表字段详解

activiti act_hi_taskinst表字段详解activiti 是一个工作流引擎,用于支持业务流程管理(BPM)系统。

act_hi_taskinst 是activiti 数据库中的一个表,用于存储历史任务实例信息。

以下是act_hi_taskinst 表中各字段的详细解释:1. ID_:任务的唯一标识符。

2. PROC_DEF_ID_:流程定义的ID,标识正在执行的流程。

3. TASK_DEF_KEY_:任务定义的键,标识任务的类型或名称。

4. PROC_INST_ID_:流程实例的ID,标识正在执行的具体流程实例。

5. EXECUTION_ID_:执行实例的ID,标识流程执行的具体实例。

6. PARENT_TASK_ID_:父任务的ID,用于表示任务之间的层次关系。

7. NAME_:任务的名称,用于描述任务的名称或目的。

8. DESCRIPTION_:任务的描述,提供关于任务的额外信息。

9. OWNER_:任务的所有者或发起人,通常是创建或分配任务的用户。

10. ASSIGNEE_:被分配到任务的人,即当前负责执行任务的用户。

11. START_TIME_:任务开始的时间。

12. END_TIME_:任务结束的时间。

13. DURATION_:任务的持续时间,通常是从开始时间到结束时间的差值。

14. DELETE_REASON_:从运行时任务表中删除的原因,如果任务被删除或标记为已完成,这里会记录原因。

15. PRIORITY_:任务的优先级,用于确定任务的紧急程度或优先顺序。

16. DUE_DATE_:任务的截止日期,即任务必须在该日期之前完成的时间点。

这些字段提供了关于历史任务实例的详细信息,包括任务的执行状态、分配给哪个用户、任务的开始和结束时间等,对于了解流程的执行情况、监控和优化业务流程非常有用。

CANopen工作流分析 --SDO

目录第一章SDO实例分析 (1)一、目的: (1)二、手段: (1)三、分析: (1)四、过程: (2)4.1.对象字典的编写 (2)4.1.1各节点ID分配 (2)4.1.2对节点1进行对象字典编写 (2)4.1.3对节点2进行对象字典编写 (2)4.1.4对节点3进行对象字典编写 (3)4.2节点1读取节点2数据 (3)4.2.1节点1发送请求读取命令至节点2 (3)4.2.2 节点2响应节点1读取命令 (4)4.3 节点1写入数据至节点3 (6)4.3.1 节点1 发送数据至节点3 (6)4.3.2 节点3响应节点1写入数据命令 (7)参考文献 (8)附录一: (9)第一章SDO实例分析一、目的:实现节点2的数据传送到节点3二、手段:使用SDO进行传送注:SDO不能实现从节点之间数据的直接传送三、分析:图1-1 SDO客户/服务器通讯模式[1]SDO通讯可以描述成客户/服务器模型,SDO的客户/服务器通讯模式如图1-1所示。

两节点中请求进行读写操作的节点为客户端节点,数据被读写的节点为服务器节点[3]。

SDO通讯用于主节点对从节点对象字典的读写访问,以实现对从节点参数的设置,下载程序,定义PDO的通讯类型和数据格式等 [1]。

由此可知要实现将节点2中数据传送给节点3的实现方法为:设置节点1为主站(Client),数据传送过程由SDO传送的特点分为两段:节点1读取节点2(server)数据,节点1写入数据到节点3(server)。

从而实现了节点2(server)的数据传送到节点3(server)。

如图1-2所示。

节点1节点2节点3图1-2 数据传送过程四、过程:4.1.对象字典的编写对象字典的结构和条目对于所有设备是共同的,本例中采用索引定位,子索引确定对象的思想构建对象字典,方法是使用结构体定义子索引,子索引结构体的成员变量包含对象的属性(读写权限,数据类型,数据长度等)和指向对象的指针,定义索引时包含指向子索引的指针和子索引数目,对象字典各项在代码中采取如图4-1所示的方式来组织构建,这样可以方便地通过索引和子索引一找到对应的项,对象定义为指针的形式可以通过主站的SDO报文进行读写,实现对对象字典的灵活配置,同时这种方式实现通讯层与应用层共享数据变量的特点。

Activiti工作流框架中的任务调度!工作流框架中的任务流程元素详解,使用监听器监听任务执行

Activiti⼯作流框架中的任务调度!⼯作流框架中的任务流程元素详解,使⽤监听器监听任务执⾏任务⽤户任务描述⽤户任务⽤来设置必须由⼈员完成的⼯作当流程执⾏到⽤户任务,会创建⼀个新任务,并把这个新任务加⼊到分配⼈或群组的任务列表中图形标记⽤户任务显⽰成⼀个普通任务(圆⾓矩形),左上⾓有⼀个⼩⽤户图标XML内容XML中的⽤户任务定义:id属性是必须的,name属性是可选的:<userTask id="theTask" name="Important task" />⽤户任务可以设置描述,添加documentation元素可以定义描述:<userTask id="theTask" name="Schedule meeting" ><documentation>Schedule an engineering meeting for next week with the new hire.</documentation>描述⽂本可以通过标准的java⽅法来获取:task.getDescription()持续时间任务可以⽤⼀个字段来描述任务的持续时间可以使⽤查询API来对持续时间进⾏搜索,根据在时间之前或之后进⾏搜索Activiti提供了⼀个节点扩展,在任务定义中设置⼀个表达式,这样在任务创建时就可以设置初始持续时间表达式应该是:java.util.Datejava.util.String(ISO8601格式),ISO8601持续时间(⽐如PT50M)null在流程中使⽤上述格式输⼊⽇期,或在前⼀个服务任务中计算⼀个时间.这⾥使⽤了持续时间,持续时间会基于当前时间进⾏计算,再通过给定的时间段累加: 使⽤"PT30M"作为持续时间,任务就会从现在开始持续30分钟<userTask id="theTask" name="Important task" activiti:dueDate="${dateVariable}"/>任务的持续时间也可以通过TaskService修改,或在TaskListener中通过传⼊的DelegateTask参数修改⽤户分配⽤户任务可以直接分配给⼀个⽤户,通过humanPerformer元素定义humanPerformer定义需要⼀个resourceAssignmentExpression来实际定义⽤户.⽬前只⽀持formalExpressions<process ... >...<userTask id='theTask' name='important task' ><humanPerformer><resourceAssignmentExpression><formalExpression>kermit</formalExpression></resourceAssignmentExpression></humanPerformer></userTask>只有⼀个⽤户可以作为任务的执⾏者分配⽤户在activiti中,⽤户叫做执⾏者拥有执⾏者的⽤户不会出现在其他⼈的任务列表中,只能出现执⾏者的个⼈任务列表中直接分配给⽤户的任务可以通过TaskService获取:List<Task> tasks = taskService.createTaskQuery().taskAssignee("kermit").list();任务也可以加⼊到⼈员的候选任务列表中.需要使⽤potentialOwner元素⽤法和humanPerformer元素类似,需要指定表达式中的每个项⽬是⼈员还是群组<process ... >...<userTask id='theTask' name='important task' ><potentialOwner><resourceAssignmentExpression><formalExpression>user(kermit), group(management)</formalExpression></resourceAssignmentExpression></potentialOwner></userTask>使⽤potentialOwner元素定义的任务可以通过TaskService获取:List<Task> tasks = taskService.createTaskQuery().taskCandidateUser("kermit");这会获取所有kermit为候选⼈的任务,表达式中包含user(kermit).这也会获得所有分配包含kermit这个成员的群组(⽐如,group(management),前提是kermit是这个组的成员,并且使⽤了activiti的账号组件).⽤户所在的群组是在运⾏阶段获取的, 它们可以通过IdentityService进⾏管理如果没有显式指定设置的是⽤户还是群组,引擎会默认当做群组处理下⾯的设置与使⽤group(accountancy)⼀样:<formalExpression>accountancy</formalExpression>Activiti对任务分配的扩展当分配不复杂时,⽤户和组的设置⾮常⿇烦.为避免复杂性,可以使⽤⽤户任务的⾃定义扩展assignee属性: 直接把⽤户任务分配给指定⽤户(和使⽤humanPerformer 效果完全⼀样)<userTask id="theTask" name="my task" activiti:assignee="kermit" />candidateUsers属性: 为任务设置候选⼈(和使⽤potentialOwner效果完全⼀样,不需要像使⽤potentialOwner通过user(kermit)声明,这个属性只能⽤于⼈员)<userTask id="theTask" name="my task" activiti:candidateUsers="kermit, gonzo" />candidateGroups属性: 为任务设置候选组(和使⽤potentialOwner效果完全⼀样,不需要像使⽤potentialOwner通过group(management)声明,这个属性只能⽤于群组)<userTask id="theTask" name="my task" activiti:candidateGroups="management, accountancy" />candidateUsers和candidateGroups可以同时设置在同⼀个⽤户任务中Activiti中虽然有账号管理组件和IdentityService ,账号组件不会检测设置的⽤户是否存在. Activiti允许与其他已存的账户管理⽅案集成使⽤创建事件的任务监听器来实现⾃定义的分配逻辑:<userTask id="task1" name="My task" ><extensionElements><activiti:taskListener event="create" class="org.activiti.MyAssignmentHandler" /></extensionElements></userTask>DelegateTask会传递给TaskListener的实现,通过它可以设置执⾏⼈,候选⼈和候选组public class MyAssignmentHandler implements TaskListener {public void notify(DelegateTask delegateTask) {// Execute custom identity lookups here// and then for example call following methods:delegateTask.setAssignee("kermit");delegateTask.addCandidateUser("fozzie");delegateTask.addCandidateGroup("management");...}}使⽤spring时,使⽤表达式把任务监听器设置为spring代理的bean,让这个监听器监听任务的创建事件⽰例:执⾏者会通过调⽤ldapService这个spring bean的findManagerOfEmployee⽅法获得.流程变量emp会作为参数传递给bean<userTask id="task" name="My Task" activiti:assignee="${ldapService.findManagerForEmployee(emp)}"/>可以⽤来设置候选⼈和候选组:<userTask id="task" name="My Task" activiti:candidateUsers="${ldapService.findAllSales()}"/>⽅法返回类型只能为String(候选⼈) 或Collection < String >(候选组):public class FakeLdapService {public String findManagerForEmployee(String employee) {return "Kermit The Frog";}public List<String> findAllSales() {return Arrays.asList("kermit", "gonzo", "fozzie");}}脚本任务描述脚本任务是⼀个⾃动节点当流程到达脚本任务,会执⾏对应的脚本图形标记脚本任务显⽰为标准BPMN 2.0任务(圆⾓矩形),左上⾓有⼀个脚本⼩图标XML内容脚本任务定义需要指定script和scriptFormat<scriptTask id="theScriptTask" name="Execute script" scriptFormat="groovy"><script>sum = 0for ( i in inputArray ) {sum += i}</script></scriptTask>scriptFormat的值必须兼容JSR-223(java平台的脚本语⾔).默认Javascript会包含在JDK中,不需要额外的依赖.如果要使⽤其他的脚本引擎,必须要是JSR-223引擎兼容的.还需要把对应的jar添加到classpath下, 并使⽤合适的名称:activiti单元测试经常使⽤groovygroovy脚本引擎放在groovy-all.jar中,在2.0版本之前,脚本引擎是groovy jar的⼀部分.使⽤需要添加依赖:<dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy-all</artifactId><version>2.x.x<version></dependency>脚本变量到达脚本任务的流程可以访问的所有流程变量,都可以在脚本中使⽤<script>sum = 0for ( i in inputArray ) {sum += i}</script>也可以在脚本中设置流程变量,直接调⽤execution.setVariable("variableName", variableValue) 默认,不会⾃动保存变量(activiti 5.12之前) 可以在脚本中⾃动保存任何变量,只要把scriptTask的autoStoreVariables属性设置为true 最佳实践是不要使⽤,⽽是显式调⽤execution.setVariable()<scriptTask id="script" scriptFormat="JavaScript" activiti:autoStoreVariables="false">参数默认为false: 如果没有为脚本任务定义设置参数,所有声明的变量将只存在于脚本执⾏的阶段在脚本中设置变量: 这些命名已经被占⽤,不能⽤作变量名- out, out:print, lang:import, context, elcontext.<script>def scriptVar = "test123"execution.setVariable("myVar", scriptVar)</script>脚本结果脚本任务的返回值可以通过制定流程变量的名称,分配给已存在或者⼀个新流程变量,需要使⽤脚本任务定义的'activiti:resultVariable'属性任何已存在的流程变量都会被脚本执⾏的结果覆盖如果没有指定返回的变量名,脚本的返回值会被忽略<scriptTask id="theScriptTask" name="Execute script" scriptFormat="juel" activiti:resultVariable="myVar"><script>#{echo}</script></scriptTask>脚本的结果-表达式 #{echo} 的值会在脚本完成后,设置到myVar变量中Java服务任务描述Java服务任务⽤来调⽤外部Java类图形标记Java服务任务显⽰为圆⾓矩形,左上⾓有⼀个齿轮⼩图标XML内容声明Java调⽤逻辑有四种⽅式:实现JavaDelegate或者ActivityBehavior执⾏解析代理对象的表达式调⽤⼀个⽅法表达式调⽤⼀个值表达式执⾏⼀个在流程执⾏中调⽤的类,需要在activiti:class属性中设置全类名:<serviceTask id="javaService"name="My Java Service Task"activiti:class="org.activiti.MyJavaDelegate" />使⽤表达式调⽤⼀个对象,对象必须遵循⼀些规则,并使⽤activiti:delegateExpression属性进⾏创建:<serviceTask id="serviceTask" activiti:delegateExpression="${delegateExpressionBean}" />delegateExpressionBean是⼀个实现了JavaDelegate接⼝的bean,定义在实例的spring容器中要执⾏指定的UEL⽅法表达式, 需要使⽤activiti:expression:<serviceTask id="javaService"name="My Java Service Task"activiti:expression="#{printer.printMessage()}" />⽅法printMessage()会调⽤名为printer对象的⽅法为表达式中的⽅法传递参数:<serviceTask id="javaService"name="My Java Service Task"activiti:expression="#{printer.printMessage(execution, myVar)}" />调⽤名为printer对象上的⽅法printMessage.第⼀个参数是DelegateExecution, 在表达式环境中默认名称为execution. 第⼆个参数传递的是当前流程的名为myVar的变量要执⾏指定的UEL⽅法表达式, 需要使⽤activiti:expression:<serviceTask id="javaService"name="My Java Service Task"activiti:expression="#{split.ready}" />ready属性的getter⽅法:getReady() 会作⽤于名为split的bean上.这个对象会被解析为流程对象和spring环境中的对象实现要在流程执⾏中实现⼀个调⽤的类,这个类需要实现org.activiti.engine.delegate.JavaDelegate接⼝,并在execute⽅法中提供对应的业务逻辑.当流程执⾏到特定阶段,会指定⽅法中定义好的业务逻辑,并按照默认BPMN 2.0中的⽅式离开节点⽰例: 创建⼀个java类的例⼦,对流程变量中字符串转换为⼤写这个类需要实现org.activiti.engine.delegate.JavaDelegate接⼝,要求实现execute(DelegateExecution) ⽅法,包含的业务逻辑会被引擎调⽤流程实例信息:流程变量和其他信息,可以通过DelegateExecution接⼝访问和操作public class ToUppercase implements JavaDelegate {public void execute(DelegateExecution execution) throws Exception {String var = (String) execution.getVariable("input");var = var.toUpperCase();execution.setVariable("input", var);}}serviceTask定义的class只会创建⼀个java类的实例所有流程实例都会共享相同的类实例,并调⽤execute(DelegateExecution) 类不能使⽤任何成员变量,必须是线程安全的,必须能模拟在不同线程中执⾏.影响着属性注⼊的处理⽅式流程定义中引⽤的类(activiti:class)不会在部署时实例化只有当流程第⼀次执⾏到使⽤类的时候,类的实例才会被创建如果找不到类,会抛出⼀个ActivitiException这个原因是部署环境(更确切是的classpath)和真实环境往往是不同的:当使⽤ant或业务归档上传到Activiti Explorer来发布流程,classpath没有包含引⽤的类内部实现类也可以提供实现org.activiti.engine.impl.pvm.delegate.ActivityBehavior接⼝的类实现可以访问更强⼤的ActivityExecution,它可以影响流程的流向注意: 这应该尽量避免.只有在⾼级情况下并且确切知道要做什么的情况下,再使⽤ActivityBehavior接⼝属性注⼊为代理类的属性注⼊数据. ⽀持如下类型的注⼊: 固定的字符串表达式如果有效的话,数值会通过代理类的setter⽅法注⼊,遵循java bean的命名规范(⽐如fistName属性对应setFirstName(Xxx)⽅法)如果属性没有对应的setter⽅法,数值会直接注⼊到私有属性中⼀些环境的SecurityManager不允许修改私有属性,要把想注⼊的属性暴露出对应的setter⽅法来⽆论流程定义中的数据是什么类型,注⼊⽬标的属性类型都应该是 org.activiti.engine.delegate.Expression⽰例: 把⼀个常量注⼊到属性中属性注⼊可以使⽤class属性在声明实际的属性注⼊之前,需要定义⼀个extensionElements的XML元素<serviceTask id="javaService"name="Java service invocation"activiti:class="org.activiti.examples.bpmn.servicetask.ToUpperCaseFieldInjected"><extensionElements><activiti:field name="text" stringValue="Hello World" /></extensionElements></serviceTask>ToUpperCaseFieldInjected类有⼀个text属性,类型是org.activiti.engine.delegate.Expression. 调⽤text.getValue(execution) 时,会返回定义的字符串Hello World可以使⽤长⽂字(⽐如,内嵌的email),使⽤activiti:string⼦元素:<serviceTask id="javaService"name="Java service invocation"activiti:class="org.activiti.examples.bpmn.servicetask.ToUpperCaseFieldInjected"><extensionElements><activiti:field name="text"><activiti:string>Hello World</activiti:string></activiti:field></extensionElements></serviceTask>可以使⽤表达式,实现在运⾏期动态解析注⼊的值这些表达式可以使⽤流程变量或spring定义的bean.服务任务中的java类实例会在所有流程实例中共享:为了动态注⼊属性的值,可以在org.activiti.engine.delegate.Expression中使⽤值和⽅法表达式会使⽤传递给execute⽅法的DelegateExecution参数进⾏解析<serviceTask id="javaService" name="Java service invocation"activiti:class="org.activiti.examples.bpmn.servicetask.ReverseStringsFieldInjected"><extensionElements><activiti:field name="text1"><activiti:expression>${genderBean.getGenderString(gender)}</activiti:expression></activiti:field><activiti:field name="text2"><activiti:expression>Hello ${gender == 'male' ? 'Mr.' : 'Mrs.'} ${name}</activiti:expression></activiti:field></ extensionElements></ serviceTask>⽰例: 注⼊表达式,并使⽤在当前传⼊的DelegateExecution解析:public class ReverseStringsFieldInjected implements JavaDelegate {private Expression text1;private Expression text2;public void execute(DelegateExecution execution) {String value1 = (String) text1.getValue(execution);execution.setVariable("var1", new StringBuffer(value1).reverse().toString());String value2 = (String) text2.getValue(execution);execution.setVariable("var2", new StringBuffer(value2).reverse().toString());}}可以把表达式设置成⼀个属性,⽽不是⼦元素:因为java类实例会被重⽤,注⼊只会发⽣⼀次,当服务任务调⽤第⼀次的时候发⽣注⼊当代码中的属性改变了,值也不会重新注⼊,把它们看作是不变的,不⽤修改它们服务任务结果服务流程返回的结果(使⽤表达式的服务任务)可以分配给已经存在的或新的流程变量通过指定服务任务定义的activiti:resultVariable属性来实现指定的流程变量会被服务流程的返回结果覆盖如果没有指定返回变量名,就会忽略返回结果<serviceTask id="aMethodExpressionServiceTask"activiti:expression="#{myService.doSomething()}"activiti:resultVariable="myVar" />服务流程的返回值(在myService上调⽤doSomething() ⽅法的返回值,myService可能是流程变量,也可能是spring的bean),在服务执⾏完成之后,会设置到名为myVar的流程变量⾥处理异常执⾏⾃定义逻辑时,常常需要捕获对应的业务异常,在流程内部进⾏处理抛出BPMN Errors: 在服务任务或脚本任务的代码⾥抛出BPMN error: 要从JavaDelegate,脚本,表达式和代理表达式中抛出名为BpmnError的特殊ActivitiExeption 引擎会捕获这个异常,把它转发到对应的错误处理中:边界错误事件或错误事件⼦流程public class ThrowBpmnErrorDelegate implements JavaDelegate {public void execute(DelegateExecution execution) throws Exception {try {executeBusinessLogic();} catch (BusinessException e) {throw new BpmnError("BusinessExceptionOccured");}}}构造参数是错误代码,会被⽤来决定哪个错误处理器会来响应这个错误这个机制只⽤于业务失败,应该被流程定义中设置的边界错误事件或错误事件⼦流程处理. 技术上的错误应该使⽤其他异常类型,通常不会在流程⾥处理异常顺序流: 内部实现类在⼀些异常发⽣时,让流程进⼊其他路径<serviceTask id="javaService"name="Java service invocation"activiti:class="org.activiti.ThrowsExceptionBehavior"></serviceTask><sequenceFlow id="no-exception" sourceRef="javaService" targetRef="theEnd" /><sequenceFlow id="exception" sourceRef="javaService" targetRef="fixException" />这⾥的服务任务有两个外出顺序流:分别叫exception和no-exception. 异常出现时会使⽤顺序流的ID来决定流向public class ThrowsExceptionBehavior implements ActivityBehavior {public void execute(ActivityExecution execution) throws Exception {String var = (String) execution.getVariable("var");PvmTransition transition = null;try {executeLogic(var);transition = execution.getActivity().findOutgoingTransition("no-exception");} catch (Exception e) {transition = execution.getActivity().findOutgoingTransition("exception");}execution.take(transition);}}JavaDelegate使⽤Activiti服务需要在Java服务任务中使⽤Activiti服务的场景: ⽐如,通过RuntimeService启动流程实例,⽽callActivity不满⾜需求org.activiti.engine.delegate.DelegateExecution允许通过 org.activiti.engine.EngineServices接⼝直接获得这些服务:public class StartProcessInstanceTestDelegate implements JavaDelegate {public void execute(DelegateExecution execution) throws Exception {RuntimeService runtimeService = execution.getEngineServices().getRuntimeService();runtimeService.startProcessInstanceByKey("myProcess");}}所有activiti服务的API都可以通过这个接⼝获得使⽤这些API调⽤出现的所有数据改变,都是在当前事务中在例如spring和CDI这样的依赖注⼊环境也会起作⽤,⽆论是否启⽤了JTA数据源⽰例: 下⾯的代码功能与上⾯的代码⼀致,这是RuntimeService是通过依赖注⼊获得,⽽不是通过org.activiti.engine.EngineServices接⼝@Component("startProcessInstanceDelegate")public class StartProcessInstanceTestDelegateWithInjection {@Autowiredprivate RuntimeService runtimeService;public void startProcess() {runtimeService.startProcessInstanceByKey("oneTaskProcess");}}因为服务调⽤是在当前事务⾥,数据的产⽣或改变,在服务任务执⾏完之前,还没有提交到数据库.所以API对于数据库数据的操作,意味着未提交的操作在服务任务的API调⽤中都是不可见的WebService任务描述WebService任务可以⽤来同步调⽤⼀个外部的WebService图形标记WebService任务与Java服务任务显⽰效果⼀样(圆⾓矩形,左上⾓有⼀个齿轮⼩图标)XML内容要使⽤WebService需要导⼊操作和类型,可以使⽤import标签来指定WebService的WSDL<import importType="/wsdl/"location="http://localhost:63081/counter?wsdl"namespace="/" />声明告诉activiti导⼊WSDL定义,但没有创建itemDefinition和message假设想调⽤⼀个名为prettyPrint的⽅法,必须创建为请求和响应信息对应的message和itemDefinition <message id="prettyPrintCountRequestMessage" itemRef="tns:prettyPrintCountRequestItem" /><message id="prettyPrintCountResponseMessage" itemRef="tns:prettyPrintCountResponseItem" /><itemDefinition id="prettyPrintCountRequestItem" structureRef="counter:prettyPrintCount" /><itemDefinition id="prettyPrintCountResponseItem" structureRef="counter:prettyPrintCountResponse" />在申请服务任务之前,必须定义实际引⽤WebService的BPMN接⼝和操作基本上,定义接⼝和必要的操作.对每个操作都会重⽤上⾯定义的信息作为输⼊和输出⽰例: 定义了counter接⼝和prettyPrintCountOperation操作:<interface name="Counter Interface" implementationRef="counter:Counter"><operation id="prettyPrintCountOperation" name="prettyPrintCount Operation"implementationRef="counter:prettyPrintCount"><inMessageRef>tns:prettyPrintCountRequestMessage</inMessageRef><outMessageRef>tns:prettyPrintCountResponseMessage</outMessageRef></operation></interface>然后定义WebService任务,使⽤WebService实现,并引⽤WebService操作<serviceTask id="webService"name="Web service invocation"implementation="##WebService"operationRef="tns:prettyPrintCountOperation">WebService任务IO规范每个WebService任务可以定义任务的输⼊输出IO规范<ioSpecification><dataInput itemSubjectRef="tns:prettyPrintCountRequestItem" id="dataInputOfServiceTask" /><dataOutput itemSubjectRef="tns:prettyPrintCountResponseItem" id="dataOutputOfServiceTask" /><inputSet><dataInputRefs>dataInputOfServiceTask</dataInputRefs></inputSet><outputSet><dataOutputRefs>dataOutputOfServiceTask</dataOutputRefs></outputSet></ioSpecification>WebService任务数据输⼊关联指定数据输⼊关联有两种⽅式:使⽤表达式使⽤简化⽅式使⽤表达式指定数据输⼊关联: 需要定义来源和⽬的item,并指定每个item属性之间的对应关系:<dataInputAssociation><sourceRef>dataInputOfProcess</sourceRef><targetRef>dataInputOfServiceTask</targetRef><assignment><from>${dataInputOfProcess.prefix}</from><to>${dataInputOfServiceTask.prefix}</to></assignment><assignment><from>${dataInputOfProcess.suffix}</from><to>${dataInputOfServiceTask.suffix}</to></assignment></dataInputAssociation>分配item的前缀和后缀使⽤简化⽅式指定数据输⼊关联: sourceRef元素是activiti的变量名,targetRef元素是item定义的⼀个属性:<dataInputAssociation><sourceRef>PrefixVariable</sourceRef><targetRef>prefix</targetRef></dataInputAssociation><dataInputAssociation><sourceRef>SuffixVariable</sourceRef><targetRef>suffix</targetRef></dataInputAssociation>PrefixVariable变量的值分配给prefix属性,把SuffixVariable变量的值分配给suffix属性WebService任务数据输出关联指定数据输出关联有两种⽅式:使⽤表达式使⽤简化⽅式使⽤表达式指定数据输出关联: 需要定义⽬的变量和来源表达式<dataOutputAssociation><targetRef>dataOutputOfProcess</targetRef><transformation>${dataOutputOfServiceTask.prettyPrint}</transformation></dataOutputAssociation>⽅法和数据输⼊关联完全⼀样使⽤简化⽅式指定数据输出关联: sourceRef元素是item定义的⼀个属性,targetRef元素是activiti的变量名<dataOutputAssociation><sourceRef>prettyPrint</sourceRef><targetRef>OutputVariable</targetRef></dataOutputAssociation>⽅法和数据输⼊关联完全⼀样业务规则任务描述业务规则任务⽤来同步执⾏⼀个或多个规则Activiti使⽤drools规则引擎执⾏业务规则: 包含业务规则的.drl⽂件必须和流程定义⼀起发布流程定义⾥包含了执⾏这些规则的业务规则任务流程使⽤的所有.drl⽂件都必须打包在流程BAR⽂件⾥如果想要⾃定义规则任务的实现: 想⽤不同⽅式使⽤drools,或者使⽤完全不同的规则引擎.你可以使⽤BusinessRuleTask上的class或表达式属性图形标记业务规则任务是⼀个圆⾓矩形,左上⾓使⽤⼀个表格⼩图标进⾏显⽰XML内容要执⾏部署流程定义的BAR⽂件中的⼀个或多个业务规则,需要定义输⼊和输出变量:对于输⼊变量定义,可以使⽤逗号分隔的⼀些流程变量输出变量定义只包含⼀个变量名,会把执⾏业务规则后返回的对象保存到对应的流程变量中注意: 结果变量会包含⼀个对象列表,如果没有指定输出变量名称,默认会使⽤ org.activiti.engine.rules.OUTPUT<process id="simpleBusinessRuleProcess"><startEvent id="theStart" /><sequenceFlow sourceRef="theStart" targetRef="businessRuleTask" /><businessRuleTask id="businessRuleTask" activiti:ruleVariablesInput="${order}"activiti:resultVariable="rulesOutput" /><sequenceFlow sourceRef="businessRuleTask" targetRef="theEnd" /><endEvent id="theEnd" /></process>业务规则任务也可以配置成只执⾏部署的.drl⽂件中的⼀些规则.这时要设置逗号分隔的规则名,只会执⾏rule1和rule2:<businessRuleTask id="businessRuleTask" activiti:ruleVariablesInput="${order}"activiti:rules="rule1, rule2" />定义哪些规则不⽤执⾏:除了rule1和rule2以外,所有部署到流程定义同⼀个BAR⽂件中的规则都会执⾏:<businessRuleTask id="businessRuleTask" activiti:ruleVariablesInput="${order}"activiti:rules="rule1, rule2" exclude="true" />可以⽤⼀个选项修改BusinessRuleTask的实现:<businessRuleTask id="businessRuleTask" activiti:class="${MyRuleServiceDelegate}" />BusinessRuleTask的功能和ServiceTask⼀样,但是使⽤BusinessRuleTask的图标来表⽰在这⾥要执⾏业务规则邮件任务Activiti强化了业务流程,⽀持⾃动邮件任务: 可以发送邮件给⼀个或多个参与者,包括⽀持cc,bcc,HTML内容等等邮件任务不是BPMN 2.0规范定义的官⽅任务,Activiti中邮件任务是⽤专门的服务任务实现的邮件服务器配置Activiti引擎要通过⽀持SMTP功能的外部邮件服务器发送邮件为了实际发送邮件,引擎穾知道如何访问邮件服务器.下⾯的配置可以设置到activiti.cfg.xml配置⽂件中:属性是否必须描述mailServerHost否邮件服务器的主机名(⽐如:).默认为localhostmailServerPort 是如果没有使⽤默认端⼝邮件服务器上的SMTP传输端⼝.默认为25mailServerDefaultFrom否如果⽤户没有指定发送邮件的邮件地址,默认设置的发送者的邮件地址。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

金景国际
深圳亿和源科技有限公司

2.部门每月任务指标
2.1 人员编制:ID设计师3人,ID总监1人;
2.2 ID设计图:各品牌每月出2款新品,共6款新品;每2个月需要有1款明星产品冲击市场。

3.ID设计师每月任务指标
3.1 数量:每人每月至少提交2款产品,每款产品4个ID风格,共8个ID效果图;
3.2 质量:每人每月确保确保被选中1款,若连续2个月没有被选中者将处以淘汰离职处理;
3.3 创新:设计的产品要在满足公司销售提出的需求之上,渗入和添加手机市场新潮元素、新材料、新工艺和国内外知名品牌元素与卖点;
3.4 时效:各ID设计师每月25日至29日期间提供当月产品提交,逾期无效,可以提前提交和评选。

4.外发设计要求与指标
4.1ID总监充分调动和激发内部设计师潜能,提供必要的参考咨询与收集手机市场新潮动向和元素给ID设计师创造新产品;
4.2 密切与知名的和已建立合作关系的设计公司交流,获取每款不少于4个风格ID效果图备公司销售挑选,以满足内部设计不能提供的补缺。
4.3 质量和效果要优于内部设计和市场前卫,设计费用低于同行和同类产品。

5.本规定生效日期:2011年11月

编制:__________ID设计师确认:_________ _________ __________ ID总监确认:________ 总经理核准:_________

1.目的
1.1为确保ID部自主设计和外发设计的产品能跟上手机消费市场新潮,满足国内和海外各品牌每月两款新品需求;
1.2.制定可量化措施,有效督促和考核ID部人员的工作绩效,贯彻奖罚分明和优胜劣汰的激励措施。

ID工作任务分配表

相关文档
最新文档