Skip to content
This repository has been archived by the owner on Dec 13, 2018. It is now read-only.

Howto Solving Validation Errors

Roland K edited this page Sep 16, 2016 · 1 revision

This page is a collection solution strategies for typical validation errors.

General best practices and advices

  • Always try to fix the validation error that appears first in the control flow of an SDM (similar to C :-)).
  • AttributeValueConstraints cannot deal with method parameters. To use parameters in an attribute value constraint, you need to declare a bound Object Variable with the same name as the parameter.
  • (EA) validation errors may also be caused by wrong internal IDs (so-called) GUIDs that result from copying elements or from extracting SDMs. To get rid of such problems, open (e.g.) the attribute constraints of an Object Variable and perform a "pseudo-edit" by (i) selecting one constraint after the other and (ii) pressing 'Edit' for each without modifying the constraint.

Unable to handle expression

This means that you have an invalid literal expression.

  • Literal Expressions may only be constants, such as string (e.g., "abc123"), integers (1,2,3), floats/doubles (1.0, 3.141) or null.
  • 'null' is not a valid Literal Expression for EDataTypes (e.g. EString, EInt)
  • Disallowed literal expressions are method calls (e.g. "this.getX()"), expressions (e.g., 1 + 2 +3 or str1 + "_" + str2).

No search plan found (SDM)

This means that it is impossible to find matches for a pattern inside an activity node. Possible reasons are:

  • Your pattern has non-bound nodes (thin black frame) that are only connected to the rest of the pattern via green links.
  • Your pattern has no bound nodes at all
  • Your pattern uses Object Variables (OV) that are not guaranteed to be be bound. More precisely: You may only use an OV as bound if it (i) is a parameter, (ii) is 'this', or (iii) if it has successfully been bound earlier.

No search plan found (TGG)

This probably is caused by a wrong configuration in your moflon.properties.xmi: TGG patterns need so-called reverse navigation, which are by default enabled in moflon.properties.xmi of TGG projects. You may want to check that the SDM Codegenerator method body handler is set to DEMOCLES_REVERSE_NAVI.