You are right.
I don't know 100% whether it is a bug or bydesign.
Earlier code was:
IF Status IN [Status::Released,Status::Finished] THEN BEGIN
ItemLedgEntry.SETCURRENTKEY("Prod. Order No.");
ItemLedgEntry.SETRANGE("Prod. Order No.","No.");
IF ItemLedgEntry.FIND('-') THEN
ERROR(
Text000,
Status,TABLECAPTION,"No.",ItemLedgEntry.TABLECAPTION);
CapLedgEntry.SETCURRENTKEY("Prod. Order No.");
CapLedgEntry.SETRANGE("Prod. Order No.","No.");
IF CapLedgEntry.FIND('-') THEN
ERROR(
Text000,
Status,TABLECAPTION,"No.",CapLedgEntry.TABLECAPTION);
END;
IF Status = Status::Released THEN BEGIN
PurchLine.SETCURRENTKEY(
"Document Type",Type,"Prod. Order No.","Prod. Order Line No.","Routing No.","Operation No.");
PurchLine.SETRANGE("Document Type",PurchLine."Document Type"::Order);
PurchLine.SETRANGE(Type,PurchLine.Type::Item);
PurchLine.SETRANGE("Prod. Order No.","No.");
IF PurchLine.FIND('-') THEN
ERROR(
Text000,
Status,TABLECAPTION,"No.",PurchLine.TABLECAPTION);
END;
New Code is
IF Status = Status::Released THEN BEGIN
ItemLedgEntry.SETCURRENTKEY("Order Type","Order No.");
ItemLedgEntry.SETRANGE("Order Type",ItemLedgEntry."Order Type"::Production);
ItemLedgEntry.SETRANGE("Order No.","No.");
IF ItemLedgEntry.FINDFIRST THEN
ERROR(
Text000,
Status,TABLECAPTION,"No.",ItemLedgEntry.TABLECAPTION);
CapLedgEntry.SETCURRENTKEY("Order Type","Order No.");
CapLedgEntry.SETRANGE("Order Type",CapLedgEntry."Order Type"::Production);
CapLedgEntry.SETRANGE("Order No.","No.");
IF CapLedgEntry.FINDFIRST THEN
ERROR(
Text000,
Status,TABLECAPTION,"No.",CapLedgEntry.TABLECAPTION);
END;
IF Status IN [Status::Released,Status::Finished] THEN BEGIN
PurchLine.SETCURRENTKEY(
"Document Type",Type,"Prod. Order No.","Prod. Order Line No.","Routing No.","Operation No.");
PurchLine.SETRANGE("Document Type",PurchLine."Document Type"::Order);
PurchLine.SETRANGE(Type,PurchLine.Type::Item);
PurchLine.SETRANGE("Prod. Order No.","No.");
IF PurchLine.FINDFIRST THEN
ERROR(
Text000,
Status,TABLECAPTION,"No.",PurchLine.TABLECAPTION);
END;