HAMP: ASN Imported Assets Ignored Due to Duplicate Purchase Order Number on proc_po TableIssue <!-- /*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: ; } } .kb-wrapper { font-family: Lato, sans-serif; font-size: 12pt; line-height: 1.7; max-width: 100%; } .kb-wrapper p { font-family: Lato, sans-serif; font-size: 12pt; margin: 0 0 10px 0; } .kb-wrapper code { background: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; border-radius: 3px; padding: 1px 5px; font-size: 11pt; } .kb-wrapper .callout-info { background: #e6f4ff; border-left: 4px solid #52B8FF; padding: 10px 14px; margin: 14px 0; border-radius: 2px; } .kb-wrapper .callout-info p { margin: 0; font-style: italic; } When processing an Advanced Shipment Notification (ASN) import in Hardware Asset Management (HAM), imported assets are not created. The following message is logged: Asset can not be processed since PO {PO Number} is not in pending delivery or ordered status This occurs despite the intended Purchase Order having a current State of Pending Delivery. Symptoms<!-- /*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: ; } } .kb-wrapper { font-family: Lato, sans-serif; font-size: 12pt; line-height: 1.7; max-width: 100%; } .kb-wrapper ul { font-family: Lato, sans-serif; font-size: 12pt; margin: 0 0 10px 0; padding-left: 20px; } .kb-wrapper li { margin-bottom: 6px; } .kb-wrapper code { background: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; border-radius: 3px; padding: 1px 5px; font-size: 11pt; } ASN import records are skipped and assets are not created.The import log displays the message: Asset can not be processed since PO {PO Number} is not in pending delivery or ordered status.The Purchase Order referenced in the ASN import row visibly shows a State of Pending Delivery or Ordered when viewed in the platform.No errors or exceptions are thrown — the record is silently ignored. Facts<!-- /*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: ; } } .kb-wrapper { font-family: Lato, sans-serif; font-size: 12pt; line-height: 1.7; max-width: 100%; } .kb-wrapper ul { font-family: Lato, sans-serif; font-size: 12pt; margin: 0 0 10px 0; padding-left: 20px; } .kb-wrapper li { margin-bottom: 6px; } .kb-wrapper code { background: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; border-radius: 3px; padding: 1px 5px; font-size: 11pt; } This behavior originates from the ASNTransform Script Include, specifically the validatePO function.The validatePO function queries the Purchase Order [proc_po] table where the Number field matches the PO Number on the import set row, then validates whether the returned record's State is pending delivery or ordered.The query does not enforce an order or explicitly target the most recent record — it processes the first record returned.If the State does not match either expected value, the function logs the rejection message and the asset is not processed.The Number field on the Purchase Order [proc_po] table is expected to be unique, but the platform does not enforce uniqueness with a constraint by default. Release<!-- /*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: ; } } All Releases Cause<!-- /*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: ; } } .kb-wrapper { font-family: Lato, sans-serif; font-size: 12pt; line-height: 1.7; max-width: 100%; } .kb-wrapper p { font-family: Lato, sans-serif; font-size: 12pt; margin: 0 0 10px 0; } .kb-wrapper ul { font-family: Lato, sans-serif; font-size: 12pt; margin: 0 0 10px 0; padding-left: 20px; } .kb-wrapper li { margin-bottom: 6px; } .kb-wrapper code { background: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; border-radius: 3px; padding: 1px 5px; font-size: 11pt; } Two records exist on the Purchase Order [proc_po] table with the same PO Number: An older Purchase Order with a State of Canceled.A newer Purchase Order (the intended target) with a State of Pending Delivery. Because the validatePO function queries by PO Number and processes the first record returned, the older Canceled record is evaluated first. Since its State is neither pending delivery nor ordered, validation fails and the asset import is rejected — even though the correct, active Purchase Order is in a valid state. Resolution<!-- /*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: ; } } .kb-wrapper { font-family: Lato, sans-serif; font-size: 12pt; line-height: 1.7; max-width: 100%; } .kb-wrapper p { font-family: Lato, sans-serif; font-size: 12pt; margin: 0 0 10px 0; } .kb-wrapper ul { font-family: Lato, sans-serif; font-size: 12pt; margin: 0 0 10px 0; padding-left: 20px; } .kb-wrapper li { margin-bottom: 6px; } .kb-wrapper .opt-heading { font-family: Lato, sans-serif; font-size: 12pt; font-weight: bold; color: #032D42; margin: 16px 0 6px 0; } .kb-wrapper code { background: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; border-radius: 3px; padding: 1px 5px; font-size: 11pt; } .kb-wrapper .callout-info { background: #e6f4ff; border-left: 4px solid #52B8FF; padding: 10px 14px; margin: 14px 0; border-radius: 2px; } .kb-wrapper .callout-info p { margin: 0; } .kb-wrapper .steps { list-style: none; padding-left: 0; counter-reset: step-counter; } .kb-wrapper .steps > li { counter-increment: step-counter; display: block; padding-left: 38px; position: relative; margin-bottom: 10px; } .kb-wrapper .steps > li::before { content: counter(step-counter); position: absolute; left: 0; top: 2px; display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: #032D42; color: #63DF4E; font-weight: bold; font-size: 11pt; } Resolve the duplicate Purchase Order condition using one of the following options. Option 1: Remove the Duplicate Record (Recommended) Navigate to Procurement > Purchase Orders.Search for the affected PO Number.Identify the duplicate record with a State of Canceled.Confirm the Canceled record is no longer needed and has no dependent records (e.g., associated receipt lines or asset records).Delete the Canceled Purchase Order record.Re-run the ASN import and confirm the assets are now processed successfully. Option 2: Update the PO Number on the Duplicate Record If the duplicate Canceled record cannot be deleted (e.g., it is retained for audit or historical purposes): Navigate to Procurement > Purchase Orders.Open the duplicate Canceled Purchase Order record.Modify the Number field to a unique value (e.g., append a suffix such as -DUP or -CANCELED).Save the record.Re-run the ASN import and confirm the assets are now processed successfully. After resolving the immediate issue, consider implementing a business rule or unique index on the Number field of the Purchase Order [proc_po] table to prevent duplicate PO Numbers from being created in the future. Evaluate the impact on existing integrations and import processes before applying any uniqueness enforcement. Related Links<!-- /*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: ; } } .kb-wrapper { font-family: Lato, sans-serif; font-size: 12pt; line-height: 1.7; max-width: 100%; } .kb-wrapper ul { font-family: Lato, sans-serif; font-size: 12pt; margin: 0 0 10px 0; padding-left: 20px; } .kb-wrapper li { margin-bottom: 6px; } .kb-wrapper a { color: #00718F; } Import assets using an advanced shipment notificationHardware asset purchase orders