<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:g="http://www.jboss.org/drools/flow/gpd" xmlns:tns="http://www.jboss.org/drools" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.mvel.org/2.0" id="Definition" name="" targetNamespace="http://www.jboss.org/drools" typeLanguage="http://www.java.com/javaTypes">
        <process id="cn.ibizlab.trainsys.core.common.service.logic.phonexxxa" isClosed="false" isExecutable="true" name="common_phone_xxxa_ruleFlow" processType="Private" tns:packageName="cn.ibizlab.trainsys.core.common.service.logic.phonexxxa">
            <extensionElements>
                <tns:import name="java.util.Map" />
                <tns:import name="org.springframework.util.StringUtils"/>
                <tns:import name="cn.ibizlab.trainsys.util.helper.RuleUtils"/>
                                <tns:metaData express="" name="phonexxxadefault" type="entity"/>
                                <tns:metaData express="new cn.ibizlab.trainsys.core.common.domain.Phone()" name="phonexxxacreateparam" type="refentity"/>
                                <tns:metaData express="new HashMap()" name="phonexxxasimplevar" type="refentity"/>
                                <tns:metaData express="new HashMap()" name="phonexxxasimplenum" type="refentity"/>
                                <tns:metaData express="new cn.ibizlab.trainsys.core.common.domain.Phone()" name="phonexxxaupdateparam" type="refentity"/>
                                    <tns:metaData express="T(cn.ibizlab.trainsys.util.security.SpringContextHolder).getBean(T(cn.ibizlab.trainsys.core.common.service.IPhoneService))" name="phoneservice" type="service"/>
                    <tns:metaData express="T(cn.ibizlab.trainsys.util.security.SpringContextHolder).getBean(T(cn.ibizlab.trainsys.core.common.service.IPhoneService))" name="iBzSysPhoneDefaultService" type="service"/>
                    <tns:metaData express="T(cn.ibizlab.trainsys.util.security.AuthenticationUser).getAuthenticationUser()" name="curuser" type="session"/>
                            <tns:global identifier="phonexxxadefault" type="cn.ibizlab.trainsys.core.common.domain.Phone" />
                            <tns:global identifier="phonexxxacreateparam" type="cn.ibizlab.trainsys.core.common.domain.Phone" />
                            <tns:global identifier="phonexxxaupdateparam" type="cn.ibizlab.trainsys.core.common.domain.Phone" />
            </extensionElements>
                        <startEvent id="begin" isInterrupting="true"/>
                        <businessRuleTask activiti:exclusive="true" g:ruleFlowGroup="phonexxxathrowexception1" id="throwexception1" implementation="http://www.jboss.org/drools/rule" name="抛出异常"/>
                        <endEvent id="throwexception1_end" name="end"/>
                        <sequenceFlow id="throwexception1_end_line" sourceRef="throwexception1" targetRef="throwexception1_end"/>
                        <businessRuleTask activiti:exclusive="true" g:ruleFlowGroup="phonexxxaprepareparam1" id="prepareparam1" implementation="http://www.jboss.org/drools/rule" name="准备参数"/>
                        <businessRuleTask activiti:exclusive="true" g:ruleFlowGroup="phonexxxadeaction1" id="deaction1" implementation="http://www.jboss.org/drools/rule" name="实体行为"/>
                        <businessRuleTask activiti:exclusive="true" g:ruleFlowGroup="phonexxxasubsyssamethod1" id="subsyssamethod1" implementation="http://www.jboss.org/drools/rule" name="外部接口调用"/>
                        <businessRuleTask activiti:exclusive="true" g:ruleFlowGroup="phonexxxabindparam1" id="bindparam1" implementation="http://www.jboss.org/drools/rule" name="绑定参数"/>
                        <businessRuleTask activiti:exclusive="true" g:ruleFlowGroup="phonexxxadeaction2" id="deaction2" implementation="http://www.jboss.org/drools/rule" name="实体行为"/>
                        <businessRuleTask activiti:exclusive="true" g:ruleFlowGroup="phonexxxaend1" id="end1" implementation="http://www.jboss.org/drools/rule" name="结束"/>
                        <endEvent id="end1_end" name="end"/>
                        <sequenceFlow id="end1_end_line" sourceRef="end1" targetRef="end1_end"/>
                    <sequenceFlow id="begin_deaction1" sourceRef="begin" targetRef="deaction1">
                    </sequenceFlow>
                    <sequenceFlow id="prepareparam1_subsyssamethod1" sourceRef="prepareparam1" targetRef="subsyssamethod1">
                    </sequenceFlow>
                    <sequenceFlow id="gateway-prepareparam1_throwexception1" sourceRef="gateway-prepareparam1" targetRef="throwexception1">
                            <conditionExpression  language="http://www.jboss.org/drools/rule" ><![CDATA[
                                            $phonexxxadefault:Phone();
                                            $phonexxxacreateparam:Phone();
                                            $phonexxxasimplevar:Map();
                                            $phonexxxasimplenum:Map();
                                            $phonexxxaupdateparam:Phone();
                                    eval($phonexxxadefault==phonexxxadefault && $phonexxxacreateparam==phonexxxacreateparam && $phonexxxaupdateparam==phonexxxaupdateparam);
                                eval((RuleUtils.test($phonexxxadefault.get("error"),"EQ","1")))
                                ]]>
                            </conditionExpression>
                    </sequenceFlow>
                    <sequenceFlow id="deaction1_deaction2" sourceRef="deaction1" targetRef="deaction2">
                    </sequenceFlow>
                    <sequenceFlow id="subsyssamethod1_bindparam1" sourceRef="subsyssamethod1" targetRef="bindparam1">
                    </sequenceFlow>
                    <sequenceFlow id="bindparam1_end1" sourceRef="bindparam1" targetRef="end1">
                    </sequenceFlow>
                    <sequenceFlow id="deaction2_end1" sourceRef="deaction2" targetRef="end1">
                    </sequenceFlow>
                            <exclusiveGateway id="gateway-prepareparam1" name="Gateway" gatewayDirection="Diverging" default="gateway-prepareparam1_end_line"></exclusiveGateway>
                            <sequenceFlow id="prepareparam1_gateway-prepareparam1_gatewayline" sourceRef="prepareparam1" targetRef="gateway-prepareparam1"></sequenceFlow>
                            <sequenceFlow id="gateway-prepareparam1_end_line" sourceRef="gateway-prepareparam1" targetRef="gateway-prepareparam1_end"/>
                            <endEvent id="gateway-prepareparam1_end" name="end"/>
        </process>
    </definitions>