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. The 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 are more than 1 write element applicable for the current action, the main operation fails.
write @ishconditionThe condition that determines when the current write sequence should be activated.
bodyThe element that contains a sequence of body plugins.
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 that determines when the current plugin should be activated.
descriptionThe plugin description.
workingsetDescribes all the metadata fields 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 internal field objects 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 or 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.

ISHOutputFormat

The output format of the publication output.

ISHOutputFormat.*

All fields from the output format of the publication output. The condition name is the element name of the field prefixed by ISHOutputFormat.

For example:
  • ISHOutputFormat.FISHOUTPUTEDT: The label (e.g. ZIP) and the element name (e.g. EDTZIP) of the EDT linked with the output format.
  • ISHOutputFormat.FDITAOTTRANSTYPE: The value for the DITA-OT transformation type (e.g. ishditadelivery).
  • ...
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