Codeunit 5402 "Unit of Measure Management"
Base Application · Microsoft.Foundation.UOM
Across versions
- BC23-24present
- BC253 procedures added
- BC261 procedures changed
- BC27-30unchanged
Neighbourhood 145 connected objects and pages
Base Application · Microsoft.Foundation.UOM · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| SingleInstance | true |
Events published
OnAfterCalcBaseQtyPerUnitOfMeasure(ItemNo: Code[20]; VariantCode: Code[10]; UOMCode: Code[10]; QtyBase: Decimal; QtyPerUOM: Decimal; var QtyRounded: Decimal)(integration)OnAfterCalcQtyFromBasePerUnitOfMeasure(ItemNo: Code[20]; VariantCode: Code[10]; UOMCode: Code[10]; QtyBase: Decimal; QtyPerUOM: Decimal; var QtyRounded: Decimal)(integration)OnAfterRoundToItemRndPrecision(Qty: Decimal; ItemRndPrecision: Decimal; var Result: Decimal)(integration)OnBeforeGetQtyPerUnitOfMeasure(Item: Record Item; UnitOfMeasureCode: Code[10]; var QtyPerUnitOfMeasure: Decimal; var IsHandled: Boolean)(integration)OnBeforeGetResQtyPerUnitOfMeasure(Resource: Record Resource; ResUnitOfMeasureCode: Code[10]; var QtyPerUnitOfMeasure: Decimal; var IsHandled: Boolean)(integration)OnBeforeCubageRndPrecision(var RoundingPrecision: Decimal)(integration)OnBeforeQtyRndPrecision(var RoundingPrecision: Decimal)(integration)OnBeforeTimeRndPrecision(var RoundingPrecision: Decimal)(integration)OnBeforeWeightRndPrecision(var RoundingPrecision: Decimal)(integration)
Event subscriptions
- ClearItemUnitOfMeasureRec subscribes to Table “Item Unit of Measure” OnBeforeModifyEvent
- ClearResourceUnitOfMeasureRec subscribes to Table “Resource Unit of Measure” OnBeforeModifyEvent
Procedures
GetQtyPerUnitOfMeasure(Item: Record Item; UnitOfMeasureCode: Code[10]): DecimalGetQtyRoundingPrecision(Item: Record Item; UnitOfMeasureCode: Code[10]): DecimalGetResQtyPerUnitOfMeasure(Resource: Record Resource; UnitOfMeasureCode: Code[10]): DecimalCalcBaseQty(Qty: Decimal; QtyPerUOM: Decimal): DecimalCalcBaseQty(ItemNo: Code[20]; VariantCode: Code[10]; UOMCode: Code[10]; QtyBase: Decimal; QtyPerUOM: Decimal): DecimalCalcBaseQty(ItemNo: Code[20]; VariantCode: Code[10]; UOMCode: Code[10]; QtyBase: Decimal; QtyPerUOM: Decimal; QtyRndingPrecision: Decimal): DecimalCalcBaseQty(ItemNo: Code[20]; VariantCode: Code[10]; UOMCode: Code[10]; QtyBase: Decimal; QtyPerUOM: Decimal; QtyRndingPrecision: Decimal; BasedOnField: Text; FromFieldName: Text; ToFieldName: Text): DecimalCalcQtyFromBase(QtyBase: Decimal; QtyPerUOM: Decimal): DecimalCalcQtyFromBase(ItemNo: Code[20]; VariantCode: Code[10]; UOMCode: Code[10]; QtyBase: Decimal; QtyPerUOM: Decimal): DecimalRoundQty(Qty: Decimal): Decimal+ BC25RoundQty(Qty: Decimal; QtyRndingPrecision: Decimal): Decimal+ BC25RoundQty(Qty: Decimal; QtyRndingPrecision: Decimal; Direction: Text): Decimal+ BC25RoundAndValidateQty(Qty: Decimal; QtyRndingPrecision: Decimal; FieldName: Text): DecimalValidateQtyIsBalanced(TotalQty: Decimal; TotalQtyBase: Decimal; QtyToHandle: Decimal; QtyToHandleBase: Decimal; QtyHandled: Decimal; QtyHandledBase: Decimal)Δ BC26RoundToItemRndPrecision(Qty: Decimal; ItemRndPrecision: Decimal): DecimalQtyRndPrecision(): DecimalCubageRndPrecision(): DecimalTimeRndPrecision(): DecimalWeightRndPrecision(): Decimal
Triggers
OnRun
Called by
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.
- Table 39 “Purchase Line” (10 calls:
AssignFieldsForQtyPerUOM → GetQtyRoundingPrecision,AssignFieldsForQtyPerUOM → QtyRndPrecision,CalcBaseQty → CalcBaseQty, …) - Table 7302 “Bin Content” (9 calls:
CalcQtyAvailToPutAway → QtyRndPrecision,CalcQtyAvailToTakeUOM → GetQtyPerUnitOfMeasure,CalcQtyAvailToTakeUOM → QtyRndPrecision, …) - Table 901 “Assembly Line” (9 calls:
CalcAvailToAssemble → QtyRndPrecision,CalcBaseQty → CalcBaseQty,CalcBOMQuantity → RoundToItemRndPrecision, …) - Codeunit 6500 “Item Tracking Management” (8 calls:
AdjustQuantityRounding → QtyRndPrecision,CheckQtyToInvoiceMatchItemTracking → QtyRndPrecision,CheckWhseItemTrkg → QtyRndPrecision, …) - Codeunit 7312 “Create Pick” (8 calls:
CheckReservation → QtyRndPrecision,CreateBreakBulkTempLines → QtyRndPrecision,CreateWhseDocPlaceLine → RoundQty, …) - Codeunit 6620 “Copy Document Mgt.” (7 calls:
AddRemainingQtyToPurchItemCharge → QtyRndPrecision,AddRemainingQtyToSalesItemCharge → QtyRndPrecision,ConvertFromBase → QtyRndPrecision, …) - Table 5407 “Prod. Order Component” (7 calls:
CalcBaseQty → CalcBaseQty,CalculateQuantity → QtyRndPrecision,CopyFromPlanningComp → QtyRndPrecision, …) - Table 5870 “BOM Buffer” (7 calls:
CalcOvhdCost → GetQtyPerUnitOfMeasure,GetItemCosts → GetQtyPerUnitOfMeasure,GetItemUnitCost → GetQtyPerUnitOfMeasure, …) - Codeunit 5812 “Calculate Standard Cost” (6 calls:
CalcAssemblyItem → GetQtyPerUnitOfMeasure,CalcAssemblyItem → GetResQtyPerUnitOfMeasure,CalcProdBOMCost → GetQtyPerUnitOfMeasure, …) - Codeunit 5870 “Calculate BOM Tree” (6 calls:
BinarySearchOptimal → QtyRndPrecision,CalcAvailability → QtyRndPrecision,GenerateBOMCompSubTree → GetQtyPerUnitOfMeasure, …) - Table 5902 “Service Line” (6 calls:
CalcBaseQty → CalcBaseQty,CheckApplFromItemLedgEntry → QtyRndPrecision,GetUnitCost → GetQtyPerUnitOfMeasure, …) - Codeunit 1019 “Job-Explode BOM” (5 calls:
AssingJobPlannigLineDataFromBOMComp → GetQtyPerUnitOfMeasure,ValidateQtyAndUoMForDifferentTypes → GetQtyPerUnitOfMeasure,ValidateQtyAndUoMForDifferentTypes → GetQtyRoundingPrecision, …) - Codeunit 63 “Sales-Explode BOM” (5 calls:
ExplodeBOMCompLines → GetQtyPerUnitOfMeasure,ExplodeBOMCompLines → GetResQtyPerUnitOfMeasure,ExplodeBOMCompLines → QtyRndPrecision, …) - Codeunit 80 “Sales-Post” (5 calls:
AdjustQtyToAssignForSalesLine → QtyRndPrecision,RoundAmount → CubageRndPrecision,RoundAmount → WeightRndPrecision, …) - Codeunit 900 “Assembly-Post” (5 calls:
PostCorrectionItemJnLine → QtyRndPrecision,RecreateAsmOrderWithUndo → QtyRndPrecision,RoundQuantity → QtyRndPrecision, …) - Page 5510 “Production Journal” (5 calls:
CalcActualConsumpQty → QtyRndPrecision,CalcActualConsumpQty → RoundToItemRndPrecision,GetActTimeAndQtyBase → QtyRndPrecision, …) - Table 246 “Requisition Line” (5 calls:
AssignItemUnitCostAndQuantitiesForUOM → GetQtyPerUnitOfMeasure,AssignItemUnitCostAndQuantitiesForUOM → GetQtyRoundingPrecision,AssignItemUnitCostAndQuantitiesForUOM → QtyRndPrecision, …) - Codeunit 90 “Purch.-Post” (4 calls:
AdjustQtyToAssignForPurchLine → QtyRndPrecision,RoundAmount → CubageRndPrecision,RoundAmount → WeightRndPrecision, …) - Codeunit 912 “Calculate Assembly Cost” (4 calls:
CalcAssemblyItem → GetQtyPerUnitOfMeasure,CalcAssemblyItem → GetResQtyPerUnitOfMeasure,DoCalcAssemblyItemPrice → GetQtyPerUnitOfMeasure, …) - Table 7321 “Warehouse Shipment Line” (4 calls:
CalcBaseQty → CalcBaseQty,CalcQty → RoundQty,SetQuantityBase → CalcBaseQty, …) - Codeunit 1026 “Job Link Usage” (3 calls:
CreateJobPlanningLine → CalcQtyFromBase,HandleMatchUsageSpecifiedJobPlanningLine → CalcQtyFromBase,MatchUsageUnspecified → CalcQtyFromBase) - Codeunit 20441 “Qlty. Disp. Purchase Return” (3 calls:
CreatePurchaseReturnOrderLine → CalcQtyFromBase,CreatePurchaseReturnOrderLine → GetQtyPerUnitOfMeasure,FindPurchaseReceiptLineForInspection → CalcBaseQty) - Codeunit 22 “Item Jnl.-Post Line” (3 calls:
SetupSplitJnlLine → CalcBaseQty,SetupSplitJnlLine → CalcQtyFromBase,SetupSplitJnlLine → RoundQty) - Codeunit 5407 “Prod. Order Status Management” (3 calls:
InitItemJnlLineFromProdOrderComp → QtyRndPrecision,RoundQtyToPost → RoundToItemRndPrecision,SetTimeAndQuantityOmItemJnlLine → TimeRndPrecision) - Codeunit 5510 “Production Journal Mgt” (3 calls:
ConsumptionItemJnlLineValidateQuantity → QtyRndPrecision,ConsumptionItemJnlLineValidateQuantity → RoundToItemRndPrecision,InsertOutputItemJnlLine → RoundQty) - Codeunit 5805 “Item Charge Assgnt. (Purch.)” (3 calls:
AssignByAmount → QtyRndPrecision,AssignEqually → QtyRndPrecision,AssignPurchItemCharge → QtyRndPrecision) - Codeunit 5807 “Item Charge Assgnt. (Sales)” (3 calls:
AssignByAmount → QtyRndPrecision,AssignEqually → QtyRndPrecision,AssignSalesItemCharge → QtyRndPrecision) - Codeunit 73 “Purch.-Explode BOM” (3 calls:
ExplodeBOMCompLines → GetQtyPerUnitOfMeasure,ExplodeBOMCompLines → GetResQtyPerUnitOfMeasure,ExplodeBOMCompLines → QtyRndPrecision) - Codeunit 7307 “Whse.-Activity-Register” (3 calls:
CheckBinContentQtyToHandle → GetQtyPerUnitOfMeasure,CheckBinContentQtyToHandle → QtyRndPrecision,CheckSourceDocumentForAvailableQty → CalcBaseQty) - Codeunit 99000773 “Calculate Prod. Order” (3 calls:
Calculate → GetQtyPerUnitOfMeasure,TransferBOMProcessItem → GetQtyRoundingPrecision,TransferBOMProcessItem → QtyRndPrecision) - Codeunit 99000774 “Calculate Routing Line” (3 calls:
CalcCostInclSetup → QtyRndPrecision,CalculateRoutingLine → QtyRndPrecision,ReplanRoutingLine → QtyRndPrecision) - Codeunit 99000781 “Mfg. Calculate BOM Tree” (3 calls:
GenerateProdCompSubTree → GetQtyPerUnitOfMeasure,GenerateProdCompSubTree → QtyRndPrecision,GetQtyPerBOMHeaderUnitOfMeasure → GetQtyPerUnitOfMeasure) - Codeunit 99000822 “Mfg. Item Jnl.-Post Line” (3 calls:
PostConsumption → QtyRndPrecision,PostFlushedConsumption → QtyRndPrecision,PostFlushedConsumption → RoundToItemRndPrecision) - Codeunit 99000845 “Reservation Management” (3 calls:
AutoReserveItemLedgEntry → QtyRndPrecision,InsertReservationEntries → QtyRndPrecision,SetQtyToReserveDownToTrackedQuantity → CalcQtyFromBase) - Codeunit 99000854 “Inventory Profile Offsetting” (3 calls:
PrepareTempTracking → QtyRndPrecision,Track → QtyRndPrecision,UpdateReqLineQuantity → QtyRndPrecision) - Codeunit 99000891 “Mfg. Item Tracking Mgt.” (3 calls:
CopyProdOrderLineFieldsToTempProdOrdLineTrackingBuff → QtyRndPrecision,CreateWhseItemTrackingForProdOrderLine → QtyRndPrecision,UpdateQtySplitForPutAwayOnProdOrdLineTrackingBuffer → QtyRndPrecision) - Report 4810 “Intrastat Report Get Lines” (3 calls:
InsertFALedgerLine → QtyRndPrecision,InsertItemLedgerLine → QtyRndPrecision,InsertJobLedgerLine → QtyRndPrecision) - Table 210 “Job Journal Line” (3 calls:
CalcBaseQty → CalcBaseQty,CalcBaseQtyForJobPlanningLine → CalcBaseQty,CalcQtyFromBaseQty → QtyRndPrecision) - Table 37 “Sales Line” (3 calls:
CalcBaseQty → CalcBaseQty,CheckApplFromItemLedgEntry → QtyRndPrecision,GetUnitCost → GetQtyPerUnitOfMeasure) - Table 5741 “Transfer Line” (3 calls:
CalcBaseQty → CalcBaseQty,ValidateQuantityReceiveIsBalanced → ValidateQtyIsBalanced,ValidateQuantityShipIsBalanced → ValidateQtyIsBalanced) - Table 5767 “Warehouse Activity Line” (3 calls:
CalcBaseQty → CalcBaseQty,CalcQty → QtyRndPrecision,ValidateQuantityIsBalanced → ValidateQtyIsBalanced) - Table 7326 “Whse. Worksheet Line” (3 calls:
AvailableQtyToPick → QtyRndPrecision,CalcBaseQty → RoundQty,CalcQty → QtyRndPrecision) - Table 83 “Item Journal Line” (3 calls:
CalcBaseQty → CalcBaseQty,GetUnitAmount → GetQtyPerUnitOfMeasure,RecalculateUnitAmount → GetQtyPerUnitOfMeasure) - Table 99000772 “Production BOM Line” (3 calls:
GetBOMHeaderQtyPerUOM → GetQtyPerUnitOfMeasure,GetBOMLineQtyPerUOM → GetQtyPerUnitOfMeasure,GetQtyPerUnitOfMeasure → GetQtyPerUnitOfMeasure) - Codeunit 311 “Item-Check Avail.” (2 calls:
ConvertQty → QtyRndPrecision,ConvertQtyToBaseQty → QtyRndPrecision) - Codeunit 550 “VAT Rate Change Conversion” (2 calls:
AddNewPurchaseLine → QtyRndPrecision,AddNewSalesLine → QtyRndPrecision) - Codeunit 5780 “Whse. Cross-Dock Management” (2 calls:
SubtractExistingCrossDockOppQtysToSource → QtyRndPrecision,UpdateQtyToCrossDock → QtyRndPrecision) - Codeunit 5813 “Undo Purchase Receipt Line” (2 calls:
PostItemJnlLine → CalcBaseQty,UpdateBlanketOrder → QtyRndPrecision) - Codeunit 5836 “Cost Calculation Management” (2 calls:
CalcSalesLineRcptAdjCostLCY → QtyRndPrecision,CalcSalesLineShptAdjCostLCY → QtyRndPrecision) - Codeunit 5986 “Serv-Amounts Mgt.” (2 calls:
RoundAmount → CubageRndPrecision,RoundAmount → WeightRndPrecision) - and 95 more: data/code/graph/29/calls.json
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: "Unit of Measure Management"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.