Documentation Center

Admin.XMLWriteObjPluginConfig.xml

The Admin.XMLWriteObjPluginConfig.xml file contains the configuration used when writing plugins.

Changelog

File versionContent Manager versionNotes
2.011.0.0This is the first version of Admin.XMLWriteObjPluginConfig.xml; it replaces and supersedes Admin.XMLPluginConfig.xml.

Overview

This configuration file is accessible from the Content Manager web client. Select Settings > XML Write Plugin Settings.

XML elements

NameDescription
infoSharePluginConfigRoot node of the plugin XML configuration
namespacesContains namespace elements
namespaceProvides the matched namespace for the namespace prefix used in the XPath expression in the plugin parameters
namespace @prefixThe prefix that is used for the provided namespace
writeDescribes a sequence of plugins that will be executed within the current action. Write element can define the condition that will be used to make sure that no more than 1 write element can be found by the plugin engine for the current action in the current conditions. If there is more than 1 write element applicable for the current action, the main operation fails.
write @ishconditionThe condition which determines when the current write sequence should be activated
bodyThe element that contains a sequence of the body plugins (plugins that are executed as a part of a main operation)
sequenceThe element that contains a sequence of body plugins
pluginDescribes a single plugin
plugin @nameThe name of the plugin
plugin @handlerThe reference to the plugin implementation
plugin @ishconditionThe condition which determines when the current plugin should be activated
descriptionPlugin description
workingsetDescribes all the metadata fields that the plugin can read or write in. These fields are guaranteed to be loaded by the plugin engine.
ishfieldsContains ishfields
ishfieldDescribes an ishfield
initializeDescribes everything that should be passed to the plugin instance upon initialization
parametersContains parameter elements
parameter
The parameter that is passed to the plugin
<infoSharePluginConfig version="2.0">
  <!--We are supporting plugins with namespaces.-->
  <namespaces>
    <namespace prefix="ditaarch">http://dita.oasis-open.org/architecture/2005/</namespace>
  </namespaces>
  <!--Every 'write' element defines a set of plugins which will run for create, update or checkin of an object.-->
  <write ishcondition="ISHType in ('ISHMasterDoc', 'ISHModule', 'ISHLibrary')">
    <!--'Body' plugins run as a part of a main action (in the same transaction).-->
    <body>
      <!--Sequence of plugins, meaning they run in sequence.-->
      <sequence>
        <!-- ======================================================= -->
        <plugin name="CHECKREVIEWERFILLEDIN" handler="OnFieldChangeCompare" 
        ishcondition="CurrentAction in ('Create', 'Update', 'Checkin', 'SetMetadata', 'CheckOut', 'UndoCheckOut') and (ISHLevel='lng')">
          <description>Checks that the 'Reviewer' is filled in when the 'FSTATUS' field is changed to 'To be Reviewed'</description>
          <workingset>
            <ishfields>
              <ishfield name="FSTATUS" level="lng" />
              <ishfield name="FREVIEWER" level="lng" />
            </ishfields>
          </workingset>
          <initialize>
            <parameters>
              <parameter name="ConditionMetadataField">FSTATUS</parameter>
              <parameter name="ConditionMetadataFieldLevel">lng</parameter>
              <parameter name="ConditionMetadataFieldValueType">element</parameter>
              <parameter name="ConditionMetadataFieldToValue">VSTATUSTOBEREVIEWED</parameter>
              <parameter name="CompareMetadataField">FREVIEWER</parameter>
              <parameter name="CompareMetadataFieldLevel">lng</parameter>
              <parameter name="CompareMetadataFieldOperator">notempty</parameter>
            </parameters>
          </initialize>
        </plugin>
        ...
        <plugin name="SETTITLE" handler="BlobSetXmlNode" ishcondition="EDT='EDTXML' and VERSION='1' and CurrentAction='Create'">
          <description>Set title for new objects using the metadata title</description>
          <workingset>
            <ishfields>
              <ishfield name="FTITLE" level="logical" />
            </ishfields>
          </workingset>
          <initialize>
            <parameters>
              <parameter name="OnNodeXPath">(/*[contains(@class,' map/map ')][title]) | (/*[contains(@class,' topic/topic ')][title])</parameter>
              <parameter name="NodeType">node</parameter>
              <parameter name="NodeName">title</parameter>
              <parameter name="OverwriteExisting">Yes</parameter>
              <parameter name="Value">
                <value type="MetadataField">
                  <parameter name="MetadataField">FTITLE</parameter>
                  <parameter name="MetadataFieldLevel">logical</parameter>
                </value>
              </parameter>
            </parameters>
          </initialize>
        </plugin>
        ...
      </sequence>
    </body>
  </write>
</infoSharePluginConfig>

Remarks

  • The metadata fields specified in the workingset section of each plugin should NOT be specified with an ishvaluetype. The specified fields are added to the context as an internal field object from which the plugin can request all value types.

Supported conditions

The following condition names can be used for determining if the plugin must be executed (for topics, maps, illustrations, libraries and templates):
Condition nameDescription
ISHTypeThe type of the object: ISHMasterDoc, ISHModule, ISHIllustration, ISHTemplate and ISHLibrary
ISHLevelThis controls when to execute the plugin depending on the level of metadata that are updated.

The allowed values are: "logical", "version" and "lng".

When updating the language level metadata, the system operates as if the metadata from all levels are updated.

This means that in this update context, the ISHLevel condition will be true for all allowed values.

FMAPIDThe unique identifier of the logical level (= LogicalId)
VERSIONThe version number of the object
DOC-LANGUAGE

The language(s) of the object

FSOURCELANGUAGE

The source language of the object

FRESOLUTION

The resolution of the illustration

EDTThe element name of the EDT (e.g. "EDTXML")
ISHUserGroupThe element names of the user groups which has write access to the object (e.g. "VUSERGROUPSYSTEMMANAGEMENT")
CurrentActionThe API method which is currently executed like "Create", "Update", "Checkin", "SetMetadata", "CheckOut", "UndoCheckOut" and "CreateTranslation".
The following condition names can be used for determining if the plugin must be executed for publications:
Condition nameDescription
ISHTypeThe type of the object: ISHPublication
ISHLevelThis controls when to execute the plugin depending on the level of metadata that are updated.

The allowed values are: "logical", "version" and "lng".

When updating the language level metadata, the system operates as if the metadata from all levels are updated.

This means that in this update context, the ISHLevel condition will be true for all allowed values.

FMAPIDThe unique identifier of the logical level (= LogicalId)
VERSIONThe version number of the publication
DOC-LANGUAGE

The language(s) of the publication output

FISHPUBLNGCOMBINATIONThe language combination of the publication output (e.g. "en+fr+de")
FISHOUTPUTFORMATREF

The output format of the publication output

EDTThe element name of the EDT matching the output format (e.g. "EDTZIP")
ISHUserGroupThe user groups which has write access to the publication (e.g. "VUSERGROUPSYSTEMMANAGEMENT")
CurrentActionThe API method which is currently executed like "Create" and "SetMetadata"