How Asset Attestation scheduling works in Hardware Asset Management?Summary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } SYMPTOMS: - Asset Attestation scheduled runs include all assigned assets on every execution, including assets previously confirmed by the user - Users receive attestation notifications for assets they have already attested in a prior run - Attestation schedule re-prompts for the full hardware portfolio each time it runs [-] Cause:Asset Attestation is designed as a periodic full-portfolio audit. Each scheduled run re-evaluates all in-scope assets regardless of prior attestation state. The script uses two layers:1. A scheduled job runs daily and checks the sn_itam_common_attestation_schedule table for schedule records whose next_run date has arrived. 2. Each schedule record defines a user filter, model categories, and a frequency. When a schedule is due, the system creates a new attestation run for all matching users and all their assigned assets matching the model category criteria. The method that builds the asset list (AssetAttestationUtils.processAttestationCreation) queries alm_asset filtered on:- assigned_to matching the schedule's user filter - model_category matching the schedule's categories - sys_class_name = alm_hardware (when HAMP is active) This query does not filter on prior attestation state. The fields last_attestation_date and last_attestation_state on alm_asset which are write-only, populated when a user responds but never read when building the next run's asset list. Each scheduled run: - Creates a new attestation record (state = in_progress) - Creates new m2m records for ALL in-scope assets (status = open) - Closes any prior open m2m records as closed_incomplete - Sends notification to each user with open items Assets excluded from a run: - Assets whose parent is a bundle or pallet - Assets with an open remediation task - Assets with excluded_from_ham = true There is no incremental mode, no delta mode, and no attestation cycle concept that prevents re-prompting within a window.