Loading

Update PSM Pilot feature validation leading to error - INVALID_CROSS_REFERENCE_KEY

Veröffentlichungsdatum: Jul 6, 2026
Beschreibung

When a Standard Price Book Entry with ProductSellingModel = X is updated to ProductSellingModel = Y, any existing custom Price Book Entries that still reference ProductSellingModel = X become orphaned. The platform's validation logic requires a Standard Price Book Entry with a matching PSM value before allowing updates to custom Price Book Entries. Because no Standard Price Book Entry with PSM = X exists after the update, any attempt to modify those orphaned custom Price Book Entries fails with INVALID_CROSS_REFERENCE_KEY.

Affected configuration:

- Pilot permission enabled: Salesforce Pricing: Update PSM Pilot Feature (PricingUpdtPSMPilot)

- Object: PricebookEntry (Standard and custom Price Books)

- Symptom: Updates to custom Price Book Entry records fail with INVALID_CROSS_REFERENCE_KEY after the PSM value on the corresponding Standard Price Book Entry has been changed

This permission is provided exclusively by Salesforce Product to assist customers migrating existing pricing records to Revenue Cloud. It is a pilot permission with limited support, must be tested in a sandbox before production use, and must be reverted once migration is complete.

Lösung

The following options restore a valid Standard Price Book Entry reference so orphaned custom Price Book Entries can be updated successfully. Choose the option that best fits your record volume and migration approach.

 

Option 1: Recreate the Matching Standard Price Book Entry

Use this option when you need to update orphaned custom Price Book Entries without deleting them.

1. Identify the PSM value (for example, PSM = X) that orphaned custom Price Book Entries still reference.

2. Create a new Standard Price Book Entry with ProductSellingModel = X to restore the required reference.

3. Retry the update on the affected custom Price Book Entries. Validation will now find a matching Standard Price Book Entry and allow the update to proceed.

 

Option 2: Delete and Recreate Affected Custom Price Book Entries

Use this option when orphaned records are no longer needed in their current state.

1. Export and note the field values of all affected custom Price Book Entries before deletion.

2. Delete the orphaned custom Price Book Entries.

3. Confirm the Standard Price Book Entry has been updated to the target PSM value.

4. Recreate the custom Price Book Entries referencing the updated PSM value.

 

Option 3: Apex Bulk Script for Large Record Volumes

Use this option when a high volume of orphaned records makes manual correction impractical.

1. Write an Apex class that queries all custom Price Book Entries where ProductSellingModel does not match any existing Standard Price Book Entry PSM value.

2. For each orphaned record, apply the corrected PSM value or handle deletion and recreation as required by your migration design.

3. Execute updates using Bulk API to stay within governor limits and handle large data volumes efficiently.

 

Example query to identify orphaned records:

SELECT Id, ProductSellingModelId, Pricebook2Id

FROM PricebookEntry

WHERE Pricebook2.IsStandard = false

AND ProductSellingModelId NOT IN (

    SELECT ProductSellingModelId

    FROM PricebookEntry

    WHERE Pricebook2.IsStandard = true

)

This query returns all custom Price Book Entries whose PSM value no longer has a corresponding Standard Price Book Entry, confirming which records are orphaned and need remediation.

 

General Guidance for PricingUpdtPSMPilot Permission:

- This permission is enabled by Salesforce PM only to support migration of existing records to Revenue Cloud.

- Because it is a pilot permission, support for issues encountered during its use is limited.

- Thoroughly test all migration steps in a sandbox environment before executing in production.

- Revert the permission immediately after migration is complete.

Nummer des Knowledge-Artikels

005388487

 
Laden
Salesforce Help | Article