Mobile Business Object, Attribute, and Structure Object Error Messages and Validation Rules

These validation rules and error messages apply to mobile business objects (MBOs), attributes, and structure objects (complex object types), and are enforced during MBO development, and, in some cases, when you deploy the MBO to Unwired Server. Messages are also generated when validation rules are violated.

MBO, attribute, and structure validation rules and error messages
Severity and message Cause Action

Error: Invalid mobile business object name: '<MBO Name>'. A valid identifier name must begin with an alphabetic character or an underscore, followed by alphanumeric characters or underscores.

The MBO name is invalid.

Enter a valid name.

Error: Invalid mobile business object name: '<MBO Name>', name cannot be a Java or C# language keyword.

The MBO name is a Java or C# keyword, such as binary, boolean, byte, char, date, datetime, time, decimal, double, float, object, int, integer, long, short, string, switch, and so on.

Do not use Java or C# keywords as MBO names.

Error: Invalid mobile business object name: '<MBO Name>' , the length must be less than 64.

The length of the MBO name is longer than 64 characters.

Enter a name that is less than 64 characters.

Error: Invalid mobile business object name: '<MBO Name>' , name cannot be a reserved attribute name.

The MBO name is a reserved attribute name: pending, replayPending, replayCounter, disableSubmit, pendingChange, lastModified, and deleted.

Enter a valid name.

Error: Invalid mobile business object name: '<MBO Name>', name cannot be a reserved word.

The MBO name is a reserved MBO name: KeyGenerator, OperationReplay, ServerPersonalization, ClientPersonalization, SessionPersonalization, LogRecordImpl, and KeyGeneratorPK.

Enter a valid name.

Error: Invalid mobile business object name: '<MBO Name>', name cannot be a reserved internal type name.

The MBO name is an internal reserved type: "object", "binary", "boolean", "byte","char", "date", "datetime", "decimal", "double", "float", "int", "integer", "long", "short", "string","time"

Enter a valid name. For example, naming the MBO Date, DateTime, or Time results in an error when deploying the MBO.

Error: Duplicate mobile business object name: '<MBO Name>'. The name is case-insensitive.

An MBO with the same name already exists.

Enter a valid and unique name.

Error: Duplicate name: '<MBO Name>' in the object query.

The name of the MBO is the same as the name of an existing object query.

Enter a valid and unique name.

Error: The name: '<MBO Name>' duplicates with an operation name.

The name of the MBO is the same as the name of an existing operation. Validation occurs after creating the MBO after a table name change to an operation or attribute, then dragging-and-dropping the table to create the MBO.

Enter a valid and unique name.

Error: The name: '<MBO Name>' duplicates with an attribute name.

The name of the MBO is the same as the name of an existing attribute.

Enter a valid and unique name.

Error: Invalid structure name: '<Structure Name>'. A valid identifier name must begin with an alphabetic character or an underscore, followed by alphanumeric characters or underscores.

The structure type name is invalid.

Enter a valid name.

Error: Invalid structure name: '<Structure Name>'. A valid structure type name cannot be the same as the primitive type names.

The structure type name is a primitive datatype supported by Unwired WorkSpace. For example, int, boolean, and so on.

Enter a valid name.

Warning: Neither attribute nor operation is defined for the mobile business object: '<MBO Name>'.

An MBO exists without attributes or operations.

Define attributes, operations, or both for the MBO.

Warning: Attributes are not defined for the structure: '<Structure Name>'.

A structure exists without attributes.

Define attributes for the structure.

Error: Attributes are not defined for the mobile business object: '<MBO Name>'.

This error occurs in the MBO Creation wizard, in the "Attributes mapping" page if the wrong datasource operation definition is specified on the "Definition" page. In these cases, the data source operation cannot run successfully or there is no output record for the operation. No attributes are generated for the MBO.

In the MBO Creation wizard, do one of:

  • Click Back to return to the "Parameters" page and verify that the correct default values are set. Correct any values as necessary then click Next to retry.
  • Click Back until you reach the "Definition" page and verify that the correct definition for the datasource operation is specified. Correct the problem and click Next, and specify default values for the parameters (arguments) on the "Parameters" page. Click Next to retry.

Warning: Attributes are not bound to the back-end data source: '<MBO Name>'.

You can create an MBO without specifying a datasource, by selecting Bind data source later from the "Datasource" page of the MBO Creation wizard. This warning message reminds you to bind the MBO to a data source at some point during the development process.

To bind an MBO to a data source after creating the MBO:
  1. Right-click the MBO in the Mobile Application Diagram, and select Show properties view.
  2. From the Properties view, select the Attributes tab.
  3. Select Data Source, and bind to a data source.

Error: Invalid attribute name: '<Attr Name>'. A valid identifier name must begin with an alphabetic character or an underscore, followed by alphanumeric characters or underscores.

The attribute name is invalid.

Enter a valid name.

Error: Invalid attribute name: '<Attr Name>', name cannot be a Java or C# language keyword.

The attribute name is a Java or C# keyword, such as int, switch, and so on.

Do not use Java or C# keywords as attribute names.

Error: Invalid attribute name: '<Attr Name>', name cannot be a reserved attribute name.

The reserved keyword pending, replayPending, replayCounter, disableSubmit, pendingChange, lastModified, or deleted is used as an attribute name.

Enter a valid attribute name.

Error: Invalid attribute name: '<Attr Name>' ,the length must be less than 64.

The attribute name exceeds the 64 character maximum length.

Shorten the attribute name.

Error: Duplicate attribute name: '<Attr Name>'. The name is case-insensitive.

An attribute with the same name already exists.

Enter a valid name.

Error: Duplicate name: '<Attr Name>' in the mobile business object.

The attribute name is the same as the MBO name to which it belongs.

Enter a valid name.

Error: Duplicate name: '<Attr Name>' in the object query.

The attribute name is the same as an object query name for a given MBO.

Enter a valid name.

Error: The name: '<Attr Name>' duplicates with an operation name.

The attribute name is the same as an operation name for a given MBO.

Enter a valid name.

Error: Invalid attribute name: '<Attr Name>', name cannot be a reserved word.

A reserved keyword is used as an attribute name: deleted, lastAccessed, lastModified, isSubscribed, pending or hashcode.

Enter a valid name.

Warning: Attribute '<Attr Name>' has no mapped data source field and no propagated load argument.

An attribute is not mapped to a column or to a load argument. This warning is generated if neither is mapped.

In the Properties view, set either the column mapping or load argument mapping. To map a load argument, set Propagate to Attribute on the Load arguments tab.

Warning: Data type of the column cannot map to the attribute: '<Attr Name>'.

Datatype mismatch.

Change the attribute datatype or column datatype (if it is not read-only) so they match.

Warning: Attribute ‘<Attr Name>‘ should be nullable when it’s mapped to a nullable column.

The attribute is not nullable, but the column to which it maps is. The warning indicates that a failure might occur when loading or synchronizing data based on this attribute.

Change the nullability of the attribute or the column to which it maps so they match.

Warning: Attribute data length is shorter than the mapped column length, value truncation might occur: '<Attr Name>'.

The datatype length of the attribute is shorter than the back-end column length. The value might be truncated when loading data from the back-end datasource to the cache database during refresh.

Change the attribute’s length to match that of the column to which it maps.

Warning: Attribute binary data length is shorter than the mapped column length, NULL will be returned: '<Attr Name>'.

The datatype length of the binary type attribute is shorter than the backend column length, so the wrong NULL value could be loaded from the backend datasource to the cache database during refresh.

Change the attribute’s length to match that of the column to which it maps.

Error: Attribute ‘<Attr Name>‘ of type {0}, with length greater than {2} bytes should not be used as a primary key.

The attribute is set as a primary key, but its length is longer than the primary key’s length allowed by the server:
  • {0} may be STRING or BINARY
  • {2} 536870912(2G/4) for STRING
  • 0x7fffffff (Integer.MAX_VALUE, 2G-1) for BINARY

Change the primary key attribute’s length to a valid value as indicated by the error message.

Error: Attribute ‘<Attr Name>‘ of type {0}, does not allow length greater than {2}.

The attribute is longer than the allowed maximum length:
  • {0} may be STRING or BINARY
  • {2} 536870912(2G/4) for STRING
  • 0x7fffffff (Integer.MAX_VALUE, 2G-1) for BINARY

Change the attribute length to a valid value as indicated by the error message.

Error: Column ‘<Col Name>‘of type {0}, does not allow length greater than {2}.

The column is longer than the allowed maximum length:
  • {0} may be STRING or BINARY
  • {2} 536870912(2G/4) for STRING
  • 0x7fffffff (Integer.MAX_VALUE, 2G-1) for BINARY

Change the attribute length to a valid value as indicated by the error message.

Warning: The relationship between source mobile business object ‘<Source MBO Name>’ and target mobile business object ‘<Target MBO Name>’ may not work, because the load argument of target mobile business object is mapped to both attribute of source mobile business object and synchronization parameter of target mobile business object.

If a load argument is bound to both a foreign attributes and a synchronization parameter, then the relationship between the source and target MBOs may not work.

Select the correct mapping for load arguments according to a valid scenario.

Error: All load argument(s) of target mobile business object '<MBO Name>' must be filled either from attribute(s) of source mobile business object(s) or from synchronization parameter(s) of target mobile business object, a combination is not allowed.

If an MBO has multiple load arguments, then they can all come from sync parameters, or all from "foreign attributes" (for example, attributes of a parent MBO), but a mixture is not supported. Otherwise, deployment will fail.

Ensure that load arguments of MBOs come from sync parameters, or that all come from “foreign attributes”.

Error: Mobile business object ''<MBO Name>'' with online cache policy must have at least one load argument with ''Propagate To'' attribute set.

Online MBO does not have a load argument with “Propagate To” set.

Assign a “Propagate To” attribute for at least one load argument.

Error: Invalid < object type > name: name cannot be empty.

The <object type> name cannot be empty.

Enter a valid value for the name of the <object type>.