Skip to content

Request for a publisher in codeunit 99000774 "Calculate Routing Line" #29166

@djuras1

Description

@djuras1

Why do you need this change?

Dear Support,
Could You please add a new publishers into codeunit 99000774 "Calculate Routing Line"? I will list all of the modifications here in this CU.

local procedure CreateLoadBack(TimeType: Enum "Routing Time Type"; Write: Boolean)
    var
        OldCalendarEntry: Record "Calendar Entry";
        AvQtyBase: Decimal;
        RelevantEfficiency: Decimal;
        xConCurrCap: Decimal;
        RemainNeedQtyBase: Decimal;
        StartingTime: Time;
        StopLoop: Boolean;
        IsHandled: Boolean; --> MODIFICATION
    begin
        xConCurrCap := 1;
        if (RemainNeedQty = 0) and ((not FirstEntry) or (not Write) or WaitTimeOnly) then
            exit;
        if CalendarEntry.Find('+') then begin
            if (TimeType = TimeType::"Wait Time") and (CalendarEntry.Date < ProdEndingDate) then begin
                CalendarEntry.Date := ProdEndingDate;
                CreateCalendarEntry(CalendarEntry);
            end;
            GetCurrentWorkCenterTimeFactorAndRounding(CalendarEntry."Work Center No.");
            RemainNeedQtyBase := Round(RemainNeedQty * CurrentTimeFactor, CurrentRounding);
            // >> MODIFICATION
            OnBeforeRepeatCreateLoadBack(Handled, FirstEntry, WaitTimeOnly, ProdStartingDate, ProdStartingTime, ProdEndingDate, ProdEndingTime, RemainNeedQty, RemainNeedQtyBase, TimeType, Write, CurrentWorkCenterNo, CurrentTimeFactor, CurrentRounding, CalendarEntry);
           if isHandled thern
              exit();
           // << MODIFICATION
            repeat
                OldCalendarEntry := CalendarEntry;
                ConCurrCap := ProdOrderRoutingLine."Concurrent Capacities";
.
.
.
[Integration]
local procedure OnBeforeRepeatCreateLoadBack(var isHandled: Boolean; FirstEntry: Boolean; WaitTimeOnly: Boolean; ProdStartingDate: Date; ProdStartingTime: Time; ProdEndingDate: Date; ProdEndingTime: Time; var RemainNeedQty: Decimal; var RemainNeedQtyBase: Decimal; var TimeType: Option; var Write: Boolean; var CurrentWorkCenterNo: Code[20]; var CurrentTimeFactor: Decimal; var CurrentRounding: Decimal; var CalendarEntry: Record "Calendar Entry");
begin
end;
local procedure CreateLoadForward(TimeType: Enum "Routing Time Type"; Write: Boolean; LoadFactor: Decimal)
    var
        OldCalendarEntry: Record "Calendar Entry";
        AvQtyBase: Decimal;
        RelevantEfficiency: Decimal;
        xConCurrCap: Decimal;
        RemainNeedQtyBase: Decimal;
        EndingTime: Time;
        StopLoop: Boolean;
        IsHandled: Boolean;
    begin
        xConCurrCap := 1;
        if (RemainNeedQty = 0) and ((not FirstEntry) or (not Write) or WaitTimeOnly) then
            exit;
        if CalendarEntry.Find('-') then begin
            if (TimeType = TimeType::"Wait Time") and (CalendarEntry.Date > ProdStartingDate) then begin
                CalendarEntry.Date := ProdStartingDate;
                CreateCalendarEntry(CalendarEntry);
            end;
            if CalendarEntry."Capacity (Effective)" = 0 then begin
                CalendarEntry."Starting Time" := ProdStartingTime;
                CalendarEntry.Date := ProdStartingDate;
            end;
            if CalendarEntry."Work Center No." = Workcenter."No." then
                GetCurrentWorkCenterTimeFactorAndRounding(Workcenter."No.")
            else
                GetCurrentWorkCenterTimeFactorAndRounding(CalendarEntry."Work Center No.");
            RemainNeedQtyBase := Round(RemainNeedQty * CurrentTimeFactor, CurrentRounding);
            OnBeforeRepeatCreateLoadForward(isHandled, FirstEntry, WaitTimeOnly,; ProdStartingDate, ProdStartingTime, ProdEndingDate, ProdEndingTime, RemainNeedQty, RemainNeedQtyBase, TimeType, Write, LoadFactor, CurrentWorkCenterNo, CurrentTimeFactor, CurrentRounding, CalendarEntry);
            if isHandled then
               exit();
            repeat
                OldCalendarEntry := CalendarEntry;
                ConCurrCap := ProdOrderRoutingLine."Concurrent Capacities";
.
.
.

[Integration]
local procedure OnBeforeRepeatCreateLoadForward(var isHandled: Boolean; FirstEntry: Boolean; WaitTimeOnly: Boolean; ProdStartingDate: Date; ProdStartingTime: Time; ProdEndingDate: Date; ProdEndingTime: Time; var RemainNeedQty: Decimal; var RemainNeedQtyBase: Decimal; var TimeType: Option; var Write: Boolean; var LoadFactor: Decimal; var CurrentWorkCenterNo: Code[20]; var CurrentTimeFactor: Decimal; var CurrentRounding: Decimal; var CalendarEntry: Record "Calendar Entry");
begin
end;

Describe the request

due to customer modificaiton.
thank you in advance!
Internal work item: AB#602705

Metadata

Metadata

Assignees

No one assigned

    Labels

    SCMGitHub request for SCM areaevent-requestRequest for adding an eventships-in-future-updateFix ships in a future update

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions