AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2018, 04:12   #1  
Blog bot is offline
Blog bot
Участник
 
22,197 / 768 (70) +++++++
Регистрация: 28.10.2006
waldo: AL Code Analysis Rules (Diagnostic Descriptors) – Updated Again
Источник: https://dynamicsuser.net/nav/b/waldo...-updated-again
==============

I have been blogging a few times about the Diagnostic Descriptors we get when enabling code analysis. Well – yet again, we have new ones. But I’m not going to keep updating these rulesets, as Microsoft is now doing that on docs. So let me give you one more overview, and the resources to the pages on docs per analyzer.

Here we go….

For AppSourceCop, it was already known for a while, but now the cop is going to make sure you have a translation file when creating an app for AppSource. On top of that, also quite a good one, it makes sure you don’t forget the data classification (cfr. GDPR in Europe)

DiagnosticIdTitleDescriptionMessageFormatCategoryDefault SeveretyIsEnabledByDefaultAS0001Tables cannot be deleted.Tables cannot be deleted.Table ‘{0}’ has been deleted.UpgradeError
TRUE

AS0002Fields cannot be deleted.Fields cannot be deleted.Field ‘{0}’ has been deleted from table ‘{1}’.UpgradeError
TRUE

AS0003The previous version was not found.The previous version was not found.The previous version was not found. Name='{0}’, Publisher='{1}’, Version'{2}’UpgradeWarning
TRUE

AS0004Fields cannot change type.Fields cannot change type.Field ‘{0}’ has changed type from ‘{1}’ to ‘{2}’. Type changes are not allowed.UpgradeError
TRUE

AS0005Fields cannot change name.Fields cannot change name.Field ‘{0}’ has changed name to ‘{1}’. Name changes are not allowed.UpgradeError
TRUE

AS0006Tables cannot change name.Tables cannot change name.Table ‘{0}’ has changed name to ‘{1}’. Name changes are not allowed.UpgradeError
TRUE

AS0007Properties cannot change value.Properties cannot change value.The property ‘{0}’ has changed value. Value change is not allowed for this property.UpgradeError
TRUE

AS0008Keys cannot change name.Keys cannot change name.Key ‘{0}’ has changed name to ‘{1}’. Name changes are not allowed.UpgradeError
TRUE

AS0009Key fields cannot be changed.Key fields cannot be changed.Key ‘{0}’ has changed the key fields. Changes to the field list are not allowed.UpgradeError
TRUE

AS0010Keys cannot be deleted.Keys cannot be deleted.Key ‘{0}’ has been deleted. Key deletions is not allowed.UpgradeError
TRUE

AS0011A prefix is requiredA prefix is requiredThe identifier ‘{0}’ must have the prefix ‘{1}’.ExtensibilityError
TRUE

AS0012A suffix is requiredA suffix is requiredThe identifier ‘{0}’ must have the suffix ‘{1}’.ExtensibilityError
TRUE

AS0013The field identifier must be within the allowed range.The field identifier must be within the allowed range.The field identifier ‘{0}’ is not valid. It must be within the allowed range ‘{1}’ – ‘{2}’ExtensibilityError
TRUE

AS0014The project manifest must contain the allocated identifier range.The project manifest must contain the allocated identifier range.The project manifest must contain the allocated identifier range.ExtensibilityError
TRUE

AS0015Please enable the TranslationFile feature in the app.json file for your project.Please enable the TranslationFile feature in the app.json file for your project.Please enable the TranslationFile feature in the app.json file for your project.ExtensibilityError
TRUE

AS0016Fields of field class ‘Normal’ must use the DataClassification property and its value should be different from ToBeClassified.Fields of field class ‘Normal’ must use the DataClassification property and its value must be different from ToBeClassified. FlowFields and FlowFilter fields are automatically set to the SystemMetadata data classification.Field with name ‘{0}’ must use the DataClassification property and its value should be different from ToBeClassified.ExtensibilityError
TRUE


Also new stuff in the CodeCop (the generic analyzer which you should always enable):

AA0001There must be exactly one space character on each side of a binary operator such as := + – AND OR =.There must be exactly one space character on each side of a binary operator such as := + – AND OR =. The parameter comma operator however, should have no spaces.There must be exactly one space character on each side of ‘{0}’.ReadabilityWarning
TRUE

AA0002There must be no space character.There must be no space character between a unary operator and its argument.There must be no space character after ‘{0}’.ReadabilityWarning
TRUE

AA0003There must be exactly one space character between the NOT operator and its argument.There must be exactly one space character between the NOT operator and its argument.There must be exactly one space character after ‘{0}’.ReadabilityWarning
TRUE

AA0005Only use BEGIN..END to enclose compound statements.Only use BEGIN..END to enclose compound statements.Only use BEGIN..END to enclose compound statements.ReadabilityWarning
TRUE

AA0008Function calls should have parenthesis even if they do not have any parameters.Use parenthesis in a function call even if the function does not have any parameters.You must specify open and close parenthesis after ‘{0}’.ReadabilityWarning
TRUE

AA0013When BEGIN follows THEN, ELSE, DO, it should be on the same line, preceded by one space character.When BEGIN follows THEN, ELSE, DO, it should be on the same line, preceded by one space character.When BEGIN follows THEN, ELSE, DO, it should be on the same line, preceded by one space character.ReadabilityWarning
TRUE

AA0018The END, IF, REPEAT, UNTIL, FOR, WHILE and CASE statement should always start a line.The END, IF, REPEAT, UNTIL, FOR, WHILE and CASE statement should always start a line.The ‘{0}’ keyword should always start a line.ReadabilityWarning
TRUE

AA0021Variable declarations should be ordered by type.Variable declarations should be ordered by type. In general, object and complex variable types are listed first followed by simple variables.Variable declarations should be ordered by type.ReadabilityWarning
TRUE

AA0022Substitute the IF THEN ELSE structure with a CASE.An IF followed by two or more ELSE IF should be replaced with a CASE.Substitute the IF THEN ELSE structure with a CASE.ReadabilityWarning
TRUE

AA0040Avoid using nested WITH statementsIt can be difficult to see what variable that a member variable or function refers to, when nesting WITH statements of variables with different typesThis WITH statement is nested inside another WITH statement at ‘{0}’ReadabilityWarning
TRUE

AA0074TextConst and Label variable names should have an approved suffix.TextConst and Label variable names should have a suffix (an approved three-letter suffix: Msg, Tok, Err, Qst, Lbl, Txt) describing usage.TextConst and Label variable ‘{0}’ must have a suffix from this list: Msg, Tok, Err, Qst, Lbl, Txt.ReadabilityWarning
TRUE

AA0100Do not have identifiers with quotes in the name.Do not have identifiers with quotes in the name.Do not have identifiers with quotes in the name.DesignWarning
TRUE

AA0101Use camel case captions in pages of type API.For pages of the type API and all their field controls, the Caption property value should be camel-cased to follow the Microsoft REST API Guidelines.For pages of the type API and all their field controls, the Caption property value should be camel-cased.DesignWarning
TRUE

AA0102Use camel case name for field controls in pages of type API.Field controls in pages of type API should have a camel case name in order to follow the Microsoft REST API Guidelines.Field controls in pages of type API should have a camel case name.DesignWarning
TRUE

AA0136Do not write code that will never be hit.Do not write code that will never be hit.Unreachable code detected.DesignWarning
TRUE

AA0137Do not declare variables that are unused.Do not declare variables that are unused.Variable ‘{0}’ is unused in the method ‘{1}’.DesignWarning
TRUE

AA0139Do not assign a text to a target with smaller size.Do not assign a text to a target with smaller size.Possible overflow assigning ‘{0}’ to ‘{1}’.DesignWarning
TRUE

AA0161Only use ASSERTERROR in Test Codeunits.Only use ASSERTERROR in Test Codeunits.Only use ASSERTERROR in Test Codeunits.DesignWarning
TRUE

AA0194Only write actions that have an effect.Remember to specify either the ‘OnAction’ trigger or ‘RunObject’ property on an action.Remember to specify either the ‘OnAction’ trigger or ‘RunObject’ property on an action.DesignWarning
TRUE


The “PerTenantExtensionCop” analyzes as if you are writing a one-off customization for a customer in the cloud – so different rules apply.

PTE0001Object ID must be in free range.Object ID must be in free range.{0} ‘{1}’ has an ID of [{2}]. It must be between {3} and {4}.ObjectValidationError
TRUE

PTE0002Field ID must be in free range.Field ID must be in free range.Field ‘{0}’ has an ID of [{1}]. It must be between {2} and {3}.ObjectValidationError
TRUE

PTE0003Functions must not subscribe to CompanyOpen events.Functions must not subscribe to CompanyOpen events.Function {0} subscribes to {1}.ObjectValidationError
TRUE

PTE0004Table definitions must have a matching permission set.Table definitions must have a matching permission set.Table ‘{0}’ is missing a matching permission set.ObjectValidationError
TRUE

PTE0005Property ‘target’ has invalid value.‘Internal’ is a reserved usage for the ‘target’ property.App.json ‘target’ property must not be set to ‘Internal’.PackageValidationError
TRUE

PTE0006Encryption key functions must not be invoked.Encryption key functions must not be invoked.Encryption key function ‘{0}’ is not allowed. PackageValidationError
TRUE

PTE0007Test assertion functions are not allowed in a non-test context.Test assertion functions are not allowed in a non-test context.Assertion function ‘{0}’ must not be invoked.PackageValidationError
TRUE

PTE0008Fields must use ApplicationArea property.Fields must use ApplicationArea property.Field with name ‘{0}’ must have a value for the ApplicationArea property.PackageValidationError
TRUE

PTE0009This app.json property must not be used for per-tenant extensions.The properties ‘HelpBaseUrl’ and ‘SupportedLocales’ are reserved for translation apps.The app.json ‘{0}’ property must not be used for per-tenant extensions.PackageValidationError
TRUE


Last but not least: the UICop to check the UI if UI guidelines are met.

AW0001The Web client does not support displaying the Request page of XMLPorts.The Web client does not support displaying the Request page of XMLPorts.The Web client does not support displaying the Request page of the XMLPort ‘{0}’.WebClientWarning
TRUE

AW0002The Web client does not support displaying both Actions and Fields in Cue Groups. Only Fields will be displayed.The Web client does not support displaying both Actions and Fields in Cue Groups. Only Fields will be displayed.The Web client does not support displaying both Actions and Fields in the Cue Group ‘{0}’. Only Fields will be displayed.WebClientWarning
TRUE

AW0003The Web client does not support displaying Repeater controls containing Parts.The Web client does not support displaying Repeater controls containing Parts.The Web client does not support displaying Repeater controls containing Parts.WebClientWarning
TRUE

AW0004A Blob cannot be used as a source expression for a page field.A Blob cannot be used as a source expression for a page field.A Blob cannot be used as a source expression for a page field.WebClientWarning
TRUE

AW0005Actions should use the Image property.Actions should use the Image property.Action with name ‘{0}’ should have a value for the Image property.WebClientInfo
TRUE





Источник: https://dynamicsuser.net/nav/b/waldo...-updated-again
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
waldo: AL Code Analysis Rules (Diagnostic Descriptors) – Updated Blog bot NAV: Blogs 0 27.06.2018 13:11
waldo: Al Code Analysis Rules (Diagnostic Descriptors) Blog bot NAV: Blogs 0 05.04.2018 11:11
waldo: Enable the updated Code Analysis for AL Blog bot NAV: Blogs 0 26.03.2018 08:11
waldo: Enable Code Analysis for AL Blog bot NAV: Blogs 0 23.01.2018 08:12
wiki.dynamicsbook: Changes Made in Navision Attain 3.60 Blog bot Dynamics CRM: Blogs 0 02.09.2008 13:23
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:29.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.