A directed substitution from one item to another, optionally effective-dated, used both automatically and as a suggestion. ItemAlternateService.SetAlternateItem runs on order, invoice, purchase-order and service-order lines: if the line explicitly names the alternate it swaps the line onto the alternate item and records the original in originalItemId, and independently it force-swaps any line whose item has an alternate of type Superseded that is currently within its effective window. The Sense alternate-item signal provider separately suggests alternates for short-stocked lines, ranking by the quantityAvailable held on the alternate row itself.
Fields
| Field | Label | Type | Required | What it does |
AlternateItemId | Alternate Item | Lookup → Item | | |
AlternateItemName | AlternateItemName | LongMultiLineText | | A stored display name for the alternate, preferred over the alternate item's own label when a suggestion is worded; it is not kept in step with the alternate item automatically. |
AlternateType | Alternate Type | PickList | | Decides whether the substitution is automatic: only the exact value 'Superseded' makes the save pipeline swap a document line onto the alternate item. The Sense alternate-item nudge additionally singles out the value 'Refurbished', which is not one of the seeded picklist values. Values: Superseded, Optional/Interchangeable. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
EffectiveFromDate | Effective From Date | Date | | Start of the window in which a superseded alternate is auto-applied to document lines; an empty value means the alternate is effective from the outset. |
EffectiveTillDate | Effective Till Date | Date | | A second end-of-window column kept for compatibility: automatic substitution falls back to it only when the effective-to date is empty, and the alternate-suggestion nudge ignores it entirely. Prefer the effective-to date. |
EffectiveToDate | EffectiveToDate | DateAndTime | | End of the alternate's effective window; empty means open-ended. This is the field the alternate-suggestion nudge filters on. |
ExternalId | External | Text | | |
Id | Id | Guid | Yes | |
ItemId | Item | Lookup → Item | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text, unique | | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
QuantityAvailable | Available | Decimal (calculated) | | A denormalized availability figure held on the substitution row, used to decide and rank which alternate to suggest for a short-stocked line. No code path writes or refreshes it, so it has to be maintained by import or by hand. |
QuantityInHand | In Hand | Decimal (calculated) | | |
RecordTypeId | Record Type | Guid, hidden | | |
UIProps | UI Props | Text | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
BulkDelete | Delete | Delete | Delete the selected records. |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete |
DeleteInList | Delete | Delete | Delete in a list page |
Edit | Edit | Edit | Edit |
EditEntity | Edit | Edit | EditEntity |
EditInLine | Edit | EditInline | Edit in line |
EditInList | Edit | EditInline | Edit in List Header |
New | New | New | New |