UnexpectedClassIdForInconsistencyCondition :
Exception levée dans deux situations différentes :
- on a créé une condition d'inconsistance liée aux ressources (instance de la classe ResourceSharingViolationCondition), et on ne lui a pas donné, comme valeur du descripteur ConstrainedEntityClassId le symbole d'une sous-classe de ressources (Resource).
- on a créé une condition d'inconsistance liée aux activités (instance de la classe ActivityInconsistencyCondition), et on ne lui a pas donné, comme valeur du descripteur ConstrainedEntityClassId le symbole d'une sous-classe de d'activité primitive (PrimitiveActivity).
VoidARIC :
Exception levée lorsque le moteur de simulation rencontre une ActivitiesResourcesInconsistentCommitment
- sans corps attribué à sa méthode HoldingCondition
- et sans éléments de type ActivityInconsistencyCondition ni ResourceSharingViolationCondition.
L'absence d'éléments est une situation envisageable lorsqu'on intègre dans la HoldingCondition la totalité de la sémantique de la contrainte.
NoOccurrenceCrossDomain
Exception levée lorsque le moteur de simulation rencontre une ResourceSharingViolationCondition ou une ActivityInconsistencyCondition sans valeur pour le descripteur OccurrenceCrossDomainAttribute.VoidOccurrenceCrossDomain :
Exception levée lorsque le moteur de simulation rencontre un OccurrenceCrossDomain sans élément (de type OccurrenceDomain).
Pour localiser les deux dernières erreurs, la construction correcte se fait typiquement de la manière suivante :
MyViolationCondition::MyViolationCondition() { // sous-classe de RESOURCE_SHARING_VIOLATION_CONDITION // ... Entity* pOccurrenceDomain = new MyDomainViolation(); Entity* pOccurrenceCrossDomain = new OccurrenceCrossDomain(); pOccurrenceCrossDomain->AddElement(pOccurrenceDomain); SetEntityConstValue(OCCURRENCE_CROSS_DOMAIN_ATTRIBUTE, pOccurrenceCrossDomain); };L'absence du SetEntityConstValue provoque la première erreur.
L'absence du AddElement provoque la seconde erreur.