Hello,
I have created a dynamic constraint to check that the failure mode ids of my elements follow the naming convention we have defined, i.e.,
Subpartname + _FM + digits + p (for permanent faults) or t (for transient faults).
It seems that the test of my regular expression does not work.
Could you help me finding the issue?
script:
<span style="word-break: break-all; white-space: pre-wrap;"><span>inv: <br>if self.mediniGetContainer() <> null then<br><br> let <br> Subpart: sysml::SysMLPart = self.mediniGetContainer(),<br> MessageArg1: String = self.id.toString(),<br> MessageArg2: String = Subpart.name.toString()<br> in<br> if not self.id.oclIsUndefined() and self.id <> '' and not MessageArg2.oclIsUndefined() and MessageArg2 <> '' then<br> if self.failureType = 'PERMANENT' then<br> MessageArg1.matches('^' + MessageArg2 + '_FM\\d+p$')<br> else<br> MessageArg1.matches('^' + MessageArg2 + '_FM\\d+t$')<br> endif<br> else<br> true<br> endif<br>else<br> true<br>endif</span></span>The message is
The failure mode ID {1} in element {2} does not follow the element naming convention ELEMENT_NAME + _FM + digits + p (for permanent faults) or t (for transient faults).
Thank you,
Romain