Documentation Center

Admin.XMLWriteObjPluginConfig.xml

The Admin.XMLWriteObjPluginConfig.xml file contains the configuration used when writing plugins. The conditions that can be used to determine if the plugin must be executed are documented in a separate topic.

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

To access this configuration file in Organize Space, select the Settings tab, then the XML Settings subtab, and then the Write Plug-ins subsubtab.

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 @handler The 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.
parameterThe 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.