M204.2840

From m204wiki
Jump to navigation Jump to search

M204.2840  Statement has too many intermediate results

This error usually occurs with a Store Record statement that references more than 127 subscripted values in a SOUL array. An internal table of 512 bytes is allocated by the SOUL compiler to hold temporary variables. This table consists of one fullword counter and 127 fullwords of data. Each of those 127 fullwords represents a temporary variable. This change in the handling of temporary variables improves performance and reduces space requirements in VTBL and STBL.

This error could also occur with a Print statement in Model 204 version 7.4 or, less likely, with a Find, Audit, or Update Record statement.

Response:

Store Record: Break up the statement into multiple parts as in the following example:

STORE: STORE RECORD FIELDX = %ARRAY(1) FIELDX = %ARRAY(2) ... FIELDX = %ARRAY(127) END STORE FRN IN STORE FOR %X FROM 128 TO 999 ADD FIELDX = %ARRAY(%X) END FOR END FOR etc.

Find: Break up the statement into multiple parts as in the following example:

FD1: IN filename FD FIELDX = %ARRAY(1) FIELDX = %ARRAY(2) ….. FIELDX = %ARRAY(127) END FIND .. FD2: FD IN FD1 FIELDX = %ARRAY(128) …… END FIND

Update Record: Break up the statement into multiple parts, similar to the Store Record example.

Audit: Break up the Audit into multiple Audit statements, each having a limit of 127 variable array references.

Print: The issue has been resolved in SirMods 8.1. Therefore, the best solution for Model 204 version 7.4 is to rerun the job with a load module that includes SirMods 8.1 linked in. As of Model 204 version 7.5, SirMods is totally integrated into the Model 204 nucleus, so no special linking is required.

Message attributes:

RETCODEO=0Sets online return code
RETCODEB=4Sets batch (single user) return code
CLASS=EError class; the message can be suppressed with the X'04' bit setting of the MSGCTL parameter
AUDITERWrites the message with line type ER to the audit trail
COUNTIncrements the error count (ERCNT) parameter
ECHODisplays the line that caused the error

Back to list of messages