package com.mossle.spi.process;
import java.util.List;
import java.util.Map;
import com.mossle.api.form.FormDTO;
/**
* HumanTask就靠这个接口与activiti交互了.
*/
public interface InternalProcessConnector {
/**
* 找到任务对应的表单信息.
*/
FormDTO findTaskForm(String taskId);
/**
* 找到一个流程定义下所有的任务定义.
*/
List<ProcessTaskDefinition> findTaskDefinitions(String processDefinitionId);
/**
* 完成任务.
*/
void completeTask(String taskId, String userId,
Map<String, Object> variables);
/**
* 转发任务.
*/
void transfer(String taskId, String assignee, String owner);
/**
* 撤销任务.
*/
void withdrawTask(String taskId);
/**
* 回退任务
*/
void rollback(String taskId, String activityId, String userId);
/**
* 回退任务,并自动分配最后的负责人.
*/
void rollbackAuto(String taskId, String activityId);
/**
* 协办.
*/
void delegateTask(String taskId, String userId);
/**
* 完成协办.
*/
void resolveTask(String taskId);
/**
* 根据activityId找到任务定义.
*/
ProcessTaskDefinition findTaskDefinition(String processDefinitionId,
String taskDefintionKey, String businessKey);
/**
* 获得流程发起人.
*/
String findInitiator(String processInstanceId);
/**
* 获得某个节点的历史负责人.
*/
String findAssigneeByActivityId(String processInstanceId, String activityId);
/**
* 解析表达式.
*/
Object executeExpression(String taskId, String expressionText);
/**
* 获得开始事件id.
*/
String findInitialActivityId(String processDefinitionId);
/**
* 获得第一个UserTask的节点id.
*/
String findFirstUserTaskActivityId(String processDefinitionId,
String initiator);
/**
* 触发execution继续执行.
*/
void signalExecution(String executionId);
}