Formatting a CSV for UoP Import

From PHENOM Portal Knowledgebase
Revision as of 14:58, 6 February 2026 by Annie (talk | contribs) (Added Package GUID)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

To bulk import UoPs, the CSV file should be formatted as described in this article.

General Column/Data Requirements

The following column headers must exist and contain data in each row:

  • UoP_Name or UoP_GUID

The following columns are optional (for example, the Package columns are only there to specify destination if desired):

  • Package_Name
  • Package_Description
  • Package_GUID
  • UoP_Description
  • UoP_Tags
  • Port_Name
  • Port_Description
  • Port_GUID
  • Pattern
  • Message_Request_Type
  • Component_Type
  • Partition_Type
  • Transport_API_Language
  • Profile
  • Language
  • Synch_Style
  • Response_Type
  • Exchange_Type
  • Communication_Style
  • Period

The order of the columns is not enforced, it does not have to be in the same order as the suggested format above.

Any additional user-made columns will be ignored and will not interfere with import.

Bulk import can currently import Package, UoP, and Port elements.

Column-specific Requirements

UoP Name, UoP GUID

Either a UoP Name or UoP GUID is required. If a UoP GUID is given, it must be associated with an existing UoP in the model.

Package Name, Package GUID

  • Leaving this column blank will default Package to the "Phenom" package.
  • Setting this column to an existing Package will default to the first matching UoP Package within the model.
  • If there is no matching Package, a new Package will be created within the "Phenom" Package.
  • If a Package GUID is given, it must reference an existing UoP package in the model.

Port Name

  • Port Names must be unique to the UoP they are imported under.
  • Ports belonging to different UoPs may have the same name.

Pattern

  • Corresponds to the messagingPattern attribute on a port.
  • Must be one of the following values: pub-sub, Client, Server.

Message Request Type, Request Type, Response Type

  • Correspond to the messageType, requestType, and responseType attributes on a port.
  • Must reference the name of a view in the model.

Component Type

  • Denotes the xmi:type of UoP.
  • Must be one of the following values: PlatformSpecific, Portable.

Partition Type

  • Denotes the partitionType attribute on a UoP.
  • Most be one of the following values: POSIX, ARINC653.

Transport API Language

  • Denotes the transportAPILanguage attribute on a UoP.
  • Must be one of the following values: C, CPP, Java, Ada.

Profile

  • Denotes the faceProfile attribute on a UoP.
  • Must be one of the following values: GeneralPurpose, Security, SafetyBase, SafetyExtended.

Language

  • Denotes the programmingLanguage attribute on a port.
  • Must be one of the following values: C, CPP, Java, Ada.

Synch Style

  • Denotes the synchronizationStyle attribute on a port.
  • Must be one of the following values: Blocking, NonBlocking.

Exchange Type

  • Denotes the messageExchangeType attribute on a port.
  • Must be one of the following values: InboundMessage, OutboundMessage.

Communication Style

  • Denotes the communicationStyle attribute on a port.
  • Must be one of the following values: Queuing, SingleInstanceMessaging.

Period

  • Denotes the period attribute on a port.
  • Must be a number.

Tagging New Elements (Optional)

UoP_Tags is an optional column can be used to tag new UoPs. Each field can have multiple comma-delimited tags.

The raw CSV must have quotes around fields with commas (Excel normally handles this).

Additional Requirements

  • Data within Package_Name, UoP_Name, and Port_Name must all begin with a letter, and only contain numbers, letters, or underscores. The data must also not match any of the following reserved words:
    • IDL Reserved words:

      "and", "begin", "break", "case", "common", "compile_opt", "continue", "do", "else", "end", "endcase", "endelse", "endfor", "endforeach", "endif", "endrep", "endswitch", "endwhile", "eq", "for", "foreach", "forward_function", "function", "ge", "goto", "gt", "if", "inherits", "le", "lt", "mod", "ne", "not", "of", "on_ioerror", "or", "pro", "repeat", "switch", "then", "until", "while", "xor"

    • OCL Reserved words:

      "abstract", "any", "attribute", "boolean", "case", "char", "component", "const", "consumes", "context", "custom", "default", "double", "emits", "enum", "eventtype", "exception", "factory", "false", "finder", "fixed", "float", "getraises", "home", "import", "in", "inout", "interface", "local", "long", "manages", "module", "multiple", "native", "object", "octet", "oneway", "out", "primarykey", "private", "provides", "public", "publishes", "raises", "readonly", "sequence", "setraises", "short", "string", "struct", "supports", "switch", "true", "truncatable", "typedef", "typeid", "typeprefix", "union", "unsigned", "uses", "valuebase", "valuetype", "void", "wchar", "wstring"

  • If there are any errors during validation of the CSV file, the model import will not be initiated and a list of errors will be returned. They will be labeled by the row they occur on for convenience.
  • There is a 2MB limit in place - if a larger file needs to be imported, it needs to be split up into smaller files.
  • In the raw CSV (i.e., as observed from notepad), any field with commas must have surrounding quotes (Excel normally handles this).