Functional Logical System Connection Check Business Logic (FLSystemConnectionCheck)

An opening ID is an entry point used to customize business logic. The FLSystemConnectionCheck business logic allows you to define rules that are taken into account everytime a connection is about to be established between two functional or logical systems (in context of their instance or reference. It allows you to define rules that are taken into account everytime a connection is about to be established between two functional or logical systems (in context of their instance or reference), to actually continue or cancel this operation.

Note: For more information about customization by business rules, see Installation and Setup: Customize: Behavior: Data Setup: Customization by Business Rules.

This page discusses:

General Information

This opening ID is invoked everytime an interactive command or a programming interface (API) triggers an operation of functional/logical connection creation.

The functional/logical connection creation operation means: A connection is established between two interfaces; each interface being in context of its reference or of an instance coming from its reference.

This opening ID is used to customize an interface of a function. This can be either:

  • an exposition of a flow in the context of a function,
  • an ordered list (path) designing a particular flow of a structured flow exposed in the context of a function,
  • a port (with an associated flow).

The table below provides you with information related to the definition of the Opening ID.

PLM Opening ID: FLSystemConnectionCheck
Customization intent: Validation
Execution context: Client

Input Objects

Input objects must be of the following types: SysConnectable.

A plm object supporting the SysConnectable type:

  • The reference or instance corresponding to a Function definition, a Function usage, a Functional MuxDemux definition or a Functional MuxDemux usage.
  • The reference or instance corresponding to a Logical System definition, a Logical System usage, a Logical MuxDemux definition or a Logical MuxDemux usage.

Context Object Parameters

Parameter Name Type Read/Write Comments
AssociatedInterface List Read

The plm object or path of plm objects representing the interface associated to this system (definition or usage) that will be connected:

Logical: RFLVPMSystemTypeExpositionInstance {RFLVPMSystemTypeInstance} | RFLVPMLogicalPort

Functional: RFLPLMFlowExpositionInstance {RFLPLMFlowInstance} | RFLPLMFunctionalConnector

(See ‘Wirth syntax notation’)

TargetSystem SysConnectable Read

The reference or instance corresponding to a System definition or a System usage.

TargetInterface List Read

The plm object or path of plm objects representing the interface associated to the target system (definition or usage) that will be connected:

Logical: RFLVPMSystemTypeExpositionInstance {RFLVPMSystemTypeInstance} | RFLVPMLogicalPort

Functional: RFLPLMFlowExpositionInstance {RFLPLMFlowInstance} | RFLPLMFunctionalConnector

(See ‘Wirth syntax notation’)

Connection SysConnection Read

The functional or logical connection being established.

Sample

Let's implement the following rule (on the logical domain): The logical connection can be created only if the implied interface usages (RFLVPMSystemTypeExpositionInstance type) share the same value for 'V_description' attribute. To achieve this particular business logic implementation, a CATRuleExit file, known as family, declares the script to run everytime a functional or logical connection is about to be established:

<Scripts>
     <Script OpeningID="FLSystemConnectionCheck"
             Type="SysConnectable"
             ScriptName="CATMyFirstSystemConnectionCheckRule" />
</Scripts>
This family tells to run the script CATMyFirstSystemConnectionCheckRule whenever a connection creation operation is launched with a functional or logical object of PLM type SysConnectable. This script is a CATRule file that contains the following business logic implementation:
let FromSystem(SysConnectable)
let FromInterface(List)
let TargetSystem(SysConnectable)
let TargetInterface(List)
let Connection(SysConnection)

let FromInterfaceExpositonUsage(SysInterface)
let FromItfExpositonUsageDescription(String)

let ToInterfaceExpositionUsage(SysInterface)
let ToItfExpositonUsageDescription(String)

Let DescriptionAttrName(String)
DescriptionAttrName=”V_description”

set FromSystem = ThisObject
set FromInterface = Parameters->GetAttributeObject("FromInterfaces")
set TargetSystem = Parameters->GetAttributeObject("TargetSystem")
set TargetInterface = Parameters->GetAttributeObject("TargetInterfaces")
set Connection = Parameters->GetAttributeObject("Connection")

if(FromInterface->Size() >= 1)
{
  // Retrieve a RFLVPMLogicalSystemTypeExpositionInstance object
  set FromInterfaceExpositonUsage = FromInterface->GetItem(1)
  FromItfExpositonUsageDescription = FromInterfaceExpositonUsage->GetAttributeString(DescriptionAttrName)
}

if(ToInterface->Size() >= 1)
{
  // Retrieve a RFLVPMLogicalSystemTypeExpositionInstance object
  set ToInterfaceExpositonUsage = ToInterface->GetItem(1)
  ToItfExpositonUsageDescription = ToInterfaceExpositonUsage->GetAttributeString(DescriptionAttrName)
}

if (FromItfExpositonUsageDescription == ToItfExpositonUsageDescription)
{
   Validation = true
}
else
{
   Validation = false
}

if (Validation == false)
{
   Parameters.Message = "The logical connection cannot be created because of not compliant interfaces."
}