Skipped records that occur during application installation

  • Release version: Xanadu
  • Updated August 1, 2024
  • 2 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Skipped records that occur during application installation

    When installing or upgrading applications on your ServiceNow instance, some records may be skipped during local updates to global or scoped applications. Skipped records are logged in thesysupgradehistorylogand typically occur due to conflicts in metadata or deployment methods. Understanding when skipped records happen helps you manage application upgrades effectively, preserve customizations, and avoid unexpected issues.

    Show full answer Show less

    General Use Cases

    The likelihood of skipped records depends on the deployment type and application scope as follows:

    • Source Control (Scoped & Global): No skipped records; application loads cleanly. If local update XML files exist, you are prompted to stash those changes.
    • App Repository (Scoped): Skipped records are generated, but your customizations are preserved.
    • App Repository (Global): Application changes apply, with skipped records generated only when a superior claim conflict occurs.
    • Store (Scoped): Skipped records are generated; customization changes apply.
    • Source Control Customization: No skipped records; customization loads from Source Control with stash prompt if local updates exist.
    • App Repository Customization: No skipped records; customization changes apply smoothly.
    • Store/App Repository Scoped and Customization: No skipped records unless a customization updates the base application record, which triggers a skipped update log.

    Author Elective Updates

    The authorelectiveupdate folder contains metadata deletions (such as deleted tables or columns) that are tracked but not applied by default during installation. These deletions can be selectively applied or ignored, controlled by specific system properties that affect whether corresponding skipped records are generated.

    Key properties affecting author elective updates include:

    • com.glide.apps.includeonlysyschoice: Controls loading of deleted elements and updates to system choice fields (default: False).
    • com.glide.apps.includemyschema: Controls loading of deleted schema elements for customer applications (default: False, but set to True by default 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: Enables processing of author elective updates for scoped apps (default: False).
    • com.glide.apps.includeglobaldeletes: Enables processing of author elective updates for global apps (default: False).

    Claims and Conflict Resolution

    Claims apply to global applications and their customizations, enabling the system to deterministically resolve conflicts when the same file exists in multiple applications. When a superior claim is detected, skipped record logs are created to highlight the conflict, assisting in troubleshooting and upgrade management.

    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. Refer to Claim Outcomes to Review related list for more details.
    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
    Note:

    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.

    Flow chart

    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. See Claim Outcomes to Review related list for details.