R30422-5 ShipmentOrderLine - Fill System Units
| Code | 30422-5 |
| Entity | Logistics.Shipment.ShipmentOrderLines Entity |
| Name | FillSystemUnits |
| Attribute | NetWeightkg,GrossWeightkg, Volumel, Heightm, Lengthm, Widthm |
| Layer | Front-End |
| Events | AttributeChanged(ParentSalesOrderLine, Quantity, QuantityUnit) |
| Priority | Normal |
| Modify | YES |
| Applicable Legislations | ALL // no condition needed |
| Action | if (ParentSalesOrderLine !=null and ParentSalesOrderLine .Product !=null and Quantity != null
and sol.QuantityUnit != null)
{ NetWeightkg = Quantity.ConvertToOrDefault(GetSystemMeasurementUnit(SystemUnit.NetKilograms), Product, true); GrossWeightkg = Quantity.ConvertToOrDefault(GetSystemMeasurementUnit(SystemUnit.GrossKilograms), Product, true); Volumel = Quantity.ConvertToOrDefault(GetSystemMeasurementUnit( SystemUnit.VolumeLiters), Product, true); Heightm = Quantity.ConvertToOrDefault(GetSystemMeasurementUnit( SystemUnit.HeightMeters), Product, true); Lengthm = Quantity.ConvertToOrDefault(GetSystemMeasurementUnitSystemUnit.LengthMeters), Product, true); Widthm = Quantity.ConvertToOrDefault(GetSystemMeasurementUnit(SystemUnit.WidthMeters), Product, true); } GetSystemMeasurementUnit => measurementUnits = transaction.Query<MeasurementUnit>().Where(mu => mu.SystemUnit == systemUnit) IF(measurementUnits.Count==0) , throw M1 IF(measurementUnits .Count>1) , throw M2 |
| Description | When ParentSalesOrderLine, Quantity or QuantityUnit are changed, the quantities in system units' fields should be recalculated. |
| Message | M1: Cannot find a Measurement Unit that corresponds to system unit '{SystemUnit}'.
M2: The Measurement unit that corresponds to system unit '{0}' cannot be determined because there are more than one measurement units that has the field System Unit filled with '{SystemUnit}'. |
| Version | Introduced: 2020.1 |
| Revocable | YES |
* For more information about the Business Rules Documentation Template and a short explanation of each column, see topic System Business Rules.