Rickey, I think maybe you’re not setting the dispList correctly. I’m pretty sure you need to CONTINUE messages you want to keep processing. Also, I lappend the dispList rather than set it. Might or might not be necessary.
I’m not an expert on tcl syntax nor on the engine. I know there are often many ways to accomplish the same thing. But I have a message filter that works for me. Here is how I do it:
Edit — I left out some lines! The code below should work for you.
set msg [msgget $mh]
set Separator_1 [cindex $msg 3]
set Separator_2 [cindex $msg 4]
set splitmsg [split $msg r]
set mshseg [lindex $splitmsg 0]
set fields [split $mshseg $Separator_1]
set msgtype [lindex $fields 8]
# Substitute underscore for subfield separator in message type
set MsgType [split $msgtype $Separator_2]
set msg_type “”
append msg_type [lindex $MsgType 0]_[lindex $MsgType 1]
if {$msg_type == “ADT_A38”} {