Saturday, June 18, 2011

What is diffrence between Profile Attributes and SharedGlobal:

Both are basically used for storing values which can be accessed from anywhere in the Application. Both are user and session specific.

a) Profile Attributes comes with Siebel Personalization. If EnablePersonalization = False in the CFG, Profile Attributes will not work. There are two types of Profile Attributes:

1) Persistent Profile Attributes
2) Dynamic Profile Attributes

Persistent Profile Attributes are mapped to the fields in the Business Component "Personalization Profile". Dynamic Profile Attributes are created at run time and are not based on any Business Component fields.

Dynamic profile attributes is generally what we use most of the time.

b) GlobalShared can not be used in browser scripts. Profile Attributes can be used in browser scripts.
c) Profile Attributes are supported in Calculated Values, Search Specifications etc but GlobalShared is not.
d) Profile Attributes are mainly used in Personlization Rules to control the Applet and View visibility 

Scripting Paths for return (CancelOperation) in browser or server script:

If you are curious about how CancelOperation works in browser and server scripts below information will make you understand better.

return (CancelOperation) in Applet PreInvoke Method Browser Script

Applet_PreInvoke -> End

return (CancelOperation) in Applet PreInvoke Method Server Script
Applet_PreInvoke -> WebApplet_PreInvoke -> Applet_Invoke -> End

return (CancelOperation) in BusComp PreInvoke Method Server Script
Applet_PreInvoke -> WebApplet_PreInvoke -> BusComp_PreInvoke -> WebApplet_Invoke -> Applet_Invoke -> End


return (CancelOperation) in BusComp Invoke Method Server Script
No Impact

return (CancelOperation) in Applet Invoke Method Server Script
No Impact

return (CancelOperation) in Applet Invoke Method Browser Script
No Impact


return (CancelOperation) on post events does not do anything. For example, if you write return (CancelOperation) in
Applet_InvokeMethod, Buscomp_InvokeMethod, BusComp_NewRecord etc, it does not make any difference to the scripting
flow.

return (CancelOperation) plays role only on Pre events like PreInvokeMethod, PreNewRecord, PreWriteRecord etc