Hi,
I have a process with three sequence activities, named "Sequence", "Sequence1", "Sequence2". The LTS translation duplicates a process identifier, corresponding to one of the sequences, and thus the parser complains.
Duplicated process name
Forum
» WS-Engineer Tool / Bug reports
» Duplicated process name
Summary:
Sequence names with numbers lead to duplicated process name
Duplicated process name
bianculld 27 Oct 2009 20:14
hi, can you attach the process you are attempting to compile?
You should have rights to attach a file under "files" or just copy and paste in the text…
I have no permissions for uploading a file. I'll paste the text…
<!-- road-assistance-lipari BPEL Process [Generated by the Eclipse BPEL Designer] -->
<!-- Date: Fri Oct 16 16:51:34 PDT 2009 -->
<bpel:process name="road-assistance-lipari"
targetNamespace="http://www.inf.usi.ch/"
suppressJoinFailure="yes"
xmlns:tns="http://www.inf.usi.ch/"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:ns1="http://www.inf.usi.ch/Artifacts" xmlns:ns="http://www.example.org/road-assistance-lipari/">
<!-- ================================================================= -->
<!-- PARTNERLINKS -->
<!-- List of services participating in this BPEL process -->
<!-- ================================================================= -->
<bpel:import namespace="http://www.inf.usi.ch/Artifacts" location="road-assistance-lipariArtifacts.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
<bpel:import namespace="http://www.example.org/road-assistance-lipari/" location="road-assistance-lipari.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
<bpel:partnerLinks>
<bpel:partnerLink name="diagnosticSystem" partnerLinkType="ns1:diagnosticSystemPLT" myRole="assistance"></bpel:partnerLink>
<bpel:partnerLink name="bank" partnerLinkType="ns1:bankLT" partnerRole="bank" myRole="bankClient"></bpel:partnerLink>
<bpel:partnerLink name="gpsDevice" partnerLinkType="ns1:gpsDeviceLT" partnerRole="GPSDeviceInterface"></bpel:partnerLink>
<bpel:partnerLink name="registry" partnerLinkType="ns1:registryLT" partnerRole="registry"></bpel:partnerLink>
<bpel:partnerLink name="reasoner" partnerLinkType="ns1:reasonerLT" partnerRole="reasoner"></bpel:partnerLink>
<bpel:partnerLink name="garage" partnerLinkType="ns1:garageLT" partnerRole="garage"></bpel:partnerLink>
<bpel:partnerLink name="rental" partnerLinkType="ns1:rentalLT" partnerRole="rental"></bpel:partnerLink>
<bpel:partnerLink name="towing" partnerLinkType="ns1:towingLT" partnerRole="towingTruck" myRole="towingClient"></bpel:partnerLink>
</bpel:partnerLinks>
<!-- ================================================================= -->
<!-- VARIABLES -->
<!-- List of messages and XML documents used within this BPEL process -->
<!-- ================================================================= -->
<bpel:variables>
<bpel:variable name="diagnosticSystemRequest" messageType="ns:startAssistanceRequest"></bpel:variable>
<bpel:variable name="bankRequest" messageType="ns:requestCardChargeRequest"></bpel:variable>
<bpel:variable name="GPSDeviceResponse" messageType="ns:requestLocationResponse"></bpel:variable>
<bpel:variable name="registryResponse" messageType="ns:findLocalServicesResponse"></bpel:variable>
<bpel:variable name="registryRequest" messageType="ns:findLocalServicesRequest"></bpel:variable>
<bpel:variable name="reasonerResponse" messageType="ns:selectServicesResponse"></bpel:variable>
<bpel:variable name="reasonerRequest" messageType="ns:selectServicesRequest"></bpel:variable>
<bpel:variable name="garageResponse" messageType="ns:orderGarageResponse"></bpel:variable>
<bpel:variable name="garageRequest" messageType="ns:orderGarageRequest"></bpel:variable>
<bpel:variable name="rentalRequest" messageType="ns:orderRentalCarRequest"></bpel:variable>
<bpel:variable name="towingRequest" messageType="ns:orderTowTruckRequest"></bpel:variable>
</bpel:variables>
<!-- ================================================================= -->
<!-- ORCHESTRATION LOGIC -->
<!-- Set of activities coordinating the flow of messages across the -->
<!-- services integrated within this business process -->
<!-- ================================================================= -->
<bpel:sequence>
<bpel:receive name="startAssistance" partnerLink="diagnosticSystem" operation="startAssistance" portType="ns:carAssistancePT" variable="diagnosticSystemRequest"></bpel:receive>
<bpel:flow name="Flow1"><bpel:sequence name="Sequence">
<bpel:invoke name="requestCardCharge" partnerLink="bank" operation="requestCardCharge" portType="ns:bankPT" inputVariable="bankRequest"></bpel:invoke>
<bpel:receive name="requestCCCallback" partnerLink="bank" operation="requestCardChargeCallBack" portType="ns:bankClientPT"></bpel:receive>
</bpel:sequence><bpel:sequence name="Sequence1">
<bpel:invoke name="requestLocation" partnerLink="GPSDevice" operation="requestLocation" portType="ns:GPSPT" outputVariable="GPSDeviceResponse"></bpel:invoke>
<bpel:assign validate="no" name="Assign">
<bpel:copy>
<bpel:from variable="GPSDeviceResponse" property="position"></bpel:from>
<bpel:to variable="registryRequest" property="location"></bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:invoke name="findLocalServices" partnerLink="registry" operation="findLocalServices" portType="ns:registryPT" inputVariable="registryRequest" outputVariable="registryResponse"></bpel:invoke>
</bpel:sequence></bpel:flow>
<bpel:assign validate="no" name="Assign1">
<bpel:copy>
<bpel:from variable="registryResponse" property="foundServices"></bpel:from>
<bpel:to variable="reasonerRequest" property="candidateServices"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from variable="diagnosticSystemRequest" property="driverPreferences"></bpel:from>
<bpel:to variable="reasonerRequest" property="driverPreferences"></bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:invoke name="selectServices" partnerLink="reasoner" operation="selectServices" portType="ns:reasonerPT" inputVariable="reasonerRequest" outputVariable="reasonerResponse"></bpel:invoke>
<bpel:assign validate="no" name="varAssign">
<bpel:copy>
<bpel:from variable="diagnosticSystemRequest" property="diagnosticData"></bpel:from>
<bpel:to variable="garageRequest" property="diagnosticData" ></bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:invoke name="orderGarage" partnerLink="garage" operation="orderGarage" portType="ns:garagePT" inputVariable="garageRequest" outputVariable="garageResponse"></bpel:invoke>
<bpel:assign validate="no" name="varAssign2">
<bpel:copy>
<bpel:from variable="garageResponse" property="position" ></bpel:from>
<bpel:to variable="towingRequest" property="location" ></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from variable="garageResponse" property="position" ></bpel:from>
<bpel:to variable="rentalRequest" property="location"></bpel:to>
</bpel:copy>
</bpel:assign>
<bpel:flow name="Flow2"><bpel:sequence name="Sequence2">
<bpel:invoke name="orderTowTruck" partnerLink="towing" operation="orderTowTruck" portType="ns:towingPT" inputVariable="towingRequest"></bpel:invoke>
<bpel:receive name="towTruckProgressNotice" partnerLink="towing"></bpel:receive>
</bpel:sequence><bpel:invoke name="orderRentalCar" partnerLink="rental" operation="orderRentalCar" portType="ns:rentalPT" inputVariable="rentalRequest"></bpel:invoke></bpel:flow>
</bpel:sequence>
</bpel:process>
Hi, not sure if this is a bug or can be classed as a characteristic.
The name of a construct (as far as I can tell) is not mandatory in BPEL, thus a "backup" unique naming strategy is adopted in WS-Engineer.
I guess, the naming strategy in WS-Engineer could be improved to avoid clashes.
For now, just avoid using the same name suffixed with a number (e.g. sequence1) and give them a nice helpful meaningful name (e.g. mainSequence).
/forum/t-192038/duplicated-process-name#post-