Dynamics AX – Unit of Measure conversions(Intra/Inter) and X++
So, recently I was working on a requirement where I had to fetch the Unit of Measures for each Item. (I would leave the details on why and would rather focus on How ).
For those folks who are not much aware about the Unit of Measure conversions that AX offers, I'd suggest reading through this MSDN article : Unit conversions . So, summarizing what the article says is basically that AX offers three different conversions viz. Standard(basically inch to cm, kg to gms etc.), Intra(e.g. pieces to boxes), Inter(e.g. kg to liter). Intra and Inter offer product specific Unit conversions, and that's what it makes them more special. In this post we will talk about how to fetch them based off an item.
while select * from unitOfMeasureConversion
where inventTableUnitConversion.ItemId == _itemId // based on the itemId
&& unitOfMeasureConversion.Product == inventTableUnitConversion.Product
{
toUnitOfMeasure = UnitOfMeasure::find(unitOfMeasureConversion.ToUnitOfMeasure).Symbol;
fromUnitOfMeasure = UnitOfMeasure::find(unitOfMeasureConversion.FromUnitOfMeasure).Symbol;
if(toUnitOfMeasure && fromUnitOfMeasure)
{
if (UnitOfMeasure::find(unitOfMeasureConversion.FromUnitOfMeasure).UnitOfMeasureClass != UnitOfMeasure::find(unitOfMeasureConversion.ToUnitOfMeasure).UnitOfMeasureClass)
unitConversionInter = this.formatQuickFormula(unitOfMeasureConversion.InnerOffset, unitOfMeasureConversion.Factor, unitOfMeasureConversion.Numerator, unitOfMeasureConversion.Denominator, unitOfMeasureConversion.OuterOffset, toUnitOfMeasure, fromUnitOfMeasure);
if (UnitOfMeasure::find(unitOfMeasureConversion.FromUnitOfMeasure).UnitOfMeasureClass == UnitOfMeasure::find(unitOfMeasureConversion.ToUnitOfMeasure).UnitOfMeasureClass)
unitConversionIntra = this.formatQuickFormula(unitOfMeasureConversion.InnerOffset, unitOfMeasureConversion.Factor, unitOfMeasureConversion.Numerator, unitOfMeasureConversion.Denominator, unitOfMeasureConversion.OuterOffset, toUnitOfMeasure, fromUnitOfMeasure);
}
}
Well, that's all I have for this post. As always for any follow up questions/concerns you can always reach out at : sourabh@stoneridgesoftware.com