When WoodWing Enterprise is integrated with Elvis it is important that metadata information is shared between the two systems so that information about how and where assets are used in Enterprise can be verified and searched on.
For this purpose, various metadata fields are mapped, thereby making it possible for metadata changes in Elvis to appear in Enterprise and the other way round.
An overview of the standard fields that are mapped are described in Metadata mapping between Enterprise and Elvis 6.
However, you could also have created custom fields that need to be mapped or perhaps you want to make changes to the mapping of the standard fields.
This article explains how this is done.
A distinction is made between the standard metadata fields of Enterprise Server and custom metadata fields of Enterprise Server.
Note: We do not recommend to make changes to the mapping of standard fields but advise to create custom fields instead and to configure the mapping between that custom field and another field.
Standard metadata fields
The steps for changing the standard mapping between metadata fields of Enterprise Server with metadata fields in Elvis depend on the version of Enterprise Server that is used.

Step 1. Open the Enterprise/config/config_overrule.php file and verify if the following function exists. If it does not exist, add it. When done, leave the file open.
function Elvis_Config_GetAdditionalFieldHandlers()
{
// Field handler parameters: Elvis fieldname, multivalue field, Elvis data type, Enterprise fieldname
$cfgFieldHandlers = array();
// Paste the lines here ...
return $cfgFieldHandlers;
}
Step 2. Open the Enterprise/config/config_elvis.php file and look up the following code fragment under ADVANCED config.
....
if( !function_exists( 'Elvis_Config_GetFieldHandlers' ) ) {
function Elvis_Config_GetFieldHandlers()
{
// Field handler parameters: Elvis fieldname, multivalue field, Elvis data type, Enterprise fieldname
$cfgFieldHandlers = array();
// Read Write Handlers
$cfgFieldHandlers['Comment'] = new Elvis_FieldHandlers_ReadWrite( "versionDescription", false, "text", "Comment" );
$cfgFieldHandlers['Rating'] = new Elvis_FieldHandlers_ReadWrite( "rating", false, "number", "Rating" );
$cfgFieldHandlers['Copyright'] = new Elvis_FieldHandlers_ReadWrite( "copyright", false, "text", "Copyright" );
$cfgFieldHandlers['CopyrightURL'] = new Elvis_FieldHandlers_ReadWrite( "licensorWebsite", false, "text", "CopyrightURL" );
$cfgFieldHandlers['Author'] = new Elvis_FieldHandlers_ReadWrite( "creatorName", false, "text", "Author" );
$cfgFieldHandlers['Credit'] = new Elvis_FieldHandlers_ReadWrite( "credit", false, "text", "Credit" );
$cfgFieldHandlers['Source'] = new Elvis_FieldHandlers_ReadWrite( "source", false, "text", "Source" );
$cfgFieldHandlers['Description'] = new Elvis_FieldHandlers_ReadWrite( "description", false, "text", "Description" );
$cfgFieldHandlers['DescriptionAuthor'] = new Elvis_FieldHandlers_ReadWrite( "captionWriter", false, "text", "DescriptionAuthor" );
// Read only Handlers
$cfgFieldHandlers['AspectRatio'] = new Elvis_FieldHandlers_ReadOnly( "aspectRatio", false, "decimal", "AspectRatio" );
$cfgFieldHandlers['Channels'] = new Elvis_FieldHandlers_ReadOnly( "audioChannels", false, "text", "Channels" );
$cfgFieldHandlers['ColorSpace'] = new Elvis_FieldHandlers_ReadOnly( "colorSpace", false, "text", "ColorSpace" );
$cfgFieldHandlers['Dpi'] = new Elvis_FieldHandlers_Resolution( "resolutionX", false, "number", "Dpi" );
$cfgFieldHandlers['Encoding'] = new Elvis_FieldHandlers_ReadOnly( "videoCodec", false, "text", "Encoding" );
$cfgFieldHandlers['Width'] = new Elvis_FieldHandlers_ReadOnly( "width", false, "number", "Width" );
$cfgFieldHandlers['Height'] = new Elvis_FieldHandlers_ReadOnly( "height", false, "number", "Height" );
$cfgFieldHandlers['Orientation'] = new Elvis_FieldHandlers_ReadOnly( "orientation", false, "number", "Orientation" );
$cfgFieldHandlers['LengthChars'] = new Elvis_FieldHandlers_ReadOnly( "numberOfCharacters", false, "number", "LengthChars" );
$cfgFieldHandlers['LengthLines'] = new Elvis_FieldHandlers_ReadOnly( "numberOfLines", false, "number", "LengthLines" );
$cfgFieldHandlers['LengthParas'] = new Elvis_FieldHandlers_ReadOnly( "numberOfParagraphs", false, "number", "LengthParas" );
$cfgFieldHandlers['LengthWords'] = new Elvis_FieldHandlers_ReadOnly( "wordCount", false, "number", "LengthWords" );
...
return $cfgFieldHandlers;
}
}
...
Step 3. Copy any of the fields for which you want to change the mapping to the Elvis_Config_GetAdditionalFieldHandlers function in the Enterprise/config/config_overrule.php file of step 1.
Example: Here, the 'Author/creatorName' field is added. It maps the Elvis field creatorName with the Enterprise Server field Author. Example for Enterprise Server version 10.8 and lower:
Example for Enterprise Server version 10.9 and higher:
|
Step 4. Modify the mapping by changing the parameters.
Note: For a list of all Elvis metadata fields, see Metadata field information for Elvis 6. For a list of all Enterprise Server metadata fields, see Overview of metadata properties used in Enterprise Server 10.
Example: Here, the Elvis field 'creatorName' is mapped with the Enterprise Server custom field 'C_INVENTOR':
|
Step 5. Save the file.

Step 1. Open the Enterprise/config/plugins/Elvis/config.php file and look up the following code fragment under ADVANCED config:
...
$cfgFieldHandlers = array();
//Read Write Handlers
$cfgFieldHandlers['Comment'] = new ReadWriteFieldHandler("versionDescription", false, "text", "Comment");
$cfgFieldHandlers['Rating'] = new ReadWriteFieldHandler("rating", false, "number", "Rating");
$cfgFieldHandlers['Copyright'] = new ReadWriteFieldHandler("copyright", false, "text", "Copyright");
$cfgFieldHandlers['CopyrightURL'] = new ReadWriteFieldHandler("licensorWebsite", false, "text", "CopyrightURL");
$cfgFieldHandlers['Author'] = new ReadWriteFieldHandler("creatorName", false, "text", "Author");
$cfgFieldHandlers['Credit'] = new ReadWriteFieldHandler("credit", false, "text", "Credit");
$cfgFieldHandlers['Source'] = new ReadWriteFieldHandler("source", false, "text", "Source");
$cfgFieldHandlers['Description'] = new ReadWriteFieldHandler("description", false, "text", "Description");
$cfgFieldHandlers['DescriptionAuthor'] = new ReadWriteFieldHandler("captionWriter", false, "text", "DescriptionAuthor");
//Read only Handlers
$cfgFieldHandlers['AspectRatio'] = new ReadOnlyFieldHandler("aspectRatio", false, "decimal", "AspectRatio");
$cfgFieldHandlers['Channels'] = new ReadOnlyFieldHandler("audioChannels", false, "text", "Channels");
$cfgFieldHandlers['ColorSpace'] = new ReadOnlyFieldHandler("colorSpace", false, "text", "ColorSpace");
$cfgFieldHandlers['Dpi'] = new ResolutionFieldHandler("resolutionX", false, "number", "Dpi");
$cfgFieldHandlers['Encoding'] = new ReadOnlyFieldHandler("videoCodec", false, "text", "Encoding");
$cfgFieldHandlers['Width'] = new ReadOnlyFieldHandler("width", false, "number", "Width");
$cfgFieldHandlers['Height'] = new ReadOnlyFieldHandler("height", false, "number", "Height");
$cfgFieldHandlers['Orientation'] = new ReadOnlyFieldHandler("orientation", false, "number", "Orientation");
$cfgFieldHandlers['LengthChars'] = new ReadOnlyFieldHandler("numberOfCharacters", false, "number", "LengthChars");
$cfgFieldHandlers['LengthLines'] = new ReadOnlyFieldHandler("numberOfLines", false, "number", "LengthLines");
$cfgFieldHandlers['LengthParas'] = new ReadOnlyFieldHandler("numberOfParagraphs", false, "number", "LengthParas");
$cfgFieldHandlers['LengthWords'] = new ReadOnlyFieldHandler("wordCount", false, "number", "LengthWords");
...
Each line shows the default mapping between an Enterprise Server metadata field and an Elvis metadata field.
Step 2. Modify the mapping by changing the parameters.
Note: For a list of all Elvis metadata fields, see Metadata field information for Elvis 6. For a list of all Enterprise Server metadata fields, see Overview of metadata properties used in Enterprise Server 10.
Example: Here, the Elvis field creatorName is mapped with the Enterprise Server custom field 'C_INVENTOR':
|
Step 3. Save the file.
Custom metadata fields
The steps for changing the mapping between custom metadata fields of Enterprise Server with metadata fields in Elvis depend on the version of Enterprise Server that is used.
Tip: For more examples, see the comments in the configuration file.

Step 1. Open the Enterprise/config/config_overrule.php file and verify if the following function exists. If it does not exist, add it. When done, leave the file open.
function Elvis_Config_GetAdditionalFieldHandlers()
{
// Field handler parameters: Elvis fieldname, multivalue field, Elvis data type, Enterprise fieldname
$cfgFieldHandlers = array();
// Paste the lines here ...
return $cfgFieldHandlers;
}
Step 2. Open the Enterprise/config/config_elvis.php file and look up the section named 'ADVANCED config'. The comments contain various examples for mapping custom fields.
/**
* Mapping between Enterprise fields and Elvis fields
*
* Note: Custom Enterprise fields and multi-value Elvis fields cannot be mapped with other fields.
*
* .........
*
* In Enterprise Server 10.5.0 and higher it is recommended to add the custom field handlers to the config_overrule.php file.
* Add them in a function named Elvis_Config_GetAdditionalFieldHandlers. This can be achived by copying the example
* function as shown below to the config_overrule.php file and uncomment it. Replace the sample handlers with the desired
* custom field handlers.
*
* function Elvis_Config_GetAdditionalFieldHandlers()
* {
* // Field handler parameters: Elvis fieldname, multivalue field, Elvis data type, Enterprise fieldname
* $cfgFieldHandlers = array();
* $cfgFieldHandlers['C_BooleanTest'] = new Elvis_FieldHandlers_ReadWrite( "cf_BooleanTest", false, "boolean", "C_BooleanTest" );
* $cfgFieldHandlers['C_DateTest'] = new Elvis_FieldHandlers_ReadWrite( "cf_DateTest", false, "datetime", "C_DateTest" );
* $cfgFieldHandlers['C_DateTimeTest'] = new Elvis_FieldHandlers_ReadWrite( "cf_DateTimeTest", false, "datetime", "C_DateTimeTest" );
* $cfgFieldHandlers['C_DoubleTest'] = new Elvis_FieldHandlers_ReadWrite( "cf_DoubleTest", false, "decimal", "C_DoubleTest" );
* $cfgFieldHandlers['C_IntegerTest'] = new Elvis_FieldHandlers_ReadWrite( "cf_IntegerTest", false, "number", "C_IntegerTest" );
* $cfgFieldHandlers['C_ListTest'] = new Elvis_FieldHandlers_ReadWrite( "cf_ListTest", false, "text", "C_ListTest" );
* $cfgFieldHandlers['C_MultiLineTest'] = new Elvis_FieldHandlers_ReadWrite( "cf_MultiLineTest", false, "text", "C_MultiLineTest" );
* $cfgFieldHandlers['C_MultiListTestElvisMultiField'] = new Elvis_FieldHandlers_ReadWrite( "cf_MultiListTestElvisMultiField", true, "text", "C_MultiListTestElvisMultiField" );
* $cfgFieldHandlers['C_MultiStringTestElvisMultiField'] = new Elvis_FieldHandlers_ReadWrite( "cf_MultiStringTestElvisMultiField", true, "text", "C_MultiStringTestElvisMultiField" );
* $cfgFieldHandlers['C_StringTest'] = new Elvis_FieldHandlers_ReadWrite( "cf_StringTest", false, "text", "C_StringTest" );
* // In case the mapping is only applicable for a specific brand, the brand Id ( e.g. 1) can be added.
* $cfgFieldHandlers['C_StringTest'] = new Elvis_FieldHandlers_ReadWrite( "cf_StringTest", false, "text", "C_StringTest", 1 );
* return $cfgFieldHandlers;
* }
*
* ......
*
*/
if( !function_exists( 'Elvis_Config_GetFieldHandlers' ) ) {
function Elvis_Config_GetFieldHandlers()
{
...
}
}
Step 3. Copy any of the fields for which you want to change the mapping to the Elvis_Config_GetAdditionalFieldHandlers function in the Enterprise/config/config_overrule.php file of step 1.
Example: Here, the custom Enterprise metadata property 'C_DateTest' is mapped to the custom Elvis metadata field 'cf_DateTest':
|
Step 4. Modify the mapping by changing the parameters. (See also Mapping on Brand level below.)
Note: For a list of all Elvis metadata fields, see Metadata field information for Elvis 6. For a list of all Enterprise Server metadata fields, see Overview of metadata properties used in Enterprise Server 10.
Example: Here, the custom Enterprise metadata property 'C_MyCustomField' is mapped to the custom Elvis metadata field 'cf_myCustomField':
|
Step 5. Save the file.

Step 1. Open the Enterprise/config/plugins/Elvis/config.php file and look up the following code fragment under ADVANCED config. The comments contain various examples for mapping custom fields.
$cfgFieldHandlers = array();
//Read Write Handlers
...
// Custom Enterprise field mapped to custom Elvis field - sample mappings
/*
$cfgFieldHandlers['C_BooleanTest'] = new ReadWriteFieldHandler("cf_BooleanTest", false, "boolean", "C_BooleanTest");
$cfgFieldHandlers['C_DateTest'] = new ReadWriteFieldHandler("cf_DateTest", false, "datetime", "C_DateTest");
$cfgFieldHandlers['C_DateTimeTest'] = new ReadWriteFieldHandler("cf_DateTimeTest", false, "datetime", "C_DateTimeTest");
...
Step 2. Uncomment any of the lines or copy them outside of the comments section and adjust the parameters as needed.
Example: Here, the custom Enterprise metadata property 'C_MyCustomField' is mapped to the custom Elvis metadata field 'cf_myCustomField':
|
Step 3. Save the file.
Mapping on Brand level
Info: This feature requires Enterprise Server 10.0.6 or any higher version, including main versions such as 10.1, 10.2 and so on.
By default, the mapped field is available across all Brands in Enterprise. To make it available to specific Brands only, add the Brand ID to the mapping (see examples below).

Step 1. Open a Web browser and log in to Enterprise Server.
Step 2. In the Maintenance menu or on the Home page, click Brands. A page showing a list of all Brands appears.
Step 3. Click on the Brand for which you need the ID.
The Brand Maintenance page appears. The Brand ID is shown at the end of the URL in the address bar of the browser.
Example: Here, the Brand ID is 1:
|
Note: The mapping applies to all object types; it is not possible to map the custom field to a specific object type (meaning: not on Dossiers only, articles only, and so on).
Examples
Tip: More example mappings can be found in the configuration file.
For Enterprise Server 10.5 and higher:
Example 1 Here, the custom Enterprise metadata property 'C_MyCustomField' is mapped to the custom Elvis metadata field 'cf_myCustomField' for all Brands:
Example 2 Here, the custom Enterprise metadata property 'C_MyCustomField' is mapped to the custom Elvis metadata field 'cf_myCustomField', but only for Brand with ID = 1:
Example 3 Here, the custom Enterprise metadata property 'C_Instructions' is mapped to the default Elvis metadata field 'instructions' for all Brands:
|
For Enterprise Server 10.0 – 10.4:
Example 1 Here, the custom Enterprise metadata property 'C_MyCustomField' is mapped to the custom Elvis metadata field 'cf_myCustomField' for all Brands:
Example 2 Here, the custom Enterprise metadata property 'C_MyCustomField' is mapped to the custom Elvis metadata field 'cf_myCustomField', but only for Brand with ID = 1:
Example 3 Here, the custom Enterprise metadata property 'C_Instructions' is mapped to the default Elvis metadata field 'instructions' for all Brands:
|
Comment
Do you have corrections or additional information about this article? Leave a comment! Do you have a question about what is described in this article? Please contact Support.
0 comments
Please sign in to leave a comment.