Relationship Validation Rules and Error Messages

Validation rules are enforced when defining a relationship between two MBOs and, in some cases, when you deploy the MBO to Unwired Server. Messages are generated when validation rules are violated.

Relationship validation rules and error messages
Severity and message Cause Action

Error: Duplicate relationship name: ‘<Relationship Name>‘ case insensitive.

A duplicate relationship name (source attribute name) is defined.

Change the autogenerated name of the source attribute in the Relationship Creation wizard, Edit dialog, or Properties view.

Error: No mapping information specified for the relationship: '<Relationship Name>‘.

The relationship does not have a mapped attribute or mapped parameter.

Map the attribute or parameter in the Relationship Creation wizard, Edit dialog, or Properties view.

Error: Relationship name ‘<Relationship name>‘ is a duplicate of the existing attribute name ‘<Attribute name>‘.

The relationship’s name is a duplicate of the source MBO attribute’s name.

Change the attribute name in the source MBO, or change the source attribute’s relationship name.

Error: Relationship target attribute name ‘<Attribute name>‘ is a duplicate of the existing attribute name ‘<Attribute name>‘.

The relationship's target attribute name is a duplicate of an attribute name in the target MBO.

Change the target MBO attribute name, or change the target attribute’s name.

Error: Relationship target attribute name ‘<Attribute name>‘ is a duplicate of the existing source attribute name ‘<Attribute name>‘.

The relationship's target attribute name is a duplicate of the source attribute’s name in another relationship.

Change this relationship's target attribute name, or change the duplicated source attribute name.

Error: Attributes must be defined for ‘<MBO Name>‘ to create a relationship.

No attributes are defined in the source MBO or the target MBO.

Create attributes in the source or target MBO.

Error: Primary key attributes must be defined for ‘<MBO Name>‘ in the relationship ‘<Relationship name>‘.

Primary key attributes are not defined in the source MBO or the target MBO.

Set the primary key attribute in the source MBO in one-to-many bidirectional, unidirectional, and one-to-one bi-directional relationships.

Set the primary key attribute in the target object (MBO) in many-to-one bidirectional, unidirectional, and one-to-one unidirectional relationships. You can either:
  • Set the related attribute as primary key on source or target MBOs according to the relationship’s type.
  • automatically set or unset the mapped attribute as a primary key preference setting (from the Preferences menu, select Sybase, Inc > Mobile Development > Miscellaneous > Relationship.
  • Map the attribute or parameter between the source and target MBO.

Error: The primary key attribute ‘<Attribute name>‘ must be mapped in the relationship ‘<Relationship name>‘.

There is no primary key mapping for the source or target MBO attribute.

Unset the attribute as a non-primary key, or map the attribute in the relationship. For one-to-many bidirectional, unidirectional and one-to-one bidirectional relationships, map all primary key attributes of the source MBO. For many-to-one bidirectional, unidirectional and one-to-one unidirectional relationships, map all primary key attributes of the target MBO.

Error: The non-primary key attribute ‘<Attr Name>’ should not be mapped in the relationship ‘<Relationship Name>’.

At least one non-primary key attribute is mapped in the relationship.

Set the mapped attribute as a primary key, or unmap the attribute in the relationship. For one-to-many bidirectional, unidirectional and one-to-one bi-directional relationships, unmap all non-primary key attributes of the source MBO. For many-to-one bidirectional, unidirectional and one-to-one unidirectional relationships, unmap all non-primary key attributes of the target MBO.

Error: The data type of attribute ‘Attribute name’ does not match ‘Attribute name’ in the relationship.

The datatype of the mapped attribute/parameter does not match.

Map the attribute/parameter to a target with the same datatype.

Error: Cannot create relationship between different type of mobile business object.

A relationship between different types of MBOs exists.

Create relationships only between the same types of MBOs.

Error: Cannot create relationship between structures.

A relationship between structures exists.

Relationships between structures is not currently supported.

Error: The target mobile business object ‘<MBO Name>‘ can not be used in the composite relationship ‘relationship name’\r\nsince it already was used in a composite relationship as a target.

One MBO is used in multiple composite relationships as a target MBO.

In composite relationships, define only one MBO as a target MBO.

Error: The argument ‘<Argument name>‘ should set the propagate-to attribute in the relationship between ‘<MBO Name>’ and ‘<MBO Name>‘.

The mapped load argument does not have a propagate-to attribute in the relationship.

Unmap the load argument, or set the propagate-to attribute for the load argument.

Error: As the associated propagate-to attribute is a primary key, the argument ‘<Argument name>‘ should be mapped to an attribute or a argument in the relationship with ‘<MBO Name>’.

The load argument, which has a propagate-to attribute primary key, is not mapped in the relationship.

Unset the propagate-to attribute as non-primary key. Or,

Map the load argument in the relationship for both the target and source MBO: for one-to-many bidirectional, unidirectional and one-to-one bidirectional relationship, map all load arguments where the propagate-to attribute are primary key attributes of the source MBO. For many-to-one bidirectional, unidirectional and one-to-one unidirectional relationship, map all load arguments where the propagate-to attribute are primary key attributes of the target MBO.

Error: The argument ‘<Argument name>‘ was mapped in the relationship ‘<relationship name>‘. Its propagate-to attribute ‘<Attribute name>‘ must be a primary key.

The load argument's propagate-to attribute is mapped in the relationship, but is not a primary key.

Set the propagate-to attribute as a primary key, or Unmap the load argument in the relationship:
  • Unmap all propagate-to attribute load arguments that are non-primary key attributes in the source MBO if used in one-to-many bidirectional, unidirectional, and one-to-one bidirectional relationships.
  • Unmap all propagate-to attribute load arguments that are non-primary key attributes in the target object (MBO) if used in many-to-one bidirectional, unidirectional, and one-to-one unidirectional relationships.

Error: The primary key attribute ‘<Attribute name>‘ was not used in the relationship ‘<Relationship name>‘.

The primary key attribute is not mapped in the relationship, but is mapped in another relationship.

Map the attribute in the relationship:
  • Map all primary key attributes of the source MBO in one-to-many bidirectional, unidirectional, and one-to-one bidirectional relationships.
  • Map all primary key attributes of the target MBO in many-to-one bidirectional, unidirectional, and one-to-one unidirectional relationships.

Error: The propagate-to attribute of the argument ‘<Argument name>‘ is a primary key and must be used in the relationship ‘<Relationship name>‘.

The propagate-to attribute load argument, which is a primary key, is not mapped in the current relationship, but is mapped in another relationship.

Map the load argument in the relationship:
  • Map all propagate-to attribute load arguments that are primary key attributes of the source MBO in one-to-many bidirectional, unidirectional, and one-to-one bidirectional relationships.
  • Map all propagate-to attribute load arguments that are primary key attributes of the target MBO in many-to-one bidirectional, unidirectional, and one-to-one unidirectional relationships.

Error: Relationship from ‘MBO Name’ to ‘<MBO Name>‘ is invalid, as it causes a circular relationship.

The relationship is circular.

Remove the relationship. Circular relationships are not allowed.

Error: Relationship from ‘<MBO Name>‘ to ‘<MBO Name>‘ references two mobile business objects in different synchronization groups. Mobile business objects with relationship should be grouped in the same synchronization group.

The two MBOs in the relationship do not belong to the same synchronization group.

Move the source and target MBOs into the same synchronization group.

Error: Composite relationship from ‘<MBO Name>‘ to ‘<MBO Name>‘ references two mobile business objects in different synchronization groups. Mobile business objects with composite relationship should be grouped in the same synchronization group.

The two MBOs in a composite relationship are not in the same synchronization group.

Move the source and target MBOs into a same synchronization group.

Error: Relationship '<'relationship name>‘ references two mobile business objects in different cache groups. Mobile business objects with relationship should be put in the same cache group.

The two MBOs in the relationship do not belong to the same cache group.

Move the source and target MBOs into a same cache group.

Error: Composite relationship ''<relationship_name>'' references two mobile business objects in different cache groups. Mobile business objects with composite relationship must be put in the same cache group.

The two MBOs in a composite relationship are not in the same cache group.

Move the source and target object (MBO) into the same cache group.

Error: The secondary mobile business object ‘<MBO Name>‘ can not be used in the relationship ‘<Relationship name>’ as source object.

In a relationship that involves multiple MBOs created from the same EIS operation, the secondary (subsequent) MBO is the relationship's source object and the target MBO is its primary MBO, and the load argument of the primary MBO is mapped.

Do not map the load argument of the source MBO, or swap the MBOs so that the secondary MBO is the primary MBO.

Error: The secondary mobile business object ‘<MBO Name>‘ can not be used in the relationship ‘<Relationship name>’ as target object.

In a relationship that involves multiple MBOs created from the same EIS operation, the secondary MBO is the target object and its load argument is mapped.

Do not map the load argument of the target object (MBO) unless the source MBO is also the primary MBO, or swap the MBOs so that the secondary MBO is the primary MBO.

Error: Multiple relationships between ''<MBO1_name>'' and ''<MBO2_name>'' caused circular dependencies, must set one side of the foreign key attributes to nullable.

The multiple relationships between MBOs form circular dependencies with foreign keys non-nullable in both MBO. Unwired Server cannot load MBOs for this case.

Make the foreign key attributes nullable in either source or target side.

Error: Relationship ''<Relationship name>'' involves mobile business objects with online cache policy must be a composite relationship.

The relationship in online cache group is not an composite relationship.

Make the relationship a composite relationship.

Error: Relationship has two mobile business objects with independent load definitions in the online cache group, and this is not allowed.

The relationship is established between non-commingled MBOs in online cache groups.

Remove the unsupported relationship.

Error: Relationship ''<Relationship Name>'' references mobile business objects across ''<Cache group type1>'' and ''<Cache group type2>'' cache groups.

Mobile business objects with relationship should be put in the same cache group. Relationship established on MBOs across online and non-online cache groups.

Make the source and target MBOs cache groups are consistent—either all in an online cache group, or all in a non-online cache group.