Forum Replies Created
-
AuthorReplies
-
Hi Jim,
Thanks very much !
For some reason my brain did not see the TIME WINDOW option.
Will give that a try.
Tom
[]
Yes, they did go to the ERR DB. I forgot about being able to setup an alert.
I’ll try that.
Thanks!
Tom
[]
FYI…
I ran a test (CL 6.1.2.0) with an active thread using a tps proc that called a TABLE (tbllookup).
Simply changing the TABLE itself DID NOT pickup the REFRESHED TABLE for any subsequent calls to the tps proc.
Then I ran a PURGE CACHES (GUI) from the still active thread and then it DID pickup the REFRESHED TABLE.
Thanks,
Tom
[]
Does the PURGE CACHES function work to refresh a TABLE called from a tps proc ?
Thanks,
Tom
[]
April 25, 2015 at 12:59 am in reply to: Question: FRONT-END TPS TCL PROC PERFORMS 99% OF THE WORK #82180Hello All,
To be clear, re my post from 3/9/15…
Actually, I was just referring to 3 of my interfaces (out of 50+) that
I should have coded 100% TCL from the beginning, back in 2010.
All of them have a common source/destination and are manipulated similarly.
These 3 are extremely complex (in my opinion) with complicated
msg filtering, modifications, and transformations.
Plus I wanted to “externalize” a lot of the future/anticipated msg-handling to be more “table-driven”, so I do not have to dive back into the code in
6 months for a minor change.
And btw, so far it has worked out well in production (past 2 weeks) even though I’m still on an old godforsaken version (CL 5.4 w TCL 8.3).
Hoping to upgrade very soon.
Yes, I agree, it does not make sense to go 100% TCL for ALL interfaces, especially for those that can be coded/tested/implemented in a day or two with just a page-full of XLATE code and a couple of lightweight “tps procs” for filtering.
And taking advantage of the built-in development components and GUI to “hold your hand” is definitely worthwhile (even on old versions).
But for those rare “outlier cases”, PURE TCL does make a lot of sense.
And whether all that complex-code resides in a couple XLATEs or in a
single/stand-alone TCL proc does not really matter that much (IMO).
You will still need the appropriate programming staff to support it.
BUT BEWARE, NOT FOR THE FAINT-OF-HEART !
Raw coding of a complex “pure TCL” interface requires a thorough understanding of the language and CL commands.
Plus it requires LOTS of time testing/debugging.
You must run thru all the code paths to make sure it works the way you expect and has no typos.
Typos are incredibly easy to make and can be extremely subtle.
Runtime is the only time you can validate your code.
Suggestions-
Test snippets of code at a time if possible
(always copy/paste back and forth).
Use TCL command line and “mini offiline-procs” to play/test with.
Build separate TCL procs (subroutines) when you can (reusable code).
Use REGEXs wherever you can.
Test REGEXs for false positives.
If you don’t know REGEX, learn it !
Quite frankly, if you don’t know REGEXs, you probably should not be
writing a “pure TCL” interface to begin with.
Final suggestion-
Use LOTS AND LOTS AND LOTS of msgs during the testing process.
TEST TEST TEST.
You will be glad you did.
Thanks to all responders !
Tom
[]
March 9, 2015 at 6:43 pm in reply to: Question: FRONT-END TPS TCL PROC PERFORMS 99% OF THE WORK #82168Hi Richard,
Thanks for trying to share !
I do already have TCL written to handle my interface.
TPS TCL procs are so much less of a hassle and as Michael mentioned-
no variants.
Hi Michael,
Thanks for your insight !
Yes, I should have done 100% TCL long ago too but old habits die hard.
I do try to build multiple procs for later code-reuse wherever I can.
And I should be able to hack the main pretty easily for my other interfaces.
Thank you both !
Tom
[]
Jim,
Good idea!
Thank you.
At least in my version of CL if I add =x20 to every other line on the CONCAT input side, it changes it to “= “, which makes it non-obvious.
Hi Carson and Jim,
I attached the original XLATE module.
I did not have a SPACE char between the CONCAT literals.
But per your suggestion Jim, I added =x20 between the items and the result was what is expected and solves my problem !
Thanks,
Tom
Before/original (without =x20 between CONCAT items)-
a
xlateOutVals
b
xlateOutVals
concat
xlateInVals
concat
xlateOutVals
copy
xlateInVals
copy
xlateOutValsAfter (with =x20 between CONCAT items)-
a
xlateOutVals
b
xlateOutVals
concat
xlateInVals
concat
xlateOutVals
copy
xlateInVals
copy
xlateOutVals[]
-
AuthorReplies