BPEL 작성의 새로운 기능입니다. 아래 간단한 과정을 실현했습니다 :두 번째 수신시 BPEL 프로세스가 중지되었습니다.
수신 1 | | invoke1 | | 수신 2 | | invoke2
문제는 프로세스가 올바르게 "receive2"까지 실행되지만 내가 soapUI를 통해 호출 할 때 "receive2"와 관련된 작업이 발생하지 않는다는 것입니다. BPEL에 관한 다른 게시물을 읽었지만이 질문과 일치하는 것은 없습니다. 실제 활동 (필자는 할당 된 것 생략) 아래.
<bpel:receive name="receiveInput" partnerLink="client"
portType="tns:HealthMobility"
operation="initiate" variable="input"
createInstance="yes"/>
<bpel:invoke name="getTreatmentOptions"
partnerLink="treatmentProviderPL" operation="getTreatmentOptions"
inputVariable="getTreatmentOptionsReq" outputVariable="getTreatmentOptionsResp">
</bpel:invoke>
<bpel:receive name="bookMobility" partnerLink="client" operation="bookMobility"
variable="bookMobilityReq" portType="tns:HealthMobility"/>
<bpel:invoke name="getTripOptions" partnerLink="mobilityMultiProvidersPL"
operation="getTripOptions" inputVariable="getTripOptionsReq"
outputVariable="getTripOptionsResp"></bpel:invoke>
나는 단순히 수신 삭제하고 정적으로 호출하는 getTriOptions 필요로하는 입력 변수를 초기화하여 디버깅을하기 위해 노력했다. 이 경우 모든 것이 정상적으로 작동하므로 SOAPUI를 통해 bookMobility를 호출하는 경우에도 프로세스가 receive에서 계속 대기해야 함을 의미합니다. 내 질문은 : 왜? 내가 뭔가 빠졌어?
감사합니다.
답장을 보내 주신 고마워요. 나는 그게 뭔가라고 생각했습니다. 어쨌든 BPEL 사양의 또 다른 문장이 약간 혼란 스러웠습니다. "비즈니스 프로세스 인스턴스는 동일한 partnerLink, portType, operation 및 correlationSet (s)에 대해 둘 이상의 활동을 동시에 활성화하지 않아야합니다". 이제 내 프로세스의 두 번째 수신은 첫 번째와 동일한 파트너 역할 및 포트 유형의 동일한 partnerLink를 사용하지만 당연히 다른 작업입니다. 솔직히 나에게 최선의 방법을 진행하는 것 같습니다. 어쨌든 나는 확증 세트로 시도 할 것이다. Thanks again again –
user716658
partnerLink, portType, 조작 및 상관 세트가 고유해야한다는 제한은 동일한 이유가 있습니다. 사실 그것은 상관 관계 집합 정의가 아니라 그 인스턴스에 관한 것입니다. 제한의 목표는 항상 특정 상관 토큰과 연관된 단일 인스턴스 만 있는지 확인하는 것입니다. 먼저 로그인 메시지 (사용자 이름, 암호)를 받고, 사용자 데이터베이스에서 조회를 수행하고 세션을 만드는 간단한 프로세스를 생각해 봅시다. 세션 ID가 클라이언트로 다시 전송 된 다음 수신 또는 선택이 예를 들어 기다리고 있습니다. 주문 (다음 댓글 계속). – vanto
@vanto (계속 다음 댓글) ??? –