Fast/Reload V7.8 changes: Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (Created page with "{{Hierarchy header}} The following sections contain new or changed features in Fast/Reload. ==Warning messages for some DV, STORE-x, and repeatibility changes== V7R2 of ''Mo...")
 
mNo edit summary
Line 1: Line 1:
{{Hierarchy header}}
{{Hierarchy header}}
The following sections contain new or changed features in [[Fast/Reload]].
The following sections contain new or changed features in [[Fast/Reload]].
 
==Warning messages for some DV, STORE-x, and repeatibility changes==
==Warning messages for some DV, STORE-x, and repeatibility changes==
V7R2 of ''Model 204'' introduced several new field attributes.
V7R2 of <var class="product">Model 204</var> introduced several new field attributes.
Reorganizing a file and changing some of these attributes may
Reorganizing a file and changing some of these attributes may
create differences in field processing which may not be
create differences in field processing which may not be
obvious at first glance.
obvious at first glance.
   
   
To highlight this, ''Fast/Reload'' will issue a warning
To highlight this, <var class="product">Fast/Reload</var> will issue a warning
message (MSIR.1037) for each attribute change that may have some
message (MSIR.1037) for each attribute change that may have some
of these subtle effects.
of these subtle effects.
Line 16: Line 16:
   
   
One source of possible change in application behavior
One source of possible change in application behavior
involves use of the following User Language constructs:
involves use of the following <var class="product">User Language</var> constructs:
<ul>
<ul>
<li>the <tt>Is Present</tt> test  
<li>The <var>Is Present</var> test
<li>the count returned by a <tt>Count Occurrences Of</tt> statement  
<li>The count returned by a <var>Count Occurrences Of</var> statement
<li>the number of iterations of a <tt>For Each Occurrence Of</tt> loop  
<li>The number of iterations of a <var>For Each Occurrence Of</var> loop
</ul>
</ul>
All three of the above constructs have equivalent exposure to the
All three of the above constructs have equivalent exposure to the
changes in field attributes, even though the examples below only use
changes in field attributes, even though the examples below only use
<tt>Is Present</tt>, for brevity.
<var>Is Present</var>, for brevity.
   
   
The other source of possible change in behavior is:
The other source of possible change in behavior is:
<ul>
<ul>
<li>the value returned when referencing a physically absent field
<li>The value returned when referencing a physically absent field
occurrence which was AT-MOST-ONE prior to the reorganization
occurrence that was AT-MOST-ONE prior to the reorganization
</ul>
</ul>
This is shown in the examples using the <tt>Print</tt> statement,
This is shown in the examples using the <var>Print</var> statement,
although of course the change could be in any kind of reference to the
although the change could be in any kind of reference to the
field value.
field value.
   
   
When changing field attributes as part of reorganizing a file,
When changing field attributes as part of reorganizing a file,
you should understand the
you should understand the
impact of the change; to help in this,
impact of the change. To help in this,
the conditions that cause warning messages are listed in the following
the conditions that cause warning messages are listed in the following
subsections,
subsections,
Line 48: Line 48:
For example, you can change the DEFAULT-VALUE, STORE-DEFAULT, and
For example, you can change the DEFAULT-VALUE, STORE-DEFAULT, and
STORE-NONE attributes of an EXACTLY-ONE field without any consequences
STORE-NONE attributes of an EXACTLY-ONE field without any consequences
about User Language application behavior.
about <var class="product">User Language</var> application behavior.
<li>Although the examples below all involve fields defined within
<li>Although the examples below all involve fields defined within
fieldgroups, the potential problems, and the warning messages issued
fieldgroups, the potential problems, and the warning messages issued
by ''Fast/Reload'', apply equally to fields defined outside fieldgroups.
by <var class="product">Fast/Reload</var>, apply equally to fields defined outside fieldgroups.
</ul>
</ul>
   
   
In these examples, assume you are reorganizing with UAI/LAI a
In these examples, assume you are reorganizing with <var>UAI</var>/<var>LAI</var> a
file with the following &ldquo;old&rdquo; definitions:
file with the following &ldquo;old&rdquo; definitions:
<pre>
<p class="code"><nowiki>DEFINE FIELD KEY WITH ORDERED
    DEFINE FIELD KEY WITH ORDERED
DEFINE FIELDGROUP GRP
    DEFINE FIELDGROUP GRP
DEFINE FIELD EXO.OLD (FG GRP)
    DEFINE FIELD EXO.OLD (FG GRP)
DEFINE FIELD REPT.OLD.MISS (REPT FG GRP)
    DEFINE FIELD REPT.OLD.MISS (REPT FG GRP)
DEFINE FIELD REPT.OLD.XX (REPT FG GRP)
    DEFINE FIELD REPT.OLD.XX (REPT FG GRP)
DEFINE FIELD REPT.OLD.NUL (REPT FG GRP)
    DEFINE FIELD REPT.OLD.NUL (REPT FG GRP)
DEFINE FIELD AMO.OLD.DF_YY (ONE DV 'YY' FG GRP)
    DEFINE FIELD AMO.OLD.DF_YY (ONE DV 'YY' FG GRP)
DEFINE FIELD AMO.OLD.SD_LIT (ONE DV 'AA' SD LIT FG GRP)
    DEFINE FIELD AMO.OLD.SD_LIT (ONE DV 'AA' SD LIT FG GRP)
</nowiki></p>
</pre>
And assume that a record has been stored as follows:
And assume that a record has been stored as follows:
<pre>
<p class="code"><nowiki>Store Record
    Store Record
  KEY = 'Some unique value'
      KEY = 'Some unique value'
Then Continue
    Then Continue
  Add Fieldgroup GRP
      Add Fieldgroup GRP
      REPT.OLD.XX = 'xx'
          REPT.OLD.XX = 'xx'
      REPT.OLD.NUL = ''
          REPT.OLD.NUL = ''
      AMO.OLD.SD_LIT = 'AA'
          AMO.OLD.SD_LIT = 'AA'
  End Add
      End Add
End Store
    End Store
</nowiki></p>
</pre>
Each example contains a field definition, used in the <var>LAI</var> step,
Each example contains a field definition, used in the LAI step,
to highlight one condition, and contains a <var class="product">User Language</var> fragment which
to highlight one condition, and contains a User Language fragment which
is assumed to be contained within the following:
is assumed to be contained within the following:
<pre>
<p class="code"><nowiki>FR Where KEY = 'Some unique value'
    FR Where KEY = 'Some unique value'
  For Fieldgroup GRP
      For Fieldgroup GRP
      ... example fragment
          ... example fragment
  End For
      End For
End For
    End For
</nowiki></p>
</pre>
   
   
The conditions are shown in the following subsections.
The conditions are shown in the following subsections.
===EXONE -> non-EXONE with STORE-x NONE===
===EXONE -> non-EXONE with STORE-x NONE===
Case: Changing a field that was EXACTLY-ONE in the UAI to AT-MOST-ONE or
Case: Changing a field that was EXACTLY-ONE in the <var>UAI</var> to AT-MOST-ONE or
REPEATABLE, with either STORE-DEFAULT NONE or STORE-NULL NONE.
REPEATABLE, with either STORE-DEFAULT NONE or STORE-NULL NONE.
   
   
Changed definition in LAI:
Changed definition in <var>LAI</var>:
<pre>
<p class="code"><nowiki>DEFINE FIELD EXO.OLD (REPT SN NONE FG GRP)
    DEFINE FIELD EXO.OLD (REPT SN NONE FG GRP)
</nowiki></p>
</pre>
 
<var class="product">User Language</var> fragment:
User Language fragment:
<p class="code"><nowiki>If EXO.OLD Is Present Then Print 'Present'
<pre>
Else Print 'Not Present'; End If
    If EXO.OLD Is Present Then Print 'Present'
</nowiki></p>
    Else Print 'Not Present'; End If
</pre>
 
Result prior to reorg:
Result prior to reorg:
<pre>
<p class="output"><nowiki>Present
    Present
</nowiki></p>
</pre>
 
Result after reorg:
Result after reorg:
<pre>
<p class="output"><nowiki>Not Present
    Not Present
</nowiki></p>
</pre>
===REPT -> EXONE===
===REPT -> EXONE===
Case: Changing a field that was REPEATABLE in the UAI to EXACTLY-ONE.
Case: Changing a field that was REPEATABLE in the <var>UAI</var> to EXACTLY-ONE.
   
   
There is one exception to this, which does not produce a warning:
There is one exception to this, which does not produce a warning:
if the field was not a member of a
if the field was not a member of a
fieldgroup in the UAI, and is a member of a fielgroup in the LAI.
fieldgroup in the <var>UAI</var>, and is a member of a fielgroup in the <var>LAI</var>.
Note that the "out of synch" check of this "collecting
Note that the "out of sync" check of this "collecting
loose fields" LAI feature ensures there is no exposure
loose fields" <var>LAI</var> feature ensures there is no exposure
to a change in User Language behavior when using such a field.
to a change in <var class="product">User Language</var> behavior when using such a field.
   
   
Changed definition in LAI:
Changed definition in <var>LAI</var>:
<pre>
<p class="code"><nowiki>DEFINE FIELD REPT.OLD.MISS (EXONE FG GRP)
    DEFINE FIELD REPT.OLD.MISS (EXONE FG GRP)
</nowiki></p>
</pre>
   
   
User Language fragment:
<var class="product">User Language</var> fragment:
<pre>
<p class="code"><nowiki>If REPT.OLD.MISS Is Present Then Print 'Present'
    If REPT.OLD.MISS Is Present Then Print 'Present'
Else Print 'Not Present'; End If
    Else Print 'Not Present'; End If
</nowiki></p>
</pre>
   
   
Result prior to reorg:
Result prior to reorg:
<pre>
<p class="output"><nowiki>Not Present
    Not Present
</nowiki></p>
</pre>
   
   
Result after reorg:
Result after reorg:
<pre>
<p class="output"><nowiki>Present
    Present
</nowiki></p>
</pre>
 
===REPT -> ONE STORE-x NONE===
===REPT -> ONE STORE-x NONE===
Case: Changing a field that was REPEATABLE in the UAI to EXACTLY-ONE.
Case: Changing a field that was REPEATABLE in the <var>UAI</var> to EXACTLY-ONE.
   
   
Changed definition in LAI:
Changed definition in <var>LAI</var>:
<pre>
<p class="code"><nowiki>DEFINE FIELD REPT.OLD.XX (ONE DV 'xx' SD NONE FG GRP)
    DEFINE FIELD REPT.OLD.XX (ONE DV 'xx' SD NONE FG GRP)
</nowiki></p>
</pre>
   
   
User Language fragment:
<var class="product">User Language</var> fragment:
<pre>
<p class="code"><nowiki>If REPT.OLD.XX Is Present Then Print 'Present'
    If REPT.OLD.XX Is Present Then Print 'Present'
Else Print 'Not Present'; End If
    Else Print 'Not Present'; End If
</nowiki></p>
</pre>
   
   
Result prior to reorg:
Result prior to reorg:
<pre>
<p class="output"><nowiki>Present
    Present
</nowiki></p>
</pre>
   
   
Result after reorg:
Result after reorg:
<pre>
<p class="output"><nowiki>Not Present
    Not Present
</nowiki></p>
</pre>
===ONE -> ONE with changed DV===
===ONE -> ONE with changed DV===
Case: Changing a field that was AT-MOST-ONE in the UAI to a different DEFAULT-VALUE in the LAI.
Case: Changing a field that was AT-MOST-ONE in the <var>UAI</var> to a
different DEFAULT-VALUE in the <var>LAI</var>.
   
   
Changed definition in LAI:
Changed definition in <var>LAI</var>:
<pre>
<p class="code"><nowiki>DEFINE FIELD AMO.OLD.DF_YY (ONE DV 'ZZ' FG GRP)
    DEFINE FIELD AMO.OLD.DF_YY (ONE DV 'ZZ' FG GRP)
</nowiki></p>
</pre>
   
   
User Language fragment:
<var class="product">User Language</var> fragment:
<pre>
<p class="code"><nowiki>Print AMO.OLD.DF_YY
    Print AMO.OLD.DF_YY
</nowiki></p>
</pre>
   
   
Result prior to reorg:
Result prior to reorg:
<pre>
<p class="output"><nowiki>YY
    YY
</nowiki></p>
</pre>
   
   
Result after reorg:
Result after reorg:
<pre>
<p class="output"><nowiki>ZZ
    ZZ
</nowiki></p>
</pre>
 
===ONE -> EXONE===
===ONE -> EXONE===
Case: Changing a field that was AT-MOST-ONE in the UAI to EXACTLY-ONE in the LAI.
Case: Changing a field that was AT-MOST-ONE in the <var>UAI</var> to EXACTLY-ONE
in the <var>LAI</var>.
   
   
Changed definition in LAI:
Changed definition in <var>LAI</var>:
<pre>
<p class="code"><nowiki>DEFINE FIELD AMO.OLD.DF_YY (EXONE FG GRP)
    DEFINE FIELD AMO.OLD.DF_YY (EXONE FG GRP)
</nowiki></p>
</pre>
   
   
User Language fragment:
<var class="product">User Language</var> fragment:
<pre>
<p class="code"><nowiki>If AMO.OLD.DF_YY  Is Present Then Print 'Present'
    If AMO.OLD.DF_YY  Is Present Then Print 'Present'
Else Print 'Not Present'; End If
    Else Print 'Not Present'; End If
</nowiki></p>
</pre>
   
   
Result prior to reorg:
Result prior to reorg:
<pre>
<p class="output"><nowiki>Not Present
    Not Present
</nowiki></p>
</pre>
   
   
Result after reorg:
Result after reorg:
<pre>
<p class="output"><nowiki>Present
    Present
</nowiki></p>
</pre>
===ONE with DV -> REPT===
===ONE with DV -> REPT===
Case: Changing a field that was AT-MOST-ONE with DEFAULT-VALUE in the UAI to REPEATABLE in the LAI.
Case: Changing a field that was AT-MOST-ONE with DEFAULT-VALUE in the <var>UAI</var> to REPEATABLE in the <var>LAI</var>.
   
   
Changed definition in LAI:
Changed definition in <var>LAI</var>:
<pre>
<p class="code"><nowiki>DEFINE FIELD AMO.OLD.DF_YY (REPT FG GRP)
    DEFINE FIELD AMO.OLD.DF_YY (REPT FG GRP)
</nowiki></p>
</pre>
   
   
User Language fragment:
<var class="product">User Language</var> fragment:
<pre>
<p class="code"><nowiki>Print '>' With AMO.OLD.DF_YY With '<'
    Print '>' With AMO.OLD.DF_YY With '<'
</nowiki></p>
</pre>
   
   
Result prior to reorg:
Result prior to reorg:
<pre>
<p class="output"><nowiki>>YY<
    >YY<
</nowiki></p>
</pre>
   
   
Result after reorg:
Result after reorg:
<pre>
<p class="output"><nowiki>><
    ><
</nowiki></p>
</pre>
===ONE SD LIT/ALL -> SD NONE===
===ONE SD LIT/ALL -> SD NONE===
Case: Changing a field that was AT-MOST-ONE with STORE-DEFAULT LIT or ALL in
Case: Changing a field that was AT-MOST-ONE with STORE-DEFAULT LIT or ALL in
the UAI to STORE-DEFAULT NONE in the LAI.
the <var>UAI</var> to STORE-DEFAULT NONE in the <var>LAI</var>.
   
   
Changed definition in LAI:
Changed definition in <var>LAI</var>:
<pre>
<p class="code"><nowiki>DEFINE FIELD AMO.OLD.SD_LIT (ONE DV 'AA' SD NONE FG GRP)
    DEFINE FIELD AMO.OLD.SD_LIT (ONE DV 'AA' SD NONE FG GRP)
</nowiki></p>
</pre>
   
   
User Language fragment:
<var class="product">User Language</var> fragment:
<pre>
<p class="code"><nowiki>If AMO.OLD.SD_LIT  Is Present Then Print 'Present'
    If AMO.OLD.SD_LIT  Is Present Then Print 'Present'
Else Print 'Not Present'; End If
    Else Print 'Not Present'; End If
</nowiki></p>
</pre>
   
   
Result prior to reorg:
Result prior to reorg:
<pre>
<p class="output"><nowiki>Present
    Present
</nowiki></p>
</pre>
   
   
Result after reorg:
Result after reorg:
<pre>
<p class="output"><nowiki>Not present
    Not present
</nowiki></p>
</pre>
===Non-EXONE SN LIT/ALL -> SN NONE===
===Non-EXONE SN LIT/ALL -> SN NONE===
Case: Changing a field that was AT-MOST-ONE or REPEATABLE, with STORE-NULL
Case: Changing a field that was AT-MOST-ONE or REPEATABLE with STORE-NULL
LIT or ALL, in the UAI to STORE-NULL NONE in the LAI.
LIT or ALL in the <var>UAI</var>, to STORE-NULL NONE in the <var>LAI</var>.
   
   
There is one exception to this, which does not produce a warning:
There is one exception to this, which does not produce a warning:
if the field was not a member of a
if the field was not a member of a
fieldgroup in the UAI, and it is a member of a fielgroup in the LAI.
fieldgroup in the <var>UAI</var>, and it is a member of a fielgroup in the <var>LAI</var>.
Note that the "out of synch" check of this "collecting
Note that the "out of sync" check of this "collecting
loose fields" LAI feature ensures there is no exposure
loose fields" <var>LAI</var> feature ensures there is no exposure
to a change in User Language behavior when using such a field.
to a change in <var class="product">User Language</var> behavior when using such a field.
   
   
Changed definition in LAI:
Changed definition in <var>LAI</var>:
<pre>
<p class="code"><nowiki>DEFINE FIELD REPT.OLD.NUL (REPT SN NONE FG GRP)
    DEFINE FIELD REPT.OLD.NUL (REPT SN NONE FG GRP)
</nowiki></p>
</pre>
   
   
User Language fragment:
<var class="product">User Language</var> fragment:
<pre>
<p class="code"><nowiki>If REPT.OLD.NUL Is Present Then Print 'Present'
    If REPT.OLD.NUL Is Present Then Print 'Present'
Else Print 'Not Present'; End If
    Else Print 'Not Present'; End If
</nowiki></p>
</pre>
   
   
Result prior to reorg:
Result prior to reorg:
<pre>
<p class="output"><nowiki>Present
    Present
</nowiki></p>
</pre>
   
   
Result after reorg:
Result after reorg:
<pre>
<p class="output"><nowiki>Not Present
    Not Present
</nowiki></p>
</pre>
 
{{Hierarchy footer}}
{{Hierarchy footer}}

Revision as of 20:13, 11 March 2011

{{#hierarchy-top:}} The following sections contain new or changed features in Fast/Reload.

Warning messages for some DV, STORE-x, and repeatibility changes

V7R2 of Model 204 introduced several new field attributes. Reorganizing a file and changing some of these attributes may create differences in field processing which may not be obvious at first glance.

To highlight this, Fast/Reload will issue a warning message (MSIR.1037) for each attribute change that may have some of these subtle effects.

For the most part, applications using the reorganized file will continue to work as before.

One source of possible change in application behavior involves use of the following User Language constructs:

  • The Is Present test
  • The count returned by a Count Occurrences Of statement
  • The number of iterations of a For Each Occurrence Of loop

All three of the above constructs have equivalent exposure to the changes in field attributes, even though the examples below only use Is Present, for brevity.

The other source of possible change in behavior is:

  • The value returned when referencing a physically absent field occurrence that was AT-MOST-ONE prior to the reorganization

This is shown in the examples using the Print statement, although the change could be in any kind of reference to the field value.

When changing field attributes as part of reorganizing a file, you should understand the impact of the change. To help in this, the conditions that cause warning messages are listed in the following subsections, along with a very brief example of a possible change in behavior.

Notes:

  • Other changes in these field attributes do not cause the kinds of problems discussed here. For example, you can change the DEFAULT-VALUE, STORE-DEFAULT, and STORE-NONE attributes of an EXACTLY-ONE field without any consequences about User Language application behavior.
  • Although the examples below all involve fields defined within fieldgroups, the potential problems, and the warning messages issued by Fast/Reload, apply equally to fields defined outside fieldgroups.

In these examples, assume you are reorganizing with UAI/LAI a file with the following “old” definitions:

DEFINE FIELD KEY WITH ORDERED DEFINE FIELDGROUP GRP DEFINE FIELD EXO.OLD (FG GRP) DEFINE FIELD REPT.OLD.MISS (REPT FG GRP) DEFINE FIELD REPT.OLD.XX (REPT FG GRP) DEFINE FIELD REPT.OLD.NUL (REPT FG GRP) DEFINE FIELD AMO.OLD.DF_YY (ONE DV 'YY' FG GRP) DEFINE FIELD AMO.OLD.SD_LIT (ONE DV 'AA' SD LIT FG GRP)

And assume that a record has been stored as follows:

Store Record KEY = 'Some unique value' Then Continue Add Fieldgroup GRP REPT.OLD.XX = 'xx' REPT.OLD.NUL = '' AMO.OLD.SD_LIT = 'AA' End Add End Store

Each example contains a field definition, used in the LAI step, to highlight one condition, and contains a User Language fragment which is assumed to be contained within the following:

FR Where KEY = 'Some unique value' For Fieldgroup GRP ... example fragment End For End For

The conditions are shown in the following subsections.

EXONE -> non-EXONE with STORE-x NONE

Case: Changing a field that was EXACTLY-ONE in the UAI to AT-MOST-ONE or REPEATABLE, with either STORE-DEFAULT NONE or STORE-NULL NONE.

Changed definition in LAI:

DEFINE FIELD EXO.OLD (REPT SN NONE FG GRP)

User Language fragment:

If EXO.OLD Is Present Then Print 'Present' Else Print 'Not Present'; End If

Result prior to reorg:

Present

Result after reorg:

Not Present

REPT -> EXONE

Case: Changing a field that was REPEATABLE in the UAI to EXACTLY-ONE.

There is one exception to this, which does not produce a warning: if the field was not a member of a fieldgroup in the UAI, and is a member of a fielgroup in the LAI. Note that the "out of sync" check of this "collecting loose fields" LAI feature ensures there is no exposure to a change in User Language behavior when using such a field.

Changed definition in LAI:

DEFINE FIELD REPT.OLD.MISS (EXONE FG GRP)

User Language fragment:

If REPT.OLD.MISS Is Present Then Print 'Present' Else Print 'Not Present'; End If

Result prior to reorg:

Not Present

Result after reorg:

Present

REPT -> ONE STORE-x NONE

Case: Changing a field that was REPEATABLE in the UAI to EXACTLY-ONE.

Changed definition in LAI:

DEFINE FIELD REPT.OLD.XX (ONE DV 'xx' SD NONE FG GRP)

User Language fragment:

If REPT.OLD.XX Is Present Then Print 'Present' Else Print 'Not Present'; End If

Result prior to reorg:

Present

Result after reorg:

Not Present

ONE -> ONE with changed DV

Case: Changing a field that was AT-MOST-ONE in the UAI to a different DEFAULT-VALUE in the LAI.

Changed definition in LAI:

DEFINE FIELD AMO.OLD.DF_YY (ONE DV 'ZZ' FG GRP)

User Language fragment:

Print AMO.OLD.DF_YY

Result prior to reorg:

YY

Result after reorg:

ZZ

ONE -> EXONE

Case: Changing a field that was AT-MOST-ONE in the UAI to EXACTLY-ONE in the LAI.

Changed definition in LAI:

DEFINE FIELD AMO.OLD.DF_YY (EXONE FG GRP)

User Language fragment:

If AMO.OLD.DF_YY Is Present Then Print 'Present' Else Print 'Not Present'; End If

Result prior to reorg:

Not Present

Result after reorg:

Present

ONE with DV -> REPT

Case: Changing a field that was AT-MOST-ONE with DEFAULT-VALUE in the UAI to REPEATABLE in the LAI.

Changed definition in LAI:

DEFINE FIELD AMO.OLD.DF_YY (REPT FG GRP)

User Language fragment:

Print '>' With AMO.OLD.DF_YY With '<'

Result prior to reorg:

>YY<

Result after reorg:

><

ONE SD LIT/ALL -> SD NONE

Case: Changing a field that was AT-MOST-ONE with STORE-DEFAULT LIT or ALL in the UAI to STORE-DEFAULT NONE in the LAI.

Changed definition in LAI:

DEFINE FIELD AMO.OLD.SD_LIT (ONE DV 'AA' SD NONE FG GRP)

User Language fragment:

If AMO.OLD.SD_LIT Is Present Then Print 'Present' Else Print 'Not Present'; End If

Result prior to reorg:

Present

Result after reorg:

Not present

Non-EXONE SN LIT/ALL -> SN NONE

Case: Changing a field that was AT-MOST-ONE or REPEATABLE with STORE-NULL LIT or ALL in the UAI, to STORE-NULL NONE in the LAI.

There is one exception to this, which does not produce a warning: if the field was not a member of a fieldgroup in the UAI, and it is a member of a fielgroup in the LAI. Note that the "out of sync" check of this "collecting loose fields" LAI feature ensures there is no exposure to a change in User Language behavior when using such a field.

Changed definition in LAI:

DEFINE FIELD REPT.OLD.NUL (REPT SN NONE FG GRP)

User Language fragment:

If REPT.OLD.NUL Is Present Then Print 'Present' Else Print 'Not Present'; End If

Result prior to reorg:

Present

Result after reorg:

Not Present

{{#hierarchy-bottom:}}