AppSourceCop Warning AS0075
Obsolete Reason must be set.
Description
Obsolete Reason must be set.
When an object, element, variable or procedure is marked as obsolete, you should also specify an obsolete reason. The obsolete reason can be used to provide valuable information, such as the reason for the obsoletion or a workaround to achieve the same goal, to developers that are referencing it. The obsolete reason appears in the message of the diagnostics AL0432 and AL0433 reported by the AL compiler when referencing obsolete elements.
How to fix this diagnostic?
When the property Obsolete State is used to mark an object as Obsolete Pending
or Obsolete Removed
, you need to also specify the property Obsolete Reason.
When the attribute Obsolete is used, you need to specify the obsolete reason attribute parameter.
Code examples triggering the rule
Example 1 - Table marked as Obsolete Pending
table 50100 MyTable
{
ObsoleteState = Pending;
fields
{
field(50100; MyField; Integer) { }
}
}
Example 2 - Procedure marked as Obsolete
codeunit 50100 MyCodeunit
{
[Obsolete]
procedure MyProcedure()
begin
// Business logic.
end;
}
Code examples not triggering the rule
Example 1 - Table marked as Obsolete Pending
table 50100 MyTable
{
ObsoleteState = Pending;
ObsoleteReason = 'This table is being deprecated for reason X. Use table Y instead.';
fields
{
field(50100; MyField; Integer) { }
}
}
Example 2 - Procedure marked as Obsolete
codeunit 50100 MyCodeunit
{
[Obsolete('This procedure is being deprecated for reason X. Use procedure Y instead.')]
procedure MyProcedure()
begin
// Business logic.
end;
}
See Also
AppSourceCop Analyzer
Get Started with AL
Developing Extensions
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk