2013-08-30 2 views
2

mule studio와 함께 응용 프로그램을 개발 중입니다. "선택"구성 요소를 사용해야하지만 페이로드에 포함 된 메시지 속성을 평가하지는 않지만 포함 된 변수를 평가하고 싶습니다. 그런 속성 파일 : 내가 제대로 이해한다면, 오직 메시지 페이로드가 평가 될 수 있기 때문에Mulesoft - 선택 구성 요소 사용

<choice doc:name="Choice"> 
       <when expression="${CONTROL_VARIABLE}.equals(&quot;S&quot;)"> 
        <set-variable variableName="URL_ADDRESS" value="${URL_PREPATH_VALUE}/[#payload.URL]" doc:name="Variable"/> 
       </when> 
       <otherwise> 
        <set-variable variableName="URL_ADDRESS" value="[#payload.URL]" doc:name="Variable"/> 
       </otherwise> 
      </choice> 

는 물론 그것은 작동하지 않습니다.

어떻게하면 가장 좋은 방법으로 작업을 수행 할 수 있습니까? 어떤 방식 으로든 페이로드에 모든 속성 파일 변수를 추가 했습니까?

감사합니다.

답변

2

CHOICE의 조건부 표현식은 특성 파일에서로드 된 데이터로 절대적으로 작동합니다.

다음 작품을 시도해 보면 효과가 있습니다.

<when expression="'${CONTROL_VARIABLE}' == 'S'"> 

희망이 도움이됩니다.

+0

고맙습니다. – user1820620

0

다음과 같이 속성 파일을 참조하여 선택 식 조건을 정의 할 수도 있습니다.

<when expression="#['${test}' =='1']">

-2

당신은 대신 == 연산자를 사용하는 방법과 동일 사용할 수 있습니다 당신에게 하나의 quote.You와 속성 참조를 둘러싸 실종되었다. 비교하기 전에 작은 따옴표로 속성 참조를 묶으면됩니다.

<*when expression="'${CONTROL_VARIABLE}'.equals('S')"*> 

설명 : '$ {CONTROL_VARIABLE}'와 같은 작은 따옴표와 속성 참조를 묶으면 그것은 당신이 문자열 유형을 지원하는 방법/연산자를 적용 할 수 있습니다이 후 문자열 객체로 변환됩니다.

희망이 도움이됩니다.

+1

이 대답은 c = 답안과 매우 유사합니다. 수락 된 답변으로 이전 질문에 답할 때 새롭고 유용한 것을 추가하십시오. – AdrianHHH