Connecting LogicalFunctions with FunctionalExchange

Hello,

In Capella Studio I am looking for a way to link Logical Functions using FunctionnalExchange.

The logical functions are already existing in the project explorer tree, so what I have done so far is to :

  • create a FunctionInputPort/FunctionOutputPort
  • create a PortAllocation for each of them
  • set the PortAllocation’s target/source element to the concerned logical functions
  • add the PortAllocation to the FunctionInputPort’s/FunctionOutputPort’s owned PortAllocations
  • set the FunctionnalExchange’s target/source to the FunctionInputPort/FunctionOutputPort
  • add the FunctionnalExchange to the concerned logical function

As a result, it create the functionnal exchange and I can see it in the project explorer tree
As expected it shows the FunctionInputPort/FunctionOutputPort in the source/target properties

The problem is when I check the logical function concerned by that functionnal exchange : the properties “outgoing” and “incoming” are empty when they are supposed to reffer to the functionnal exchange

When I create the same model manually “outgoing” and “incoming” are not empty…

What did I miss?

I am using jpequery/EMFSpreadsheetIO add-on for Capella Studio to implement an import of different elements from excel data sheet…

I think maybe I should add a FunctionalExchangeSpecification ?

So I try to implement my FunctionalExchangeSpecification by adding source and target to it but the type of source/target is supposed to be InformationsExchanger…

Any idea about how to get that InformationsExchanger object ?

Hi,

If you create only both ports and the functional exchange it should be enough.
I created a simple model with two functions and compared it with the same model with the exchange created from the tool of the diagrams and I get:

So instead of the port allocations you should aim for adding the port to the inputs/outputs of the function and add the functional exchange in the ownedFunctionalExchanges collection of the(a) parent.

Regards,
Arnaud