The backslash just escapes the underscore so it’s not interpreted as part of the variable name. So, both are equivalent.
The error logs themselves have basically the same message as displayed in the error DB. But your suggestion to check the logs prompted me to look again.
I discovered that the message ID in the error DB and the one in the error log are different – 0.0.89125993 vs 0.0.89125996
Error log excerpt:
lastDefSendSec= 1336535927
Timed send
[xlt :xlat:ERR /0:ob_to_cbord_xlate:05/09/2012 00:00:20] [0.0.89125996] No destination list on message!
lastDefSendSec= 1336536020
So, I did some more digging…
Here’s how this particular interface works:
When a diet order comes from our Horizon Clinical system (HCI), it’s sent on to our CBORD dietary system unless it’s a discontinue action with a future effective date – something like discontinuing a regular diet at midnight so we can start NPO in advance of some procedure.
CBORD doesn’t handle future discontinue orders properly – it discontinues immediately rather than at the future effective date/time. So, we drop these future messages into a DB and then send them at that future date/time.
We have a separate, timed UPOC protocol thread that reads the “mature” messages from this DB, creates messages with the content of the deferred messages and sends them on to CBORD. This part is working correctly.
There’s also the same resend code in the “run” section of the TCL proc for this interface. It reads from the deferred messages database and sends messages when they’re “ripe”.
The problem was that I was using the same msgcreate inside the “run” part of the proc as I was using for the “time” section and the resultant messages apparently did not have the routing metadata required. So, instead, I switched it to use msgcopy to create the resent messages and now, everything’s working as expected.
Thanks to all for your suggestions.
Jeff Dinsmore
Chesapeake Regional Healthcare