Context Object Parameters
Parameter Name | Type | Read/Write | Comments |
---|
Mode | String |
Read | Add to validate the creation of the link for new content and Remove to validate the deletion of the link for existing content. |
ActionList | List | Read | List of content on which Add or Remove are applied on. |
ExistingList | List | Read | List of content to help the user defining his business rule. |
Sample
The following sample checks whether or not the cable groups only wires and have at least three wires. If not, linking is interrupted and a message issued.
/* Rule : ELE_ValidateGroupConductor */
/*
ThisObject : #In RFLVPMLogicalPort
Parameters : #In RuleContext
Validation : #Out Boolean
*/
let sMode (String) /* "Add" or "Remove" modes */
let ActionList (List) /* Ends to validate action on */
let ExistingList (List) /* Existing ends */
let nbActionEnds (Integer)
let nbExistingEnds (Integer)
let ActionEnd (RFLVPMLogicalInstance)
let ExistingEnd (RFLVPMLogicalInstance)
let Wire (PLMElecLogicalWire)
let i (Integer)
let j (integer)
set sMode = Parameters->GetAttributeString("Mode")
set ActionList = Parameters->GetAttributeObject("ActionList")
set ExistingList = Parameters->GetAttributeObject("ExistingList")
Validation=true
nbActionEnds = ActionList->Size()
nbExistingEnds = ExistingList->Size()
set i = 1
if (sMode == "Add")
{
for i while i <= nbActionEnds AND Validation == true
{
ActionEnd = ActionList.GetItem (i)
if ActionEnd <> NULL
{
set Wire = ActionEnd.Reference
if Wire == NULL
{
Validation = false
Parameters.Message = "End " + ActionEnd.PLM_ExternalID + " must be a wire"
Parameters.Severity = 1
}
else
{
Wire = NULL
}
}
else
{
Validation = false
Parameters.Message = "Error"
Parameters.Severity = 2
}
}
}
if (sMode == "Remove")
{
if ((nbExistingEnds - nbActionEnds) < 3)
{
Validation = false
Parameters.Message = "Cable must group at least 3 wires"
Parameters.Severity = 2
}
}