<?xml version="1.0" encoding="UTF-8"?>
<process xmlns:bean="http://bean.boe.com/" xmlns:bpel="http://bpel.boe.com/" targetNamespace="http://bpel.boe.com/bpelj/" name="INT_WMS06.bpel">
    <partnerLinks>
        <partnerLink name="bpelj" partnerLinkType="bpel:bpelj" />
        <partnerLink name="TransactionUtil" partnerLinkType="bean:TransactionUtil" />
        <partnerLink name="ESBService" partnerLinkType="bean:ESBService" />
        <partnerLink name="EventInfoUtil" partnerLinkType="bean:EventInfoUtil" />
        <partnerLink name="CommonValidation" partnerLinkType="bean:CommonValidation" />
        <partnerLink name="MaterialServiceImpl" partnerLinkType="bean:MaterialServiceImpl" />
    </partnerLinks>
    <variables>
        <variable name="bondedFlag" messageType="java.lang.String"></variable>
        <variable name="checkState" messageType="java.lang.String"></variable>
        <variable name="desc_cn" messageType="java.lang.String"></variable>
        <variable name="desc_en" messageType="java.lang.String"></variable>
        <variable name="E" messageType="java.lang.String"></variable>
        <variable name="erpFactory" messageType="java.lang.String"></variable>
        <variable name="erpLocation" messageType="java.lang.String"></variable>
        <variable name="erpMessageItemListSize" messageType="int"></variable>
        <variable name="erpMessageItemListSizeFlag" messageType="java.lang.String"></variable>
        <variable name="ERPSender" messageType="java.lang.String"></variable>
        <variable name="error" messageType="java.lang.Exception"></variable>
        <variable name="eventComment" messageType="java.lang.String"></variable>
        <variable name="eventInfo" messageType="com.cim.idm.framework.data.EventInfo"></variable>
        <variable name="eventName" messageType="java.lang.String"></variable>
        <variable name="eventUser" messageType="java.lang.String"></variable>
        <variable name="expirationDateFlag" messageType="java.lang.String"></variable>
        <variable name="expirationDay" messageType="java.lang.String"></variable>
        <variable name="flag" messageType="java.lang.String"></variable>
        <variable name="inspectA" messageType="java.lang.String"></variable>
        <variable name="inspectP" messageType="java.lang.String"></variable>
        <variable name="inspectV" messageType="java.lang.String"></variable>
        <variable name="itemElement" messageType="org.jdom.Element"></variable>
        <variable name="itemList" messageType="java.util.List"></variable>
        <variable name="materialGroup" messageType="java.lang.String"></variable>
        <variable name="materialSpecName" messageType="java.lang.String"></variable>
        <variable name="materialType" messageType="java.lang.String"></variable>
        <variable name="materialUnit" messageType="java.lang.String"></variable>
        <variable name="maxSafetyStock" messageType="java.lang.String"></variable>
        <variable name="message" messageType="org.jdom.Document"></variable>
        <variable name="minSafetyStock" messageType="java.lang.String"></variable>
        <variable name="replySubjectName" messageType="java.lang.String" expression="getXmlData('message', '//Message/Header/ORIGINALSOURCESUBJECTNAME')" />
        <variable name="siteName" messageType="java.lang.String"></variable>
        <variable name="stockinEffectiveDay" messageType="java.lang.String"></variable>
        <variable name="The material is not on the line plan!" messageType="java.lang.String"></variable>
    </variables>
    <faultHandlers name="faultHandlers" bounds="636,-64,282,710">
        <catchAll name="catchAll" type="catchAll" bounds="12,35,247,575">
            <invoke name="TransactionUtil rollbackTransaction" type="invokebean" description="public void rollbackTransaction()" bounds="44,22,141,105" partnerLink="TransactionUtil" partnerLinkType="TransactionUtil" operation="rollbackTransaction" operationDesc="public void rollbackTransaction()" ignoreThrow="false" fork="false" />
            <invoke name="ESBService sendErrorBySender" type="invokebean" description="public void sendErrorBySender(java.lang.String replySubject, org.jdom.Document doc, java.lang.String lanuage, java.lang.Exception e, java.lang.String senderName)" bounds="45,164,141,105" partnerLink="ESBService" partnerLinkType="ESBService" operation="sendErrorBySender" operationDesc="public void sendErrorBySender(java.lang.String replySubject, org.jdom.Document doc, java.lang.String lanuage, java.lang.Exception e, java.lang.String senderName)" ignoreThrow="false" fork="false">
                <source idx="0" terminal="5,A" />
                <input variable="replySubjectName" type="java.lang.String" />
                <input variable="message" type="org.jdom.Document" />
                <input constant="" type="java.lang.String" />
                <input variable="error" type="java.lang.Exception" />
                <input constant="ERPSender" type="java.lang.String" />
            </invoke>
            <invoke name="ESBService makeErrorMessageLog" type="invokebean" description="public java.lang.String makeErrorMessageLog(org.jdom.Document doc, java.lang.Exception e, java.lang.String language)" bounds="42,310,141,105" partnerLink="ESBService" partnerLinkType="ESBService" operation="makeErrorMessageLog" operationDesc="public java.lang.String makeErrorMessageLog(org.jdom.Document doc, java.lang.Exception e, java.lang.String language)" ignoreThrow="false" fork="false">
                <source idx="0" terminal="5,A" />
                <input variable="message" type="org.jdom.Document" />
                <input variable="error" type="java.lang.Exception" />
                <input constant="" type="java.lang.String" />
            </invoke>
            <terminate name="terminate" bounds="46,457,141,60">
                <source idx="0" terminal="5,A" />
            </terminate>
        </catchAll>
    </faultHandlers>
    <note name="Note" bounds="455,895,325,-1">�?�数?�?值?厂??处?</note>
    <sequence>
        <receive name="INT_WMS06" bounds="70,30,156,81">
            <input variable="message" type="org.jdom.Document" />
        </receive>
        <expression name="expression" type="expression" bounds="78,141,141,65">
            <source idx="0" terminal="5,A" />
            <function value="setVariable('itemList', getElementList('message', '//item'))" />
        </expression>
        <expression name="expression" type="expression" bounds="78,236,141,65">
            <source idx="0" terminal="5,A" />
            <function value="setVariable('erpMessageItemListSize', getListSize('itemList'))" />
        </expression>
        <switch name="switch" bounds="132,331,33,33" type="switch">
            <source idx="0" terminal="5,A" />
            <switchstart name="switchstart" type="switchstart" bounds="93,410,110,49">
                <source idx="0" terminal="5,A" />
            </switchstart>
            <case name="case" type="case" condition="getVariable('erpMessageItemListSize') &lt; 15010" bounds="118,489,60,19">
                <source idx="0" terminal="5,A" />
                <invoke name="TransactionUtil beginTransaction" type="invokebean" description="public void beginTransaction()" bounds="63,559,158,106" partnerLink="TransactionUtil" partnerLinkType="TransactionUtil" operation="beginTransaction" operationDesc="public void beginTransaction()" ignoreThrow="false" fork="false">
                    <source idx="0" terminal="5,A" />
                </invoke>
                <invoke name="EventInfoUtil makeEventInfo" type="invokebean" description="public static com.cim.idm.framework.data.EventInfo makeEventInfo(java.lang.String eventName, java.lang.String eventUser, java.lang.String eventComment, java.lang.String reasonCodeType, java.lang.String reasonCode)" bounds="78,674,141,105" partnerLink="EventInfoUtil" partnerLinkType="EventInfoUtil" operation="makeEventInfo" operationDesc="public static com.cim.idm.framework.data.EventInfo makeEventInfo(java.lang.String eventName, java.lang.String eventUser, java.lang.String eventComment, java.lang.String reasonCodeType, java.lang.String reasonCode)" ignoreThrow="false" fork="false">
                    <source idx="0" terminal="5,A" />
                    <input constant="INT_WMS06" type="java.lang.String" />
                    <input constant="ERP" type="java.lang.String" />
                    <input constant="" type="java.lang.String" />
                    <input constant="" type="java.lang.String" />
                    <input constant="" type="java.lang.String" />
                    <output variable="eventInfo" />
                </invoke>
                <while name="while" bounds="132,809,32,32" type="2" collection="itemList" element="itemElement">
                    <source idx="0" terminal="5,A" />
                    <whilestart name="whilestart" type="whilestart" bounds="93,888,110,49">
                        <source idx="0" terminal="5,A" />
                    </whilestart>
                    <expression name="expression" type="expression" bounds="78,967,141,65">
                        <source idx="0" terminal="5,A" />
                        <function value="setVariable('materialSpecName',getXmlData('itemElement','//MATNR'))" />
                        <function value="setVariable('desc_cn',getXmlData('itemElement','//MAKTX'))" />
                        <function value="setVariable('desc_en',getXmlData('itemElement','//MAKTX_EN'))" />
                        <function value="setVariable('materialType',getXmlData('itemElement','//MTART'))" />
                        <function value="setVariable('materialGroup',getXmlData('itemElement','//MATKL'))" />
                        <function value="setVariable('materialUnit',getXmlData('itemElement','//MEINS'))" />
                        <function value="setVariable('expirationDateFlag',getXmlData('itemElement','//XCHAR'))" />
                        <function value="setVariable('expirationDay',getXmlData('itemElement','//MHDHB'))" />
                        <function value="setVariable('checkState',getXmlData('itemElement','//MSTAE'))" />
                        <function value="setVariable('stockInEffectiveDay',getXmlData('itemElement','//MHDRZ'))" />
                        <function value="setVariable('inspectA',getXmlData('itemElement','//ART'))" />
                        <function value="setVariable('inspectP',getXmlData('itemElement','//APA'))" />
                        <function value="setVariable('inspectV',getXmlData('itemElement','//AKTIV'))" />
                        <function value="setVariable('erpFactory',getXmlData('itemElement','//WERKS'))" />
                        <function value="setVariable('flag',getXmlData('itemElement','//FLAG'))" />
                        <function value="setVariable('erpLocation',getXmlData('itemElement','//LGFSB'))" />
                        <function value="setVariable('maxSafetyStock',getXmlData('itemElement','//EISBE'))" />
                        <function value="setVariable('minSafetyStock',getXmlData('itemElement','//EISLO'))" />
                        <function value="setVariable('bondedFlag',getXmlData('itemElement','//EXTWG'))" />
                    </expression>
                    <invoke name="CommonValidation getSiteName" type="invokebean" description="public java.lang.String getSiteName(java.lang.String erpFactoryName)" bounds="78,1062,141,105" partnerLink="CommonValidation" partnerLinkType="CommonValidation" operation="getSiteName" operationDesc="public java.lang.String getSiteName(java.lang.String erpFactoryName)" ignoreThrow="false" fork="false">
                        <source idx="0" terminal="5,A" />
                        <input variable="erpFactory" type="java.lang.String" />
                        <output variable="siteName" />
                        <fault faultName="catchAll" variable="error" />
                    </invoke>
                    <invoke name="MaterialServiceImpl checkChargeFlag" type="invokebean" description="public java.lang.String checkChargeFlag(com.cim.idm.framework.data.EventInfo eventInfo, java.lang.String flag, java.lang.String materialSpecName, java.lang.String erpFactoryName, java.lang.String expirationDateFlag, java.lang.String expirationDay, java.lang.String inspectA, java.lang.String inspectP, java.lang.String inspectV, java.lang.String del_flag, java.lang.String bondedFlag)" bounds="78,1197,141,105" partnerLink="MaterialServiceImpl" partnerLinkType="MaterialServiceImpl" operation="checkChargeFlag" operationDesc="public java.lang.String checkChargeFlag(com.cim.idm.framework.data.EventInfo eventInfo, java.lang.String flag, java.lang.String materialSpecName, java.lang.String erpFactoryName, java.lang.String expirationDateFlag, java.lang.String expirationDay, java.lang.String inspectA, java.lang.String inspectP, java.lang.String inspectV, java.lang.String del_flag, java.lang.String bondedFlag)" ignoreThrow="false" fork="false">
                        <source idx="0" terminal="5,A" />
                        <input variable="eventInfo" type="com.cim.idm.framework.data.EventInfo" />
                        <input variable="expirationDateFlag" type="java.lang.String" />
                        <input variable="materialSpecName" type="java.lang.String" />
                        <input variable="erpFactory" type="java.lang.String" />
                        <input variable="expirationDateFlag" type="java.lang.String" />
                        <input variable="expirationDay" type="java.lang.String" />
                        <input variable="inspectA" type="java.lang.String" />
                        <input variable="inspectP" type="java.lang.String" />
                        <input variable="inspectV" type="java.lang.String" />
                        <input variable="flag" type="java.lang.String" />
                        <input variable="bondedFlag" type="java.lang.String" />
                        <output variable="expirationDateFlag" />
                        <fault faultName="catchAll" variable="error" />
                    </invoke>
                    <invoke name="MaterialServiceImpl checkMaterialSpec" type="invokebean" description="public java.lang.String checkMaterialSpec(java.lang.String flag, java.lang.String siteName, java.lang.String materialSpecName, java.lang.String erpFactoryName)" bounds="78,1332,141,105" partnerLink="MaterialServiceImpl" partnerLinkType="MaterialServiceImpl" operation="checkMaterialSpec" operationDesc="public java.lang.String checkMaterialSpec(java.lang.String flag, java.lang.String siteName, java.lang.String materialSpecName, java.lang.String erpFactoryName)" ignoreThrow="false" fork="false">
                        <source idx="0" terminal="5,A" />
                        <input variable="flag" type="java.lang.String" />
                        <input variable="siteName" type="java.lang.String" />
                        <input variable="materialSpecName" type="java.lang.String" />
                        <input variable="erpFactory" type="java.lang.String" />
                        <output variable="flag" />
                        <fault faultName="catchAll" variable="error" />
                    </invoke>
                    <switch name="switch" bounds="132,1467,33,33" type="switch">
                        <source idx="0" terminal="5,A" />
                        <switchstart name="switchstart" type="switchstart" bounds="93,1546,110,49">
                            <source idx="0" terminal="5,A" />
                        </switchstart>
                        <case name="case" type="case" condition="getVariable('flag')='1'" bounds="113,1625,71,52">
                            <source idx="0" terminal="5,A" />
                            <invoke name="MaterialServiceImpl create" type="invokebean" description="public void create(com.cim.idm.framework.data.EventInfo eventInfo, java.lang.String siteName, java.lang.String materialSpecName, java.lang.String materialType, java.lang.String materialUnit, java.lang.String materialGroup, java.lang.String desc_cn, java.lang.String desc_en, java.lang.String erpLocation, java.lang.String expirationDateFlag, java.lang.String expirationDay, java.lang.String inspectA, java.lang.String inspectP, java.lang.String inspectV, java.lang.String erpFactory, java.lang.String maxSafetyStock, java.lang.String minSafetyStock)" bounds="78,1707,141,105" partnerLink="MaterialServiceImpl" partnerLinkType="MaterialServiceImpl" operation="create" operationDesc="public void create(com.cim.idm.framework.data.EventInfo eventInfo, java.lang.String siteName, java.lang.String materialSpecName, java.lang.String materialType, java.lang.String materialUnit, java.lang.String materialGroup, java.lang.String desc_cn, java.lang.String desc_en, java.lang.String erpLocation, java.lang.String expirationDateFlag, java.lang.String expirationDay, java.lang.String inspectA, java.lang.String inspectP, java.lang.String inspectV, java.lang.String erpFactory, java.lang.String maxSafetyStock, java.lang.String minSafetyStock)" ignoreThrow="false" fork="false">
                                <source idx="0" terminal="5,A" />
                                <input variable="eventInfo" />
                                <input variable="siteName" />
                                <input variable="materialSpecName" />
                                <input variable="materialType" />
                                <input variable="materialUnit" />
                                <input variable="materialGroup" />
                                <input variable="desc_cn" />
                                <input variable="desc_en" />
                                <input variable="erpLocation" />
                                <input variable="expirationDateFlag" />
                                <input variable="expirationDay" />
                                <input variable="inspectA" />
                                <input variable="inspectP" />
                                <input variable="inspectV" />
                                <input variable="erpFactory" />
                                <input variable="maxSafetyStock" />
                                <input variable="minSafetyStock" />
                                <input variable="bondedFlag" />
                                <fault faultName="catchAll" variable="error" />
                            </invoke>
                        </case>
                        <case name="case" type="case" condition="getVariable('flag')= '2'" bounds="317,1625,78,53">
                            <source idx="0" terminal="5,A" />
                            <invoke name="MaterialServiceImpl modify" type="invokebean" description="public void modify(com.cim.idm.framework.data.EventInfo eventInfo, java.lang.String siteName, java.lang.String materialSpecName, java.lang.String description, java.lang.String checkState, java.lang.String createUser, java.lang.String checkoutUser, java.lang.String desc_cn, java.lang.String desc_en, java.lang.String materialType, java.lang.String materialGroup, java.lang.String materialGroupDescription, java.lang.String materialUnit, java.lang.String expirationDateFlag, java.lang.String expirationDay, java.lang.String stockinEffectiveDay, java.lang.String erpLocation, java.lang.String materialWeight, java.lang.String inspectA, java.lang.String inspectP, java.lang.String inspectV, java.lang.String erpFactory, java.lang.String maxSafetyStock, java.lang.String minSafetyStock)" bounds="286,1708,141,105" partnerLink="MaterialServiceImpl" partnerLinkType="MaterialServiceImpl" operation="modify" operationDesc="public void modify(com.cim.idm.framework.data.EventInfo eventInfo, java.lang.String siteName, java.lang.String materialSpecName, java.lang.String description, java.lang.String checkState, java.lang.String createUser, java.lang.String checkoutUser, java.lang.String desc_cn, java.lang.String desc_en, java.lang.String materialType, java.lang.String materialGroup, java.lang.String materialGroupDescription, java.lang.String materialUnit, java.lang.String expirationDateFlag, java.lang.String expirationDay, java.lang.String stockinEffectiveDay, java.lang.String erpLocation, java.lang.String materialWeight, java.lang.String inspectA, java.lang.String inspectP, java.lang.String inspectV, java.lang.String erpFactory, java.lang.String maxSafetyStock, java.lang.String minSafetyStock)" ignoreThrow="false" fork="false">
                                <source idx="0" terminal="5,A" />
                                <input variable="eventInfo" />
                                <input variable="siteName" />
                                <input variable="materialSpecName" />
                                <input constant="" type="java.lang.String" />
                                <input variable="checkState" />
                                <input constant="ERP" type="java.lang.String" />
                                <input constant="" type="java.lang.String" />
                                <input variable="desc_cn" />
                                <input variable="desc_en" />
                                <input variable="materialType" />
                                <input variable="materialGroup" />
                                <input constant="" type="java.lang.String" />
                                <input variable="materialUnit" />
                                <input variable="expirationDateFlag" />
                                <input variable="expirationDay" />
                                <input variable="stockinEffectiveDay" />
                                <input variable="erpLocation" />
                                <input constant="" type="java.lang.String" />
                                <input variable="inspectA" />
                                <input variable="inspectP" />
                                <input variable="inspectV" />
                                <input variable="erpFactory" />
                                <input variable="maxSafetyStock" />
                                <input variable="minSafetyStock" />
                                <input variable="bondedFlag" />
                                <fault faultName="catchAll" variable="error" />
                            </invoke>
                        </case>
                        <case name="case" type="case" condition="getVariable('flag')= '3'" bounds="525,1625,55,56">
                            <source idx="0" terminal="5,A" />
                            <invoke name="MaterialServiceImpl reomveSpec" type="invokebean" description="public void reomveSpec(com.cim.idm.framework.data.EventInfo eventInfo, java.lang.String siteName, java.lang.String materialSpecName)" bounds="482,1711,141,105" partnerLink="MaterialServiceImpl" partnerLinkType="MaterialServiceImpl" operation="reomveSpec" operationDesc="public void reomveSpec(com.cim.idm.framework.data.EventInfo eventInfo, java.lang.String siteName, java.lang.String materialSpecName)" ignoreThrow="false" fork="false">
                                <source idx="0" terminal="5,A" />
                                <input variable="eventInfo" type="com.cim.idm.framework.data.EventInfo" />
                                <input variable="siteName" type="java.lang.String" />
                                <input variable="materialSpecName" type="java.lang.String" />
                                <fault faultName="catchAll" variable="error" />
                            </invoke>
                        </case>
                        <otherwise name="otherwise" type="otherwise" bounds="682,1625,78,54">
                            <source idx="0" terminal="5,A" />
                        </otherwise>
                        <switchend name="switchend" type="switchend" bounds="93,1836,110,49">
                            <source idx="0" terminal="5,A" />
                            <source idx="1" terminal="5,A" />
                            <source idx="2" terminal="5,A" />
                            <source idx="3" terminal="5,A" />
                        </switchend>
                    </switch>
                    <whileend name="whileend" type="whileend" bounds="93,1905,110,49">
                        <source idx="0" terminal="5,A" />
                    </whileend>
                </while>
                <invoke name="TransactionUtil commitTransaction" type="invokebean" description="public void commitTransaction()" bounds="67,1984,162,103" partnerLink="TransactionUtil" partnerLinkType="TransactionUtil" operation="commitTransaction" operationDesc="public void commitTransaction()" ignoreThrow="false" fork="false">
                    <source idx="0" terminal="5,A" />
                </invoke>
                <invoke name="ESBService sendReplyBySender" type="invokebean" description="public void sendReplyBySender(java.lang.String replySubject, org.jdom.Document doc, java.lang.String senderName)" bounds="78,2117,141,105" partnerLink="ESBService" partnerLinkType="ESBService" operation="sendReplyBySender" operationDesc="public void sendReplyBySender(java.lang.String replySubject, org.jdom.Document doc, java.lang.String senderName)" ignoreThrow="false" fork="false">
                    <source idx="0" terminal="5,A" />
                    <input variable="replySubjectName" type="java.lang.String" />
                    <input variable="message" type="org.jdom.Document" />
                    <input constant="ERPSender" type="java.lang.String" />
                    <fault faultName="catchAll" variable="error" />
                </invoke>
            </case>
            <otherwise name="otherwise" type="otherwise" bounds="347,447,88,19">
                <source idx="0" terminal="5,A" />
                <invoke name="ESBService sendReplyBySender" type="invokebean" description="public void sendReplyBySender(java.lang.String replySubject, org.jdom.Document doc, java.lang.String senderName, java.lang.String resultCode, java.lang.String resultMessage)" bounds="346,491,141,105" partnerLink="ESBService" partnerLinkType="ESBService" operation="sendReplyBySender" operationDesc="public void sendReplyBySender(java.lang.String replySubject, org.jdom.Document doc, java.lang.String senderName, java.lang.String resultCode, java.lang.String resultMessage)" ignoreThrow="false" fork="false">
                    <source idx="0" terminal="5,A" />
                    <input variable="replySubjectName" type="java.lang.String" />
                    <input variable="message" type="org.jdom.Document" />
                    <input constant="ERPSender" type="java.lang.String" />
                    <input constant="E" type="java.lang.String" />
                    <input constant="Items more than 15000 ��" type="java.lang.String" />
                </invoke>
            </otherwise>
        </switch>
    </sequence>
</process>

