Checking programs
This function is reserved (and useful) for the developers.
The launching in batch mode is possible.
The process aims at detecting a certain number of programming errors.
This way, the quality is enhanced before the first use.
This process can be used to launch various controls in a folder:
- control of sub-programs and functions: it deals mainly with the call to the sub-programs in the sources (existence, number and coherence of setups...).
- control of classes [F] and [M]: it is used mainly to control the existence of tables, screens and fields in sources.
- Other controls: it is used for various controls in sources.
Controls are divided in two parts:
- Errors: They can cause the product to stop.
- Anomalies: This is about the non compliance with standards or a lack of specificity that can lead to errors during the execution of the process.
The process generates two log files (one for errors, the other for anomalies).
The anomaly file has the same name as the error file plus the suffix "W" (for "warning").
Screen management
The screen presents the current folder.
Entry screen
Enter the requested setups
Block number 1
Folder (field DOSSIER) |
choice of folder to deal with. |
Control type
Subprograms and functions (field VERIFCALL) |
Classes [F] and [M] (field VERIFVAR) |
control of classes [F] and [M]. this choice is used mainly to control the existence of tables, screens and fields in sources. |
Others (field VERIFAUT) |
other controls. this choice is used for various controls in sources. |
Criteria
Source(s) (field NOMSRC) |
process selection. select all via "*", one via its name or several via start* |
Module (field CHXMODULE) |
choice of a module (via a list screen). |
field LIBMODULE |
Error (field CHXERREUR) |
choice of a particular error (via a list screen). |
field NUMERR |
Sort
Module (field PARMODULE) |
Linking by module |
Log
On client workstation (field TRACE) |
Log file. It is possible to save directly on the customer workstation (checkbox). |
List of errors and anomalies searched
Control of the sub-programs and functions.
Errors searched:
DBGAFF found.
Processing does not exist.
Sub-program (or function) does not exist.
Error when call by GOSUB.
Global variable VAR does not exist.
Parameter having a different type on sub-program (or function) call.
Number of parameters different on sub-program (or function) call.
Anomalies searched:
Function having an argument type not entered in the ASUBPROG dictionary.
Function having an argument type (End) in the dictionary different from that of the processing.
the sub-program (or function) has an argument number that has not been declared.
Global variable VAR already declared with a different type.
Sub-program (or function) having en empty description (documentation).
Parameter [=VALUE] with a different type on sub-program (or function) call.
Parameter with a different type between dictionary and sub-program (or function) declaration.
Parameter transmitted as address/value differently between dictionary and sub-program (or function) declaration.
Different number of parameters between dictionary and sub-program (or function) declaration.
The argument no. N of the sub-program (or function) has a different name upon type definition.
control of classes [F] and [M].
Errors searched:
Source code should not be found in the industrialization environment.
Source code not referenced in the processing dictionary.
Screen variable does not exist [M:ABV]CHP
Table variable does not exist [F:ABV]CHP
Variable does not exist [ABV]CHP in the LNK tables
Table not found
Abbreviation too long (> 4)
Anomalies searched:
Variable does not exist [G:ABV]CHP
Variable does not exist [S:ABV]CHP
other controls
Errors searched:
Sub- prog (or fct) ended and For devoid of Next
Sub- prog (or fct) ended and If devoid of Endif
Sub- prog (or fct) ended and Case devoid of Endcase
Sub- prog (or fct) ended and While devoid of Wend
End found in a For [Read] loop
Return found in a For [Read] loop
Entry point documentation does not exist.
Anomalies searched:
Start of the sub-program (or function) although the previous one is not finished yet
Sub-program (or function) does not contain any code
Sub-program (or function) has a grid for a parameter that is transmitted as value
Return found in a sub-program (or function)
Inaccurate error message, to be complemented with: "(" + [L]COMPTEUR - num$([L]STAT) + ")".
#@ is an obsolete instruction
Instruction devalue not useful for a size dim.