Skipped records that occur during application installation
Summarize
Summary of Skipped records that occur during application installation
When installing or upgrading global or scoped applications in ServiceNow, some records might be skipped due to local updates or metadata modifications. These skipped records are logged in thesysupgradehistorylogand their occurrence depends on your deployment model and system properties. Understanding how skipped records are generated helps you manage application upgrades and customizations effectively.
Show less
General Use Cases
Skipped record behavior varies by deployment type and application type:
- Source Control (Scoped and Global): No skipped records; if local update XMLs exist, you are prompted to stash changes.
- App Repository (Scoped): Skipped records occur, but customizations are preserved.
- App Repository (Global): Skipped records occur only when a superior claim conflict is detected.
- Store (Scoped): Skipped records are generated; customization changes are applied.
- Source Control Customization: No skips; prompts to stash local changes if present.
- App Repository Customization: No skipped records; customizations applied.
- Store/App Repository Scoped and Customization: Skipped records only if customization updates the base application record.
Author Elective Updates
The authorelectiveupdate folder tracks deleted metadata elements (such as schema changes) that are unloaded during packaging but not applied by default on installation. Whether these deletions are applied or skipped depends on specific system properties and processing rules:
- com.glide.apps.includeonlysyschoice: Loads only deleted elements and syschoice field updates (default False).
- com.glide.apps.includemyschema: Loads deleted schema elements for customer apps (default False, but True on new instances since Orlando release).
- com.glide.apps.forceskips: Forces creation of skipped records for all author elective updates (default False).
- com.glide.apps.includemydeletes: Processes author elective updates for scoped apps (default False).
- com.glide.apps.includeglobaldeletes: Processes author elective updates for global apps (default False).
These properties enable you to control how deletions and schema changes are applied or ignored during installation, impacting skipped record generation.
Claims
Claims govern record ownership in global applications and customizations, preventing conflicts when the same record exists in multiple applications. If a superior claim is detected, a skipped record is logged to highlight the conflict, enabling you to review and resolve upgrade issues.
Practical Implications for ServiceNow Customers
- Expect different skipped record behaviors depending on your deployment method and application type.
- Use system properties to control how deleted metadata and schema changes from author elective updates are handled during installation.
- Review skipped records and conflicts in the upgrade history logs to manage application upgrades and customizations reliably.
- Understand claims to resolve conflicts in global applications and avoid unexpected skipped records.
Some records may be skipped when you make local updates to global or scoped applications. Skipped records can occur either when you modify the metadata records in the instance to which you're deploying or when you apply an update set. Depending on the deployment model you use and the state of applicable properties, you may risk "skipped records," which are generated in the sys_upgrade_history_log. Learn what to expect on your instance when you upgrade an application using various different methods.
General use cases
Under most circumstances, these general use cases occur during application installation:
| Deployment type | Application type | Expected outcome |
|---|---|---|
| Source Control | Scoped | No skips, application loads from Source Control. If local update xml exists, you are prompted to stash those changes. |
| Source Control | Global | No skips, application loads from Source Control. If local update xml exists, you are prompted to stash those changes. |
| App Repository | Scoped | Skipped records are generated and customizations preserved. |
| App Repository | Global |
Application changes applied and skipped records are generated only when a superior claim is found. For details, see Review skipped records using related lists. |
| Store | Scoped | Skipped records are generated, customization changes applied. |
| Source Control | Customization | No skips, customization loads from Source Control. If local update xml exists, you are prompted to stash those changes. |
| App Repository | Customization | No skipped records are generated, customization changes applied. |
| Store/App Repository | Scoped and Customization | No skipped records are generated unless the customization updates the base application record. In this case, a log entry of a skipped update for the base application is created. |
Author Elective Updates
It's important to understand the purpose of the author_elective_update folder.
When ServiceNow packages your application for the repository or for committing to Source Control, additional elements (which might have been previously ignored), are unloaded to the author_elective_update folder. (These deleted elements are often referred to simply as "deletes.") When your application is installed on your own instance, the deleted files are automatically loaded from the author_elective_update folder.
For example, if you changed the schema of your application by deleting a table or a column, those files are tracked in the folder but are not applied by default. There are specific rules that apply to author elective updates that you can change, based on the properties you can set. This folder contains metadata deleted files, including schema changes, and choice set unloads that you can apply or ignore. Whether you apply or ignore them, and whether corresponding skipped records are generated, depends on the state of the following properties and processing flow:
| Property name | Behavior | Default | Used in Source Control |
|---|---|---|---|
| com.glide.apps.include_only_sys_choice | Loads only deleted elements and updates to sys_choice fields from author_elective_update | False | No |
| com.glide.apps.include_my_schema | Loads only deleted elements to schema files from author_elective_update. Applies to customer application installations and not third-party apps. | False | No |
| com.glide.apps.force_skips | Creates skipped records for all of author_elective_update | False | No |
| com.glide.apps.include_my_deletes | Process author_elective_update | False | Yes |
| com.glide.apps.include_global_deletes | Process author_elective_update for global applications | False | Yes |
When there is no property for com.glide.apps.include_my_schema, it defaults to False. However, since the Orlando release, new instances have a default entry in the table to set it as True.
Claims
Claims apply to global applications and application-customizations. In global applications, claims allow the system to choose a record deterministically should the same file be included in multiple applications. If you see a superior claim, an upgrade history log for the skipped record is created to identify a conflicting claim status. For details, see Review skipped records using related lists.