Die Komponente zur Codeüberprüfung unterstützt integrierte Codeüberprüfungsregeln für EGL.
Diese Regeln sind in die Codeüberprüfung für die EGL-Komponente integriert und erfordern keine
Parameter. Sie können diese Regeln in den Kategorien 'Ausdrücke', 'Spezifische Prüfungen', 'Anweisungen', und
'Typen' im Konfigurationsfenster für die Softwareanalyse auswählen. Weitere Informationen zur Verwendung dieses Fensters finden Sie in Softwareanalysekonfiguration erstellen.
Informationen zum Exportieren oder Importieren einer Regeldatei finden Sie in Regeln exportieren und importieren.
- Ausdrücke:
- AS-Ausdrücke vermeiden
- Verwenden Sie diese Regel, um alle AS-Ausdrücke im EGL-Quellcode zu markieren. AS-Ausdrücke
sind in der CobolGen-Umgebung im Allgemeinen mit hohem Ausführungsaufwand verbunden, da sie dem Datentyp ANY
zugeordnet werden, der die Verwendung interner Pseudoobjekte durch CobolGen erfordert.
- LIKE-/MATCHES-Ausdrücke vermeiden
- Verwenden Sie diese Regel, um alle LIKE- oder MATCHES-Ausdrücke
im EGL-Quellcode zu markieren. LIKE- und MATCHES-Ausdrücke sind in der CobolGen-Umgebung im Allgemeinen mit hohem
Ausführungsaufwand verbunden, da sie ein komplexes Laufzeitprogramm aufrufen müssen.
- NEW-Ausdrücke vermeiden
- Verwenden Sie diese Regel, um alle NEW-Ausdrücke im EGL-Quellcode zu markieren. NEW-Ausdrücke
sind in der CobolGen-Umgebung im Allgemeinen mit hohem Ausführungsaufwand verbunden, da sie dem Datentyp ANY
zugeordnet werden, der die Verwendung interner Pseudoobjekte durch CobolGen erfordert.
- Spezifische Prüfungen:
- Copystr- und Comparestr-Funktionen vermeiden
- Verwenden Sie diese Regel, um Aufrufe der Funktionen COPYSTR oder COMPARESTR zu markieren.
Diese Funktionen können durch eine effizientere Unterzeichenfolgezuordnung ersetzt werden.
- Direkte Zuordnung zu Ereignishandler-Array vermeiden
- Verwenden Sie diese Regel, um direkte Zuordnungen (=) zu einem Ereignishandler-Array in einem EGL Rich
UI-Programm zu markieren. Das ordnungsgemäße Verfahren ist das Anhängen an das Array (::=).
- Funktionsparameter des Typs In vermeiden
- Verwenden Sie diese Regel, um alle Funktionsparameter mit dem Definitionstyp IN zu
markieren. Obwohl ein mit dem Typ IN definierter Parameter unterstützt wird, erfordert er,
dass das übergebene Argument in eine temporäre Variable kopiert wird.
- Funktionsparameter des Typs Out vermeiden
- Verwenden Sie diese Regel, um alle Funktionsparameter mit dem Definitionstyp OUT zu
markieren. Obwohl ein mit dem Typ OUT definierter Parameter unterstützt wird, erfordert er,
dass das übergebene Argument beim Start der Funktion initialisiert wird.
- Vorhandensein von mehr als der angegebenen Anzahl an Parts in einer Quellendatei vermeiden
- Verwenden Sie diese Regel, um EGL-Quellendateien zu markieren, die mehr als eine definierte Anzahl
von EGL-Abschnitten (wie z. B. Funktionen und Datensätze auf höchster Ebene) enthalten.
Sie können die Standardwarnstufe von 50 Abschnitten (Parts) überschreiben, wenn Sie dies wünschen.
Zu viele Abschnitte in dieselbe Quellendatei einzufügen, kann sich negativ auf
die IDE-Buildleistung auswirken. Es ist besser, die Dateien in viele kleinere Dateien aufzuteilen.
- E/A-Anweisungen ohne Try-Block vermeiden
- Verwenden Sie diese Regel, um E/A-Anweisungen (wie Add, Get, Replace, Delete, Open oder Close) zu
markieren, die nicht unmittelbar in einem Try-Block enthalten sind.
- If ohne Else-Block vermeiden
- Verwenden Sie diese Regel, um IF-Anweisungen zu markieren, die keinen entsprechenden
ELSE-Block haben. Das Codieren von IF-Anweisungen ohne ELSE-Blöcke kann zu logischen
Pfaden führen, bei denen eine Fehlerbedingung ignoriert wird.
- Verschachtelung von If-Anweisungen vermeiden, die tiefer als die angegebene Anzahl der Ebenen sind
- Verwenden Sie diese Regel, um verschachtelte IF-Anweisungen (IF-Block innerhalb eines
anderen IF-Blocks) zu markieren. Sie können den Standardwert 3 für Verschachtelungsebenen überschreiben, wenn
Sie dies wünschen. Wenn die Verschachtelung tiefer als die angegebene Anzahl Ebenen ist, markiert die
Regel die Ebenen, die über die Begrenzung hinausgehen.
- Zahl-in-Text-Konvertierungen vermeiden
- Verwenden Sie diese Regel, um alle Zuordnungen zu markieren, bei denen die Quelle der Zuordnung
einen numerischen Typ und das Ziel der Zuordnung einen Texttyp hat. Eine solche Zuordnung
ist gewöhnlich mit einer aufwendigen Formatierungsoperation verbunden.
- Rekursive Funktionen vermeiden
- Verwenden Sie diese Regel, um Funktionen zu markieren, die an einer Reihe rekursiver
Aufrufe beteiligt sind. Dies können mehrere Funktionen sein. Der rekursive Stapel wird
als Teil des Ergebnisses zusammen mit dem rekursiven Pfad angezeigt.
- SQL-Anweisungen vermeiden, die eine Sortierung verursachen
- Verwenden Sie diese Regel, um SQL-Anweisungen zu markieren, die potenziell
dazu führen, dass SQL eine Sortierung der Ergebnismenge durchführt. Die Regel sucht insbesondere
nach den Schlüsselwörtern ORDER BY, GROUP BY, JOIN oder
UNION, um Regelverstöße zu ermitteln.
- SQL-Anweisungen ohne eine Ergebnismengen-ID vermeiden
- Verwenden Sie diese Regel, um SQL-Anweisungen zu markieren, die eine
Ergebnismengen-ID angeben könnten, dies jedoch nicht tun. Wenn in der Anweisung keine Ergebnismengen-ID
angegeben wird, wird in einer CobolGen-Umgebung eine erhebliche Menge an zusätzlichem Code generiert, um
bei der Ausführung eine dynamische Ermittlung der zu verwendenden Ergebnismenge zu ermöglichen. Dieser
zusätzliche Code lässt sich durch die Angabe der richtigen Ergebnismengen-ID vermeiden.
- Text-in-Zahl-Konvertierungen vermeiden
- Verwenden Sie diese Regel, um alle Zuordnungen zu markieren, bei denen die Quelle der Zuordnung
einen Texttyp und das Ziel der Zuordnung einen numerischen Typ hat. Eine solche Zuordnung ist gewöhnlich mit
einer aufwendigen Operation zur Konvertierung des Texts in eine gültige Zahl verbunden.
- Try-Anweisungen ohne Onexception-Block vermeiden
- Verwenden Sie diese Regel, um alle TRY-Anweisungen zu markieren, die
ohne ONEXCEPTION-Block codiert sind. Das Codieren von TRY-Anweisungen ohne
ONEXCEPTION-Blöcke kann zu logischen Pfaden führen, bei denen eine Fehlerbedingung ignoriert wird.
- DataItem-Nutzung erfordern
- Verwenden Sie diese Regel, um alle strukturierten Datensätze zu markieren, die eingebettete Felder
enthalten, die auf keinen DataItem-Abschnitt als Typ des Felds verweisen.
- DataItem-Nutzung beschränken
- Verwenden Sie diese Regel, um alle strukturierten Datensätze zu markieren, die eingebettete Felder
enthalten, die auf einen DataItem-Abschnitt als Typ des Felds verweisen.
- Validierung für Systeme durchführen, die durch Part-Builddeskriptor definiert sind
- Verwenden Sie diese Regel, um eine interne Kompilierung des Abschnitts (Parts) aufzurufen,
der von EGL-Codierungsregeln verarbeitet wird, um die Sprachmerkmale zu ermitteln, die
von dem Systemtyp, der in dem diesem Abschnitt zugeordneten Builddeskriptor angegeben ist,
nicht unterstützt werden.
- Anweisungen:
- Alle EGL-Anweisungen
- Wählen Sie die gewünschten EGL-Anweisungen aus, um alle Anweisungen des angegebenen Typs zu markieren.
- Typen:
- Alle EGL-Datentypen
- Wählen Sie die gewünschten EGL-Datentypen aus, um alle Datentypen des angegebenen Typs zu markieren.