Resolving Differences

The sections below describe options on how to resolve the various type of differences.

Warning - source location for <object> doesn't match GEN

This warning message is produced when the actual location of the metadata source file is different than the object's definition in the GEN runtime metadata repository.

Details

Warning - source location for <object> doesn't match GEN:
  GEN:  <expected-location>
  FILE:  <actual-location>
          
Message Component Description
<object> The metadata source that is not in the location identified in the GEN metadata runtime repository.
<expected-location> The name of a directory within the application's file system where the GEN metadata runtime repository expected the object to be.
<actual-location> The application directory on the file system where the metadata source object is actually located.

Example

Warning - source location for 'ICFMTED.lib' doesn't match GEN:
  GEN:  icmeta
  FILE: globalmeta

In this case, the expected location for ICFMTED.lib is $LAWDIR/prodlineName/metadata/icmeta. However, the file was found in $LAWDIR/prodlineName/metadata/globalmeta.

Resolution

You can resolve this difference by moving the metadata source file to the location identified by the GEN metadata runtime repository. For example,

mv $LAWDIR/prodlineName/metadata/globalmeta/ICFMTED.lib $LAWDIR/prodlineName/metadata/icmeta/ICFMTED.lib

Object <object> exists in GEN but has no source file

This difference occurs when metadata exists in the GEN metadata runtime repository for an object in the application. However, the metadata source file does not exist. This may mean that a developer has added objects to the application, but has not used the metadump utilities to create the metadata source.

Details

Object <object> exists in GEN but has no source file;
  will dump from GEN to <object-path> and stamp new file.
Message Component Description
<object> The name of the non-existing metadata source.
<object-path> The application’s metadata in GEN identifies the directory relative to $LAWDIR/prodlineName where the metadata source should be located.

Example

Object 'NEW1.pgm' exists in GEN but has no source file;
   will dump from GEN to ifmeta/NEW1.pgm and stamp new file.

Resolution

In this case, a developer has used development tools to create an object for the application and so the object's metadata has been created in the GEN metadata runtime repository. However, the metadata source has not yet been created. The developer must determine if this object is needed.

If the developer determines that the object is part of a desired customization, the appropriate metadump utility can be used to create the metadata source file. For example, at the command line, type

cd $LAWDIR/prodlineName/metadata/ifmeta

metadumppgm prodlineName NEW1

This creates $LAWDIR/prodlineName/metadata/ifmeta/NEW1.pgm and resolves the difference.

If the object is not wanted in the product line, use the development tools to remove the object from the GEN metadata runtime repository.

Object <object> has source but does not exist in GEN

Metadata source is used by the metaload tools to populate the GEN metadata runtime repository. This difference reports that the object is not found in the GEN metadata runtime repository but the metadata source file exists.

Details

Object <object> has source but does not exist in GEN;
  will load to GEN from <object-path>.
Message Component Description
<object> The name of the non-existing metadata source.
<object-path> The location on the application’s file system where the application’s metadata source is located.

Example

Object 'NEW1.pgm' has source but does not exist in GEN;
   will load to GEN from ifmeta/NEW1.pgm.

Resolution

In this case, a developer may have deleted the metadata from the GEN metadata runtime repository using the development tools without removing the metadata source. The developer must determine if this object is needed.

If the developer determines the object is needed in the application, the appropriate metaload utility can be used to load the metadata in the .pgm file into the GEN metadata repository. For example, at the command line, type

metaloadpgm prodlineName$LAWDIR/prodlineName/metadata/ifmeta/NEW1.pgm

This loads the metadata contained in NEW1.pgm into the GEN metadata runtime repository and resolves the difference.

If the object is not wanted in the product line, remove the metadata source from the application files system. In this case:

rm $LAWDIR/prodlineName/metadata/ifmeta/NEW1.pgm

Object <object> - differences found between GEN and source file

This difference is reporting that the metadata in the GEN metadata runtime repository is different than the metadata source file. If differences are reported and no customizations have been applied, there is a procedural issue. Refer to the application's appmetaload.log and lawappinstall.log to determine the issue.

This difference may be reported when application customizations have been developed. The difference could be that development tools have modified the GEN metadata runtime repository, but the metadata source has not been updated to reflect the modification. If customizations have been developed, the developer must decide if the GEN metadata runtime repository has the desired information or if the metadata source is desired.

Note: If you decide to include the metadata source rather than the GEN metadata runtime repository information for an object, please realize that you are changing the application's runtime information. Before you begin the copy product line process, verify the application is working as expected with the changes to the GEN metadata runtime repository.

Details

To see the details for just one object, at the command line, type

perl $GENDIR/bin/appmetadiff –d prodlineName object

Object <object> - differences found between GEN and source file;
  will dump <object> from GEN to <object-path>
            <object> differences:
       <=GEN
       >=source file
  < <object-type>:<GEN-metadata>
  > <object-type>:<metadata-source>
          
Message Component Description
<object> The name of the object that has differences.
<object-path> The location of the metadata source, relative to $LAWDIR/prodlineName.

>=GEN

<=source file

Indicates that in the lines below, the line starting with a right bracket (>) is for the GEN metadata repository information and the line starting with a left bracket (<) is for the metadata source information.
<object-type> Object types include: ELM, LIB, MNU, MSG, PGM, SKN, SYS, TBL, WRK.
<GEN-metadata> The object property in the GEN metadata runtime repository that is different than the metadata source.
<metadata source> The object property in the metadata source that is different than the GEN metadata runtime repository object property.

Example

Object 'PC90.msg' - differences found between GEN and source file;
 will dump PC90.msg from GEN to icmeta/PC90.msg.
 PC90.msg differences:
      >=GEN
      <=source file
 >MSG:PC90,100,Company does not exist,Y
 >MSG,PC90,101,The red fox has white socks.,Y
 <MSG:PC90,100,The requested Company does not exist,Y

In this example, a developer has used the Message Maintenance utility (msgmnt) to modify message 100 to be "Company does not exist". Also, message 101 was added to the GEN metadata.

Resolution

If the developer determines the GEN metadata is correct and needed for the customization, use a metadump utility or appmetadiff -s to load the correct source from the GEN metadata. Review the metadump tools listed in the System Utilities Reference Guide. The extension on the metadata source determines the metadump tool to use. For this example, metadumpmsg loads the content of PC90.msg into GEN. This modifies the application’s metadata for object PC90.msg. At the command line, type

cd $LAWDIR/prodlineName/metadata/icmeta

metadumpmsg prodlineName PC90

You can also use appmetadiff -s. For example, at the command line, type

perl $GENDIR/bin/appmetadiff –s $LAWDIR/prodlineName/PC90.msg

Using appmetadiff with the -s option recreates $LAWDIR/prodlineName/metadata/icmeta/PC90.msg, which resolves the difference.

If the metadata source is desired, use the metadata load utilities to update the GEN metadata. Review the metaload tools listed in the System Utilities Reference Guide. The extension on the metadata source determines the metaload tool to use. For this example, metaloadmsg loads the content of PC90.msg into GEN. This modifies the application’s metadata for object PC90.msg. At the command line, type

metaloadmsg prodlineName $LAWDIR/prodlineName/metadata/ifmeta/PC90.msg

To use the metaload and metadump utilities, you may need to turn off Lawson Security or create a security class for these utilities. For more information, see Setting Up Access to the metadump and metaload Utilities.