ProdRouteOverlapCalc.calcOverlap Method [AX 2012]
Performs the calculation of the overlap quantity.
The overlap calculation is based on the transfer batch quantity. The calculation cannot be performed if a transfer batch quantity is not specified for the operation.
An algorithm of the calculation is described below.
|
Variable |
Description |
|---|---|
|
Order quantity |
The quantity of a production order. |
|
Transfer batch |
The quantity of the transfer batch. |
|
Transfer batch time |
The time required for the transfer batch quantity. |
|
New overlap quantity |
A new calculated value of the overlap quantity. |
|
New overlap time |
The time required for the new calculated overlap. |
|
Run time per piece |
The time required to process one piece. |
Operation timeop.10 = Order quantity * Run time per pieceop.10
Operation timeop.20 = Transport timeop.10 + Queue after timeop.10 + Queue before timeop.20 + Setup timeop.20 + (Order quantity * Run time per pieceop.20)
Transfer batch timeop.10 = Transfer batchop.10 * Run time per pieceop.10
Case 1: If Operation timeop.20 <= Transfer batch timeop.10:
New overlap quantityop.10 = 0
Case 2: If Operation timeop.20 >= Operation timeop.10:
New overlap quantityop.10 = Transfer batchop.10
Case 3: If Operation timeop.20 < Operation timeop.10:
New overlap timeop.10 = Operation timeop.10 + Transfer batch timeop.10 - Operation timeop.20
New overlap quantityop.10 = New overlap timeop.10 / Run time per pieceop.10
Round the New overlap quantity up to the nearest multiple number of Transfer batch:
New overlap quantityop.10 = RoundUp(New overlap quantityop.10 , Transfer batchop.10)
static void calculateOverlap(ProdRoute _prodRoute)
{
ProdRouteOverlapCalc prodRouteOverlapCalc;
RouteOprQtyOverlap overlapValue;
if(!_prodRoute.RecId)
throw error("@SYS19457");
// Do not show any information messages.
prodRouteOverlapCalc =
prodRouteOverlapCalc::newProdRoute(_prodRoute, false, false);
// Calculate overlap value.
overlapValue = prodRouteOverlapCalc.calcOverlap();
// Show the result.
info(strfmt("The calculated overlap is %1", overlapValue));
}