Starting in FOCUS 7.6.1, you can define non-FOCUS data sources and join structures with up to 256 segments, create longer HOLD files in FOCUS format, create any number of Dialogue Manager variables with names can be up to 100 characters long, create FML reports with any number of rows, have up to 63 joins in effect at one time, merge up to 16 files, define a longer DESCRIPTION attribute in the Master File, use a 64K buffer to read in fields for a request, and define longer DBA passwords.
Reference: |
Non-FOCUS data sources, JOIN structures used for reporting, and COMBINE structures used for MODIFY can have a maximum of 256 segments. XFOCUS data sources can have 256 segments, but when they are included in COMBINE structures used for MODIFY requests, the limit is 192 (segments plus indices).
The total number of segments in the structure includes segments defined as static cross references (SEGTYPE = KU or KM) in the Master File. Dynamic cross references (SEGTYPE = DKM, DKU, KL, or KLU) are not included in the count.
All other limits such as the number of fields in a Master File, the total length of all fields, and the number of JOINs or COMBINEs allowed are still in effect.
The number of segments in a single FOCUS data source is 64. However, FOCUS data sources can participate in JOIN or COMBINE structures with up to 256 segments. The maximum number of segments plus indices for a single FOCUS data source is 191.
Using an indexed view reduces the maximum number of segments plus indices to 191 for the structure being used. If AUTOINDEX is ON, you may be using an indexed view without specifically asking for one.
Reference: |
A FOCUS segment cannot be longer than a FOCUS page, 3968 (4096 minus overhead) bytes. An XFOCUS segment can be up to 16K bytes. In either case, a data source path cannot be longer than 32K bytes.
In prior releases, any HOLD FORMAT FOCUS or XFOCUS request that specified more than a page of data generated the following message, and the data source was not created:
(FOC397) LENGTH OF FIELDS ON FOCUS DATA PATH EXCEEDS 32K BYTES: | |
The sum of the field lengths on a data source path exceeds the maximum, reduce the size or number of fields. |
Now, when you create a FOCUS or XFOCUS data source using the HOLD command, data that is too long to become a single segment will become a parent segment with unique child segments. For a FOCUS data source, the fields will be grouped into normal FOCUS page size segments and added as unique segments up to the total maximum of 32K of data. For an XFOCUS data source, the root segment can hold the first 16K of data, and additional data up to the 32K total, will be placed in a single unique segment.
The FOC397 message will no longer be generated as long as the total length of the data for a segment path is less than 32K.
Each BY field in the request becomes a key in the root segment. Therefore, no BY field can be in the portion of the data placed in a unique child. If a BY field occurs in the portion of the data past the length of the root segment, the following message is generated:
(FOC400) KEY FIELDS LENGTH IN SEGMENT EXCEEDED MAXIMUM: | |
The key fields in the segment exceeded maximum. |
For more information about HOLD FORMAT FOCUS, see the Creating Reports manual.
The following request creates a version of the MOVIES data source with data longer than 3968 bytes:
SET ASNAMES=ON DEFINE FILE MOVIES NEWTITLE/A1024=TITLE; END TABLE FILE MOVIES PRINT NEWTITLE AS TITLE1 NEWTITLE AS TITLE2 NEWTITLE AS TITLE3 NEWTITLE AS TITLE4 NEWTITLE AS TITLE5 ON TABLE HOLD AS GIANTMOV FORMAT FOCUS END
The Master File generated by this request has one unique child segment:
FILENAME=GIANTMOV, SUFFIX=FOC , $ SEGMENT=SEG01, SEGTYPE=S1, $ FIELDNAME=FOCLIST, ALIAS=E01, USAGE=I5, $ FIELDNAME=TITLE1, ALIAS=E02, USAGE=A1024, TITLE='TITLE1', $ FIELDNAME=TITLE2, ALIAS=E03, USAGE=A1024, TITLE='TITLE2', $ FIELDNAME=TITLE3, ALIAS=E04, USAGE=A1024, TITLE='TITLE3', $ SEGMENT=SEG02, SEGTYPE=U, PARENT=SEG01, $ FIELDNAME=TITLE4, ALIAS=E05, USAGE=A1024, TITLE='TITLE4', $ FIELDNAME=TITLE5, ALIAS=E06, USAGE=A1024, TITLE='TITLE5', $
Dialogue Manager variable names on z/OS and z/VM can be up to 100 characters.
An unlimited number of Dialogue Manager variables can be used in a procedure.
Reference: |
The limit on FML tag values is now based on available memory rather than on a hardcoded value to service larger FML requests. There is no new syntax and users interact with FML by entering FML requests using an editor or as before.
If it is determined there is no more available memory, an internal routine displays one of the following messages before exiting the product:
Reqfor: out of memory
This indicates either too many labels or too much memory required.
Rectok: out of memory
Generated request cannot be parsed because not enough memory. (This is not an FML-specific message.)
The number of joins that can be in effect at one time for one data source has been raised to 63. The joined structure can have a total of up to 64 segments. The total length of all fields can be up to 32K and the number of fields in a data source can be up to 3072.
For example, you can have 63 joins between 64 one-segment data sources or three joins between four 16-segment data sources, or any combination that does not exceed 64 segments.
If you are using a relational data adapter, the Relational Database Management System (RDBMS) may have its own limit for the number of joins allowed in an SQL statement. If you create a joined structure that exceeds the number of JOINs allowed by the RDBMS but is within the number of JOINs allowed by FOCUS, the join is processed by FOCUS, but not optimized (passed to the RDBMS for processing).
Reference: |
You could previously merge up to six different data sources or merge data from the same data source up to six times per request. That limit has been raised to 16, allowing you to merge up to 16 data sources in a single MATCH request.
The manner in which MATCH merges the data depends on the request context, or more specifically, the order in which the data sources, BY fields, and display commands are mentioned, as well as on the number of verb objects and BY phrases employed. As before, the following general MATCH conditions apply:
There is no new syntax for this feature.
The length of the DESCRIPTION attribute for a field definition in a Master File has been raised to 2K.
The length of the LINREC and DATREC buffers has increased to 64K. Therefore, the total length of all fields read in a request can be up to 64K bytes. This includes fields in the Master File that are used in the request, fields created with the DEFINE and COMPUTE commands, and fields created internally as a result of internal computations or field reformatting. The total length of fields in the report output has not increased.
The number of fields allowed has not changed. All existing compiled MODIFY procedures should work without recompiling them.
How to: |
MAXLRECL indicates the largest actual file record length that FOCUS can read. The limit for MAXLRECL is 65536 bytes, allowing the user to read a record twice as large as the length of the internal matrix, which is limited to 32K. Therefore any request has this processing and output limitation.
Information Builders |