appmetadiff - Application Metadata Difference utility

appmetadiff allows you to report on or synchronize metadata differences between GEN and metadata source files. Some examples of when you might use appmetadiff are:

  • To create a full set of dump files if you have not taken an MSP delivered in 2005 or later.

  • To prepare a product line for copying to another product line.

  • To manage modifications in GEN.

appmetadiff creates four types of output:

Output Description
Cumulative detail log

The cumulative detail log contains a full copy of the detailed report and any error messages.

This file is Admin\appmetadiff.log.

Current report

Contains details about the differences identified by appmetadiff. The current report is created from the current run only, and is overwritten each time.

This file is Admin\appmetadiff.rpt.

Console output Console output shows the summary form of the report as it's running and any error messages.
Progress status

The progress status shows the detailed progress of appmetadiff while it's running and is removed when the run completes.

This file is metadata\appmetadiff.tempdir\status and includes each item being compared.

To run appmetadiff

perl path\appmetadiff [-d][-s] Productline [Metadata Files]

For example:

perl %GENDIR%\bin\appmetadiff -d -s testline CU01.msg ifmeta

Consider the following options.

Option Description
d Differences. Displays details of differences. The default is to just list items with differences.
s

Synchronize. Synchronizes metadata files with GEN. The default is to only report differences.

When synchronizing GEN and metadata source, GEN is considered the authority and updates are made to metadata source files. The exception to this is for objects missing from GEN, which are loaded from metadata source files.

Note: The synchronize option is an update mode.
Note: If updates are made to a metadata file with a version stamp, the version stamp is retained. The file will then be detected as Modified in future patching and reporting.
Metadata Files These are the metadata selections that you want to process.

By default, appmetadiff processes the complete product line. You may optionally specify the metadata you would like to process.

For example:

  • To process all workdef metadata files, specify "*.wrk" as a parameter.

  • To process all files in the hrmeta directory, specify "hrmeta" as a parameter.

  • To process all files in the globalmeta directory starting with HR, specify "globalmeta/HR*" as a parameter.

  • To process all message metadata files for "IF" programs, specify "ifmeta/*.msg".

  • To process the message file for the HREMP category, specify "HREMP.msg".

One or more parameters may be specified. appmetadiff processes all entries matching at least one of the parameters.

appmetadiff.rpt

The appmetadiff.rpt file displays details on the differences that were identified by appmetadiff. The appmetadiff.rpt file lists four types of differences:

  • Warning messages indicating that the source location for a particular source file doesn’t match GEN. These messages can be ignored.

  • Metadata in GEN with no source

    These are objects that are defined in GEN, but for which no metadata source file exists. If you have not installed an MSP dated 2005 or later in the "From PL" and you have not previously run appmetadiff -s on the product line, then you will see many items listed as 'Metadata in GEN with no source'. MSPs created before 2005 did not have a full set of metadata. appmetadiff will create these source files when run with the -s option

  • Metadata with source but not in GEN

    These are objects for which a source file does exist, but the objects are not defined in GEN. These items should be closely reviewed as they indicate that something was removed that probably should not have been. appmetadiff will load these object definitions to GEN when run with the -s option.

  • Metadata objects with differences

    These are objects that are defined in GEN and for which source files exist, and differences exist between the GEN object definition and the source file definition. Further investigation is required for these objects. Rerun appmetadiff using the -d option to display the details of these differences. The differences are likely due to modifications made to objects in GEN using dbdef, skndef, pgmdef, msgmnt, and so on. If the modifications are what you expect, no further action needs to be taken. Otherwise, you should investigate how and why customizations were made.