Formatting a CSV for UoP Import

From PHENOM Portal Knowledgebase
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).