Skip to content

KVSFCYEngineeringDesignLib#

Procedures#

GetActualItemVersion(Code[20], Code[10], Date, Record KVSFCYItemVersion) : Boolean#

Summary: Determines and retrieves the appropriate item version record for a specified item, variant, and date context within the engineering design system, considering version effective date ranges and certification status requirements based on engineering design setup configuration.

procedure GetActualItemVersion(itemNoPar: Code[20]; variantCodePar: Code[10]; datePar: Date; var itemVersionVar: Record "KVSFCYItemVersion"): Boolean

Parameters:

  • itemNoPar: Item number identifying the specific item for which the actual item version should be determined and retrieved from the item version master data.
  • variantCodePar: Variant code specifying the item variant context for version determination, enabling variant-specific version control within the engineering design version management system.
  • datePar: Reference date used for determining version validity based on version starting date criteria, enabling time-based version control and ensuring appropriate version selection for specific business contexts.
  • itemVersionVar: Item Version record variable that will be populated with the determined item version data upon successful version identification, providing complete version information including BOM and routing references.

Returns: Boolean value indicating whether a valid item version was successfully found and retrieved. Returns true when appropriate version is located, false when no matching version exists for the specified criteria.

ShowReservationStructureForEDLine(Record KVSFCYEDMonitoringLineBuffer) :#

Summary: Opens and displays the reservation structure interface for a specified engineering design order line, providing comprehensive view of reservation relationships and inventory allocation patterns based on the line's manufacturing policy and production order context.

procedure ShowReservationStructureForEDLine(var edOrderLineVar: Record "KVSFCYEDMonitoringLineBuffer"): 

Parameters:

  • edOrderLineVar: Engineering Design Monitoring Line Buffer record representing the order line for which reservation structure should be displayed, containing manufacturing policy and production order reference information.

InitEDPartTypeRefbyPOLine(Record Prod. Order Line) :#

Summary: Initializes and establishes engineering design part type references for a specific production order line when reservation relationships are created, analyzing reservation entries to identify and configure Make-to-Order manufacturing policy links between production order lines and their associated component lines within the same production order structure.

procedure InitEDPartTypeRefbyPOLine(var ProdOrderLineVar: Record "Prod. Order Line"): 

Parameters:

  • ProdOrderLineVar: Production Order Line record for which engineering design part type references should be initialized and configured based on reservation entry analysis and manufacturing policy requirements.

InitEDPartTypeRefbyComponent(Record Prod. Order Component) :#

Summary: Initializes and establishes engineering design part type references for a specific production order component when reservation relationships are created, analyzing reservation entries to identify and configure Make-to-Order manufacturing policy links between production order components and their associated production order lines within the same production order structure.

procedure InitEDPartTypeRefbyComponent(var ProdOrderComponentVar: Record "Prod. Order Component"): 

Parameters:

  • ProdOrderComponentVar: Production Order Component record for which engineering design part type references should be initialized and configured based on reservation entry analysis and manufacturing policy requirements.

HandleSeparateOrder(Record KVSFCYEDMonitoringLineBuffer) :#

Summary: Manages the creation of separate production orders from existing engineering design monitoring buffer lines or includes separate production orders back into the main production order structure, providing comprehensive workflow for engineering design order separation and integration based on manufacturing policy requirements and production order hierarchy analysis.

procedure HandleSeparateOrder(var tempEDMonitoringBufferLineVar: Record "KVSFCYEDMonitoringLineBuffer" temporary): 

Parameters:

  • tempEDMonitoringBufferLineVar: Temporary Engineering Design Monitoring Line Buffer record representing the monitoring structure for separate order processing, containing production order references, manufacturing policy information, and engineering design hierarchy data for order separation or integration operations.

CreateNewSeparateOrderRelation(Record KVSFCYEDMonitoringLineBuffer) :#

Summary: Creates and establishes a new separate order relation between a production order component and an external production order line, enabling Make-to-Order manufacturing policy linkage through reservation entry creation and engineering design part type reference configuration for cross-order production dependency management.

procedure CreateNewSeparateOrderRelation(var tempEDMonitoringBufferLineVar: Record "KVSFCYEDMonitoringLineBuffer" temporary): 

Parameters:

  • tempEDMonitoringBufferLineVar: Temporary Engineering Design Monitoring Line Buffer record representing the component line for which a separate order relation should be created, containing production order component reference information and engineering design monitoring context for external production order linking.

GetQtyProgress(Record Prod. Order Routing Line, Decimal) :#

Summary: Calculates and returns the quantity progress percentage for a production order routing line based on output quantity compared to the planned production order line quantity, providing progress tracking for manufacturing operations in engineering design workflows.

procedure GetQtyProgress(ProdOrderRoutingLinePar: Record "Prod. Order Routing Line"; var QtyProgressVar: Decimal): 

Parameters:

  • ProdOrderRoutingLinePar: Production Order Routing Line record for which quantity progress should be calculated, containing routing status, output quantity, and production order line quantity information for progress calculation.
  • QtyProgressVar: Decimal variable that will contain the calculated quantity progress percentage expressed as a value multiplied by 10000 (e.g., 5000 represents 50% progress), based on the ratio of output quantity to planned production order line quantity.

GetPostedRtngQty(Record Prod. Order Routing Line, Decimal, Decimal, Decimal, Decimal) :#

Summary: Calculates and retrieves capacity-related quantities for a production order routing line including expected capacity need, actual used capacity, remaining capacity, and progress percentage based on posted capacity ledger entries and manufacturing setup configuration for engineering design monitoring and analysis.

procedure GetPostedRtngQty(ProdOrderRoutingLinePar: Record "Prod. Order Routing Line"; var ExpectedCapNeedVar: Decimal; var ActualUsedCapVar: Decimal; var RemainingCapVar: Decimal; var ProgressCapVar: Decimal): 

Parameters:

  • ProdOrderRoutingLinePar: Production Order Routing Line record for which capacity quantities should be calculated, containing expected capacity need, production order details, routing information, and operation data for capacity analysis.
  • ExpectedCapNeedVar: Decimal variable that will contain the expected capacity need converted to the manufacturing setup's display unit of measure, representing the planned capacity requirement for the routing operation.
  • ActualUsedCapVar: Decimal variable that will contain the actual used capacity calculated from posted capacity ledger entries and converted to the manufacturing setup's display unit of measure, representing the consumed capacity for released production orders.
  • RemainingCapVar: Decimal variable that will contain the remaining capacity calculated as the difference between expected and actual used capacity, representing the outstanding capacity requirement for the operation.
  • ProgressCapVar: Decimal variable that will contain the capacity progress percentage expressed as a value multiplied by 10000 (e.g., 7500 represents 75% progress), based on the ratio of actual used capacity to expected capacity need.

GetProdOrderTimesInDurationPrecision(Record Production Order, Enum KVSFCYDurationPrecision, Decimal, Decimal, Decimal, Decimal) :#

Summary: Calculates and returns comprehensive production order time metrics in a specified duration precision format including needed time, used time, outstanding time, and usage percentage based on engineering design setup configuration and duration precision requirements for manufacturing time analysis and monitoring.

procedure GetProdOrderTimesInDurationPrecision(prodOrderPar: Record "Production Order"; durationPrecisionPar: Enum "KVSFCYDurationPrecision"; var neededTimeVar: Decimal; var usedTimeVar: Decimal; var outstandingTimeVar: Decimal; var usedTimePerCentVar: Decimal): 

Parameters:

  • prodOrderPar: Production Order record for which time metrics should be calculated, containing production order details and routing information for time analysis and engineering design monitoring calculations.
  • durationPrecisionPar: Duration Precision enumeration value specifying the time unit format for calculations (Millisecond, Second, Minute, Hour, Day), determining the conversion factor and precision for all returned time values.
  • neededTimeVar: Decimal variable that will contain the total needed time for the production order converted to the specified duration precision, representing the planned time requirement for all operations.
  • usedTimeVar: Decimal variable that will contain the actual used time for the production order converted to the specified duration precision, representing the consumed time based on posted entries and progress tracking.
  • outstandingTimeVar: Decimal variable that will contain the outstanding time calculated as the difference between needed and used time, representing the remaining time requirement for production order completion.
  • usedTimePerCentVar: Decimal variable that will contain the time usage percentage calculated as the ratio of used time to needed time, representing the completion progress in percentage format with two decimal precision.

SetDurationPrecision(Enum KVSFCYDurationPrecision) :#

Summary: Sets the duration precision enumeration value for subsequent engineering design time calculations and monitoring operations, configuring the time unit format (millisecond through day precision) used by production order time analysis, capacity calculations, and engineering design workflow time tracking throughout the codeunit processing.

procedure SetDurationPrecision(durationPrecisionPar: Enum "KVSFCYDurationPrecision"): 

Parameters:

  • durationPrecisionPar: Duration Precision enumeration value specifying the time unit format to be used for all subsequent time calculations (Millisecond, Second, Minute, Hour, Day), determining the conversion factor and precision for engineering design time analysis operations.

SetSuppressAskingForProcessing(Boolean) :#

Summary: Sets the flag to suppress user confirmation dialogs during separate order processing operations, enabling automated engineering design workflow execution without user interaction for batch processing scenarios, programmatic separate order creation, and unattended manufacturing policy modification operations.

procedure SetSuppressAskingForProcessing(NewSuppressAskingForProcessing: Boolean): 

Parameters:

  • NewSuppressAskingForProcessing: Boolean value indicating whether user confirmation dialogs should be suppressed (true) or displayed (false) during separate order handling operations, controlling the interactive behavior of engineering design processing workflows.

SetProdOrderStatusForSubProdOrders(Enum Production Order Status) :#

procedure SetProdOrderStatusForSubProdOrders(NewProductionOrderStatus: Enum "Production Order Status"): 

Events#

OnBeforeModifyCreateNewProdOrderHeaderInSeparateOrderHandling(Record Prod. Order Line, Record Production Order) :#

Summary: Event triggered before modifying a newly created production order header during separate order handling operations. This event allows customization of the new production order header before it is modified with data transferred from the origin production order line as part of the separate order creation process.

[IntegrationEvent(false, false)]
local procedure OnBeforeModifyCreateNewProdOrderHeaderInSeparateOrderHandling(originProdOrderLinePar: Record "Prod. Order Line"; var newProdOrderHeaderVar: Record "Production Order"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEngineeringDesignLib", 'OnBeforeModifyCreateNewProdOrderHeaderInSeparateOrderHandling', '', false, false)]
local procedure DoSomethingOnBeforeModifyCreateNewProdOrderHeaderInSeparateOrderHandling(originProdOrderLinePar: Record "Prod. Order Line"; var newProdOrderHeaderVar: Record "Production Order")
begin
end;

Parameters:

  • originProdOrderLinePar: The origin production order line record containing the source data for transfer to the new production order header.
  • newProdOrderHeaderVar: The newly created production order header record that will be modified and can be customized before the modification.

OnAfterModifyCreateNewProdOrderHeaderInSeparateOrderHandling(Record Prod. Order Line, Record Production Order) :#

Summary: Event triggered after modifying a newly created production order header during separate order handling operations. This event allows additional customization of the new production order header after it has been modified with data transferred from the origin production order line as part of the separate order creation process.

[IntegrationEvent(false, false)]
local procedure OnAfterModifyCreateNewProdOrderHeaderInSeparateOrderHandling(originProdOrderLinePar: Record "Prod. Order Line"; var newProdOrderHeaderVar: Record "Production Order"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEngineeringDesignLib", 'OnAfterModifyCreateNewProdOrderHeaderInSeparateOrderHandling', '', false, false)]
local procedure DoSomethingOnAfterModifyCreateNewProdOrderHeaderInSeparateOrderHandling(originProdOrderLinePar: Record "Prod. Order Line"; var newProdOrderHeaderVar: Record "Production Order")
begin
end;

Parameters:

  • originProdOrderLinePar: The origin production order line record that provided the source data for transfer to the new production order header.
  • newProdOrderHeaderVar: The newly created production order header record that has been modified and can be further customized after the modification.

OnTransferProdOrderLineAfterInsertNewProdLine(Record Prod. Order Line, Record Prod. Order Line) :#

Summary: Event triggered after inserting a new production order line during production order line transfer operations. This event is raised directly after creating the new production order line when transferring a production order line to a separate order or pulling it back to include separate production orders into the main order structure.

[IntegrationEvent(false, false)]
local procedure OnTransferProdOrderLineAfterInsertNewProdLine(OriginProdOrderLine: Record "Prod. Order Line"; NewProdOrderLine: Record "Prod. Order Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEngineeringDesignLib", 'OnTransferProdOrderLineAfterInsertNewProdLine', '', false, false)]
local procedure DoSomethingOnTransferProdOrderLineAfterInsertNewProdLine(OriginProdOrderLine: Record "Prod. Order Line"; NewProdOrderLine: Record "Prod. Order Line")
begin
end;

Parameters:

  • OriginProdOrderLine: The original production order line record that is being transferred and will be deleted after the transfer operation completes.
  • NewProdOrderLine: The newly inserted production order line record that received the transferred data and can be further modified.

OnTransferProdOrderLineBeforeDeleteOriginProdLine(Record Prod. Order Line, Record Prod. Order Line) :#

Summary: Event triggered before deleting the origin production order line during production order line transfer operations. This event is raised after transferring components and routing data but directly before deleting the original production order line when transferring a production order line to a separate order or pulling it back to include separate production orders into the main order structure.

[IntegrationEvent(false, false)]
local procedure OnTransferProdOrderLineBeforeDeleteOriginProdLine(OriginProdOrderLine: Record "Prod. Order Line"; NewProdOrderLine: Record "Prod. Order Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEngineeringDesignLib", 'OnTransferProdOrderLineBeforeDeleteOriginProdLine', '', false, false)]
local procedure DoSomethingOnTransferProdOrderLineBeforeDeleteOriginProdLine(OriginProdOrderLine: Record "Prod. Order Line"; NewProdOrderLine: Record "Prod. Order Line")
begin
end;

Parameters:

  • OriginProdOrderLine: The original production order line record that will be deleted after components and routing have been transferred to the new production order line.
  • NewProdOrderLine: The new production order line record that has received all transferred data including components and routing from the original production order line.

OnAfterCreateNewSeparateOrderRelation(Record Prod. Order Component, Record KVSFCYEDMonitoringLineBuffer) :#

Summary: This Event is triggered after the CreateProdOrderFuntion before the Dialog

[IntegrationEvent(false, false)]
local procedure OnAfterCreateNewSeparateOrderRelation(var ProdOrderComponent: Record "Prod. Order Component"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEngineeringDesignLib", 'OnAfterCreateNewSeparateOrderRelation', '', false, false)]
local procedure DoSomethingOnAfterCreateNewSeparateOrderRelation(var ProdOrderComponent: Record "Prod. Order Component"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer")
begin
end;

Parameters:

  • KVSFCYEDMonitoringLineBuffer: The KVSFCYEDMonitoringLineBuffer
  • ProdOrderComponent: The Prod. Order Component

OnBeforeModifyProdOrderLine(Record Prod. Order Line, Record KVSFCYEDMonitoringLineBuffer) :#

Summary: This Event is triggered before modifying the Prod. Order Line

[IntegrationEvent(false, false)]
local procedure OnBeforeModifyProdOrderLine(var ProdOrderLine: Record "Prod. Order Line"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEngineeringDesignLib", 'OnBeforeModifyProdOrderLine', '', false, false)]
local procedure DoSomethingOnBeforeModifyProdOrderLine(var ProdOrderLine: Record "Prod. Order Line"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer")
begin
end;

Parameters:

  • KVSFCYEDMonitoringLineBuffer: The KVSFCYEDMonitoringLineBuffer
  • ProdOrderLine: The Prod. Order Line

OnAfterModifyProdOrderLine(Record Prod. Order Line, Record KVSFCYEDMonitoringLineBuffer) :#

Summary: This Event is triggered after modifying the Prod. Order Line

[IntegrationEvent(false, false)]
local procedure OnAfterModifyProdOrderLine(var ProdOrderLine: Record "Prod. Order Line"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEngineeringDesignLib", 'OnAfterModifyProdOrderLine', '', false, false)]
local procedure DoSomethingOnAfterModifyProdOrderLine(var ProdOrderLine: Record "Prod. Order Line"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer")
begin
end;

Parameters:

  • KVSFCYEDMonitoringLineBuffer: The KVSFCYEDMonitoringLineBuffer
  • ProdOrderLine: The Prod. Order Line

OnBeforeModifyProdOrderComponent(Record Prod. Order Component, Record KVSFCYEDMonitoringLineBuffer) :#

Summary: This Event is triggered before modifying the Prod. Order Line

[IntegrationEvent(false, false)]
local procedure OnBeforeModifyProdOrderComponent(var ProdOrderComponent: Record "Prod. Order Component"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEngineeringDesignLib", 'OnBeforeModifyProdOrderComponent', '', false, false)]
local procedure DoSomethingOnBeforeModifyProdOrderComponent(var ProdOrderComponent: Record "Prod. Order Component"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer")
begin
end;

Parameters:

  • KVSFCYEDMonitoringLineBuffer: The KVSFCYEDMonitoringLineBuffer
  • ProdOrderComponent: The Prod. Order Component

OnAfterModifyProdOrderComponent(Record Prod. Order Component, Record KVSFCYEDMonitoringLineBuffer) :#

Summary: This Event is triggered after modifying the Prod. Order Line

[IntegrationEvent(false, false)]
local procedure OnAfterModifyProdOrderComponent(var ProdOrderComponent: Record "Prod. Order Component"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEngineeringDesignLib", 'OnAfterModifyProdOrderComponent', '', false, false)]
local procedure DoSomethingOnAfterModifyProdOrderComponent(var ProdOrderComponent: Record "Prod. Order Component"; KVSFCYEDMonitoringLineBuffer: Record "KVSFCYEDMonitoringLineBuffer")
begin
end;

Parameters:

  • KVSFCYEDMonitoringLineBuffer: The KVSFCYEDMonitoringLineBuffer
  • ProdOrderComponent: The Prod. Order Component