2017-05-11 2 views
0

Ich habe einen Flow, der SalesForce abfragt. Die Abfrage ist in einen Anreicherer eingebettet. Hier ist der Fluss.Mule ConsumerIterator Fehler ist LinkedHashMap

 <flow name="ProcessEmployee"> 
      <enricher doc:name="Message Enricher" target="# 
              [variable:IDRec]"> 
       <sfdc:query config-ref="Salesforce_Config" 
        doc:name="Check if Employee Id exists" 

      query="select id from employee where 

      deptId='#[payload[&quot;deptId&quot;]]' &amp;&amp; 
         empId='#[payload[&quot;empId&quot;]]'" /> 
      </enricher> 
      <choice> 
       <when expression="#[flowVars.IDRec.hasNext()]"> 
        <logger level="INFO" 
         message="Employee exists, #[payload]" /> 
       </when> 
       <otherwise> 
        <logger level="INFO" message="Employee does not exist"/> 
       </otherwise> 
      </choice> 
     </flow> 

Allerdings bekomme ich folgende Fehler : Die Ausführung des Ausdrucks "flowVars.IDRec.hasNext()" fehlgeschlagen.

(org.mule.api.expression.ExpressionRuntimeException). Message-Payload ist vom Typ: LinkedHashMap

   Type: org.mule.api.MessagingException 
       Code : MULE_ERROR--2 

Antwort

0

Der zurückgegebene Wert ist eine Karte. Sie können diesen Ansatz versuchen,

<choice> 
    <when expression="#[flowVars.IDRec.size() > 0]"> 
     <logger level="INFO" message="Employee exists, #[payload]" /> 
    </when> 
    <otherwise> 
     <logger level="INFO" message="Employee does not exist"/> 
    </otherwise> 
</choice>