Process log error IF statement fetch produced multiple value

Clovertech Forums Read Only Archives Cloverleaf Cloverleaf Process log error IF statement fetch produced multiple value

  • Creator
    Topic
  • #52825
    Robert Denny
    Participant

      Any idea on what this error means? The translation has many if statements and I am wondering how we would narrow it down to just one?

      [xpm :xlt :WARN/0:softmed_xlate:11/30/2011 06:18:42] IF data fetch produced multiple values.

      [xlt :xlat:ERR /0:softmed_xlate:11/30/2011 06:18:42] [0.0.38727955] Xlate ‘softmed_centricity.es.xlt’ failed: Fetch failure on ‘{IF data fetch produced multiple values.}’

    Viewing 6 reply threads
    • Author
      Replies
      • #75589
        Elizabeth Wilson
        Participant

          Try to deactivate one IF at the time and run the test. The last time it happened to me was when the return value in IF statement had ‘&’ in it.

        • #75590
          Vince Angulo
          Participant

            I agree that it’s likely an un-escaped ampersand.

            Should that be the issue, an alternative to isolating IF statements, is to check the inbound SMAT — the regexp

          • #75591
            Tom Rioux
            Participant

              You can also get that error when you use an IF statement on a field that has multiple subfields.  

              This error may occur if you reference the field in the IF statement like “..PID(0).#5” instead of “…PID(0).#5.[0]

              Tom

            • #75592
              Robert Denny
              Participant

                Thanks Tom,

                We are still having problems with this if statement. I notice that if I move the iteration variable listed in the long if statement, then the PARSE ERROR goes away, but we stop processing the message after the first OBX segment.

                Here is a screen dump of the translation portions of this iteration an if statement that is causing the errors.

              • #75593
                Robert Denny
                Participant

                  I should have been more concise. When I move the iteration variable

                  within the if statement from

                  0(0).OBX(%s1).#5 to  0(0).OBX(0).#5(%s1)

                  Then the ERROR goes away in the process error log. But we only process the first OBX line and then it stops.

                  [xpm :xlt :WARN/0:softmed_xlate:12/30/2011 14:29:43] IF data fetch produced multiple values.

                  [xlt :xlat:ERR /0:softmed_xlate:12/30/2011 14:29:43] [0.0.45357340] Xlate ‘escript_centricity.xlt’ failed: Fetch failure on ‘{IF data fetch produced multiple values.}’

                  Any more suggestions? Is there more information I can provide such as the txt file of the translation?

                • #75594
                  Jim Kosloskey
                  Participant

                    Robert,

                    Make sure your inbound variant really has the OBX defined as a repeating segment – normally for ORM or ORU Message Types the OBX is a part of a repeating group not a repeating segment.

                    If that is the case then you will only ITERATE once.

                    Just to be sure you have multiple inbound OBX (either group or segment) and you want  all of the inbound OBX-5 fields to end up as one repeated OBX-5 field outbound.

                    email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

                  • #75595
                    Robert Denny
                    Participant

                      It is a repeating segment on the inbound variant and the outbound variant.

                  Viewing 6 reply threads
                  • The forum ‘Cloverleaf’ is closed to new topics and replies.