15. Juni 2021 09:11
procedure SetEnddateLastPost():DateTime
    var
        prodorderline: Record "Prod. Order Line";
        prodorderroutingline: Record "Prod. Order Routing Line";
        prodorder: Record "Production Order";
    begin  
        prodorder.SetFilter("No.","No.");      
        if prodorder.FindFirst then begin
            prodorderline.SetFilter("Prod. Order No.","No.");
            prodorderline.SetFilter("Line No.",Format(10000));
            if prodorderline.FindSet then begin
                prodorderroutingline.SetFilter("Prod. Order No.",prodorderline."Prod. Order No.");
                prodorderroutingline.SetFilter("Routing Reference No.",Format(prodorderline."Routing Reference No."));
                if prodorderroutingline.FindLast then begin  
                    prodorder."End Date-Time Last Post":=prodorderroutingline.GetLatestPostedEndDateTime;
                    prodorder.Modify; 
                    exit(prodorder."End Date-Time Last Post");
                end;
            end; 
               
        end;
        
    end;15. Juni 2021 09:17
 
 15. Juni 2021 09:24
15. Juni 2021 10:32
wie lautet denn die Fehlermeldung? Meine Glaskugel ist gerade etwas trübe
"GetLatestPostedEndDateTime" auf der "Prod. Order Routing Line" - ist die selbst geschrieben?
Gibt die denn überhaupt was Ordentliches zurück?
procedure SetEnddateLastPost():DateTime
    var
        prodorderline: Record "Prod. Order Line";
        prodorderroutingline: Record "Prod. Order Routing Line";
        
    begin  
        
            prodorderline.SetFilter("Prod. Order No.","No.");
            prodorderline.SetFilter("Line No.",Format(10000));
            if prodorderline.FindSet then begin
                prodorderroutingline.SetFilter("Prod. Order No.",prodorderline."Prod. Order No.");
                prodorderroutingline.SetFilter("Routing Reference No.",Format(prodorderline."Routing Reference No."));
                if prodorderroutingline.FindLast then begin               
                    exit(prodorderroutingline.GetLatestPostedEndDateTime);
                    
                end;
            end; 
        
    end;trigger OnAfterGetRecord();
    
    begin
        
        "End Date-Time Last Post":=SetEnddateLastPost();
        if Format("End Date-Time Last Post") <> '' then
            Modify;
    end;15. Juni 2021 12:05
trigger OnAfterGetRecord();
   
    begin
       
        "End Date-Time Last Post":=SetEnddateLastPost();
        if Format("End Date-Time Last Post") <> '' then
            Modify;
    end;
trigger OnAfterGetRecord();
   
    begin
       
        "End Date-Time Last Post":=SetEnddateLastPost();
        Message(Format("End Date-Time Last Post"));
    end;
15. Juni 2021 13:06
15. Juni 2021 13:25
machst, steht in der Message alles richtig drin?
is "End Date-Time Last Post" auch ein Tabellenfeld?
15. Juni 2021 13:30
15. Juni 2021 13:38
Fußt deine Page auf einer Temporären Tabelle
oder hast du im Page on Modify Trigger Anweisungen geschrieben?
15. Juni 2021 14:20
und wenn du die Tabelle bzw. deine TableExtension dann per SQL-MGT-Studio öffnest, dann steht da nicht dieser Wert drin?
15. Juni 2021 15:26
15. Juni 2021 15:58
das Feld "End Date-Time Last Post" ist ein Feld in deiner Tabelle und definitiv nirgends ggf. noch mal als lokale/globale Variable angelegt?
15. Juni 2021 17:33
tableextension 50100 MyExtension extends Customer
{
    fields
    {
        field(50100; MyDateTimeBlub; DateTime)
        {
        }
    }
}
pageextension 50100 MyExtension extends "Customer List"
{
    layout
    {
        addlast(Control1)
        {
            field(MyDateTimeBlub; MyDateTimeBlub)
            { }
        }
    }
    trigger OnAfterGetRecord()
    begin
        if "No." = '10000' then begin
            MyDateTimeBlub := CreateDateTime(Today, Time);
            Modify;
        end;
    end;
}
16. Juni 2021 11:19
16. Juni 2021 11:54
im Feld "End Date-Time Last Post" der Page werden alle Werte und auch im richtigen Format, zB.: 12.04.2021 20:26 dargestellt und angezeigt. wenn ich die Zelle aus der Page heraus kopiere, sieht es so aus: 12.04.2021 20:26:39,180
16. Juni 2021 18:01
Somit ist doch alles ok, oder nicht?
17. Juni 2021 08:51
17. Juni 2021 17:20
18. Juni 2021 09:44
18. Juni 2021 09:47
Wenn wir dir helfen sollen, brauchen wir mehr ordentlichen Code (meine Meinung)
 
   
   
			
		18. Juni 2021 11:01
Wenn wir dir helfen sollen, brauchen wir mehr ordentlichen Code (meine Meinung)
procedure GetLatestPostedEndDateTime(Rec: Record "Prod. Order Routing Line") LatestEndDateTime: DateTime;
    var
        TempFDCDetailedEntry: Record "FDC - Detailed Entry" temporary;
    begin
        if (CollectFDCDetailedEntries(Rec, TempFDCDetailedEntry)) then begin
            TempFDCDetailedEntry.SetRange("FDC Entry Type", TempFDCDetailedEntry."FDC Entry Type"::Recording);
            TempFDCDetailedEntry.SetRange(Canceled, false);
            if (not TempFDCDetailedEntry.IsEmpty()) then begin
                TempFDCDetailedEntry.FindSet();
                repeat
                    if (TempFDCDetailedEntry."End Date-Time" <> 0DT) then
                        if (LatestEndDateTime = 0DT) or (LatestEndDateTime < TempFDCDetailedEntry."End Date-Time") then
                            LatestEndDateTime := TempFDCDetailedEntry."End Date-Time";
                until (TempFDCDetailedEntry.Next() = 0);
            end;
        end;
        exit(LatestEndDateTime);
    end;18. Juni 2021 14:27
18. Juni 2021 21:11
 "End Date-Time Last Post":=SetEnddateLastPost();
        if Format("End Date-Time Last Post") <> '' then
            Modify;"End Date-Time Last Post":=SetEnddateLastPost();
Modify;8. Juli 2021 13:13
- gibt es evtl Subscriber auf den MODIFY-Trigger der SourceTable der Page? Wenn ja, können die vlt. die Ursache dafür sein, dass der Wert wieder verworfen wird?
trigger OnAfterGetRecord();
    
    begin        
        "End Date-Time Last Post Irl":=SetEnddateLastPost();        
        Modify;
    end;[EventSubscriber(ObjectType::table, Database::"Production Order", 'OnBeforeModifyEvent', '', false, false)]
    
    local procedure ProductionOrderEvent(var Rec : Record "Production Order"; xRec : Record "Production Order"; RunTrigger: Boolean);
    begin
        if Rec.SetEnddateLastPost <> Rec."End Date-Time Last Post Irl" then
            Rec.Validate("End Date-Time Last Post Irl", Rec.SetEnddateLastPost);
    end;