ProdRouteOverlapCalc.calcOverlap Method [AX 2012]

Performs the calculation of the overlap quantity.

public RouteOprQtyOverlap calcOverlap()

Run On

Called

Return Value

Type: RouteOprQtyOverlap Extended Data Type
A calculated 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)); 
}

Community Additions

ADD
Show: