OK, thanks to everyone who contributed! I found the issue and 99% blame is mine while 1% is PowerServer's, so I will focus on the 1%.
When I tried to see the difference between my app and the little test app I made, I created a second transaction object in my main app and tried to use it for testing. I had forgotten to add the transaction object to my PowerServer profile and I got a meaningful message from PS telling me that 'inv_tr_mssl' isn't defined. That was awesome!
That made me look more closely at my application's calls and I found 2 things PS didn't like:
- SQLCA.DYNAMIC
- lnv_tr.DYNAMIC (I did not have lnv_tr defined in my profile)
My application supports both Oracle and SQL Server, so we instantiate n_tr as SQLCA at startup, creating an Oracle OR MSSQL descendent of n_tr, as appropriate. Therefore, all of our RPC calls are DYNAMIC.
In my little test app, I do call it as DYNAMIC, but since my SQLCA variable is only set to ONE transaction object, everything works just fine.
Once I changed my main application's RPC call to be static and I hard-coded my SQL Server transaction class into the SQLCA variable… everything worked.
So, the aforementioned was all me missing the nuances of DYNAMIC, but I wonder why PS didn't yell at me for not having lnv_tr defined. Regardless, the key was statically defining my SQL Server transaction class as SQLCA and doing only static calls to my RPC.
Thanks all for your input. It all helped me look in the right places. By the time I get this all working I should be able to get a CPD (Certified PowerServer Developer) Pro certificate.
Thanks, again!!!!!!