Any ideas would be awesome. thanks for your time. code below as well.
0:TEST] Tcl error:
msgId = message0
proc = ‘tpsFixAmpersand’
args = ”
result = ‘wrong # args: should be “switch ?switches? string {pattern body … ?default body?}”‘
errorInfo: ‘
wrong # args: should be “switch ?switches? string {pattern body … ?default body?}”
while executing
“switch -exact — $nextchar
“
(procedure “tpsFixAmpersand” line 60)
invoked from within
“tpsFixAmpersand {MSGID message0} {CONTEXT sms_ib_data} {ARGS {}} {MODE run} {VERSION 3.0}”‘
#######################################################################################
#######################################################################################
#######################################################################################
#
# Name: tpsFixAmpersand.tps
# Purpose: This procedure fixes messages with the special character “&” in them.
# This was needed because messages from affinity going to INPC had the
# “&” in the message and it would mess up their feed.
# The messages will now be fixed.
# If the “&” is the last character in a field or subfield, it is deleted.
# If it is in the middle of the field, it is replaced with a “-”
#
#
# UPoC type: tps
# Args: tps keyedlist containing the following keys:
# MODE run mode (”start”, “run” or “time”)
# MSGID message handle
# ARGS user-supplied arguments:
#
# Returns: tps disposition list:
#
# John Zalesak 01-08-2009
# Created
#
# John Zalesak 01-15-2009
# Modified message in engine log so we can see it better
#
#
#######################################################################################
#######################################################################################
#######################################################################################
proc tpsFixAmpersand { args } {
#######################################################################################
# Setup some globals used
#######################################################################################
global HciConnName
global HciRoot
global HciSite
#######################################################################################
# Get the Connection Name for Error/Debug Messages
#######################################################################################
set myname “$HciSite/$HciConnName/[lindex [info level 1] 0]”
#######################################################################################
# Initialize Variables Used
#######################################################################################
set dispList {} ;# Disposition List Returned to Engine
set badchar & ;# Bad Character to Look for
set charloc 0 ;# Location of offending character
set nextloc 0 ;# Location of Char after bad char
set newchar “” ;# Replace bad char with this
#######################################################################################
# Load in the arguments we need that were passed from the caller
#######################################################################################
keylget args MODE mode ;# The mode the engine called from
#######################################################################################
# We only want to take action if called from the run mode
#######################################################################################
switch -exact — $mode {
start { }
run {
set mh [keylget args MSGID] ;# Get message handle from args
set dispList [list “CONTINUE $mh”] ;# Initialize to good message
set msg [msgget $mh] ;# Get a copy of the message
set fldSep [string index $msg 3] ;# Field Seperator
set subSep [string index $msg 4] ;# Sub-Field Seperator
set repSep [string index $msg 5] ;# Repeating Field Seperator
#######################################################################################
# Search for “&” and if found correct
# Start at location 8 to get past field seperator definitions
#######################################################################################
while {[set charloc [string first $badchar $msg 8]] != -1} {
set nextchar [string index $msg [expr $charloc + 1]]
switch -exact — $nextchar
$fldSep –
$subSep –
$repSep –
“r” {set newchar “”}
default {set newchar “+”}
# echo “:WARN ”
# echo “:WARN ——————————————————————-”
# echo “:WARN $badchar character found going to infinity at location $charloc”
# echo “:WARN Here is $myname”
# echo “:WARN Now is [clock format [clock scan now] -format “%D – %T”]”
# echo “:WARN Original Message shown below”
# echo $msg
# echo “:WARN ——————————————————————-”
# echo “:WARN ”
set msg [string replace $msg $charloc $charloc $newchar]
}
msgset $mh $msg
}
time { }
shutdown { }
} ;# End Switch
return $dispList
} ;# End Proc