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.
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.