Development > Utilities > Verifications > Source verification 

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




The following fields are present on this tab :

Block number 1

Control type

  • Subprograms and functions (field VERIFCALL)
  • Classes [F] and [M] (field VERIFVAR)
  • Others (field VERIFAUT)


  • Source(s) (field NOMSRC)
  • Module (field CHXMODULE)
  • field LIBMODULE


  • Error (field CHXERREUR)
  • field NUMERR



  • Module (field PARMODULE)


  • On client workstation (field TRACE)
  • File name (field TRACENAME)




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.

Balises pour masquer certaines erreurs

Batch task

This function can be executed in batch mode. The standard task AVERIFSRC can execute it.

Error messages

The only error messages are the generic ones.

Tables used

SEEREFERTTO Refer to documentation Implementation