Hi Bruce,
When publishing a Custom Object, Database Objects are generated from the configuration meta data and deployed to the database.
The following happens when you publish:
- Database Objects are generated and deployed to the database.
- Privileged system users are granted access to the database objects.
- Dictionary Cache is refreshed.
- A Presentation Object is created for the new objects.
- The Presentation Object is granted to all necessary roles, i.e., all roles that are granted any of the views belonging to the Logical Unit that is extended.
But in case if you want to unpublish, all the deployed database objects except for the table will be removed. Specially unpublish removes the view and package from the server, this means that if other Custom Objects is referencing any of the attributes, they will not work anymore and possibly throw errors. Simply if you try unpublishing and publishing a custom object, which is related to a form on which an end user is used to work, this would probably felt like virtual system down, because it errors could start to throw. On the other hand, end users may have to wait until the process of publish is completed. If we choose to stop unpublishing, we can not guarantee the consequences.
Therefore at any stage, if you wanted to unpublish and publish the custom object, the recommendation is to carry out during a maintenance window.
So in your case, if you are going to change a custom object, and as a result of it, if it is required to unpublish and publish, it’s better to take the safe method by doing during a non peak time.