Skip to content

KVSFCYEDModPropCompareLib#

Procedures#

OnRun#

procedure OnRun(Rec: Record "#437dbf0e84ff417a965ded2bb9650972#Item")

OpenModWkshFromProdOrderLine(Record Prod. Order Line) :#

Summary: Opens the production modification worksheet page filtered for a specific production order line context. This procedure provides navigation from production order lines to their associated modification proposal worksheets, enabling users to review and manage engineering design modifications directly from the production order context. It validates that the production order line has required identifiers, searches for existing modification worksheet entries using production order number, status, and line number filters, and opens the modification proposal worksheet page with the production order line context pre-configured. If no modification worksheet entries exist for the specified production order line, it displays an informational message to the user. This supports efficient navigation between production planning and engineering design modification workflows for seamless production order management and design change processing.

procedure OpenModWkshFromProdOrderLine(prodOrderLinePar: Record "Prod. Order Line"): 

Parameters:

  • prodOrderLinePar: The production order line record containing production order number, status, and line number used to filter and display associated modification proposal worksheet entries.

SetCompareParameters(Code[10], Boolean, Boolean, Boolean, Boolean, Record Production Order) :#

Summary: Configures comparison parameters for engineering design modification proposal analysis including worksheet settings and production order filters. This procedure initializes the comparison engine with comprehensive parameters that control the scope and behavior of production order line comparisons against engineering design master data. It sets the target worksheet name for storing comparison results, configures regenerative planning mode for complete recalculation, establishes production order status filters to limit comparison scope, manages BOM and routing status check suspension for flexible validation, and populates the temporary production order buffer with specific orders to compare. The procedure supports both selective production order comparison and comprehensive item-based analysis by providing flexible parameter configuration that adapts to different engineering design modification scenarios and production planning requirements for efficient comparison processing and accurate modification proposal generation.

procedure SetCompareParameters(currWorksheetNamePar: Code[10]; regenerativePlanPar: Boolean; compareProdOrderStatusPar: Boolean; prodBOMStatusCheckSuspendedPar: Boolean; routingStatusCheckSuspendedPar: Boolean; var TempProductionOrderVar: Record "Production Order" temporary): 

Parameters:

  • currWorksheetNamePar: The worksheet name where comparison results and modification proposals will be stored, serving as the target for generated modification worksheet entries.
  • regenerativePlanPar: When true, enables regenerative planning mode for complete recalculation of production order structures ignoring existing modification flexibility settings for comprehensive analysis.
  • compareProdOrderStatusPar: Array of boolean values indicating which production order statuses to include in comparison: [1] Simulated, [2] Planned, [3] Firm Planned, [4] Released, [5] Finished, controlling comparison scope.
  • prodBOMStatusCheckSuspendedPar: When true, suspends production BOM status validation during comparison processing to allow analysis of BOMs with non-certified status for flexible engineering design workflows.
  • routingStatusCheckSuspendedPar: When true, suspends routing status validation during comparison processing to allow analysis of routings with non-certified status for flexible engineering design workflows.
  • TempProductionOrderVar: Temporary production order record set containing specific production orders to compare; when empty, comparison processes all production orders matching the status filters for comprehensive analysis.

CompareProdOrderLine(Record Prod. Order Line) :#

Summary: Compares a production order line with engineering design master data to identify differences and generate modification proposals. This procedure performs comprehensive comparison analysis between existing production order line configurations and current engineering design master data including routing and production BOM structures. It validates production order line integrity, removes existing modification worksheet entries to ensure clean comparison state, checks for conflicting engineering design entries, and applies modification flexibility rules to determine comparison scope. The procedure creates temporary engineering design production order structures with current master data configurations, then performs detailed comparison to identify routing differences, component changes, quantity variations, and structural modifications. Generated modification proposals are stored in worksheet entries for review and approval, supporting engineering design change management workflows and production order synchronization with updated master data for accurate manufacturing execution.

procedure CompareProdOrderLine(prodOrderLinePar: Record "Prod. Order Line"): 

Parameters:

  • prodOrderLinePar: The production order line record to compare against engineering design master data, containing production order number, status, line number, item information, and current routing/BOM configurations for comparison analysis.

Events#

OnBeforeEDProdOrderLineInsert(Record KVSFCYEDModProposalOrderLine, Record Prod. Order Line) :#

Summary: Event triggered before inserting an Engineering Design production order line proposal.

[IntegrationEvent(false, false)]
local procedure OnBeforeEDProdOrderLineInsert(var EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; ProdOrderLine: Record "Prod. Order Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnBeforeEDProdOrderLineInsert', '', false, false)]
local procedure DoSomethingOnBeforeEDProdOrderLineInsert(var EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; ProdOrderLine: Record "Prod. Order Line")
begin
end;

Parameters:

  • EDProdOrderLine: The Engineering Design production order line proposal record that will be inserted and can be modified.
  • ProdOrderLine: The source production order line record used as the basis for the Engineering Design proposal.

OnAfterInitEDProdOrderLine(Record KVSFCYEDModProposalOrderLine, Record Prod. Order Line) :#

Summary: Event triggered after initializing an Engineering Design production order line proposal.

[IntegrationEvent(false, false)]
local procedure OnAfterInitEDProdOrderLine(var EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; ProdOrderLine: Record "Prod. Order Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnAfterInitEDProdOrderLine', '', false, false)]
local procedure DoSomethingOnAfterInitEDProdOrderLine(var EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; ProdOrderLine: Record "Prod. Order Line")
begin
end;

Parameters:

  • EDProdOrderLine: The Engineering Design production order line proposal record that has been initialized and can be further modified.
  • ProdOrderLine: The source production order line record that was used for initialization.

OnBeforeTransferRoutingLine(Record KVSFCYEDModProposalRtgLine, Record Routing Line) :#

Summary: Event triggered before transferring routing line data to an Engineering Design production order routing line proposal.

[IntegrationEvent(false, false)]
local procedure OnBeforeTransferRoutingLine(var EDProdOrderRtngLine: Record "KVSFCYEDModProposalRtgLine"; RntgLine: Record "Routing Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnBeforeTransferRoutingLine', '', false, false)]
local procedure DoSomethingOnBeforeTransferRoutingLine(var EDProdOrderRtngLine: Record "KVSFCYEDModProposalRtgLine"; RntgLine: Record "Routing Line")
begin
end;

Parameters:

  • EDProdOrderRtngLine: The Engineering Design production order routing line proposal record that will receive the transferred data and can be modified.
  • RntgLine: The source routing line record containing the data to be transferred.

OnAfterTransferRoutingLine(Record KVSFCYEDModProposalRtgLine, Record Routing Line, Record KVSFCYEDModProposalOrderLine) :#

Summary: Event triggered after transferring routing line data to an Engineering Design production order routing line proposal.

[IntegrationEvent(false, false)]
local procedure OnAfterTransferRoutingLine(var EDProdOrderRtngLine: Record "KVSFCYEDModProposalRtgLine"; RntgLine: Record "Routing Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnAfterTransferRoutingLine', '', false, false)]
local procedure DoSomethingOnAfterTransferRoutingLine(var EDProdOrderRtngLine: Record "KVSFCYEDModProposalRtgLine"; RntgLine: Record "Routing Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine")
begin
end;

Parameters:

  • EDProdOrderRtngLine: The Engineering Design production order routing line proposal record that has received the transferred data and can be further modified.
  • RntgLine: The source routing line record that was used for the data transfer.
  • EDProdOrderLine: The Engineering Design production order line proposal record associated with the routing line.

OnBeforeTransferProdBOMLine(Record KVSFCYEDModProposalComponent, Record Production BOM Line, Integer) :#

Summary: Event triggered before transferring production BOM line data to an Engineering Design production order component proposal.

[IntegrationEvent(false, false)]
local procedure OnBeforeTransferProdBOMLine(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; ProdBOMLine: Record "Production BOM Line"; Level: Integer): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnBeforeTransferProdBOMLine', '', false, false)]
local procedure DoSomethingOnBeforeTransferProdBOMLine(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; ProdBOMLine: Record "Production BOM Line"; Level: Integer)
begin
end;

Parameters:

  • EDProdOrderComp: The Engineering Design production order component proposal record that will receive the transferred data and can be modified.
  • ProdBOMLine: The source production BOM line record containing the component data to be transferred.
  • Level: The BOM level indicating the depth of the component in the BOM structure hierarchy.

OnAfterTransferProdBOMLine(Record KVSFCYEDModProposalComponent, Record Production BOM Line, Integer, Record KVSFCYEDModProposalOrderLine) :#

Summary: Event triggered after transferring production BOM line data to an Engineering Design production order component proposal.

[IntegrationEvent(false, false)]
local procedure OnAfterTransferProdBOMLine(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; ProdBOMLine: Record "Production BOM Line"; Level: Integer; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnAfterTransferProdBOMLine', '', false, false)]
local procedure DoSomethingOnAfterTransferProdBOMLine(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; ProdBOMLine: Record "Production BOM Line"; Level: Integer; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine")
begin
end;

Parameters:

  • EDProdOrderComp: The Engineering Design production order component proposal record that has received the transferred data and can be further modified.
  • ProdBOMLine: The source production BOM line record that was used for the data transfer.
  • Level: The BOM level indicating the depth of the component in the BOM structure hierarchy.
  • EDProdOrderLine: The Engineering Design production order line proposal record associated with the component.

OnAfterSetCompareRtngFields(Record KVSFCYEDModProposalRtgLine, Integer, Integer) :#

Summary: Event triggered after setting up the routing fields array for comparison between Engineering Design and production order routing lines.

[IntegrationEvent(false, false)]
local procedure OnAfterSetCompareRtngFields(var EDProdOrderRtngLine: Record "KVSFCYEDModProposalRtgLine"; var FieldNo: Integer; var NoOfFieldsToCompare: Integer): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnAfterSetCompareRtngFields', '', false, false)]
local procedure DoSomethingOnAfterSetCompareRtngFields(var EDProdOrderRtngLine: Record "KVSFCYEDModProposalRtgLine"; var FieldNo: Integer; var NoOfFieldsToCompare: Integer)
begin
end;

Parameters:

  • EDProdOrderRtngLine: The Engineering Design production order routing line proposal record being processed for field comparison.
  • FieldNo: The array of field numbers that will be used for comparing routing line differences, can be modified to include additional fields.
  • NoOfFieldsToCompare: The count of fields in the FieldNo array that will be compared, can be modified to change the comparison scope.

OnAfterSetSortAndFilterInCompLoop(Record KVSFCYEDModProposalComponent, Integer, Record Prod. Order Component, Boolean, Boolean) :#

Summary: Event triggered after setting sort and filter criteria during the component comparison loop process.

[IntegrationEvent(false, false)]
local procedure OnAfterSetSortAndFilterInCompLoop(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent" temporary; LoopNo: Integer; var TempProdOrderComp: Record "Prod. Order Component" temporary; var EDCompFound: Boolean; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnAfterSetSortAndFilterInCompLoop', '', false, false)]
local procedure DoSomethingOnAfterSetSortAndFilterInCompLoop(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent" temporary; LoopNo: Integer; var TempProdOrderComp: Record "Prod. Order Component" temporary; var EDCompFound: Boolean; var IsHandled: Boolean)
begin
end;

Parameters:

  • EDProdOrderComp: The temporary Engineering Design production order component proposal record being processed in the comparison loop.
  • LoopNo: The current loop iteration number indicating which comparison cycle is being processed.
  • TempProdOrderComp: The temporary production order component record used for comparison filtering and sorting.
  • EDCompFound: Boolean flag indicating whether a matching Engineering Design component was found during the comparison.
  • IsHandled: Boolean flag to indicate if the sort and filter operation has been handled by custom logic.

OnAfterSetCompareComponentFields(Record KVSFCYEDModProposalComponent, Integer, Integer) :#

Summary: Event triggered after setting up the component fields array for comparison between Engineering Design and production order components.

[IntegrationEvent(false, false)]
local procedure OnAfterSetCompareComponentFields(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var FieldNo: Integer; var NoOfFieldsToCompare: Integer): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnAfterSetCompareComponentFields', '', false, false)]
local procedure DoSomethingOnAfterSetCompareComponentFields(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var FieldNo: Integer; var NoOfFieldsToCompare: Integer)
begin
end;

Parameters:

  • EDProdOrderComp: The Engineering Design production order component proposal record being processed for field comparison.
  • FieldNo: The array of field numbers that will be used for comparing component differences, can be modified to include additional fields.
  • NoOfFieldsToCompare: The count of fields in the FieldNo array that will be compared, can be modified to change the comparison scope.

OnAfterSetCompareLineFields(Record KVSFCYEDModProposalOrderLine, Integer, Integer) :#

Summary: Event triggered after setting up the line fields array for comparison between Engineering Design and production order lines.

[IntegrationEvent(false, false)]
local procedure OnAfterSetCompareLineFields(var EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; var FieldNo: Integer; var NoOfFieldsToCompare: Integer): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnAfterSetCompareLineFields', '', false, false)]
local procedure DoSomethingOnAfterSetCompareLineFields(var EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; var FieldNo: Integer; var NoOfFieldsToCompare: Integer)
begin
end;

Parameters:

  • EDProdOrderLine: The Engineering Design production order line proposal record being processed for field comparison.
  • FieldNo: The array of field numbers that will be used for comparing line differences, can be modified to include additional fields.
  • NoOfFieldsToCompare: The count of fields in the FieldNo array that will be compared, can be modified to change the comparison scope.

OnBeforeCompareProdOrderLines(Record Item, Code[10], Integer, Date, Boolean) :#

Summary: Event triggered before comparing production order lines with Engineering Design proposals for modification tracking.

[IntegrationEvent(true, false)]
local procedure OnBeforeCompareProdOrderLines(var Item: Record "Item"; CurrWorksheetName: Code[10]; var NextProdModWkshLineNo: Integer; var ComparisonDate: Date; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnBeforeCompareProdOrderLines', '', false, false)]
local procedure DoSomethingOnBeforeCompareProdOrderLines(var Item: Record "Item"; CurrWorksheetName: Code[10]; var NextProdModWkshLineNo: Integer; var ComparisonDate: Date; var IsHandled: Boolean)
begin
end;

Parameters:

  • Item: The item record for which production order lines will be compared with Engineering Design proposals.
  • CurrWorksheetName: The current worksheet name where comparison results and modification proposals will be recorded.
  • NextProdModWkshLineNo: The next line number to be used when inserting new production modification worksheet lines during comparison.
  • ComparisonDate: The date used as the comparison baseline for determining which production orders and proposals to include.
  • IsHandled: Boolean flag to indicate if the production order line comparison has been handled by custom logic.

OnCompareProdOrderLineBeforeInsertEDProdOrderLine(Record Production Order, Record Prod. Order Line, Boolean) :#

Summary: Event triggered before inserting an Engineering Design production order line proposal during production order line comparison.

[IntegrationEvent(false, false)]
local procedure OnCompareProdOrderLineBeforeInsertEDProdOrderLine(var ProdOrder: Record "Production Order"; var ProdOrderLine: Record "Prod. Order Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnCompareProdOrderLineBeforeInsertEDProdOrderLine', '', false, false)]
local procedure DoSomethingOnCompareProdOrderLineBeforeInsertEDProdOrderLine(var ProdOrder: Record "Production Order"; var ProdOrderLine: Record "Prod. Order Line"; var IsHandled: Boolean)
begin
end;

Parameters:

  • ProdOrder: The production order record that contains the line being processed for Engineering Design proposal creation.
  • ProdOrderLine: The production order line record that will be used as the basis for creating the Engineering Design proposal.
  • IsHandled: Boolean flag to indicate if the Engineering Design production order line insertion has been handled by custom logic.

OnTransferBOMAfterSetBOMFilter(Record Production BOM Line) :#

Summary: Event triggered after setting filters on production BOM lines during BOM transfer operations.

[IntegrationEvent(false, false)]
local procedure OnTransferBOMAfterSetBOMFilter(var ProdBOMLine: Record "Production BOM Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnTransferBOMAfterSetBOMFilter', '', false, false)]
local procedure DoSomethingOnTransferBOMAfterSetBOMFilter(var ProdBOMLine: Record "Production BOM Line")
begin
end;

Parameters:

  • ProdBOMLine: The production BOM line record that has been filtered and can be further processed or modified.

OnTransferBOMSetUseBomComponent(Record Production BOM Line, Boolean) :#

Summary: Event triggered to determine whether a production BOM component should be used during BOM transfer operations.

[IntegrationEvent(false, false)]
local procedure OnTransferBOMSetUseBomComponent(var ProdBOMLine: Record "Production BOM Line"; var UseComponent: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnTransferBOMSetUseBomComponent', '', false, false)]
local procedure DoSomethingOnTransferBOMSetUseBomComponent(var ProdBOMLine: Record "Production BOM Line"; var UseComponent: Boolean)
begin
end;

Parameters:

  • ProdBOMLine: The production BOM line record being evaluated for inclusion in the transfer process.
  • UseComponent: Boolean flag indicating whether the BOM component should be included in the transfer, can be modified by custom logic.

OnAfterTransferProdBOMLineBeforeModify(Record KVSFCYEDModProposalComponent, Record Production BOM Line, Integer) :#

Summary: Event triggered after transferring production BOM line data but before modifying the Engineering Design production order component proposal.

[IntegrationEvent(false, false)]
local procedure OnAfterTransferProdBOMLineBeforeModify(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; ProdBOMLine: Record "Production BOM Line"; Level: Integer): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnAfterTransferProdBOMLineBeforeModify', '', false, false)]
local procedure DoSomethingOnAfterTransferProdBOMLineBeforeModify(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; ProdBOMLine: Record "Production BOM Line"; Level: Integer)
begin
end;

Parameters:

  • EDProdOrderComp: The Engineering Design production order component proposal record that has received the transferred data and will be modified.
  • ProdBOMLine: The source production BOM line record that was used for the data transfer.
  • Level: The BOM level indicating the depth of the component in the BOM structure hierarchy.

OnCompareComponentsBeforeEDProdOrderCompInsert(Record KVSFCYEDModProposalComponent, Record Prod. Order Component, Record KVSFCYEDModProposalComponent) :#

Summary: Event triggered before inserting an Engineering Design production order component proposal during component comparison.

[IntegrationEvent(false, false)]
local procedure OnCompareComponentsBeforeEDProdOrderCompInsert(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var TempProdOrderComp: Record "Prod. Order Component" temporary; var TempEDProdOrderComp: Record "KVSFCYEDModProposalComponent" temporary): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnCompareComponentsBeforeEDProdOrderCompInsert', '', false, false)]
local procedure DoSomethingOnCompareComponentsBeforeEDProdOrderCompInsert(var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var TempProdOrderComp: Record "Prod. Order Component" temporary; var TempEDProdOrderComp: Record "KVSFCYEDModProposalComponent" temporary)
begin
end;

Parameters:

  • EDProdOrderComp: The Engineering Design production order component proposal record that will be inserted and can be modified.
  • TempProdOrderComp: The temporary production order component record used in the comparison process.
  • TempEDProdOrderComp: The temporary Engineering Design production order component proposal record used for comparison operations.

OnCompareCompontentsBeforeInsertTempEDProdOrderComp(Record KVSFCYEDModProposalComponent, Record Prod. Order Line, Boolean) :#

Summary: Event triggered before inserting a temporary Engineering Design production order component proposal during component comparison.

[IntegrationEvent(false, false)]
local procedure OnCompareCompontentsBeforeInsertTempEDProdOrderComp(var TempEDProdOrderComp: Record "KVSFCYEDModProposalComponent" temporary; ProdOrderLine: Record "Prod. Order Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnCompareCompontentsBeforeInsertTempEDProdOrderComp', '', false, false)]
local procedure DoSomethingOnCompareCompontentsBeforeInsertTempEDProdOrderComp(var TempEDProdOrderComp: Record "KVSFCYEDModProposalComponent" temporary; ProdOrderLine: Record "Prod. Order Line"; var IsHandled: Boolean)
begin
end;

Parameters:

  • TempEDProdOrderComp: The temporary Engineering Design production order component proposal record that will be inserted and can be modified.
  • ProdOrderLine: The production order line record associated with the component being processed for comparison.
  • IsHandled: Boolean flag to indicate if the temporary component insertion has been handled by custom logic.

OnCompareTempComponentsBeforeLoop(Integer, Integer) :#

Summary: Event triggered before starting the component comparison loop to allow customization of loop parameters.

[IntegrationEvent(false, false)]
local procedure OnCompareTempComponentsBeforeLoop(var StartLoopNo: Integer; var EndLoopNo: Integer): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnCompareTempComponentsBeforeLoop', '', false, false)]
local procedure DoSomethingOnCompareTempComponentsBeforeLoop(var StartLoopNo: Integer; var EndLoopNo: Integer)
begin
end;

Parameters:

  • StartLoopNo: The starting loop number for the component comparison process, can be modified to change the loop range.
  • EndLoopNo: The ending loop number for the component comparison process, can be modified to change the loop range.

OnBeforeCompareComponent(Record Prod. Order Line, Record KVSFCYEDModProposalOrderLine, Record Prod. Order Component, Record KVSFCYEDModProposalComponent, Boolean) :#

Summary: Event triggered before comparing individual production order components with Engineering Design component proposals.

[IntegrationEvent(false, false)]
local procedure OnBeforeCompareComponent(ProdOrderLine: Record "Prod. Order Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; var ProdOrderComp: Record "Prod. Order Component"; var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnBeforeCompareComponent', '', false, false)]
local procedure DoSomethingOnBeforeCompareComponent(ProdOrderLine: Record "Prod. Order Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; var ProdOrderComp: Record "Prod. Order Component"; var EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var IsHandled: Boolean)
begin
end;

Parameters:

  • ProdOrderLine: The production order line record that contains the components being compared.
  • EDProdOrderLine: The Engineering Design production order line proposal record associated with the component comparison.
  • ProdOrderComp: The production order component record being compared with the Engineering Design proposal.
  • EDProdOrderComp: The Engineering Design production order component proposal record being compared with the production order component.
  • IsHandled: Boolean flag to indicate if the component comparison has been handled by custom logic.

OnInsertPORtngLineModWkshLineBeforeInsert(Record KVSFCYEDModProposalWkshtLine, Record Prod. Order Line, Record KVSFCYEDModProposalOrderLine, Record Prod. Order Routing Line, Record KVSFCYEDModProposalRtgLine, Record KVSFCYEDModProposalWkshtLine, Integer, Option, Integer, Text[50], Text[100], Text[100], Boolean, Boolean) :#

Summary: Event triggered before inserting a production modification worksheet line for production order routing line changes.

[IntegrationEvent(false, false)]
local procedure OnInsertPORtngLineModWkshLineBeforeInsert(var ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; ProdOrderLine: Record "Prod. Order Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; var ProdOrderRtngLine: Record "Prod. Order Routing Line"; var EDProdOrderRtngLine: Record "KVSFCYEDModProposalRtgLine"; var LevelOneProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; Level: Integer; ActionMessage: Option; FieldNo: Integer; FieldCaption: Text[50]; OldValue: Text[100]; NewValue: Text[100]; RegenerativePlan: Boolean; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnInsertPORtngLineModWkshLineBeforeInsert', '', false, false)]
local procedure DoSomethingOnInsertPORtngLineModWkshLineBeforeInsert(var ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; ProdOrderLine: Record "Prod. Order Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; var ProdOrderRtngLine: Record "Prod. Order Routing Line"; var EDProdOrderRtngLine: Record "KVSFCYEDModProposalRtgLine"; var LevelOneProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; Level: Integer; ActionMessage: Option; FieldNo: Integer; FieldCaption: Text[50]; OldValue: Text[100]; NewValue: Text[100]; RegenerativePlan: Boolean; var IsHandled: Boolean)
begin
end;

Parameters:

  • ProdModWkshLine: The production modification worksheet line record that will be inserted and can be modified.
  • ProdOrderLine: The production order line record associated with the routing line being processed.
  • EDProdOrderLine: The Engineering Design production order line proposal record related to the routing modification.
  • ProdOrderRtngLine: The production order routing line record that is being compared for modifications.
  • EDProdOrderRtngLine: The Engineering Design production order routing line proposal record used for comparison.
  • LevelOneProdModWkshLine: The level one production modification worksheet line record that serves as the parent for hierarchical modifications.
  • Level: The hierarchy level indicating the depth of the modification in the BOM or routing structure.
  • ActionMessage: The action message indicating the type of modification (New, Update, Delete, or blank).
  • FieldNo: The field number that has been modified and requires tracking in the worksheet.
  • FieldCaption: The caption of the field that has been modified for display purposes.
  • OldValue: The original value of the field before modification (up to 100 characters).
  • NewValue: The new value of the field after modification (up to 100 characters).
  • RegenerativePlan: Boolean flag indicating whether this modification is part of a regenerative planning process.
  • IsHandled: Boolean flag to indicate if the worksheet line insertion has been handled by custom logic.

OnInsertProdOrderCompModWkshLineBeforeInsert(Record KVSFCYEDModProposalWkshtLine, Record Prod. Order Line, Record KVSFCYEDModProposalOrderLine, Record Prod. Order Component, Record KVSFCYEDModProposalComponent, Record KVSFCYEDModProposalWkshtLine, Integer, Option, Integer, Text[50], Text[100], Text[100], Boolean, Boolean) :#

Summary: Event triggered before inserting a production modification worksheet line for production order component changes.

[IntegrationEvent(false, false)]
local procedure OnInsertProdOrderCompModWkshLineBeforeInsert(var ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; ProdOrderLine: Record "Prod. Order Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; ProdOrderComp: Record "Prod. Order Component"; EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var levelOneProdModWkshLineVar: Record "KVSFCYEDModProposalWkshtLine"; Level: Integer; ActionMessage: Option; FieldNo: Integer; FieldCaption: Text[50]; OldValue: Text[100]; NewValue: Text[100]; RegenerativePlan: Boolean; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnInsertProdOrderCompModWkshLineBeforeInsert', '', false, false)]
local procedure DoSomethingOnInsertProdOrderCompModWkshLineBeforeInsert(var ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; ProdOrderLine: Record "Prod. Order Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; ProdOrderComp: Record "Prod. Order Component"; EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var levelOneProdModWkshLineVar: Record "KVSFCYEDModProposalWkshtLine"; Level: Integer; ActionMessage: Option; FieldNo: Integer; FieldCaption: Text[50]; OldValue: Text[100]; NewValue: Text[100]; RegenerativePlan: Boolean; var IsHandled: Boolean)
begin
end;

Parameters:

  • ProdModWkshLine: The production modification worksheet line record that will be inserted and can be modified.
  • ProdOrderLine: The production order line record associated with the component being processed.
  • EDProdOrderLine: The Engineering Design production order line proposal record related to the component modification.
  • ProdOrderComp: The production order component record that is being compared for modifications.
  • EDProdOrderComp: The Engineering Design production order component proposal record used for comparison.
  • levelOneProdModWkshLineVar: The level one production modification worksheet line record that serves as the parent for hierarchical modifications.
  • Level: The hierarchy level indicating the depth of the modification in the BOM structure.
  • ActionMessage: The action message indicating the type of modification (New, Update, Delete, or blank).
  • FieldNo: The field number that has been modified and requires tracking in the worksheet.
  • FieldCaption: The caption of the field that has been modified for display purposes.
  • OldValue: The original value of the field before modification (up to 100 characters).
  • NewValue: The new value of the field after modification (up to 100 characters).
  • RegenerativePlan: Boolean flag indicating whether this modification is part of a regenerative planning process.
  • IsHandled: Boolean flag to indicate if the worksheet line insertion has been handled by custom logic.

OnCheckAndResolveComponentsAfterSetProdBOMLineFilter(Record Production BOM Line, Record KVSFCYEDModProposalWkshtLine) :#

Summary: Event triggered after setting production BOM line filters during component resolution and checking operations.

[IntegrationEvent(false, false)]
local procedure OnCheckAndResolveComponentsAfterSetProdBOMLineFilter(var ProdBOMLine: Record "Production BOM Line"; ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnCheckAndResolveComponentsAfterSetProdBOMLineFilter', '', false, false)]
local procedure DoSomethingOnCheckAndResolveComponentsAfterSetProdBOMLineFilter(var ProdBOMLine: Record "Production BOM Line"; ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine")
begin
end;

Parameters:

  • ProdBOMLine: The production BOM line record that has been filtered and is ready for component resolution processing.
  • ProdModWkshLine: The production modification worksheet line record that provides context for the component resolution process.

OnCheckAndResolveComponentsBeforeInitProdModWkshLine(Record Production BOM Line, Record KVSFCYEDModProposalWkshtLine, Boolean) :#

Summary: Event triggered before initializing a production modification worksheet line during component resolution and checking operations.

[IntegrationEvent(false, false)]
local procedure OnCheckAndResolveComponentsBeforeInitProdModWkshLine(var ProdBOMLine: Record "Production BOM Line"; var ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnCheckAndResolveComponentsBeforeInitProdModWkshLine', '', false, false)]
local procedure DoSomethingOnCheckAndResolveComponentsBeforeInitProdModWkshLine(var ProdBOMLine: Record "Production BOM Line"; var ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; var IsHandled: Boolean)
begin
end;

Parameters:

  • ProdBOMLine: The production BOM line record being processed for component resolution.
  • ProdModWkshLine: The production modification worksheet line record that will be initialized and can be modified.
  • IsHandled: Boolean flag to indicate if the worksheet line initialization has been handled by custom logic.

OnBeforeEDCompFoundInCompLoop(Record KVSFCYEDModProposalComponent, Record Prod. Order Component, Integer, Boolean) :#

Summary: Event triggered before determining if an Engineering Design component has been found during component comparison loop processing.

[IntegrationEvent(false, false)]
local procedure OnBeforeEDCompFoundInCompLoop(var TempEDProdOrderComp: Record "KVSFCYEDModProposalComponent" temporary; var TempProdOrderComp: Record "Prod. Order Component" temporary; LoopNo: Integer; var EDCompFound: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnBeforeEDCompFoundInCompLoop', '', false, false)]
local procedure DoSomethingOnBeforeEDCompFoundInCompLoop(var TempEDProdOrderComp: Record "KVSFCYEDModProposalComponent" temporary; var TempProdOrderComp: Record "Prod. Order Component" temporary; LoopNo: Integer; var EDCompFound: Boolean)
begin
end;

Parameters:

  • TempEDProdOrderComp: The temporary Engineering Design production order component proposal record being evaluated in the comparison loop.
  • TempProdOrderComp: The temporary production order component record being compared against Engineering Design proposals.
  • LoopNo: The current loop iteration number indicating which comparison cycle is being processed.
  • EDCompFound: Boolean flag indicating whether a matching Engineering Design component was found, can be modified by custom logic to override the default finding algorithm.

OnInsertProdOrderCompModWkshLineBeforeActionMessage(Record KVSFCYEDModProposalWkshtLine, Record Prod. Order Line, Record KVSFCYEDModProposalOrderLine, Record Prod. Order Component, Record KVSFCYEDModProposalComponent, Record KVSFCYEDModProposalWkshtLine, Integer, Option, Integer, Text[50], Text[100], Text[100], Boolean, Boolean) :#

Summary: Event triggered before processing action messages when inserting a production modification worksheet line for production order component changes.

[IntegrationEvent(false, false)]
local procedure OnInsertProdOrderCompModWkshLineBeforeActionMessage(var ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; ProdOrderLine: Record "Prod. Order Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; ProdOrderComp: Record "Prod. Order Component"; EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var levelOneProdModWkshLineVar: Record "KVSFCYEDModProposalWkshtLine"; Level: Integer; ActionMessage: Option; FieldNo: Integer; FieldCaption: Text[50]; OldValue: Text[100]; NewValue: Text[100]; RegenerativePlan: Boolean; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSFCYEDModPropCompareLib", 'OnInsertProdOrderCompModWkshLineBeforeActionMessage', '', false, false)]
local procedure DoSomethingOnInsertProdOrderCompModWkshLineBeforeActionMessage(var ProdModWkshLine: Record "KVSFCYEDModProposalWkshtLine"; ProdOrderLine: Record "Prod. Order Line"; EDProdOrderLine: Record "KVSFCYEDModProposalOrderLine"; ProdOrderComp: Record "Prod. Order Component"; EDProdOrderComp: Record "KVSFCYEDModProposalComponent"; var levelOneProdModWkshLineVar: Record "KVSFCYEDModProposalWkshtLine"; Level: Integer; ActionMessage: Option; FieldNo: Integer; FieldCaption: Text[50]; OldValue: Text[100]; NewValue: Text[100]; RegenerativePlan: Boolean; var IsHandled: Boolean)
begin
end;

Parameters:

  • ProdModWkshLine: The production modification worksheet line record that will be processed for action message handling and can be modified.
  • ProdOrderLine: The production order line record associated with the component being processed for modification tracking.
  • EDProdOrderLine: The Engineering Design production order line proposal record related to the component modification workflow.
  • ProdOrderComp: The production order component record that is being evaluated for modification tracking and action message processing.
  • EDProdOrderComp: The Engineering Design production order component proposal record used for comparison and modification analysis.
  • levelOneProdModWkshLineVar: The level one production modification worksheet line record that serves as the parent for hierarchical modification structures.
  • Level: The hierarchy level indicating the depth of the modification in the BOM structure for proper worksheet organization.
  • ActionMessage: The action message indicating the type of modification (New, Update, Delete, or blank) being processed.
  • FieldNo: The field number that has been modified and requires tracking in the worksheet for audit and change management.
  • FieldCaption: The caption of the field that has been modified for user-friendly display purposes in modification reports.
  • OldValue: The original value of the field before modification (up to 100 characters) for change tracking and comparison.
  • NewValue: The new value of the field after modification (up to 100 characters) for change tracking and validation.
  • RegenerativePlan: Boolean flag indicating whether this modification is part of a regenerative planning process that affects action message handling.
  • IsHandled: Boolean flag to indicate if the action message processing has been handled by custom logic, preventing default processing.