# 边界事件

信号边界事件会捕获与其信号事件定义引用的信号具有相同信号名称的信号。当流程流转到信号边界所依附的流程活动(用户任务,子流程)时,
工作流引擎会创建一个捕获事件,在其依附的流程活动的生命周期内等待一个抛出信号。
该信号由信号中间抛出事件抛出或API触发。信号边界触发后会沿着其外出顺序流继续流转。如果该边界事件设置为中断,其所依附的活动将被终止。

# XML内容

<bpmn:process id="Process_signal_start" name="信号开始事件" isExecutable="true">
    <bpmn:userTask id="Activity_0myknsu" name="用户任务" activiti:assignee="mark">
      <bpmn:incoming>Flow_1ncrh9q</bpmn:incoming>
      <bpmn:outgoing>Flow_1t490x6</bpmn:outgoing>
    </bpmn:userTask>
    <!--定义边界事件,并与上面的用户任务关联-->
    <bpmn:boundaryEvent id="Event_02shraq" attachedToRef="Activity_0myknsu">
      <bpmn:outgoing>Flow_1o7g50o</bpmn:outgoing>
      <bpmn:signalEventDefinition id="SignalEventDefinition_0qen90z" signalRef="Signal_05me4nr" />
    </bpmn:boundaryEvent>
  </bpmn:process>
  <bpmn:signal id="Signal_05me4nr" name="Signal_boundary" />

# API触发信号边界事件

//通过信号名称发起流程实例
void signalEventReceived(String signalName);
//通过信号名称发起流程实例并设置流程变量
void signalEventReceived(String signalName, Map<String, Object> var2);
//通过信号名称和业务标识发起流程实例
void signalEventReceived(String signalName, String businessKey);
//通过信号名称和业务标识发起流程实例并设置流程变量
void signalEventReceived(String signalName, String businessKey, Map<String, Object> var3);