Table 5943 Troubleshooting Header, source in 29
Source29
src/Layers/W1/BaseApp/Service/Maintenance/TroubleshootingHeader.Table.al205 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Service.Maintenance;
using Microsoft.Foundation.NoSeries;
using Microsoft.Inventory.Item;
using Microsoft.Service.Document;
using Microsoft.Service.Item;
using Microsoft.Service.Setup;
table 5943 "Troubleshooting Header"
{
Caption = 'Troubleshooting Header';
LookupPageID = "Troubleshooting List";
DataClassification = CustomerContent;
fields
{
field(1; "No."; Code[20])
{
Caption = 'No.';
ToolTip = 'Specifies the number of the involved entry or record, according to the specified number series.';
trigger OnValidate()
begin
if "No." <> xRec."No." then begin
ServMgtSetup.Get();
NoSeries.TestManual(ServMgtSetup."Troubleshooting Nos.");
"No. Series" := '';
end;
end;
}
field(2; Description; Text[100])
{
Caption = 'Description';
ToolTip = 'Specifies a description of the troubleshooting issue.';
}
field(3; "No. Series"; Code[20])
{
Caption = 'No. Series';
Editable = false;
TableRelation = "No. Series";
}
}
keys
{
key(Key1; "No.")
{
Clustered = true;
}
}
fieldgroups
{
}
trigger OnInsert()
begin
ServMgtSetup.Get();
if "No." = '' then begin
ServMgtSetup.TestField("Troubleshooting Nos.");
"No. Series" := ServMgtSetup."Troubleshooting Nos.";
if NoSeries.AreRelated("No. Series", xRec."No. Series") then
"No. Series" := xRec."No. Series";
"No." := NoSeries.GetNextNo("No. Series");
end;
end;
var
ServMgtSetup: Record "Service Mgt. Setup";
TblshtgHeader: Record "Troubleshooting Header";
TblshtgHeader2: Record "Troubleshooting Header";
TblshtgSetup: Record "Troubleshooting Setup";
NoSeries: Codeunit "No. Series";
Troubleshooting: Page Troubleshooting;
#pragma warning disable AA0074
#pragma warning disable AA0470
Text000: Label 'No %1 was found.';
Text001: Label 'No %1 was found for %2 %3.';
#pragma warning restore AA0470
#pragma warning restore AA0074
procedure AssistEdit(OldTblshtHeader: Record "Troubleshooting Header"): Boolean
begin
TblshtgHeader := Rec;
ServMgtSetup.Get();
ServMgtSetup.TestField("Troubleshooting Nos.");
if NoSeries.LookupRelatedNoSeries(ServMgtSetup."Troubleshooting Nos.", OldTblshtHeader."No. Series", TblshtgHeader."No. Series") then begin
TblshtgHeader."No." := NoSeries.GetNextNo(TblshtgHeader."No. Series");
Rec := TblshtgHeader;
exit(true);
end;
end;
procedure ShowForServItemLine(ServItemLine: Record "Service Item Line")
var
TblshtFound: Boolean;
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeShowForServItemLine(Rec, ServItemLine, IsHandled);
if IsHandled then
exit;
TblshtgSetup.Reset();
TblshtgSetup.SetRange(Type, TblshtgSetup.Type::"Service Item");
TblshtgSetup.SetRange("No.", ServItemLine."Service Item No.");
TblshtFound := TblshtgSetup.FindFirst();
if not TblshtFound then begin
TblshtgSetup.SetRange(Type, TblshtgSetup.Type::Item);
TblshtgSetup.SetRange("No.", ServItemLine."Item No.");
TblshtFound := TblshtgSetup.FindFirst();
end;
if not TblshtFound then begin
TblshtgSetup.SetRange(Type, TblshtgSetup.Type::"Service Item Group");
TblshtgSetup.SetRange("No.", ServItemLine."Service Item Group Code");
TblshtFound := TblshtgSetup.FindFirst();
end;
if TblshtFound then
RunTroubleshooting()
else
Message(
Text000, TblshtgSetup.TableCaption());
end;
procedure ShowForServItem(ServItem: Record "Service Item")
var
TblshtFound: Boolean;
begin
TblshtgSetup.Reset();
TblshtgSetup.SetRange(Type, TblshtgSetup.Type::"Service Item");
TblshtgSetup.SetRange("No.", ServItem."No.");
TblshtFound := TblshtgSetup.FindFirst();
if not TblshtFound then begin
TblshtgSetup.Reset();
TblshtgSetup.SetRange(Type, TblshtgSetup.Type::Item);
TblshtgSetup.SetRange("No.", ServItem."Item No.");
TblshtFound := TblshtgSetup.FindFirst();
end;
if not TblshtFound then begin
TblshtgSetup.SetRange(Type, TblshtgSetup.Type::"Service Item Group");
TblshtgSetup.SetRange("No.", ServItem."Service Item Group Code");
TblshtFound := TblshtgSetup.FindFirst();
end;
if TblshtFound then
RunTroubleshooting()
else
Message(Text001, TblshtgSetup.TableCaption(), ServItem.TableCaption(), ServItem."No.");
end;
procedure ShowForItem(Item: Record Item)
var
TblshtFound: Boolean;
begin
TblshtgSetup.Reset();
TblshtgSetup.SetRange(Type, TblshtgSetup.Type::Item);
TblshtgSetup.SetRange("No.", Item."No.");
TblshtFound := TblshtgSetup.FindFirst();
if not TblshtFound then begin
TblshtgSetup.SetRange(Type, TblshtgSetup.Type::"Service Item Group");
TblshtgSetup.SetRange("No.", Item."Service Item Group");
TblshtFound := TblshtgSetup.FindFirst();
end;
if TblshtFound then
RunTroubleshooting()
else
Message(Text001, TblshtgSetup.TableCaption(), Item.TableCaption(), Item."No.");
end;
local procedure MarkTroubleShtgHeader(var TblshtgSetup2: Record "Troubleshooting Setup")
begin
TblshtgSetup2.Find('-');
repeat
TblshtgHeader2.Get(TblshtgSetup2."Troubleshooting No.");
TblshtgHeader2.Mark(true);
until TblshtgSetup2.Next() = 0;
end;
local procedure RunTroubleshooting()
begin
TblshtgHeader.Get(TblshtgSetup."Troubleshooting No.");
MarkTroubleShtgHeader(TblshtgSetup);
TblshtgHeader2.MarkedOnly(true);
Clear(Troubleshooting);
if Format(TblshtgSetup.Type) <> '' then
Troubleshooting.SetPageCaptionPrefix(Format(TblshtgSetup.Type) + ' ' + TblshtgSetup."No.");
Troubleshooting.SetRecord(TblshtgHeader);
Troubleshooting.SetTableView(TblshtgHeader2);
Troubleshooting.Editable := false;
Troubleshooting.Run();
TblshtgHeader2.Reset();
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeShowForServItemLine(var TroubleshootingHeader: Record "Troubleshooting Header"; ServiceItemLine: Record "Service Item Line"; var IsHandled: Boolean)
begin
end;
}