About Functional Connections

A flow is a data or a service that a function instance emits or consumes. A flow can be structured and is produced by a unique emitter (functional port, also called flow association) which can be consumed by one or several functions.

This page discusses:

Functional Connections

When creating a new functional connection, you define:

  • A flow
  • The function emitting that flow
  • The function consuming it.

You also create a link in the 2D view between these functions to visualize the exchange.

A functional connection is an explicit representation of the flow exchange between two functions. This exchange is defined as soon as the flow associations are defined on the functions (even if the functional connection is not created).

Using Create Functional Connection , you can create a new functional connection. The connection can be made between functions that have the flow emission/consumption specified (using the Associate Existing Flow option) or with new flow ( Associate New Flow option).

With the Create Functional Connection , you can create a functional connection:

Between the functions from the same level (sibling case)
Where the connection links a flow emission to a consumption of the same flow.

Between a function and one of its subfunctions (parent-child case)
Where the connection links two emissions or two consumptions of the same flow.

Between two functions from different branches or levels

In such cases, the command creates as many connections as necessary.



  • If one function is in the substructure/a child of the other, then the Create Functional Connection command creates flow associations and parent-child connections to connect all the levels between the two selected functions.

    For example: Using the Create Functional Connection command between Function 1 and Function 3 creates three flows on Function 1, 2 and 3 and two connections between these three flows.

  • If the two functions are in two different branches of the Functional tree, the Create Functional Connection command connects the required parent-child and sibling functional connections.

    For example: To connect the two components Function 3 and Function 6, five flows and four connections are created.

  • If the two functions are not in the same Functional tree, then the Create Functional Connection command results in no action, because the functions you are connecting have to be in the same Functional tree.
    Note: When using the Create Functional Connection command to connect two functions from different level, this method results in the reuse of an existing flow association on the intermediate functions. This can lead to the creation of concentration cases (two connections pointing to the same input flow association).

Tip: If not already done so, set up your environment using Me > Preferences > Content Access > Identification. If the default environment does not include a function customization in authoring mode, the Create New Functional Connection command results in error.

You can connect automatically flow associations (functional ports) that are still not connected, provided that they have identical flows and compatible directions. See Autoconnecting Interfaces or Ports

For a manual connection, see Creating Functional Connection.

You can also connect automatically subfunctions together and generate the interface of the parent function (flows emitted and consumed by the function). See Creating Connection with Functional Connection Wizard.

Functional Connections with Wizard

The Functional Connection Wizard works on a function selected before or after executing the command. It works in two ways:

  • Connect existing flow association together: Connection between subfunctions (or MUX/DEMUX) or between the function and the subfunctions (or MUX/DEMUX) manipulating the same flow (with compatible direction) are created automatically - if not already existing.
  • Update Parent function signature based on unconnected children flow associations. For each subfunction with unconnected flow associations:
    • A flow association (same direction, linked to the same flow) is automatically created on the parent function – if not already existing.
    • A connection is automatically created between the subfunction (or MUX/DEMUX) and the parent function flow associations.

Warning:

If the customization of the flow association and connections to be created includes mandatory attributes, it is necessary to define a knowledge script that valuates these attributes.

If there is no script, or if the script doesn't valuate all the mandatory attributes, the Functional Connection Wizard command results in error.

If a flow is associated to the function and subfunctions
A connection is created between the subfunctions and the function flow associations:
  • Before the Functional Connection Wizard .



  • After the Functional Connection Wizard .



If several subfunctions are consuming a flow emitted by another subfunction
They are all automatically connected by the wizard:
  • Before the Functional Connection Wizard .



  • After the Functional Connection Wizard .



If several subfunctions are consuming a flow not emitted by another subfunction
They are all automatically connected by the wizard to a single flow consumption at the parent level:
  • Before using Functional Connection Wizard .



  • After using Functional Connection Wizard .



If all the subfunctions ports are already connected together or with the function port
The Functional Connection Wizard command does not create anything:
If functions are connected with MUX/DEMUX
MUX/DEMUX objects are managed like a subfunction. The input and output ports are connected to the other subfunctions or to the parent function:
  • Before using Functional Connection Wizard .



  • After using Functional Connection Wizard .