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*”.