NATURALのスキャンルール
Contrast Scanでは、NATURALに対して以下のルールをサポートしています。
深刻度 | Contrastルール | エンジンルールID | 説明 |
---|---|---|---|
重大 | Avoid Input Using Map Inside Read Find | OPT.NATURAL.NAT_PF.AvoidInputUsingMapInsideReadFind | AvoidInputUsingMapInsideReadFind:ユーザ入力を使用するレコードロックの回避 |
高 | Avoid Too Complex Routines | OPT.NATURAL.NAT_MAN.AvoidTooComplexRoutines | AvoidTooComplexRoutines:複雑すぎるプログラムの回避(循環的複雑度、異なる実行方法の数) |
高 | Only Allowed Copy Codes | OPT.NATURAL.NAT_MAN.OnlyAllowedCopyCodes | OnlyAllowedCopyCodes;使用するコピーコードの制限 |
高 | Unused Data Area | OPT.NATURAL.NAT_MAN.UnusedDataArea | UnusedDataArea:システム内の未使用のデータ領域(ローカル、グローバル、パラメーター)の回避 |
高 | Unused Maps | OPT.NATURAL.NAT_MAN.UnusedMaps | UnusedMaps:システム内の未使用のマップ/フォーム宣言の回避 |
高 | Unused Routines | OPT.NATURAL.NAT_MAN.UnusedRoutines | UnusedRoutines:システム内の未使用のルーチンやプログラムの回避 |
高 | Avoid D M L Out Of Transaction Context | OPT.NATURAL.NAT_PB.AvoidDMLOutOfTransactionContext | AvoidDMLOutOfTransactionContext:各DML文に対するEND TRANSACTIONの存在のチェック |
高 | Avoid Empty None Clause | OPT.NATURAL.NAT_PB.AvoidEmptyNoneClause | AvoidEmptyNoneClause:プログラムのDECIDE ON/FOR文における空のNONE句の回避 |
高 | Avoid Empty On Error Clause | OPT.NATURAL.NAT_PB.AvoidEmptyOnErrorClause | AvoidEmptyOnErrorClause:ON ERROR句の適切な記述(考えられる全てのエラーを正しく処理するためには、ON ERROR句を空のままにしないことを推奨) |
高 | Avoid Stack Usages | OPT.NATURAL.NAT_PB.AvoidStackUsages | AvoidStackUsages:STACK文の使用回避 |
高 | Avoid Find Sorted By | OPT.NATURAL.NAT_PF.AvoidFindSortedBy | AvoidFindSortedBy:FIND文におけるSORTED BYオプションの使用回避 |
高 | Use With Limit Clause In Read And Find | OPT.NATURAL.NAT_PF.UseWithLimitClauseInReadAndFind | UseWithLimitClauseInReadAndFind:READおよびFINDで使用するレコード量の制限 |
情報 | Avoid Multiple Sentences In One Line | OPT.NATURAL.NAT_DOC.AvoidMultipleSentencesInOneLine | AvoidMultipleSentencesInOneLine:1つのコード行での複数文の記述の禁止 |
情報 | Avoid Too Large Code Blocks | OPT.NATURAL.NAT_MAN.AvoidTooLargeCodeBlocks | AvoidTooLargeCodeBlock:特定のコード構造(LDA、PDA、プログラム、サブルーチン)での)は、最大行数を超えてはいけない |
情報 | Remove Commented Code | OPT.NATURAL.NAT_MAN.RemoveCommentedCode | RemoveCommentedCode:コメントアウトされたコードの回避 |
情報 | Program Name | OPT.NATURAL.NAT_NOM.ProgramName | ProgramName;プログラムの命名規則の遵守 |
情報 | Subroutine Name | OPT.NATURAL.NAT_NOM.SubroutineName | SubroutineName:サブルーチンの命名規則の遵守 |
情報 | Variable Name | OPT.NATURAL.NAT_NOM.VariableName | VariableName:変数の命名規則の遵守 |
情報 | Avoid Escape Top | OPT.NATURAL.NAT_PB.AvoidEscapeTop | AvoidEscapeTop:ESCAPE TOP文の使用禁止 |
情報 | Avoid Debugging Write In Online Progs | OPT.NATURAL.NAT_MAN.AvoidDebuggingWriteInOnlineProgs | AvoidDebuggingWriteInOnlineProgs:オンライン処理プログラムにおけるWRITEのデバッグの回避 |
低 | Avoid Excessive Record Nesting | OPT.NATURAL.NAT_MAN.AvoidExcessiveRecordNesting | AvoidExcessiveRecordNesting:深すぎるネストでの変数宣言(レコード)の回避 |
低 | Number Of Options In Decide | OPT.NATURAL.NAT_MAN.NumberOfOptionsInDecide | NumberOfOptionsInDecide:DECIDE文のオプション数制限の推奨 |
低 | Avoid Find Read With Hold | OPT.NATURAL.NAT_PF.AvoidFindReadWithHold | AvoidFindReadWithHold:本文にUPDATE/STORE/DELETE命令が含まれるREAD/FIND文の検出 |
低 | Avoid Where In Read And Find Statement | OPT.NATURAL.NAT_PF.AvoidWhereInReadAndFindStatement | AvoidWhereInReadAndFindStatement:READとFINDでのWHERE句の回避 |
中 | Avoid Deep Nesting Branches | OPT.NATURAL.NAT_MAN.AvoidDeepNestingBranches | AvoidDeepNestingBranches:フロー制御文(IF、FOR、REPEAT、DECIDE FOR、DECIDE ON)での深いネストの回避 |
中 | Avoid Accept Reject If | OPT.NATURAL.NAT_PB.AvoidAcceptRejectIf | AcceptRejectIfを避ける:ACCEPT/REJECT IF文の使用の禁止 |
中 | Avoid Recursive Calls | OPT.NATURAL.NAT_PB.AvoidRecursiveCalls | AvoidRecursiveCalls:再帰的な呼び出し(同じサブルーチンへのPERFORM、同じプログラム/サブプログラムへのCALLNAT ... RUN)の回避 |
中 | Avoid Stop Statement | OPT.NATURAL.NAT_PB.AvoidStopStatement | AvoidStopStatement:STOP文を避け、代わりに対応するエラーコードを指定したTERMINATEを使用する |
中 | Avoid Terminate Without Error Code | OPT.NATURAL.NAT_PB.AvoidTerminateWithoutErrorCode | AvoidTerminateWithoutErrorCode:対応するエラーコード指定してTERMINATEを記述することを推奨 |
中 | End Transactions In Program Body | OPT.NATURAL.NAT_PB.EndTransactionsInProgramBody | EndTransactionsInProgramBody:プログラム本体内でのトランザクションの終了(プログラム本体の外にBACKOUTやEND TRANSACTIONを配置しない) |
中 | Only One Exit Point | OPT.NATURAL.NAT_PB.OnlyOneExitPoint | OnlyOneExitPoint:コードの出口点(エラーを避けるため、コードの出口を1つだけ指定する) |
中 | Avoid Move By Name | OPT.NATURAL.NAT_PF.AvoidMoveByName | AvoidMoveByName: 名前による移動の回避(グループ構造または再定義された変数に基づいての移動を推奨) |
中 | Avoid Sort | OPT.NATURAL.NAT_PF.AvoidSort | AvoidSort:SORT文使用の回避 |