CONTACT:

This is version 5 of ExtractCustomFieldValue which is a
contribution to the RT System <http://www.bestpractical.com/rt/>, as
modified by Best Practical for customer use.

All bug reports and support requests should be referred to Best
Practical <sales@bestpractical.com>.

ACKNOWLEDGEMENT:

ExtractCustomFieldValue was originally written by Dirk Pape
<pape@inf.fu-berlin.de>.

PURPOSE:

ExtractCustomFieldValue consists of a new ScripAction
"ExtractCustomFieldValue", which can be used to scan incoming requests
to set values of custom fields.

INSTALL:

    perl Makefile.PL
    make install
    make initdb

USE:

To use the ScripAction you have to create a Template and a Scrip in
RT. The Template consists of the lines which control the scanner. All
non comment lines are of the following format:

<cf-name>|<Headername>|<MatchString>|<Postcmd>|<Options>

where

<cf-name>     is the name of a custom field (must be created in RT)
              If this field is blank, the match will be run and Postcmd
              will be executed, but no custom field will be updated.
              Use this if you need to execute other RT code based on 
              your match.
<Headername>  is either a Name of an email header or "body" to scan the
              body of the email
<MatchString> is a reg. expr. to find a match in the header or body
              if the MatchString matches a comma separated list
	      and the cf is a multi value cf then each item in the
	      list is added as a separate value
<Postcmd>     is a perl command to be evaluated on $_, where $_ is either
              $1 or $& from the match performed with <MatchString>
<Options>     is a string of letters which may control some aspects.
	      In this time the only letter with a meaning is "q":
	      q - (quiet) do not record a transaction when adding a CFV

you can change the Separator string (initially "\|") during the template with a line

Separator=<anyregexp>

e.g. Separator=\|--\|

this may be necessary, if you want to use a "|" in one of the patterns in
the controlling lines.

an example template with some further explanations is installed on
"make install" or "make insert-template".

Your new Scrip should use a ScripAction of 'Extract Custom Field Values' with
a Template pointing to your code (see the CustomFieldScannerExample template
for examples and further documentation);
