Node Export

Description

Export nodes.

See Node Import for full documentation of export/import.

Input

<NodeExport>
<userLogonReference>userid</userLogonReference>
<password>password</password> <Export> <nodeVersionIdentifier/> <nodeVersionReference/> <exportType>package|node|contents</exportType> </Export> <fileExport>key|content|base64</fileExport> <checkPermissions>none|read|use|administer</checkPermissions> <exportVersions>latest|current|best|draft</exportVersions> <output>response|file|zip|submit</output> <nodeVersionReferenceFile/> <nodeNameFile/> <nodeDescriptionFile/>
<ImportOptions> .. </ImportOptions> </NodeExport>

The service contains multiple Export elements, each one of which specifies a node to be exported. Each node is specified by identifier or reference, with identifier taking precedence.

exportType specifies how the node should be exported:

  • package - the node and all its contents should be exported. This is the default.
  • node - only the node should be exported
  • contents - all the node contents should be exported, but not the node itself.

Contents are exported recursively, i.e. if any of the contents has contents, then they are exported also.

fileExport specifies how members of type File Storage Key (system.FILE_STORAGE_KEY) should be exported:

  • key - the value of the file storage key should be exported. This is the default.
  • content - the entire content of the file should be exported in the value. The data is preceded by "$content:". This option is not recommended for general exports, and base64 should be used instead.
  • base64 - the entire content of the file should be exported using base64 encoding. The data is preceded by "$base64:"

output specifies how the exported nodes should be output:

  • response - the nodes should be exported in the response to the service. This is the default.
  • file - the nodes should be written to a file in the file storage area, and a file node created or updated to reference the content. The file node is identified by nodeVersionReferenceFile. The user must have permission to administer or create this. nodeVersionReferenceFile may have a local reference of $auto, in which case a suitable local reference will be created. The name of the file node is given in nodeNameFile and the description in nodeDescriptionFile; both of these fields are optional.
  • zip - the nodes should be written to a file and compressed and stored in the file storage area. This is the same as the file option, but compresses the file before writing it.
  • submit - the exported nodes should be submitted as a NodeImport service, and the response from NodeImport returned as the response to the NodeExport service.

    This option can be used to copy packages, delete package contents and perform various version management functions.

    Copy package

    <NodeExport>
      <Export>
        <nodeVersionReference>from.package.reference</nodeVersionReference>
      </Export>
      <output>submit</output>
      <ImportOptions>
        <importFrom>from.package.reference</importFrom>
        <importTo>to.package.reference</importTo>
      </ImportOptions>
    </NodeExport>

    Set ImportOptions action to overwrite to overwrite existing data.

    Delete package contents

    <NodeExport>
      <Export>
        <nodeVersionReference>delete.contents.package</nodeVersionReference>
        <exportType>node</exportType>
      </Export>
      <output>submit</output>
      <ImportOptions>
        <importTo>delete.contents.package</importTo>
        <action>synchronize</action>
      </ImportOptions>
    </NodeExport>

    The combination of exporting only the node and an action of synchronize deletes the package contents.

    Version management

    <NodeExport>
      <Export>
        <nodeVersionReference>relink.package</nodeVersionReference>
      </Export>
      <output>submit</output>
      <ImportOptions>
        <action>overwrite</action>
        <importVersions>latest</importVersions>
      </ImportOptions>
    </NodeExport>

    Overwriting the exported data back to the same package but linking to the latest versions updates all the versions in the package.

checkPermissions specifies what authority checking the export should perform to make sure that the exported data is complete and can be used:

  • none - the export should read as much data as it can, and export that. This is the default.
  • read - the export should check that the user can read all of the exported nodes, i.e. all the members of all the nodes, and all the contents of all the packages. Use this option to ensure that all the data is exported. Use this option if exporting the data to a different instance of Advisor.
  • use - as well as checking read permissions, check that the user can use all of the node types and link to all of the targets, but do not check use type and link permissions within the set of exported nodes. Use this option to check that the user could import all the data into a new location in the same Advisor instance.
  • administer - check that the user can administer all of the nodes in the export and can use all of the node types exernal to the set of exported nodes. Use this option to check that the user could import all the data back into the same location, for example as a restore.

If checkPermissions is "none", then the user must still be authorised to read the high-level nodes.

exportVersions indicates which version of contents should be exported. Options are:

  • preserve - for nodes in the export list, preserve the version numbers. For package content, the latest version that the user can access, draft of current. This is the default.
  • latest - the latest version that the user can access, draft or current.
  • current - current versions only.
  • best - current if it is available, or else draft.
  • draft - only draft versions. This only makes sense in unusual circumstances.

exportVersions values of latest, current, best or draft apply to the nodes listed in the Export elements and to package contents. (This means that if you specifically want the current, best or draft versions of package contents, you get the current, best or draft versions of their containing package also.)

When using the "draft" option, the service will simply not return nodes if the user does not have authority to read the drafts.

ImportOptions may contain elements. These will be copied to the output, so that they can be used as options for the import process.

Permissions

Permissions are not exported, but permission manifests of course can be.

Output

<NodeImport>
<errorNumber>0</errorNumber> <comment/> <timestamp/> <Node> <type/> <reference/> <Member> <type/> <value/> <scale/> <target/> </Member> </Node> <nodeVersionReferenceFile/>
</NodeImport>

Note that the top level element is NodeImport, not NodeExport.

comment contains the comment passed in the import.

timestamp contains the point in time up to which the export included data. This can be used as the exportFromTimestamp in subsequent calls to the service to create incremental loads.

If the output option was set to response, the nodes are returned as multiple Node elements, each of which contains:

  • type - the node version reference of the exported node's type
  • reference - the node version reference of the exported node
  • A repeating Member element, each one of which may contain:
    • type - the node version reference of the exported member's member type
    • value - the value of the exported member
    • scale - the scale of the exported member
    • target - the node version reference of the target of the exported member

If the output section was set to file or zip, the NodeList will not be present, but the nodeVersionReferenceFile will return the reference of the file node under which the file or zip file has been stored. The (uncompressed) file format is the same as the output message from the service where output is response, but without the error number. In a zipped file, the data is in entry node.xml.

Errors

101 - Not authorised. This is returned if the user can not read one or more of the listed nodes for export.

109 - Impact error. The user has asked to check permission, and does not have the requisite permissions.

Class

com.metrici.xerula.NodeExportService