Migration tasks for data changes and server-side-only properties
After migrating custom content, look for collection properties that are
not used on the layout but are referenced by the client side. Make sure these
properties are available to the client by adding
Context.AddClientAvailableProperties
(list of all
property names) in the
OnLayoutInitialized()
handler of the server script.
Example:
context.AddClientAvailableProperties({"CoLine", "RowPointer"})
Also look for client-side logic that updates properties or components that are not enabled from the server (for example, scripting never set .Enabled = true or the component was not enabled in the Layout Editor).
Note: A component enabled on the layout is not the same as being enabled
from within the server script. In this case, this refers to
properties/components that are not enabled from within the server script.
Make one of these changes:
- If the updates can be accomplished on the server side, then move the update logic to the server side.
- If the components are enabled from the client side, then instead enable them from the server side.
- Make a client-side update possible by setting the property/component ClientModifiable attribute to true in the server script OnItemLoaded() handler.
Examples:
parms.Item.Properties("Name").ClientModifiable = True
parms.Item.UnboundComponents("URL").ClientModifiable = True
Note: To identify a list of layouts that need to be evaluated to find the
conditions mentioned above, search through all the layouts looking for the
string “.SetValue*”.