xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Entity Reference/Adjustment Line — entity reference
REFERENCE · Last reviewed

Adjustment Line — entity reference

One item-level stock change on an adjustment, for one lot, SKU and storage location. AdjustmentType selects both the quantity semantics and the InventoryStock bucket via seeded InventoryLedgerSetting rules: a null type is a plain adjustment whose signed Quantity increments the Adjustment bucket when positive and the AdjustedOut bucket when negative; typed lines (Expired, Damaged, Shortage, Excess, OnHold, OnLoan, Assemble, Disassemble) post to their named buckets, except that the Disassemble rule increments the Assemble bucket. Lines never post on creation - every seeded rule has OnCreate false - so posting happens through the header action or on later edits and deletes. Assemble and Disassemble lines additionally explode the item's bill of materials into child lines with the opposite type. Items with TrackInventory false are rejected and lot-tracked items require an ItemLotId.

Fields

FieldLabelTypeRequiredWhat it does
AdjustmentIdInventory AdjustmentLookup → AdjustmentYes
AdjustmentTypeAdjustment TypePickListValues: Expired, Damaged, OnLoan, Shortage, Assemble, Excess, OnHold, Disassemble.
ClaimBatchIdClaim BatchLookup → ClaimBatch
ClaimIdClaimLookup → Claim
ClaimLineIdClaim LineLookup → ClaimLineThe Part to Part claim line whose approved quantity this adjustment line writes back into stock.
ConversionRatioConversion RatioNumber
ConversionRatio1Conversion Ratio 1Number
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
CycleCountLineIdCycle Count LineLookup → CycleCountLineTies the adjustment line to the counted line that produced it: cycle-count release creates one line for the net discrepancy plus separate lines typed Damaged and Expired when those quantities were recorded.
DamagedQuantityDamaged QuantityCalculated (calculated)Not an independently entered figure: it is calculated as the line Quantity when AdjustmentType is Damaged and zero otherwise. It exists so the seeded ledger rule for damaged stock has a field to test and post from, which is why entering a quantity here without setting the type has no effect.
ExcessQuantityExcess QuantityCalculated (calculated)Calculated as the line Quantity when AdjustmentType is Excess and zero otherwise; it is the field the seeded excess ledger rule tests and posts from, not a separately captured quantity.
ExpiredQuantityExpired QuantityCalculated (calculated)Calculated as the line Quantity when AdjustmentType is Expired and zero otherwise; it is the field the seeded expiry ledger rule tests and posts from, not a separately captured quantity.
ExternalIdExternalText, unique
IdIdGuidYes
ILPostingQuantityIL Posting QuantityCalculated (calculated)The absolute value of the line quantity, calculated. It gives the ledger a non-negative magnitude to post with, while the direction of the movement is carried by the ledger type and the sign of Quantity.
InventoryLedgerIdInventory LedgerLookup → InventoryLedgerPosted marker: inventory posting only picks up lines where this is still empty, then stamps the created ledger row's id here, which makes reposting idempotent.
IsILPostedIL PostedBooleanYesInventoryLedgerId is the field that actually records that the line reached the inventory ledger.
IsILPostingApprovedIL Posting ApprovedBooleanYes
ItemComponentIdItem ComponentLookup → ItemComponentSet on the automatically generated component lines to record which bill-of-materials component the line represents. Generated lines take the opposite adjustment type to their parent and a negated quantity when the parent is an assembly, so the components are consumed as the assembly is built.
ItemIdItemLookup → ItemYes
ItemLotIdItem LotLookup → ItemLot
ItemLotTypeIdItem Lot TypeLookup → ItemLotType
ModifiedByIdModified ByLookup → UserAccountYes
NameLine NumberText
OwnerIdOwnerLookup → UserAccountYes
ParentLineIdParent LineLookup → AdjustmentLinePoints at the Assemble or Disassemble line whose bill of materials was exploded to create this component line. Deleting the parent deletes its children, and only parent lines are user-entered.
PriceAsOnDatePrice As On DateDate
PriceListIdPrice ListLookup → PriceList
QuantityQuantityNumber
RecordTypeIdRecord TypeGuid, hidden
RemarksRemarksText
ShortageQuantityShortage QuantityCalculated (calculated)Calculated as the line Quantity when AdjustmentType is Shortage and zero otherwise; it is the field the seeded shortage ledger rule tests and posts from, not a separately captured quantity.
SKUIdSKULookup → SKU
StorageLocationIdStorage LocationLookup → StorageLocation
TotalCostTotal CostCurrencyDerive the line's value from Quantity and UnitCost instead of reading it.
UIPropsUI PropsText
UnitCostUnit CostCurrencyDefaulted from the matching price-list rule's price, because an adjustment line is treated as a cost line rather than a selling-price line; a value typed on a brand-new line is respected, but changing the header's price list or price date re-derives it. Lines released from a cycle count instead inherit the counted line's unit cost, which is usually zero.
UnitCost2Unit Cost 2CurrencyThe secondary price from the same price-list rule that sets UnitCost. It is populated alongside it but nothing in the adjustment posting or valuation path consumes it.
UOMUOMPickListValues: Pack, Litres.
UOM1UOM 1PickListValues: Each.
UOMQuantityUOM QuantityNumber
UOMQuantity1UOM Quantity 1Number
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete
EditEditEditEdit
EditInLineEditEditEdit
EditInLineEntityEditEditInlineEdit
NewNewNewNew
NewInLineQuick AddNewInlineNew
PostInventoryPost InventoryUIActionPost from the parent document's Perform Inventory Posting, which picks up every line that has no InventoryLedgerId yet.

Validations

ValidationApplies toError messageNotes
Item Required ValidationItemId, ErrorSelection of Item is Mandatory.Selection of Item is Mandatory.
Quantity Validation On DisassembleError, inactiveQuantity can not be positive in case of Disassemble Adjustment Type.Quantity can not be positive in case of Disassemble Adjustment Type.
Restrict Negative QuantityQuantity, Error, inactiveQuantity must be greater than 0.Quantity must be greater than 0.
Total Cost Rule ValidationTotalCost, ErrorTotal Cost can't be negativeTotal Cost can't be negative
Unit Cost Rule ValidationUnitCost, Error, inactiveUnit Cost can't be negativeUnit Cost can't be negative

Lookup filters

FilterLookup fieldNotes
Sku For ItemSKUId