Hi Bruce
I have removed the code in 'NewSession' that related to the URL parameter.
The problem persisted and I did more testing. The situation in the code now is:
- The parameter (bparm) is not initialised
- bparm is set via: p_web.StoreValue('bparm') in the ProcessLink Procedure
- bparm is not altered in any other code
The assumption in the above code is that if the parameter exists then the session variable 'bparm' is stored via StoreValue and if it is not present then it is blank. Another assumption is that if it was present at the start of a session then the session variable remains at the initial value even when the URL changes.
Well, it looks to me as if this is not always the case. When starting the session with ?bparm=bill I included the following in ProcessLink:
stop('b4 store='&p_web.GSV('bparm'))
p_web.StoreValue('bparm') !save any URL parameter
stop('after store='&p_web.GSV('bparm'))
The result is that frequently the first STOP displays 'bill' and the second displays blank.
I say 'frequently' because the ProcessLink procedure is executed a lot and sometimes I correctly get bill/bill and sometimes bill/blank. Sometimes I get bill/blank then blank/bill.
Now, once bill becomes blank my file path names get screwed up.
Of course, as noted before, if I execute without the parameter everything is ok because the pathname is being set thru a login procedure which is not dependent on the parameter.
It looks to me as if the problem is in StoreValue which sounds crazy I know but I cannot get any more granular in my investigation.
Your sage thought appreciated as always.
Keith