Change Node Type

Description

Change the node type for a node.

Input

<ChangeNodeType>
<userLogonReference>userid</userLogonReference>
<password>password</password> <action>impact|force</action> <nodeVersionIdentifier/> <nodeVersionReference/> <nodeVersionIdentifierNewType/> <nodeVersionReferenceNewType/>
</ChangeNodeType>

Set action to impact or force:

  • impact - show the impact of making the type change
  • force - make the type change, whether or not there are any impacts

The node the type of which is to be changed is identified using nodeVersionIdentifier or nodeVersionReference; if both are given identifier takes precedence.

The new type to use is identified using nodeVersionIdentifierNewType or nodeVersionReferenceNewType; if both are given identifier takes precedence.

The following validation takes place:

  • node and type must exist
  • node must be in development
  • user must have admin authority over node
  • user must have use node authority over new node type

Output

If called with an action of "force" and there are no errors:

<ChangeNodeType>
<errorNumber>0</errorNumber>
</ChangeNodeType>

If called with an action of "impact" and there are no errors or impacts:

<ChangeNodeType>
<errorNumber>0</errorNumber>
<nodeVersionIdentifierNewType/> <nodeVersionReferenceNewType/> <nodeNameNewType/> </ChangeNodeType>

If called with an action of impact and there are impacts:

<ChangeNodeType>
  <errorNumber>108</errorNumber>
  <errorDescription>Type change will have impacts.</errorDescription>
  <nodeVersionIdentifierNewType/>
  <nodeVersionReferenceNewType/>
  <nodeNameNewType/>
  <ImpactList>
    <Impact>
      <impactType>version|remove</impact>
      <nodeVersionIdentifierMemberType/>
      <nodeVersionReferenceMemberType/>
      <nodeNameMemberType/>
    </Impact>
  </ImpactList>
</ChangeNodeType>

Identifying fields for the new type are returned for the new type to aid the caller.

Each <Impact> describes one member type, data for which will be impacted. The member type is identified by identifier, reference and name.

An impact type of "version" indicates that the member type will be changed to a different version.

An impact type of "remove" indicates that data for the member type will be removed.

(Implementation note: Action of "change" is reserved for possible future use when entire member types are changed.)

Errors

101 - Not authorised

105 - Node version reference type does not exist or you are not authorised to use it.

106 - Not in development

108 - Impact warning

Class

com.metrici.xerula.ChangeNodeTypeService