Skip to main content

ABAPのスキャンルール

 

Contrast Scanでは、ABAPに対して以下のルールをサポートしています。

深刻度

Contrastルール

エンジンルールID

説明

Access B Din Loop 

OPT.ABAP.AMR.AccessBDinLoop 

AccessBDinLoop:ループ内での大規模なデータベース操作の回避

Alter Layout Dinamically 

OPT.ABAP.AWD.AlterLayoutDinamically 

AlterLayoutDinamically:WebDynproレイアウトは、wdDoModifyViewメソッドでのみ変更することが必要

Assign I D Element 

OPT.ABAP.AWD.AssignIDElement 

AssignIDElement:Web Dynpro要素の属性は一意性が必要

情報

Authority Checks 

OPT.ABAP.SEC.AuthorityChecks 

AuthorityChecks:承認チェック(参考)

Avoid Batch Input 

OPT.ABAP.AMR.AvoidBatchInput 

AvoidBatchInput:バッチ入力を使用してのトランザクションの呼び出し禁止

Avoid Call No Def Module 

OPT.ABAP.APBR.AvoidCallNoDefModule 

AvoidCallNoDefModule:宣言されていないモジュールの呼び出し回避

Avoid Client Specified 

OPT.ABAP.ASR.AvoidClientSpecified 

AvoidClientSpecified:CLIENT SPECIFIEDオプションの回避

Avoid Commented Out Code 

OPT.ABAP.MAINT.AvoidCommentedOutCode 

AvoidCommentedOutCode:コメントアウトされたコードブロックの回避

Avoid Complex Context 

OPT.ABAP.AWD.AvoidComplexContext 

AvoidComplexContext:Web Dynproコンテキストの過度なネスト

Avoid Controller With Code 

OPT.ABAP.AWD.AvoidControllerWithCode 

AvoidControllerWithCode:Web Dynproビューに大きすぎるコードが存在

Avoid Database Hints 

OPT.ABAP.PORTABILITY.AvoidDatabaseHints 

AvoidDatabaseHints:SELECTでの%_HINTSの使用の回避

Avoid Declare Vars In Mod 

OPT.ABAP.AGR.AvoidDeclareVarsInMod 

AvoidDeclareVarsInMod:ダイアログモジュール内での宣言の回避

Avoid Duplicate Events 

OPT.ABAP.AGR.AvoidDuplicateEvents 

AvoidDuplicateEvents:同じイベントブロックの重複宣言の回避

情報

Avoid Duplicate Includes In Programs 

OPT.ABAP.APFR.AvoidDuplicateIncludesInPrograms 

AvoidDuplicateIncludesInPrograms:異なるプログラムでの同じINCLUDEの回避

Avoid Elementi I U Tree 

OPT.ABAP.AWD.AvoidElementiIUTree 

AvoidElementiIUTree:Web DynproでTree UI要素の使用禁止

Avoid Empty Blocks In Loop Or If 

OPT.ABAP.MAINT.AvoidEmptyBlocksInLoopOrIf 

AvoidEmptyBlocksInLoopOrIf:空のブロックでのループや条件文の使用回避

Avoid Empty Catch Blocks 

OPT.ABAP.APBR.AvoidEmptyCatchBlocks 

AvoidEmptyCatchBlocks:空のCATCHブロックの使用の回避

Avoid Empty Subroutine Or Function 

OPT.ABAP.MAINT.AvoidEmptySubroutineOrFunction 

AvoidEmptySubroutineOrFunction:空のブロックを持つ関数やサブルーチンの使用回避

Avoid Empty When Others 

OPT.ABAP.APBR.AvoidEmptyWhenOthers 

AvoidEmptyWhenOthers:空のWHEN OTHERS句は禁止

Avoid Form Param Without Type 

OPT.ABAP.AGR.AvoidFormParamWithoutType 

AvoidFormParamWithoutType:型付けされていない、あるいは汎用的すぎる型パラメータを持つサブルーチンの回避

重大

Avoid Free Memory 

OPT.ABAP.AGR.AvoidFreeMemory 

AvoidFreeMemory:明示的なデータクラスタなしでのFREE MEMORYの使用の回避

Avoid From Dynamic 

OPT.ABAP.ASR.AvoidFromDynamic 

AvoidFromDynamic:FROM句でのサブクエリの回避

Avoid Literal Wit Add 

OPT.ABAP.AGR.AvoidLiteralWitAdd 

AvoidLiteralWitAdd:リテラルの代わりに変数の使用

Avoid Logic DB 

OPT.ABAP.ASR.AvoidLogicDB 

AvoidLogicDB: 論理データベースの使用禁止

Avoid Macro 

OPT.ABAP.AGR.AvoidMacro 

AvoidMacro:カスタムマクロの定義の禁止

Avoid Modify Context 

OPT.ABAP.AWD.AvoidModifyContext 

AvoidModifyContext:Web Dynproコンテキストのプログラムによる変更の回避

Avoid Modify Elements Directly 

OPT.ABAP.AWD.AvoidModifyElementsDirectly 

AvoidModifyElementsDirectly:Web Dynproコンテキストノードのプログラムでのレイアウト変更の禁止

Avoid Module Messed Up 

OPT.ABAP.APBR.AvoidModuleMessedUp 

AvoidModuleMessedUp:プログラムからのモジュール呼び出しの回避

Avoid Multiple Dynamic Attributes 

OPT.ABAP.AWD.AvoidMultipleDynamicAttributes 

AvoidMultipleDynamicAttributes:Web Dynpro要素で複数の属性の動的な割り当ての回避

Avoid Nested Layout 

OPT.ABAP.AWD.AvoidNestedLayout 

AvoidNestedLayout:レイアウトのネストの回避

情報

Avoid No Standard Page Heading 

OPT.ABAP.ADR.AvoidNoStandardPageHeading 

AvoidNoStandardPageHeading:標準のSAPレポートヘッダの無効の禁止(標準レポートヘッダ無し)

Avoid No Use Fields 

OPT.ABAP.AGR.AvoidNoUseFields 

AvoidNoUseFields:内部テーブルで使用されないフィールドの宣言の回避

Avoid Non Transp Table 

OPT.ABAP.AGR.AvoidNonTranspTable 

AvoidNonTranspTable:透過的でないテーブルの作成禁止

Avoid Non Used Declared Module 

OPT.ABAP.AMR.AvoidNonUsedDeclaredModule

AvoidNonUsedDeclaredModule:使用されていないダイアログモジュールの宣言の回避

Avoid Percentage Var 

OPT.ABAP.AMR.AvoidPercentage_Var 

AvoidPercentage_Var:%_で始まる識別子の回避

Avoid Pool And Include 

OPT.ABAP.AWD.AvoidPoolAndInclude 

AvoidPoolAndInclude:TYPE-POOLとINCLUDE TYPE/STRUCTUREの使用禁止

Avoid Read S A P Tables 

OPT.ABAP.ASR.AvoidReadSAPTables 

AvoidReadSAPTables:データベーステーブルのREAD TABLEの回避

Avoid S A P Queries 

OPT.ABAP.ASR.AvoidSAPQueries 

AvoidSAPQueries:SAP Queryの呼び出しを禁止

Avoid SQL Exist Subqueries 

OPT.ABAP.EFFICIENCY.AvoidSqlExistSubqueries 

AvoidSqlExistSubqueries:EXISTS句の使用の回避

Avoid Sap Script 

OPT.ABAP.AGR.AvoidSapScript 

AvoidSapScript:SAPスクリプトの回避

Avoid Stop Messed Up 

OPT.ABAP.APBR.AvoidStopMessedUp 

AvoidStopMessedUp:START-OF-SELECTION、GET、AT SELECTION-SCREENのイベントブロック外でのSTOP文の回避

Avoid Stretched Vertically 

OPT.ABAP.AWD.AvoidStretchedVertically 

AvoidStretchedVertically:MatrixLayoutでStretchedVerticallyの設定は禁止

Avoid Sub Select Queries 

OPT.ABAP.APFR.AvoidSubSelectQueries 

AvoidSubSelectQueries:WHEREのサブクエリの回避

Avoid Trace On 

OPT.ABAP.APFR.AvoidTraceOn 

AvoidTraceOn:トレースジェネレータを有効化する文の使用の回避

重大

Avoid Up To Rows With For All Entries 

OPT.ABAP.EFFICIENCY.AvoidUpToRowsWithForAllEntries 

AvoidUpToRowsWithForAllEntries:SELECT文でのUP TO ROWS句とFOR ALL ENTRIES併用の回避

情報

Avoid Vble Message 

OPT.ABAP.ADR.AvoidVbleMessage 

AvoidVbleMessage:メッセージのパラメータに変数の使用を禁止

Avoid Where Dynamic 

OPT.ABAP.ASR.AvoidWhereDynamic 

AvoidWhereDynamic:WHERE句でのサブクエリの回避

情報

Avoid Write To 

OPT.ABAP.AGR.AvoidWriteTo 

AvoidWriteTo:WRITE TO文のMOVE TOへの置換

重大

Backdoors 

OPT.ABAP.SEC.Backdoors 

Backdoors:本番環境のコードでの開発/テスト用バックドアの回避

Bad Authorization Check 

OPT.ABAP.SEC.BadAuthorizationCheck 

BadAuthorizationCheck:承認チェックの適切ではない実装

Call Editor Call 

OPT.ABAP.AGR.CallEditorCall 

CallEditorCall:EDITOR-CALLの使用の回避

Call F M In Group 

OPT.ABAP.AGR.CallFMInGroup 

CallFMInGroup:未使用関数

Call S Y S U B R C 

OPT.ABAP.APBR.CallSYSUBRC 

CallSYSUBRC:特定の操作の後でのSY-SUBRCの値の確認

重大

Call Sys Function 

OPT.ABAP.AGR.CallSysFunction 

CallSysFunction:ABAPアプリケーションコードからシステム/カーネル関数の呼び出し禁止

Call Tx 

OPT.ABAP.AGR.CallTx 

CallTx:特定のモジュールに対応するトランザクションの呼び出し回避

情報

Calls2 Critical Functions 

OPT.ABAP.SEC.Calls2CriticalFunctions 

Calls2CriticalFunctions:クリティカルなABAP関数の呼び出し

Case No Repeat When 

OPT.ABAP.AGR.CaseNoRepeatWhen 

CaseNoRepeatWhen:CASE文中のWHEN条件の繰り返し回避

Case Should Have At Least3 When 

OPT.ABAP.MAINT.CaseShouldHaveAtLeast3When 

CaseShouldHaveAtLeast3When:CASE文は少なくとも3つのWHEN句が必要

Check Atr No Exist Dynpro 

OPT.ABAP.APBR.CheckAtrNoExistDynpro 

CheckAtrNoExistDynpro:存在しないdynproの属性確認の回避

Check Auth In All Programs 

OPT.ABAP.SEC.CheckAuthInAllPrograms 

CheckAuthInAllPrograms:すべてのレポートには承認チェックが必要

Check Authority 

OPT.ABAP.APBR.CheckAuthority 

CheckAuthority:AUTHORITY-CHECKの無効な認証フィールド

Check Dlg Modules 

OPT.ABAP.APBR.CheckDlgModules 

CheckDlgModules:存在しないdynproの使用の回避

Check F Don't use masterpage filesaram 

OPT.ABAP.APBR.CheckFMParam 

CheckFMParam:関数モジュールのパラメータでの不正なカテゴリの回避

Check Fn Module 

OPT.ABAP.APBR.CheckFnModule 

CheckFnModule:存在しない関数の使用の回避

Check Includes 

OPT.ABAP.APBR.CheckIncludes 

CheckIncludes:タイプがI型でないインクルード文からのファイル呼び出しの回避

Check Load Table 

OPT.ABAP.APBR.CheckLoadTable 

CheckLoadTable:SAPシステム内の既存のテーブルのみロード

Check Messages 

OPT.ABAP.APBR.CheckMessages 

CheckMessages:テーブルT100の既存のメッセージのみ使用

情報

Check Status P F 

OPT.ABAP.AGR.CheckStatusPF 

CheckStatusPF:プログラムでSTATUS PFをパーソナライズしているかを確認

Check Submit With Param 

OPT.ABAP.APBR.CheckSubmitWithParam 

CheckSubmitWithParam:SUBMITで宣言されていない選択基準の回避

情報

Check Titlebar 

OPT.ABAP.AGR.CheckTitlebar 

CheckTitlebar:プログラムがTITLEBARをパーソナライズしているかを確認

Check Tx 

OPT.ABAP.APBR.CheckTx 

CheckTx:既存のトランザクションのみ使用

Close All Open Resources 

OPT.ABAP.APFR.CloseAllOpenResources 

CloseAllOpenResources:開いているすべてのリソース(カーソルやデータセット)は閉じることが必要

Cmd Table Out Loop 

OPT.ABAP.ASR.CmdTableOutLoop 

CmdTableOutLoop:LOOPの外側でインデックスを暗黙的に使用するテーブルのコマンドの使用禁止

重大

Command Injection

OPT.ABAP.SEC.CommandInjection 

CommandInjection:OSコマンドで使用する特殊要素の不適切な無害化(OSコマンドインジェクション)

Comments Before Classes 

OPT.ABAP.MAINT.CommentsBeforeClasses 

CommentsBeforeClasses:クラスの前のコメント行の確認

Comments Before Programs Or Reports 

OPT.ABAP.ADR.CommentsBeforeProgramsOrReports 

CommentsBeforeProgramsOrReports:プログラムやレポートの前にコメント行があるかの確認

Comments Before Subroutines 

OPT.ABAP.ADR.CommentsBeforeSubroutines 

CommentsBeforeSubroutines:関数、メソッド、フォーム、マクロの前にコメント行があるかの確認

Compatible Form Params 

OPT.ABAP.APBR.CompatibleFormParams 

CompatibleFormParams:PERFORMでは引数とサブルーチンの正式パラメータとの一致が必要

Complex Layout Use Matrix Layout 

OPT.ABAP.AWD.ComplexLayoutUseMatrixLayout 

ComplexLayoutUseMatrixLayout:Web Dynproビューに過度な数の要素

Control Fields Client Tables 

OPT.ABAP.ASR.ControlFieldsClientTables 

ControlFieldsClientTables:カスタムテーブルに監査フィールドを含める

Correct Naming Meth 

OPT.ABAP.ADR.CorrectNamingMeth 

CorrectNamingMeth:メソッドは標準的な命名規則に従う必要

Correspond Raise Excep 

OPT.ABAP.APBR.CorrespondRaiseExcep 

CorrespondRaiseExcep:EXCEPTIONSとRAISEは一致が必要

重大

Cross Client Database Access 

OPT.ABAP.SEC.CrossClientDatabaseAccess 

CrossClientDatabaseAccess:SAPクライアント分離メカニズムのバイパス禁止

重大

Cross Site Scripting

OPT.ABAP.SEC.CrossSiteScripting 

CrossSiteScripting:Webページ生成中の入力の不適切な無害化(クロスサイトスクリプティング)

Cx Root Caught 

OPT.ABAP.RELIABILITY.CxRootCaught 

CxRootCaught:CX_ROOTのcatchの禁止

Cyclomatic Complexity 

OPT.ABAP.AMTR.CyclomaticComplexity 

CyclomaticComplexity:循環的複雑度の高い関数/形式/メソッド等の回避

情報

Dangerous File Download 

OPT.ABAP.SEC.DangerousFileDownload 

DangerousFileDownload:危険なファイルのダウンロード

情報

Dangerous File Upload

OPT.ABAP.SEC.DangerousFileUpload 

DangerousFileUpload:危険なファイルのアップロード

Data Definition At The Beginning 

OPT.ABAP.AMR.DataDefinitionAtTheBeginning 

DataDefinitionAtTheBeginning:最初の実行文の後に宣言文の挿入禁止

Deeply Nested Statements 

OPT.ABAP.MAINT.DeeplyNestedStatements

DeeplyNestedStatements:深くネストされたステートメントの回避

Delete From Table Without Where 

OPT.ABAP.RELIABILITY.DeleteFromTableWithoutWhere 

DeleteFromTableWithoutWhere:DELETE FROMステートメントにはWHERE条件が必要

Deprecated Asyncronous R F C 

OPT.ABAP.PORTABILITY.DeprecatedAsyncronousRFC 

DeprecatedAsyncronousRFC:古いTransactional RFCやQueue RFCの代わりにBackground RFCを使用

Direct Recursive Call 

OPT.ABAP.RELIABILITY.DirectRecursiveCall 

DirectRecursiveCall:再帰的な呼び出しの回避

Direct Update 

OPT.ABAP.SEC.DirectUpdate 

DirectUpdate: SQLの適切でない使用 - Direct Update

重大

Dynamic Code 

OPT.ABAP.SEC.DynamicCode 

DynamicCode:動的なコード構造の回避

Dynamic Constructs 

OPT.ABAP.SEC.DynamicConstructs 

DynamicConstructs:外部入力により制御される動的な構成の回避

Dynpro Non Exist Atr 

OPT.ABAP.APBR.DynproNonExistAtr 

DynproNonExistAtr:dynproスクリーン要素の存在しない属性への参照の回避

Elseif With Else 

OPT.ABAP.RELIABILITY.ElseifWithElse 

ElseifWithElse:IF ...ELSEIF文はELSEでの終了が必要

重大

Empty Select Endselect 

OPT.ABAP.EFFICIENCY.EmptySelectEndselect 

EmptySelectEndselect:空のSELECT-ENDSELECT文の回避

重大

Enqueue Instead Of Select Single For Update 

OPT.ABAP.ASR.EnqueueInsteadOfSelectSingleForUpdate 

EnqueueinsteadOfSelectSingleForUpdate:SELECT SINGLE FOR UPDATEではなくSAPロックメカニズムの使用

Equal Number Param 

OPT.ABAP.APBR.EqualNumberParam 

EqualNumberParam:FORMに宣言されたパラメータ数と異なる呼び出しの回避

Excess Of Parameters 

OPT.ABAP.AMTR.ExcessOfParameters 

ExcessOfParameters:パラメータが多すぎる関数/フォーム/メソッドの回避

Excess Of Responsibility 

OPT.ABAP.AMTR.ExcessOfResponsibility 

ExcessOfResponsibility:過剰な重要性を持つプログラムの回避

Excess Of Return 

OPT.ABAP.AMTR.ExcessOfReturn 

ExcessOfReturn:RETURN文の過剰使用の回避

Exist Prog Form Decl 

OPT.ABAP.APBR.ExistProgFormDecl 

ExistProgFormDecl:分析対象のシステム内に存在しないFORMの宣言の回避

Exists Form 

OPT.ABAP.AGR.ExistsForm 

ExistsForm:宣言されていないFORMの呼び出し回避

Extract Code Into Subroutines 

OPT.ABAP.AMR.ExtractCodeIntoSubroutines 

ExtractCodeIntoSubroutines:大きなコード要素の細分化

Fan In 

OPT.ABAP.AMTR.FanIn 

FanIn:プログラム、レポート、クラスにおける各ルーチンの呼び出し回数の制限

Fan Out 

OPT.ABAP.AMTR.FanOut 

FanOut:各処理ブロックからの呼び出し数の制限(ファンアウト)

情報

Fields Curr Quan 

OPT.ABAP.AGR.FieldsCurrQuan 

FieldsCurrQuan:CURRフィールドとQUANフィールドは関連する単位フィールドが必要

重大

First Stmt Return Select Endselect 

OPT.ABAP.EFFICIENCY.FirstStmtReturnSelectEndselect 

FirstStmtReturnSelectEndselect:SELECT-ENDSELECTブロックの最初の文としてRETURN文の使用の回避

Form Corresponds Perform 

OPT.ABAP.AGR.FormCorrespondsPerform 

FormCorrespondsPerform:未使用のサブルーチンの宣言の回避

Harcoded Text In Message 

OPT.ABAP.MAINT.HarcodedTextInMessage 

HarcodedTextInMessage:メッセージ内のテキストのハードコード化の回避

Hardcoded Client Check 

OPT.ABAP.SEC.HardcodedClientCheck 

HardcodedClientCheck:ハードコードされたSAPクライアントチェック(sy-mandt)

Hardcoded Date Check 

OPT.ABAP.SEC.HardcodedDateCheck 

HardcodedDateCheck:現在のサーバの日付チェックのハードコードの回避

Hardcoded Host Check 

OPT.ABAP.MAINT.HardcodedHostCheck 

HardcodedHostCheck:sy-hostチェックのハードコーディングの回避

Hardcoded OS Check 

OPT.ABAP.MAINT.HardcodedOSCheck 

HardcodedOSCheck:sy-opsysチェックのハードコード化の回避

Hardcoded Rfc Destination 

OPT.ABAP.RELIABILITY.HardcodedRfcDestination 

HardcodedRfcDestination:RFC宛先パラメータのハードコードの回避

Hardcoded Sensitive Data 

OPT.ABAP.SEC.HardcodedSensitiveData 

HardcodedSensitiveData:機密情報のハードコード化の回避

Hardcoded System Id Check 

OPT.ABAP.SEC.HardcodedSystemIdCheck 

HardcodedSystemIdCheck:ハードコードされたシステムIDのチェック(sy-sysid)

Hardcoded Username Check 

OPT.ABAP.SEC.HardcodedUsernameCheck 

HardcodedUsernameCheck:ハードコードされたユーザ名のチェック(バックドアの可能性)

重大

Http Header Manipulation 

OPT.ABAP.SEC.HttpHeaderManipulation 

HttpHeaderManipulation:HTTPレスポンスヘッダの未検証データ

Implement Layout 

OPT.ABAP.AWD.ImplementLayout 

ImplementLayout:すべてのWeb Dynproビューにはレイアウトが必要

Import Export Dynpro 

OPT.ABAP.AMR.ImportExportDynpro 

ImportExportDynpro:インポート/エクスポートdynproの使用の回避

重大

Import Export Nametab

OPT.ABAP.AGR.ImportExportNametab 

ImportExportNametab:IMPORT/EXPORT NAMETAB使用の回避

Insecure Randomness

OPT.ABAP.SEC.InsecureRandomness

InsecureRandomnes:安全でない標準的な擬似乱数生成器

Join Instead Of Select In Loop 

OPT.ABAP.EFFICIENCY.JoinInsteadOfSelectInLoop 

JoinInsteadOfSelectInLoop:select+loop+nested selectの代わりにjoinの使用

Key Select Option 

OPT.ABAP.AGR.KeySelectOption 

KeySelectOption:SELECT-OPTIONSには常にキーまたはインデックス付きフィールドが必要

情報

Keywords For User Identifiers 

OPT.ABAP.MAINT.KeywordsForUserIdentifiers 

KeywordsForUserIdentifiers:ABAPキーワードは識別子としての使用の禁止

Limit Indexes 

OPT.ABAP.ASR.LimitIndexes 

LimitIndexes: テーブルにインデックスの過度な作成の禁止

情報

Limited Number Of Includes 

OPT.ABAP.APFR.LimitedNumberOfIncludes 

LimitedNumberOfIncludes:インクルードされるソースファイル数の多さ

Limited Number Of Tables In Queries 

OPT.ABAP.ASR.LimitedNumberOfTablesInQueries 

LimitedNumberOfTablesInQueries:SELECTクエリで使用するテーブルの数を制限することを試す

Logic Depending On Text Symbols 

OPT.ABAP.RELIABILITY.LogicDependingOnTextSymbols 

LogicDependingOnTextSymbols:テキスト記号に依存するロジック

情報

Loop At Into 

OPT.ABAP.EFFICIENCY.LoopAtInto 

LoopAtInto:LOOP AT itab INTOの回避

Loop At Where Inside Loop 

OPT.ABAP.APFR.LoopAtWhereInsideLoop 

LoopAtWhereInsideLoop:別のLOOP ATの内部でWHEREを含むLOOP ATの使用回避

情報

Loop Where Instead Of Loop Check 

OPT.ABAP.APFR.LoopWhereInsteadOfLoopCheck 

LoopWhereInsteadOfLoopCheck:LOOP+CHECKは代わりにLOOP+WHEREの使用

Mark Buffering If Necessary 

OPT.ABAP.ASR.MarkBufferingIfNecessary 

MarkBufferingIfNecessary:必要に応じてテーブルバッファリングの有効化

Match Layout With View Controller 

OPT.ABAP.AWD.MatchLayoutWithViewController 

MatchLayoutWithViewController:関連するレイアウトがないビューコントローラーのコードはwdDoModifyViewメソッドに格納

Max Long Line Size 

OPT.ABAP.APTR.MaxLongLineSize 

MaxLongLineSize:LINE-SIZEパラメータ幅は255以下に抑制

Max Number DB Op 

OPT.ABAP.APFR.MaxNumberDBOp 

MaxNumberDBOp:レポートまたはプロシージャ内の過度な回数のDB操作

Max One Append Struct 

OPT.ABAP.ASR.MaxOneAppendStruct 

MaxOneAppendStruct:複数のAPPEND構造を持つテーブルまたは標準の構造体

Maximum Joins Per Query 

OPT.ABAP.APFR.MaximumJoinsPerQuery 

MaximumJoinsPerQuery:SELECTで使用できるテーブル数の制限

Message Language 

OPT.ABAP.ADR.MessageLanguage 

MessageLanguage:メッセージは必要な言語への翻訳が必要

Message Param 

OPT.ABAP.APBR.MessageParam 

MessageParam: メッセージのパラメータの正しい数の確認

Modified Input Parameter 

OPT.ABAP.RELIABILITY.ModifiedInputParameter 

ModifiedInputParameter:参照渡しされた入力パラメータの変更

情報

Move Instead Of Move Corresponding 

OPT.ABAP.AGR.MoveInsteadOfMoveCorresponding 

MoveInsteadOfMoveCorresponding:MOVE-CORRESPONDINGは代わりにMOVEを使用

Naming Components 

OPT.ABAP.AWD.NamingComponents 

NamingComponents:コンポーネントの命名法の管理

Naming Conventions

OPT.ABAP.ADR.NamingConventions 

NamingConventions: 標準的な命名規則に従う必要

Nested Case Statement 

OPT.ABAP.AMR.NestedCaseStatement 

NestedCaseStatement:入れ子の多いCASE文の回避

Nested If Statement 

OPT.ABAP.AMR.NestedIfStatement 

NestedIfStatement:IF文のネスト回数の抑制

Nested Loops 

OPT.ABAP.AMR.NestedLoops 

NestedLoops: ネストされたループの回避

Nested Only Data Def 

OPT.ABAP.AGR.NestedOnlyDataDef 

NestedOnlyDataDef:冗長なネスト構造の宣言の回避

重大

Nested Select Statement 

OPT.ABAP.EFFICIENCY.NestedSelectStatement 

NestedSelectStatement:ネストされたSELECTステートメントの回避

重大

No Absolute Paths 

OPT.ABAP.APTR.NoAbsolutePaths 

NoAbsolutePaths:絶対パスの回避

No Access Model From Mths 

OPT.ABAP.AWD.NoAccessModelFromMths 

NoAccessModelFromMths:Web Dynproビューコントローラメソッドからアシスタンスクラスに直接アクセスの禁止

No Append Sorted By 

OPT.ABAP.APFR.NoAppendSortedBy 

NoAppendSortedBy:APPEND ... SORTED BYの禁止

No Assert With Side Effects Condition 

OPT.ABAP.RELIABILITY.NoAssertWithSideEffectsCondition 

NoAssertWithSideEffectsCondition:副作用のある設定可能なASSERTの回避

重大

No Authorization Check Call Transaction 

OPT.ABAP.SEC.NoAuthorizationCheckCallTransaction 

NoAuthorizationCheckCallTransaction:CALL TRANSACTIONの前に明示的な承認チェックが必要

重大

No Authorization Check R F C 

OPT.ABAP.SEC.NoAuthorizationCheckRFC 

NoAuthorizationCheckRFC:RFC対応関数では明示的に承認チェックが必要

No Authorization Check SQL 

OPT.ABAP.SEC.NoAuthorizationCheckSQL 

NoAuthorizationCheckSQL:SQL文で明示的に承認チェックが必要

No Authorization Group4 Table 

OPT.ABAP.SEC.NoAuthorizationGroup4Table 

NoAuthorizationGroup4Table:承認グループを持たないテーブル

重大

No Break Point Statements 

OPT.ABAP.APBR.NoBreakPointStatements 

NoBreakPointStatements:本番環境のコードからのBREAK-POINTステートメントの削除

No Check Or Continue Within Select Loops 

OPT.ABAP.APFR.NoCheckOrContinueWithinSelectLoops 

NoCheckOrContinueWithinSelectLoop:SELECTループ内ではCHECK、EXIT、CONTINUE文の禁止

No Control Break Within Loop At Where 

OPT.ABAP.APBR.NoControlBreakWithinLoopAtWhere 

NoControlBreakWithinLoopAtWhere:制御レベルの処理ブロック(AT FIRST、AT NEW、AT END、AT LAST)でLOOP ATのWHERE/FROM/TOは使用禁止

No Corresponding Fields 

OPT.ABAP.APFR.NoCorrespondingFields 

NoCorrespondingFields:SELECT * でCORRESPONDING FIELDSの使用禁止

No Data Definitions Within Events 

OPT.ABAP.AGR.NoDataDefinitionsWithinEvents 

NoDataDefinitionsWithinEvents:イベントブロック内での宣言の回避

No Data Or Object Creation Inside Loops 

OPT.ABAP.APFR.NoDataOrObjectCreationInsideLoops 

NoDataOrObjectCreationInsideLoop:ループ内部でのオブジェクトの作成やデータの宣言の回避

No Dead Data Definitions 

OPT.ABAP.AMR.NoDeadDataDefinitions 

NoDeadDataDefinitions:プログラムで定義された情報のすべての使用

情報

No Declared Field 

OPT.ABAP.ASR.NoDeclaredField 

NoDeclaredField:内部テーブルや構造体で宣言されていないフィールドの参照回避

No Exec SQL Statements 

OPT.ABAP.APTR.NoExecSqlStatements 

NoExecSqlStatements:EXEC SQLステートメントの使用の禁止

情報

No Exist Context 

OPT.ABAP.APBR.NoExistContext 

NoExistContext:宣言されていないテーブルや構造体のフィールドの使用禁止

No Field As Operator 

OPT.ABAP.ADR.NoFieldAsOperator 

NoFieldAsOperator:演算子のフィールド名としての使用禁止

No Hyphen In Name 

OPT.ABAP.AGR.NoHyphenInName 

NoHyphenInName:内部テーブルのフィールド名ではハイフンの使用禁止

No Ids Other Type 

OPT.ABAP.ADR.NoIdsOtherType 

NoIdsOtherType:フィールド名はプリミティブ型と同じだが、別の型としての宣言

情報

No Literals 

OPT.ABAP.AMR.NoLiterals 

NoLiterals:コード内でのリテラルの使用は禁止

No Long Ids 

OPT.ABAP.ADR.NoLongIds 

NoLongIds:長すぎる識別子の使用の禁止

情報

No Lost Cursor 

OPT.ABAP.ASR.NoLostCursor 

NoLostCursor:SELECTのループでカーソルが失われる文の呼び出しの回避

No Over Write Sys Var 

OPT.ABAP.AGR.NoOverWriteSysVar 

NoOverWriteSysVar:システム変数の上書きの回避

No Raise Out Of Function Group 

OPT.ABAP.APBR.NoRaiseOutOfFunctionGroup 

NoRaiseOutOfFunctionGroup:不適切な処理ブロック内のRAISE例外文

No Select All 

OPT.ABAP.ASR.NoSelectAll 

NoSelectAll:SQLクエリでのSELECT * の回避

No Select Inside Loop 

OPT.ABAP.APFR.NoSelectInsideLoop 

NoSelectInsideLoop:ループ内でのSELECT文の使用の回避

No Sentence After Exit 

OPT.ABAP.AGR.NoSentenceAfterExit 

NoSentenceAfterExit:STOP、LEAVE PROGRAM、EXIT、RETURN、RAISE、REJECT、SUBMITの後のセンテンスの回避

重大

No Update Config Tables 

OPT.ABAP.ASR.NoUpdateConfigTables 

NoUpdateConfigTables:ABAPコードから機密性の高いデータベーステーブルへの書き込み回避

No Use S Y Uname 

OPT.ABAP.AGR.NoUseSYUname 

NoUseSYUname:条件内でのシステム変数SY-UNAMEの使用の回避

No Wildcards At The Beginning Of Like Literals 

OPT.ABAP.APFR.NoWildcardsAtTheBeginningOfLikeLiterals 

NoWildcardsAtTheBeginningOfLikeLiterals:SQL文のLIKE比較で使用されるリテラルの先頭にワイルドカード(「%」または「_」)の使用禁止

Not In Subquery 

OPT.ABAP.EFFICIENCY.NotInSubquery 

NotInSubquery:SELECT内のNOT INサブクエリの回避

Number View In W D 

OPT.ABAP.AWD.NumberViewInWD 

NumberViewInWD:ビュー数の管理

Obsolete Code 

OPT.ABAP.PORTABILITY.ObsoleteCode 

ObsoleteCode:SAP 7+の廃止されたコード

情報

One Statement Per Line 

OPT.ABAP.AMR.OneStatementPerLine 

OneStatementPerLine:各文は1行に配置

Only Client Fields In Append Str 

OPT.ABAP.ASR.OnlyClientFieldsInAppendStr 

OnlyClientFieldsInAppendStr:APPEND構造体では常にカスタムフィールドの使用

Only One Commit And Rollback 

OPT.ABAP.APFR.OnlyOneCommitAndRollback 

OnlyOneCommitAndRollback:プログラム内にはCOMMITとROLLBACKが1つだけ存在する事が必要

Open Close Resources Only Once 

OPT.ABAP.APFR.OpenCloseResourcesOnlyOnce 

OpenCloseResourcesOnlyOnce: すべてのリソース(カーソルまたはデータセット)は一度だけのオープン/クローズを推奨

重大

Open Redirect 

OPT.ABAP.SEC.OpenRedirect 

OpenRedirect:信頼できないサイトへのURLリダイレクト(オープンリダイレクト)

Output File Extension 

OPT.ABAP.AGR.OutputFileExtension 

OutputFileExtension: 出力ファイルには適切な拡張子が必要

Output Files With Header 

OPT.ABAP.AGR.OutputFilesWithHeader 

OutputFilesWithHeader:出力データセットにはヘッダーレコードが必要

Overwrite System Fields 

OPT.ABAP.SEC.OverwriteSystemFields 

OverwriteSystemFields:ABAPシステムフィールドの適切でない使用

Password Management 

OPT.ABAP.SEC.PasswordManagement 

PasswordManagement:コード中にハードコーディングまたはコメント内の認証情報(ユーザ名/パスワード)の記述回避

重大

Path Manipulation 

OPT.ABAP.SEC.PathManipulation 

PathManipulation:ファイル名またはパスの外部制御

Path Output File 

OPT.ABAP.AMR.PathOutputFile 

PathOutputFile: 出力ファイルのファイルシステムへの保存

Percentage Of Comment Lines Per File 

OPT.ABAP.ADR.PercentageOfCommentLinesPerFile 

PercentageOfCommentLinesPerFile:1ファイルあたりのコメント行数の確認

Percentage Of Comment Lines Per Method 

OPT.ABAP.MAINT.PercentageOfCommentLinesPerMethod 

PercentageOfCommentLinesPerMethod:メソッドごとのコメント行の全体的な量の確認

Recommend A L Vwith Report 

OPT.ABAP.AGR.RecommendALVwithReport 

RecommendALVwithReport:レポートで従来のリスト生成の代わりにALV(Abap List Viewer)の使用

Recommend Case When Others 

OPT.ABAP.AGR.RecommendCaseWhenOthers 

RecommendCaseWhenOthers:WHEN OTHERS句は、すべてのCASE文で使用が必要

情報

Recommend Start Of Selection 

OPT.ABAP.AGR.RecommendStartOfSelection 

RecommendStartOfSelection:START-OF-SELECTIONイベントハンドラはすべてのABAPレポートで必要

Recommend Where With Indexes 

OPT.ABAP.ASR.RecommendWhereWithIndexes 

WhereWithIndexesの推奨:大規模テーブルのWHERE条件にはインデックス付きカラムを使用

Recommendable Dynpro Size 

OPT.ABAP.AWD.RecommendableDynproSize 

RecommendableDynproSize:Web Dynproフィールドには正しいサイズの使用

重大

Regex Injection 

OPT.ABAP.SEC.RegexInjection 

RegexInjection:悪意のある正規表現によるDos攻撃の防止(正規表現インジェクション)

Replace If With Case 

OPT.ABAP.APFR.ReplaceIfWithCase 

ReplaceIfWithCase:IF ... ENDIFの代わりにCASE ... ENDCASEの使用

Rfc Callback Attack 

OPT.ABAP.SEC.RfcCallbackAttack 

RfcCallbackAttack:コールバック攻撃対策のないRFCコール

重大

Rfc Destination Injection 

OPT.ABAP.SEC.RfcDestinationInjection 

RfcDestinationInjection:RFC呼び出しにおけるデスティネーションインジェクション

重大

SQL Injection

OPT.ABAP.SEC.SqlInjection 

SqlInjection:SQLコマンドで使用する特殊要素の不適切な無害化(SQLインジェクション)

Security Select Tables 

OPT.ABAP.ASR.SecuritySelectTables 

SecuritySelectTables:ABAPコードから機密性の高いテーブルへのクエリの回避

Select Into Instead Of Select Appending 

OPT.ABAP.APFR.SelectIntoInsteadOfSelectAppending 

SelectIntoInsteadOfSelectAppending:SELECT APPENDINGの代わりにSELECT+INTOの使用

Select Into Table Instead Of Select End Select 

OPT.ABAP.APFR.SelectIntoTableInsteadOfSelectEndSelect 

SelectIntoTableInsteadOfSelectEndSelect:内部テーブルのロードで SELECT...ENDSELECTの禁止

Set Get Sys Param 

OPT.ABAP.APBR.SetGetSysParam 

SetGetSysParam:システム内に存在するパラメータの使用

Sort Before Removing Duplicates 

OPT.ABAP.RELIABILITY.SortBeforeRemovingDuplicates 

SortBeforeRemovingDuplicates:重複を削除する前に内部テーブルのソート

Sort Instead Of Order By 

OPT.ABAP.ASR.SortInsteadOfOrderBy 

SortInsteadOfOrderBy:SELECTでORDER BYの代わりにABAP SORTの使用

重大

Sort Stmt In A Loop 

OPT.ABAP.EFFICIENCY.SortStmtInALoop 

SortStmtInALoop:LOOP内でのSORT文の宣言の回避

Stand Comment Form 

OPT.ABAP.ADR.StandCommentForm 

StandCommentForm:FORMでは標準書式のコメントの推奨

Submit Report 

OPT.ABAP.AGR.SubmitReport 

SubmitReport:レポート内での多数のSUBMIT呼び出し回避

Submit Report Type1 

OPT.ABAP.APBR.SubmitReportType1 

SubmitReportType1:タイプが1型でないレポートの呼び出しの回避

重大

Submit Stmt In A Loop 

OPT.ABAP.EFFICIENCY.SubmitStmtInALoop 

SubmitStmtInALoop:LOOP内でのSUBMIT文の宣言の回避

Subroutine Definitions After Events 

OPT.ABAP.AGR.SubroutineDefinitionsAfterEvents 

SubroutineDefinitionsAfterEvents:すべてのサブルーチンはイベント後の宣言が必要

Suggest Append Lines Instead Of Append 

OPT.ABAP.APFR.SuggestAppendLinesInsteadOfAppend 

SuggestAppendLinesInsteadOfAppend:効率化のためにAPPENDの代わりにAPPEND LINES OFの使用

Suggest Others Exceptions 

OPT.ABAP.APBR.SuggestOthersExceptions 

SuggestOthersExceptions:EXCEPTIONSにはOTHERSオプションが必要

Suggest Select Where 

OPT.ABAP.ASR.SuggestSelectWhere 

SuggestSelectWhere:WHEREなしのSELECT

Suggest Typed Parameters 

OPT.ABAP.AGR.SuggestTypedParameters 

SuggestTypedParameters:型付けされていない、あるいは汎用的すぎる型パラメータを持つプロシージャの回避

Suggest While Instead Of Do 

OPT.ABAP.APFR.SuggestWhileInsteadOfDo 

SuggestWhileinsteadOfDo:無条件のDOループの代わりにWHILEの使用

Too Many Attributes In A Class 

OPT.ABAP.MAINT.TooManyAttributesInAClass 

TooManyAttributesInAClass:クラス属性の過度な数の宣言の回避

Too Many Database Operations In Block 

OPT.ABAP.MAINT.TooManyDatabaseOperationsInBlock 

TooManyDatabaseOperationsInBlock:ブロック内での過度なデータベース操作の回避

Too Many Lines By File 

OPT.ABAP.MAINT.TooManyLinesByFile 

TooManyLinesByFile: 行数が多すぎるファイルの回避

Too Nested Macro Calls 

OPT.ABAP.MAINT.TooNestedMacroCalls 

TooNestedMacroCalls:ネストしすぎたマクロ呼び出しの回避

Uncaught Exception In Rfc Call 

OPT.ABAP.RELIABILITY.UncaughtExceptionInRfcCall 

UncaughtExceptionInRfcCall:RFCコールで捕捉されなかった例外

Unicode Programs 

OPT.ABAP.ADR.UnicodePrograms 

UnicodePrograms:コードはUNICODEとの互換性が必要

Update Dbtable Without Where 

OPT.ABAP.RELIABILITY.UpdateDbtableWithoutWhere 

UpdateDbtableWithoutWhere:WHERE句を指定しないデータベーステーブルの更新

Update Delete Without Where 

OPT.ABAP.EFFICIENCY.UpdateDeleteWithoutWhere 

UpdateDeleteWithoutWhere:WHEREを指定しないUPDATE/DELETE

情報

Usages Of Sy Sysid 

OPT.ABAP.SEC.UsagesOfSySysid 

sy-sysidの使用法:sy-sysid の使用(参考)

情報

Usages Of Sy Uname 

OPT.ABAP.SEC.UsagesOfSyUname 

UsagesOfSyUname:sy-unameの使用(参考)

Use Attributes Controller Class 

OPT.ABAP.AWD.UseAttributesControllerClass 

UseAttributesControllerClass:Web DynproコントローラクラスはWDTHISおよびWDCONTEXT属性が必要

Use Class Based Exceptions 

OPT.ABAP.MAINT.UseClassBasedExceptions 

UseClassBasedExceptions:クラスベースの例外処理の使用

Use For All Entries 

OPT.ABAP.APFR.UseForAllEntries 

UseForAllEntries:FOR ALL ENTRIES句の内部テーブルが空でないことの確認

Use Local Instead Of Tables In Subroutines 

OPT.ABAP.AGR.UseLocalInsteadOfTablesInSubroutines 

UseLocalInsteadOfTablesInSubroutines:プロシージャ、モジュール、イベント・ブロックの中でTABLES/NODESの宣言の回避

Use Read With Binary Search If With Key 

OPT.ABAP.APFR.UseReadWithBinarySearchIfWithKey 

UseReadWithBinarySearchIfWithKey:テーブルを読み込む際にWITH KEYでBINARY SEARCHを使用

Warn Scroll 

OPT.ABAP.AWD.WarnScroll 

WarnScroll:「scrollingMode{}」を持つWeb Dynpro要素の回避

Warn Without Adobe Print Form 

OPT.ABAP.ADR.WarnWithoutAdobePrintForm 

WarnWithoutAdobePrintForm:印刷フォームがAdobeのフォームとして使用されていない場合の警告

Weak Hash Algorithm 

OPT.ABAP.SEC.WeakHashAlgorithm 

WeakHashAlgorithm:脆弱な暗号化ハッシュのデータの完全性の欠如

Where Clauses Without Not Or 

OPT.ABAP.ASR.WhereClausesWithoutNotOr 

WhereClausesWithoutNotOr:データベース操作でWHERE句内のNOT/OR演算子の回避

Working With Report 

OPT.ABAP.AGR.WorkingWithReport 

WorkingWithReport:レポートでの動的操作(READ、INSERT、DELETE)の回避

Working With Text Pool 

OPT.ABAP.AGR.WorkingWithTextPool 

WorkingWithTextPool:テキストプールの読み取り、挿入、削除の回避

選択

作成

ヘッダ

ただし、表のタイトルは使わないこと

テーブルをテーブルとして使う