D375/AX7:Create Quality Orders Using X++

Requirement

Create Quality Orders Using X++

Sample Code

[code language = “cpp”]
public static void CreateQualityOrder(InventRefId _refId, ItemId _componentId, ItemName _componentName, InventTestGroupId _inventTestGroupId,AcxQualityTestType _qualityTestType, Description _location = ”)
{
InventQualityOrderTable inventQualityOrderTable;
InventQualityOrderLine inventQualityOrderLine;
InventDim inventDim;
InventTestGroup inventTestGroup;
InventTestGroupMember inventTestGroupMember;
InventSiteGateEntry_IN inventSiteGateEntry_IN;
AcxCMRNDetails acxCMRNDetails;
AcxCMRNLineDetails acxCMRNLineDetails;
AcxCMRNHeader acxCMRNHeader;
;

inventQualityOrderTable.InventRefId= _refId;
inventQualityOrderTable.AcxIsCMRN = NoYes::Yes;
inventQualityOrderTable.AcxComponentId = acxCMRNDetails.ComponentID;
inventQualityOrderTable.AcxLocation = _location;
inventQualityOrderTable.AcxQualityTestType = _qualityTestType;
inventQualityOrderTable.AcceptableQualityLevel = inventTestGroup.AcceptableQualityLevel;
inventQualityOrderTable.ItemSamplingId = inventTestGroup.ItemSamplingId;
inventQualityOrderTable.OrderStatus = InventTestOrderStatus::Open;
inventQualityOrderTable.ReferenceType = InventTestReferenceType::Production;
inventQualityOrderTable.QualityOrderId = NumberSeq::newGetNum(InventParameters::numRefQualityOrderId()).num();
inventQualityOrderTable.ItemId= _componentId;
inventDim.InventSiteId = InventLocation::find(inventSiteGateEntry_IN.InventLocationId).InventSiteId;
inventDim.InventLocationId = inventSiteGateEntry_IN.InventLocationId;//’11’;
inventDim = InventDim::findOrCreate(inventDim);
inventQualityOrderTable.InventDimId = inventDim.inventDimId;
inventQualityOrderTable.ItemName = _componentName;
inventQualityOrderTable.TestGroupId= _inventTestGroupId;
inventQualityOrderTable.Qty=1.00;
inventQualityOrderTable.BlockingQty = 1.00;
inventQualityOrderTable.doinsert();
while select inventTestGroupMember
where inventTestGroupMember.TestGroupId == inventTestGroup.TestGroupId
{
inventQualityOrderLine.clear();
inventQualityOrderLine.initFromQualityOrderTable(inventQualityOrderTable);
inventQualityOrderLine.AcceptableQualityLevel = inventTestGroup.AcceptableQualityLevel;
inventQualityOrderLine.ActionOnFailure = inventTestGroupMember.ActionOnFailure;
inventQualityOrderLine.CertificateOfAnalysisReport = inventTestGroupMember.CertificateOfAnalysis;
inventQualityOrderLine.LowerLimit = inventTestGroupMember.LowerLimit;
inventQualityOrderLine.LowerTolerance = inventTestGroupMember.LowerTolerance;
inventQualityOrderLine.IncludeResults = NoYes::Yes;
inventQualityOrderLine.StandardValue = inventTestGroupMember.StandardValue;
inventQualityOrderLine.TestId = inventTestGroupMember.TestId;
inventQualityOrderLine.TestInstrumentId = inventTestGroupMember.TestInstrumentId;
inventQualityOrderLine.TestSequence = inventTestGroupMember.TestSequence;
inventQualityOrderLine.TestUnitId = inventTestGroupMember.TestUnitId;
inventQualityOrderLine.UpperLimit = inventTestGroupMember.UpperLimit;
inventQualityOrderLine.UpperTolerance = inventTestGroupMember.UpperTolerance;
inventQualityOrderLine.insert();
info(strFmt(‘Quality Order %1 is generated.’,inventQualityOrderLine.QualityOrderId));
}
}
[/code]

 

Leave a Reply