Import / Export File Syntax

Import files define the person, organization, and security data to import into the repository. The import file must use the correct syntax.

The VPLMPosImport tool processes the file in order. Any existing data required to define an item must be defined earlier in the file. For example, when creating a person, you must add the person to a company. To do so, the company command should be specified before the person command.

Organizations, roles, collaborative spaces, credentials, and persons are mapped to the same administration type and must be unique. You cannot use the same identifier for an organization and a role, or any other of these types.

See Also
Import File Use Cases

An import command consists of the following items:

<OPERATION><KEYWORD><VALUES>

The import tool ignores empty lines and comments. Comments begin with a double slash //.

This table lists the supported values for <OPERATION>:

Operation Description
* Creates or updates the item indicated on this line.
+ Adds the keyword / attributes on this line to the preceding * item.
- Removes the keyword / attributes on this line to the preceding * item.
! Deletes the item indicated on this line.

The first keywords in the file, referred to as global commands, set up the command parsing used in the rest of the file. These commands must appear at the start of the file:

Command Description Default
*VERSION <number> Sets the import file version number used to determine the release-specific syntax used to processing the file. If the file contains a command not supported by the specified version, an error is triggered. This keyword is MANDATORY. You can specify either the internal or external version number.

Supported version numbers:

Internal Version Number External Version Number
204 V6R2008-1.0
205 V6R2008-2.0, V6R2009
206 V6R2009-1.0, V6R2009x
207 V6R2010
208 V6R2010x
209 V6R2011
210 V6R2011x
211 V6R2012
212 V6R2012x
213 V6R2013
214 V6R2013x
215 V6R2014
216 3DEXPERIENCER2014x, R2014x
417 3DEXPERIENCER2015, R2015x, R2015xFD01
418 3DEXPERIENCER2016x, R2016x
419 3DEXPERIENCER2017x, R2017x
420 3DEXPERIENCER2018x, R2018x
421 3DEXPERIENCER2019x, R2019x
422 3DEXPERIENCER2020x, R2020x
423 3DEXPERIENCER2021x, R2021x

*SEPARATOR <character> Defines the character used to separate attributes.

If the import /export file includes the +RESOURCE command, the separator must be ;.

;
*NULL <character> Defines the character used to specify an attribute with no value. $

This sample shows the beginning lines of an input file:

*VERSION V6R2015x
*NULL $
*SEPARATOR ;

When using a separator, do not add a space after it to make sure the space is not considered part of the value. For example, instead of using:

*COMPANY <ID>; [<parent id>];

you should use remove the space after the separator:

*COMPANY <ID>;[<parent id>];

The table below lists the supported commands for defining person, organization, and security data. In the command syntax:

  • Replace items within < > with actual values. For example, -MEMBER <person id> would be entered as -MEMBER JOHNSMITH, where JOHNSMITH has already been defined.
  • Replace items within [ ] with actual values, or the null character (default is $). The brackets [ ] indicate optional items.

You do not need to specify all null characters in import command lines if the command does not include subsequent mandatory attributes. For example, you can define the following command:

*COMPANY Company Name;MyParentCompany

instead of:

*COMPANY Company Name;MyParentCompany;$;$;$;$;$;$;$

However, the following:

*PERSON MyPerson

is illegal, because attribute "company" of command *PERSON is mandatory.

Command Description
*COMPANY <id>;[<parent id>];[<description>] Creates or updates a company, where:

<id> is the company identifier.

<parent id> is an optional parent company identifier. Sets this company as a subsidiary of the parent company. You can define a parent company only when initially creating the company. Once set, the parent cannot be updated.

<description> is optional descriptive text.

+NAME <name> Deprecated. To rename a company, use +ATTRIBUTE Title;NewCompanyName.
*BUSINESSUNIT <id>;<parent id>;[<description>] Creates or updates a business unit, where:

<id> is the business unit identifier.

<parent id> is the parent identifier and can be a company or another business unit.

<description> is optional descriptive text.

You can use this command to:

  • Move a business unit from one organization to another
  • Insert a business unit into an existing hierarchy.
See Business Unit Use Cases.

+NAME <name> Deprecated. To rename a business unit, use +ATTRIBUTE Title;NewBusinessUnitName.
*DEPARTMENT <id>;<parent id>;[<description>] Creates or updates a department, where:

<id> is the department identifier.

<parent id> is the parent identifier and can be a company or business unit; use this field also to:

<description> is optional descriptive text.

You can use this command to:

  • Move a department from one organization to another
  • Insert a department into an existing hierarchy

+NAME <name> Deprecated. To rename a department, use +ATTRIBUTE Title;NewDepartmentName.
+MEMBER <person id> Declares a person as a member of the previous *COMPANY, *BUSINESSUNIT or *DEPARTMENT, where <person id> is the employee identifier.

A newly-created person is automatically made a member of the employing company. The same person can be added to any number of organizations.

-MEMBER <person id> Undeclares a person as a member of the previous *COMPANY, *BUSINESSUNIT or *DEPARTMENT, where <person id> is the employee identifier.
*PRJ <id>;[<parent id>];[<description>] Creates or updates a collaborative space, where:

<id> is the collaborative space title. If no title is defined, the collaborative space name is used.

<parent id>: optional parent collaborative space identifier; security data is inherited from parent to child collaborative spaces;

<description>: optional collaborative space description.

Collaborative spaces are part of credentials. Users in a collaborative space inherit access from that collaborative space.

You can use this command to:

  • Move a collaborative space from one collaborative space to another.
  • Insert a new collaborative space into an existing hierarchy.
+RESOURCE <project or discipline>;<resourcesetID>
Important: The export file includes resource information (if -exportdatasetup was included as a command line parameter). This information is not human-readable and cannot be manually entered into the file for import.

Creates a link between the collaborative space or discipline and the resource set (it does not create the resource set).

+NAME <name> Renames a collaborative space where <name> is the new name.
*CORPORATE This keyword allows the export/import of the resource sets linked to the Corporate Project Resource.
+RESOURCE <project or discipline>;<resourcesetID> Creates a link between the collaborative space or discipline and the resource set (it does not create the resource set) for the Corporate Project Resource.
*ROLE <id>;[<parent id>];[<description>] Creates or updates a role, where:

<id> is the role identifier.

<parent id> is an optional parent role identifier. Security data is inherited from parent to child roles.

<description> is optional descriptive text.

Roles are part of credentials. Users with a role inherit access defined for the role.

+ORG <name> Adds an organization to a role, where <name> is the name of the organization.

A warning is issued if the role is already applicable to the organization.

-ORG <name> Removes an applicable organization from a role, where <name> is the name of the organization.

A warning is issued if the role is not applicable to the organization.

-ALLORG Removes all organizations from a role. A warning is issued if the role has no applicable organizations.
*PERSON <id>;<company id>;<distinguished name>;<casual or full license> Creates or updates a person, where:

<id> is the person identifier.

<company id>is the identifier of company that employs the person.

<distinguished name is the distinguished name (DN) identifier used in LDAP for that person object.

<casual or full license> is either 40 for casual or 0 for full. Any other value results in an error.

+PASSWORD [<value>] Sets the password of the previous person, where <value> is an optional password string. If no value is defined, the person can login without specifying a password.
+MEMBER <organization id> Declares the previous person as the member of an organization, where:

<organization id>is the organization identifier.

A newly-created person is automatically made a member of the employing company. The same person can be added to any number of organizations.

-MEMBER <organization id> Undeclares the previous person as a member of an organization, where <organization id> is the organization identifier. The membership of a person can be removed for any organization.
+CTX <context id> [;<separator>;<license list>]
Note: Instead of using the VPLMPosImport file, you should use the Members Control Center to assign and unassign licenses.

Assigns a set of credentials to the previous person, where:

<context id>is the credentials identifier

<separator> is the separator used when defining more than one product.

<license list> is the optional list license assignments.

The products are appended to existing product assignments and do not overwrite them. The administrator must ensure they are consistent.

When defining a context:

  • The products must already exist.
  • Licenses apply regardless of the credentials used when connecting to the server. The system does not track the credentials based on assigned licences. All licenses assigned to a user through the user's credentials are requested when that user connects to the server.

    Licenses can only be assigned when assigning the user the first set of credentials. If the user already has at least oneset of credentials, the list of licenses is ignored.

  • License assignments cannot be removed using VPLMPosImport. You can only assign new licenses to a user.
A person can be assigned several contexts depending on their role. When connecting to a server the user must select one set of credentials from the list. These credentials are used to initialize ownership attributes when creating content. Users automatically inherit all security accesses associated with all assigned credentials. Optionally, a list of products could be specified that will be assigned to the person.
-CTX <context id> Unassigns a set of credentials from the previous person, where <context id> is the context identifier.

When unassigning a context from a person, all security accesses associated to that context are no longer available toy the user.

+PREFERREDCONTEXT <context id>
Adds a preferred set of credentials for the previous person, where <context id> identifies the credentials. See Credentials Use Cases.
-ALL Unassigns all contexts from the previous person. The person can no longer select when any of the credentials, and all access granted by the credentials are removed from the person.
+ACTIVE DEPRECATED: this command does not activate any person.

To activate or inactivate a person, see Managing Members.

+INACTIVE DEPRECATED: this command does not inactivate any person.

To activate or inactivate a person, see Managing Members.

+ADMIN Sets the previous person as a administrator.

Administrators can perform P&O and security authoring that must be explicitly defined for the person. Administration access are not associated with credentials. If a user is not set as administrator, that user cannot perform administration tasks, even if the user is assigned to context VPLMAdmin.Company Name.Default.

-ADMIN Unsets the previous person as an administrator.
!PERSON <id> Deletes a person, where <id> is the person identifier.

This command permanently removes the specified Person object, including all references to other P&O or Security objects (for example, context assignments, policies, and so on).

If the person owns application data, the command fails. The data owner, administrator, or any other user granted sufficient privileges, must transfer the data to another user prior to deleting the person.

*CTX <role id>;<organization id>;<project id>;[<description>] Creates or updates a set of credentials, where:

<role id> is the role identifier.

<organization id> is the business unit or department identifier. A company cannot be used to define a set of credentials.

<project id> is the collaborative space identifier.

<description> is optional descriptive text.

+PERSON <person id> Assigns the previous context to a person, where <person id> is the person identifier. A context can be assigned to any number of persons.
-PERSON <person id> Unassigns the previous context from a person, where <person id> is the person identifier.
-ALL Unassigns the previous set of credentials from all persons. These credentials cannot be selected by any user.
+ATTRIBUTE <name>;<value> Sets an attribute value, where:

<name> is the attribute name.

<value> is the attribute value.

Multi-valuated attributes are not supported. You can only add attributes to persons and organizations.

-ATTRIBUTE <name> Unsets an attribute value, where <name>is the attribute name.

Multi-valuated attributes are not supported. You can only add attributes to persons and organizations.

*PRJ <id>;[<parent id>];[<description>];[<option>];[<family>] Creates or updates a collaborative space, where:

<id> is the collaborative space title. If no title is defined, the collaborative space name is used.

<parent id> is an optional parent collaborative space identifier. When importing date for use in the baseline behavior, the <parent id> must be NULL.

<description> is optional descriptive text.

<option> is optional for a Customer-Specific Environment, but mandatory for baseline behavior where value must be Team.

<family> is optional for a Customer-Specific Environment, but mandatory for the baseline behavior where the value must be one of the following:

  • DesignTeam for design collaborative space
  • StandardTeam for standard collaborative space

You can use this command to:

  • Move a collaborative space from one collaborative space to another
  • Insert a new collaborative space into an existing hierarchy (not supported for the baseline behavior).
+VISIBILITY <scope> Adds a visibility scope to the previous collaborative space, where <scope> is optional for a Customer-Specific Environment, but mandatory for the baseline behavior where the value must be one of the following:
  • Public
  • Protected
  • Private
*Group <Group URI> SEPARATOR <Group Title> SEPARATOR <Group Description> Creates or updates a user group where:

<Group URI> is optional when creating a user group, and is mandatory when updating a user group. This attribute plus the <Group Title> defines a unique identifier for the user group. If specified, the <Group URI> must adhere to the UUID V4 format. This format is uuid:xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, where x is a hexadecimal digit and y is 8, 9, a, or b.

If the <Group URI> value is not valid, the group creation fails with an exception.

<Group Title> is mandatory and is the name of the user group that shows in the user interface.

<Group Description is an optional brief description of the purpose of the group.

!Group <GROUP URI> Deletes the specified user group where <Group URI> identifies the user group you want to delete.
+MEMBER <Person ID> Adds the specified person as a member of the preceding user group.

Person ID is the username of the person being added to the user group. If the person does not exist, an exception is thrown.

-MEMBER <Person ID> Removes the specified person from the preceding user group.

Person ID is the username of the person being added to the user group. If the person does not exist, an exception is thrown.

+CONTEXT <Credentials Name> Assigns the specified set of credentials to the preceding user group.

<Credentials Name> is the name of the set of credentials (also referred to as security context) that uses this format:

<AccessRole>.<Organization>.<CollaborativeSpace>

-CONTEXT <Credentials Name> Removes the specified set of credentials from the preceding user group.