Codeunit 4591 "SOA Item Search"
SalesOrderAgent · Microsoft.Agent.SalesOrderAgent
Across versions
- BC23-28not present
- BC29-30present
Neighbourhood 10 connected objects and pages
SalesOrderAgent · Microsoft.Agent.SalesOrderAgent · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
Events published
OnAfterFindRecordItem(ItemFilter: Text; Which: Text; CrossColumnSearchFilter: Text; Found: Boolean; RequiredQuantity: Decimal; InUOMCode: Code[10])(internal)
Event subscriptions
- FindRecordItemFromList subscribes to Page “Item List” OnBeforeFindRecord
- FindRecordItemFromLookup subscribes to Page “Item Lookup” OnBeforeFindRecord
- FindRecordItemFromMultiItemsAvailability subscribes to Page “SOA Multi Items Availability” OnBeforeFindRecord
- LogInventoryInquiryReplied subscribes to Page “SOA Multi Items Availability” OnOpenPageEvent
- OnGetResolvedVariantCodeOnBeforeExit subscribes to Page “SOA Multi Items Availability” OnGetResolvedVariantCodeOnBeforeExit
- OnAfterCheckItemAvailable subscribes to Table “Sales Line” OnAfterCheckItemAvailable
Procedures
SetAgentTaskID(NewAgentTaskID: BigInteger)GetItemFilters(var ItemFilter: Text; SearchPrimaryKeyWords: List of [Text])RemoveVariantlessMatchesWithConcreteAlternatives(MatchingItemFilter: Text; MatchingItemVariants: Dictionary of [Text, List of [Code[10]]]; AlternativeItemVariants: Dictionary of [Text, List of [Code[10]]]): Text(internal)AddVariantsToCandidateArray(ItemFilter: Text; var CandidateArray: JsonArray)(internal)CalcProjAvailableBalanceInUOM(Item: Record Item; ProjAvailableBalance: Decimal; LineUOM: Code[10]): Decimal(internal)
Plus 20 local procedures.
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 4413 “SOA Shipment Date Mgt.” (4 calls:
OnAfterCheckItemAvailable → (object),OnAfterCheckItemAvailable → GetEarliestShipmentDate,OnAfterCheckItemAvailable → OrderPromisingSetupConfigured, …) - Codeunit 1511 “Notification Lifecycle Mgt.” (2 calls:
OnAfterCheckItemAvailable → RecallNotificationsForRecordWithAdditionalContext,OnAfterCheckItemAvailable → SendNotificationWithAdditionalContext) - Codeunit 353 “Item Availability Forms Mgt” (1 call:
IsRequiredQuantityAvailable → CalcAvailQuantities) - Codeunit 4400 “SOA Setup” (1 call:
LogTelemetryForFindItems → GetFeatureName) - Codeunit 4417 “SOA Item Selector” (1 call:
SelectBestItem → SelectBestMatchingItems) - Codeunit 4420 “SOA Task Message Reader” (1 call:
GetTaskMessageContent → GetLastIncomingMessageContent) - Codeunit 4590 “SOA Billing” (1 call:
LogInventoryInquiryReplied → LogInventoryInquiryReplied) - Codeunit 8703 “Feature Telemetry” (1 call:
LogTelemetryForFindItems → LogUsage)
Called by
- Codeunit 4304 “SOA Session Events” (1 call:
SetupItemSearchEvents → SetAgentTaskID) - Page 4410 “SOA Multi Items Availability” (1 call:
CalcAvailQuantities → CalcProjAvailableBalanceInUOM)
Recent changes
- 2026-09-15 #11383 [SOA] Fix “The Order Promising Setup does not exist.” crash when setting quote quantity (main, BC30, fix)
- 2026-09-04 #11068 SOA: Clear previous search filter (main, BC30, fix)
- 2026-08-28 #10748 [SOA] Resolve the current agent’s setup instead of an arbitrary one (main, BC30, fix)
- 2026-08-26 #10631 Integration/main to releases 29.x 31a860b5 (releases/29.x, BC29, feature)
- 2026-08-24 #9310 SOA: Open Item Availability from Agent panel (main, BC30, feature)
- 2026-08-06 #9989 [SOA] Skip Item Selector for exact items without variants (main, BC30, performance)
- 2026-08-05 #9364 Slice 622414: [SOA] [Pioneer] Enhancing Sales Order Agent with Item Variant : availability and prices (main, BC30, feature)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "SOA Item Search"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.