Problems

When complex rule sets are built (e.g., with multiple subnodes that have many mutual dependencies), the process of global generation becomes difficult to follow.

The global generation produces Error #276

“Inconsistent global generation: max. of ??? nodes has been reached” .

This message indicates that the generation process is not stable: nodes are continuously regenerated and alternating results are returned. As a result, the generation would run indefinitely. This error message appears when the termination criterion has been reached. The object is then in an inconsistent state.

The global generation is slow

If nodes are generated too frequently (and unnecessarily), this can negatively impact performance.

Solution approach

An analysis tool can be activated for developers:

Set the QPPD parameter /SCT/QP_GLOBGENLOG to “X”. This activates logging for the global generation process.

It is not recommended to activate this parameter for all users, since the functionality is only available in the debugger.

A breakpoint at the end of the method
/SCT/QP_CL_QV_MODEL->DO_GLOBGENLOG_END
allows the contents of the table mt_globgenlog to be inspected.

This table logs:

  • which nodes have been marked for generation (EVENT = “Base to be generated:”)

  • which nodes are generated (INDEX is incremented)

  • which object types caused nodes to be marked again or further for generation. The fields change_send and change_level are also logged for this purpose

  • an execution timestamp and the time difference (in ms) compared to the previous log entry

This makes it possible to identify:

  • which pattern (generation sequence) repeats itself in order to correct an infinite loop

  • which nodes or object types are generated too frequently, allowing potential adjustments to the customizing (send/receive)

  • which nodes have particularly long-running generation methods