message deleted in one route, but also in another incorrectly

Homepage Clovertech Forums Cloverleaf message deleted in one route, but also in another incorrectly

  • Creator
    Topic
  • #120658
    petitPadawan
    Participant

    Hello everyone,
    I have a connector A, which sends messages to 4 connectors below B C D E,
    I have very different routes and very different xlates for each route,
    when I filter on route B, and delete the message, the same message is also deleted from route E,
    this is possible? I thought the roads were totally independent.
    thank you for your help

Viewing 9 reply threads
  • Author
    Replies
    • #120659
      Jim Kosloskey
      Participant

      How are you filtering and where is that filter placed in the configuration?

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

    • #120660
      Tim Pancost
      Participant

      Without knowing your exact set up, it’s going to be difficult to say.  If you’re using using chaining/branching, and you kill the message at the top, nothing below is going to get the message.

      If you’re using more straight-forward routing, it could depend on how you’re “deleting” the message.  If you’re simply KILL’ing it in a pre-proc on the detail, then yes, it should still go through other route details.  But if you’re ERROR’ing it, and you have “Remove all messages when any route detail fails” set on your route, nothing in that route is going to get the message.

      Think we might need some more detail in your exact configuration to really say.

      HTH,

      TIM

      Tim Pancost
      Trinity Health

    • #120661
      petitPadawan
      Participant

      the filter is in an xlate, which tests if field A01 neq XX, then delete the message with the action suppress

      my question is simple, it is possible in different routes, during a filter where one wishes to keep only a few messages, the rest is deleted, then to have as impact unintended to delete this message in other routes.

    • #120662
      Jim Kosloskey
      Participant

      The answer is it depends on your configuration. Provide more information. Maybe screen shots of the route details.

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

    • #120663
      Tim Pancost
      Participant

      Ah, young Padawan, this reminds me of an old saying, “There are no stupid questions.”  And that may very well be true.  But I will add to that with, when it comes to Cloverleaf, and particularly routing and filtering, “There are no simple questions.”  It’s ALL about the details.

      I will say that we, as a best practice, do not doing filtering with Xlates.  It’s inefficient, and could very well end up causing performance issues with high-volume interfaces.  We take the mind-set of “get rid of unwanted messages as soon as we can”.  So all filtering takes place either in the IB Data TPS of the source thread, or in the Pre Procs TPS of the route detail.  That means writing Tcl procs to do the filtering.  Another bonus of this is that you can re-use those filters on other threads that need to do similar filtering.

      By using SUPPRESS within an Xlate, you may have stumbled on a “feature” of using that action within a route, in that it behaves like the message errored in the xlate.  I do see this in the help doc for the SUPPRESS action: “SUPPRESS suppresses processing of the original input message beyond the XLT phase.”

      HTH,

      TIM

      Tim Pancost
      Trinity Health

    • #120664
      petitPadawan
      Participant

      Many thanks for your answer, so I will try not to delete in the xlate, would you have an example of tcl that would only keep messages whose field A-3-1 is equal to P

    • #120665
      Tim Pancost
      Participant

      I can provide you with a generic proc that allows you to filter based on a specific value or values within a specific HL7 segment/field/component.  It is attached.  The arguments are the segment, field, component, value(s) you’re looking for, and the disposition of the messages that contain the value(s).  So, in your instance, I don’t know what A-3-1 is, nor the “A01 neq XX” in  your earlier message, but something equal to ‘P’ in an HL7 message often refers to MSH-11(Processing ID).  In this case, your argument list would look like:

      {SEGMENT MSH}
      {FIELD 11}
      {COMPONENT 0}
      {VALUES {P}}
      {DISPOSITION CONTINUE}

      This will CONTINUE any message that has a ‘P’ for the Processing ID, rather than, say ‘T’ or ‘D’.

      Alternately, if you wanted to only specifically KILL the other two, your argument list would look like:

      {SEGMENT MSH}
      {FIELD 11}
      {COMPONENT 0}
      {VALUES {T D}}
      {DISPOSITION KILL}

      HTH,

      TIM

      Attachments:
      You must be logged in to view attached files.

      Tim Pancost
      Trinity Health

    • #120667
      petitPadawan
      Participant

      The solution is interesting,
      do you have an example of a tcl script that is able to handle these arguments, and allow to continue or kill the message

    • #120672
      Tim Pancost
      Participant

      It is attached to my previous post, tps_genContinueKill.tcl.

      Tim Pancost
      Trinity Health

    • #120693
      petitPadawan
      Participant

      Thanks for your help.

Viewing 9 reply threads
  • You must be logged in to reply to this topic.

Forum Statistics

Registered Users
5,117
Forums
28
Topics
9,292
Replies
34,435
Topic Tags
286
Empty Topic Tags
10