In Siebel (7.8 in case it makes any difference), what's the scope of a profile attribute set via TheApplication().SetProfileAttr("name", "value");
?
I always have seen them as if they were session variables. However, on second thought, the user profile should depend only on the current user, not on the session. So if somebody accesses the Siebel application from two different computers using the same login, and executes an action which sets a profile attribute... would that attribute be readable from the other computer aswell?
I haven't found anything in the official documentation, and googling about it shows contradictory information. Most of the resources say that they're equivalent to session variables...:
Siebel Unleashed: Siebel server recognises every unique user through session id [...] Profile Attributes are variables that can hold any value during the session of the user
Another blog: Profile attributes are set at the session level
An answer in this thread: getsharedglobal [...] can be viewed as a global attribute set at application level. [...] profile attributes are user and session specific so if the same user logins at 2 place he will be having his own set of profile attributes at each place
...but there are others which imply that actually, attributes are only unique per user, not per session:
Another answer in the same thread: The main difference about [SetProfileAttr and SetSharedGlobal] is that [...] SetSharedGlobal [...] is unique to the user and the user's associated session.
So, which one is it? Are they session variables? Or are they bound only to the user, and shared across all the live sessions from the same user?
I have no code to demonstrate this, but from personal experience, a profile attribute is unique to a user's session. Think of it as a global variable which is alive until the user logs out. If a user logins twice to siebel, those are two different siebel sessions. There is no way for siebel users to transfer profile attributes across logins/sessions. Every task run asynchronously on the server will run as a separate SADMIN login, but they will have their own copies of profile attributes. This means that developers can use/set profile attributes without fear of it affecting any other user logged in.