NAME

runMG -  exe for launching TMQ's MARC Global in scriptable/batch mode

RUNNING IN WINDOWS

The file runMG.exe must be installed in the MARC Report program folder.
From there, you may create a shortcut to the exe and relocate the shortcut
wherever you desire. Or, create a shortcut for a command prompt, and then
configure the shortcut to start in the MARC Report program folder. But when
running the program from a script, remember to specify the full path to the


SYNOPSIS

runmg

runmg "(marcInput|marcOutput|workingFolder|reviewFile)"
runmg "(marcInput|marcOutput|workingFolder|reviewFile|marcOutput2)"
runmg "(marcInput|marcOutput|workingFolder|reviewFile|reportFile)"

DESCRIPTION

A scriptable interface to TMQ's MARC Global utility (available as an
file; the instructions in the 'reviewFile' are applied to each record;
records are output to the 'marcOutput' file; any logs generated as a
result of the processing are output to the 'workingFolder'.

OPTIONS

When 'runMg' is called without any parameters, a small windows program
is launched which makes it possible to enter the parameters using a form
and test them.

In all other cases, runMG must be launched with parameters matching one
of the entries in the SYNOPSIS above. The parameter statement must begin
with

"(

... and end with

)"

Each parameter, except the last, must be followed by the "|" separator.
We strongly recommend using fully-qualified pathnames for the parameters.

REVIEWFILE

runMG gets its processing instructions from the 'reviewFile'. This file
is an .xml file that must be created using the 'Export review' option in
MARC Global.

In general, use the following procedure to create a reviewFile (for
details see the appropriate help files in MARC Global): start MARC
Global and setup the parameters for the job(s) that you want to run
in batch mode. Test the job, etc, then save it to your saved reviews.
Next, goto the 'Reviews' form, create an Autoreview, and add the
job(s) you want to run in batch mode to it. Exit the 'Reviews' form,
select 'Options', goto the 'Import/Export' tab, and use the
'Export review to .xml' option to export the Autoreview created above.

Once the review has been exported into .xml, it becomes re-useable outside
of the MARC Global program.

LOG

runMG generates a summary each time it runs which contains the same information
as MARC Global's 'Result screen', followed by some runMG-specific details.
The filename for this log is 'runMg-' followed by the marcInput filename. This
logfile will be written to the workingFolder. Thus, for the first example
below, this log would be named 'd:\marc\runMG-in1.txt'.

The name and location of this log can be changed in the fifth command-line
parameter (see the last example in the Synopsis), by giving a fully-qualified
filename that ends with the '.txt' extension. Note that if the fifth param
does not end in '.txt' it will be assumed to be the name of a splitfile.

The runMG-specific details in this log include the time taken to run the job
(hh:mm:ss) and the actual filenames used during the job. 

NOTES

When an an Autoreview is exported to xml, the program writes default
'Output options' to the .xml file.  runMG will use these defaults when it
runs the Autoreview, and also automatically avoid filename collisions;
however, when the autoreview is complete, runMG will rename the MARC
output files to the filenames specified in the command-line parameters
'marcOutput' and 'marcOutput2' as applicable.

Even if there is only one review that you want to use in runMG, that review
must still be saved as an Autoreview in MARC Global before it is exported
to xml.

When creating an Autoreview it will be helpful to remember that the name
you assign to the Autoreview in MARC Global becomes the name assigned to
the .xml file created by the Export option; which in turn becomes the
filename that must be used as the 4th parameter in the runMG options. 

MARC REVIEW

It is also possible to add a MARC Review job to runMG.

This may be useful in batch processing, if you need to conditionally split
a file into two separate files and apply different processing to each file.

Once you have created and saved the necessary MARC Review job (assuming
it splits the MARC source into two output files), follow these steps to
get the review into runMG: start MARC Global (not MARC Review) and go to the
'Reviews' form. Select the 'Include MR' option at the bottom of the screen
(if this option does not appear there is an installation or registration
problem). Create a new Autoreview. Add your MARC Review to the Autoreview,
press Save, and exit the form. Proceed to export the Autoreview as above.

When using this reviewFile in a runMG task, you must supply a second output file
parameter in the command-line:

runmg "(marcInput|marcOutput|workingFolder|reviewFile|marcOutput2)"
Note: when an Autoreview contains a MARC Review job, that must be the only
review present in the Autoreview (this makes sense if you think about it).

EXAMPLES

The simplest case:

runmg "(d:\marc\in1.mrc|d:\marc\out1.mrc|d:\marc\|c:\reviews\add 001.xml)"

This job applies the Autoreview exported to 'add 001.xml' (which perhaps uses MARC Global's “Add sequential number” option) to every record in 'in1.mrc' and writes the results to 'out1.mrc'.

A more interesting example:

runmg "(d:\in.mrc|d:\out1.mrc|d:\work\|c:\xml\check264.xml|d:\out2.mrc)"
runmg "(d:\out2.mrc|d:\out2-fixed.mrc|d:\work\|c:\xml\fix260.xml|d:\hopeless.mrc)"
mconcat --sourcefile="d:\out2-fixed.mrc" --targetfile="d:\out1.mrc"
runmg "(d:\out1.mrc|d:\out1-fixed.mrc|d:\work\|c:\xml\fixes.xml)"

The first step is a MARC Review task that splits the input file into two pieces based on whether the 264 field is present or not. The second step applies a fix-up autoreview to the records from the first job that did not match (and were thus split to a separate file); this step in turn splits records that it cannot fix to a file called 'hopeless.mrc'. In step 3, the fixed file from step 2 is added back to the main file (using our marc concatenation utility); finally, in step 4, a large autoreview containing various tasks is applied to the re-joined records.

A .bat script for the above might look like this:

c:
cd "\program files (x86)\tmq\marc report"
@rem split source file on presence of 264
runmg "(d:\in.mrc|d:\out1.mrc|d:\work\|c:\xml\check264.xml|d:\out2.mrc)"
@rem check 260 tags in out2 and try to update to rda rules if possible
@rem write records that fail to a separate file for later manual review
runmg "(d:\out2.mrc|d:\out2-fix.mrc|d:\work\|c:\xml\fix260.xml|d:\hopeless.mrc)"
@rem add the records with updated 260s back to the main file
mconcat --sourcefile="d:\out2-fix.mrc" --targetfile="d:\out1.mrc"
@rem run the standard suite of fixes
runmg "(d:\out1.mrc|d:\out1-fix.mrc|d:\work\|c:\xml\fixes.xml)"
d:

TIPS, LIMITATIONS, CAVEATS, ETC.

To avoid repeating long paths in commands, use the windows 'set' command. For example:

set myPath=d:\library\data\qualitycontrol\marc

and then reference the above path in the runMG parameter string:

  runmg "(%myPath%\in.mrc|%myPath%\in-ok.mrc|%myPath%\|c:\work\check XXX.xml|%myPath%\in-not-ok.mrc)"

For more details on this syntax, search the web for “windows set command”.

Because of the default behavior used when assigning MARC Global output options, preserving the 'mglog' generated by MARC Global during multiple autoreviews becomes problematic. Because of the internal processing performed by the program to avoid using saved filenames (assuming that they will nearly always become invalid over time), the only feasible workaround for this problem is to rename the MARC Global log after each autoreview using the batch script; eg.

c:
cd "\program files (x86)\tmq\marc report"
runmg "(d:\in.mrc|d:\in-ok.mrc|d:\work\|c:\work\check XXX.xml|d:\in-not-ok.mrc)"
rename d:\work\mglog.txt d:\work\mglog-job1.txt
runmg "(d:\in-ok.mrc|d:\in-ok-out.mrc|d:\work\|c:\work\fixes.xml)"
rename d:\work\mglog.txt d:\work\mglog-job2.txt

...

Even if there is only one review that you want to use in runMG, that review must still be saved into an Autoreview in MARC Global before it is exported to xml.

When an Autoreview contains a MARC Review job, that job must be the only review present in the Autoreview.

The program expects the workingFolder to be specified with a trailing backslash. For example, given a job where the marcInput filename is 'rdaFix', then if

workingFolder=D:\work\

the report will be named

D:\work\runMG-rdaFix.txt

But if

workingFolder=D:\work

then the report will be named

D:\workrunMG-rdaFix.txt

which is probably not what one would want.