Known Issues for Sybase Unwired WorkSpace – Mobile Business Object Development

Learn about known issues and apply workarounds for Unwired WorkSpace and mobile business object (MBO) development.

CR # Description
632858
In Mobile Workflow applications, an update fails at runtime when two MBOs are related via a one-to-one relationship with the same attribute name.

Workaround: Change the attribute name for one of the MBOs so that the attributes are not identical.

632796
Unwired WorkSpace silently changes primary key of parent MBO when mapping relationships

For one-to-one and one-to-many relationships, all primary keys in the parent MBO must map to a child MBO. Unwired WorkSpace enforces this restriction by, in some cases, silently modifying the MBO primary key definition.

For example, a parent MBO has two primary keys (primeOne and primeTwo), and a relationship is created based only on the PrimeOne primary key. In this case, Unwired WorkSpace automatically unchecks primary key for primeTwo in order to follow the relationship rule.

This can result in unintended consequences because of modified run-time behavior.

Workaround: You must create another relationship for any additional primary keys.

632593
Purging does not physically remove logically deleted data.

Cached data is marked as logically deleted when certain activities occur in the client application or back end.

Workaround: If logically deleted MBO rows must be purged from the cache by the System Administrator, define a separate cache group for the MBO in Unwired WorkSpace. This allows the administrator to purge the data manually in Sybase Control Center. For details, see System Administration of the Unwired Platform > System Administration > Package Administration > Data Management Overview > Cache Data Management > Cache Refreshes > Purging a Cache Group.

632533
Deployment fails when you try to deploy an MBO to a secondary Unwired Server in a cluster.
When you deploy a package into a Sybase Unwired Platform cluster, you must be connected to the Unwired Server designated as the primary server in the cluster. When a primary server fails, a new primary is elected from the remaining secondary servers. You must use this new primary server to deploy packages. If not, deployment fails and you see a message similar to following in the server logs:
YYYY-MM-DD HH:MM:SS.SSS WARN    MMS          Thread-466
[com.sybase.sup.server.SUPDomain] On Non primary servers, you could not
execute createDsyncDataZip()
java.lang.Exception: On Non primary servers, you could not execute
createDsyncDataZip()
        at com.sybase.sup.server.cluster.ClusterUtils.createDsyncDataZip
(ClusterUtils.java:816)
        at com.sybase.sup.server.SUPDomain.incrementDomainVersion
(SUPDomain.java:779)
        at com.sybase.sup.admin.server.DomainAdminImpl.deployJar
(DomainAdminImpl.java:291)

Workaround: An administrator can identify which server is the new primary server using Sybase Control Center and relaying the specific connection properties to you. Set up a new connection profile using those properties, then redeploy using that new connection. See Sybase Unwired WorkSpace - Mobile Business Object Development > Configure > Configure - Eclipse Development Environment > Creating a Sybase Unwired Server Connection Profile for how to create a new Sybase Unwired Server connection profile.

631215
When you manually create an Adaptive Server® Enterprise data source connection endpoint using the Administrator console for use with an Eclipse deployment, your device application returns an error similar to Encountered error while synchronizing package, and your device cannot connect to the server.

Workaround: Always use the Eclipse deployment wizard to create a new datasource server endpoint, rather than using the Administrator console to manually create one.

627980
Operation parameter and structured argument mapping error.
The deployment unit requires parameter or personalization key reference to the structured MBO. Without such a reference, the structured MBO is not generated in the deployment unit:
  • If neither a structured argument or its field argument has a parameter mapping, and there are no other parameter or personalization key references in the target structured MBO, deployment to Unwired Server fails and the error message "class not found" is logged to the Unwired Server log file.
  • An error occurs if you rename the structure MBO or assign some default value to the structured argument.

Workaround: Sybase recommends you map all fields of a structured argument to parameters.

626652
Deployment fails when no primary key is defined, and if there are more than 300 attributes.

Workaround: Define a primary key before you deploy.

622036
When SQL Editor is open on Windows 64-bit machines, exiting and restarting Unwired WorkSpace may fail.

This scenario can cause Unwired WorkSpace to stop responding.

Workaround: Either:
  • Close SQL Editor before exiting and restarting Unwired WorkSpace, or
  • If Unwired WorkSpace stops during restart:
    1. Kill the Eclipse javaw.exe process from the Windows Task Manager.
    2. Remove the workspace's .metadata folder.
    3. Start Unwired WorkSpace and import the existing projects. The existing connection profiles may be lost if they have not been exported.
621362
Projects disappear from WorkSpace Navigator after being renamed.
This scenario can cause projects to "disappear" from WorkSpace Navigator:
  1. Open Unwired WorkSpace with a clean workspace.
  2. Create a mobile application project with the name "rest." The project is listed in Workspace Navigator and it appears in the mobile application diagram.
  3. From WorkSpace Navigator, right-click the project and select Rename.
  4. Enter a new project name of "rest1."

    The project disappears in WorkSpace Navigator, and only the mobile application diagram reflects the new name.

Workaround: Exit and restart Unwired WorkSpace with the same workspace. The renamed project appears in Unwired Navigator.

621243
The deployment and code generation of a mobile business object fails if you name it with one of these words that is a Java datatype or C# value type: binary, boolean, byte, char, date, datetime, time, decimal, double, float, object, int, integer, long, short, string.

Workaround: Do not use these words as part of the MBO name.

620612
The old value argument cannot be updated if the attribute maximum length is different than the enterprise information system (EIS) column to which it is bound.
The following update statement fails if the attribute maximum length is different than what is specified in the back end, and if the where clause with the old value does not match.
UPDATE sampledb.dba.department 
SET 
dept_name=:dept_name, 
dept_head_id=:dept_head_id 
WHERE (dept_id = :dept_id) 
AND (dept_name = :old.dept_name 
OR (dept_name IS NULL AND :old.dept_name IS NULL)) 
AND (dept_head_id = :old.dept_head_id 
OR (dept_head_id IS NULL AND :old.dept_head_id IS NULL))
The error returned to the device application is:
Caused by: com.sybase.vader.da.jdbc.MinCheckAffected
  RowCountException 
at com.sybase.vader.da.jdbc.JdbcCheckAffectedRowCount.execute
  (JdbcCheckAffectedRowCount.java:27) 
at com.sybase.vader.service.interaction.PipelineComposite
  InteractionOperation.execute(PipelineCompositeInteraction
  Operation.java:54) 
at com.sybase.vader.cache.modify.CacheInvalidating
  Operation.execute(CacheInvalidatingOperation.java:29) 
at com.sybase.vader.mms.DataServiceImpl.execute
  (DataServiceImpl.java:197)

Workaround:Remove the old value portions (of string column comparisons) from the where clause.

617546
An update operation fails if set maxlength for the attribute is less than the length in the enterprise information (EIS) database column.
If rtrim is not used in these cases, the update operation fails with this exception:
com.sybase.vader.da.jdbc.MinCheckAffected
  RowCountException.null
Workaround: Use the rtrim function in the SQL statement to update operations for char datatype columns, such as:
SELECT dept_id,
rtrim(dept_name) as dept_name,
dept_head_id FROM sampledb.dba.department
613403
When generating MBO attributes from an Adaptive Server Enterprise table, Visual SQL may display a SQLSTATE=42000 error message.

Because Unwired WorkSpace cannot retrieve the datatype of the parameter in the where clause when you access Visual SQL, the datatype is set to String by default, which can lead to a type conversion error.

Workaround: Ignore the warning message. The MBO is created successfully.

611864
When you drag and drop a stored procedure that uses one of seven datatypes as a parameter or returns a result-set with a column of one of these types to a new mobile business object, the result set contains only the RETURN_VALUE row.

The seven affected datatypes are: long varbit, varbit, uniqueidentifier, xml, long nvarchar, nchar, and nvarchar.

Workaround: None.

608903
When you execute a create operation on a mobile business object, and create includes a time datatype parameter, the SQL Anywhere® server incorrectly inserts a value of 00:00:00.0 for the time value. In Unwired Platform, if an MBO attribute is of type "TIME," there may be an issue when you refresh the consolidated database; the value may show as "00:00:00.0"

Workaround: Use a result-set filter to limit the digits for time to show only hh:mm:ss without the milliseconds. Refer to Result set filter documentation for the steps involved.

606143
Uppercase letters used in package name may cause issues.

If a package name contains uppercase character, as in "Test," and this package uses a role-related feature, the role feature does not work on device as expected.

Workaround: Do not use uppercase letters in the package name.

594744
The correct Date/Datetime/Time datatype cannot be retrieved when you create an MBO; the datatype is incorrectly set to string.

When you edit an MBO definition, you see a question, similar to Data source or definition has changed. Do you want to refresh and remap? If you select yes, you see an error message similar to The metadata is not in sync with the backend data source. This error is caused by a limitation with the JDBC driver.

Workaround:
  1. Click OK in the error dialog.
  2. In the Properties view, select Attributes > Load Parameters tab.
  3. Change the datatype of the parameter and datasource type to DATE/DATETIME/TIME to match the column type of the datasource.
  4. Specify the Propagate to column to match the datasource column to which it is being propagated.
  5. Refresh the definition to clear the error.
584645
Use the rtrim function in relationships between two string attributes which map from a char field.

When the enterprise information system (EIS) is an SQL Anywhere database and you create a relationship between two string attributes that map from a char field, and the nullability setting for the char field in the parent table is not null, the char field in child table is nullable. The relationship will not work.

Workaround: Manually update the query statement for the parent MBO to apply the rtrim() function to the char field in the column list.

For example, if the original query for the parent MBO is:
select region from sampledb.dbo.sales_regions
update the SQL statement to:
select rtrim(region) as region from sampledb.dbo.sales_regions
579990
Certain stored procedures in SQL Anywhere version 10, Eclipse may report a Call signature mismatch error when they are used to define an MBO.

Workaround: Update the stored procedures that jConnect™ for JDBC™ uses for accessing database metadata by running the SQL script provided with EBF #16903 for jConnect, available from the Sybase EBFs Maintenance page at http://downloads.sybase.com (login required). You can use the dbisql utility provided with SQL Anywhere version 10 to run the sql_asa10.sql file contained within the EBF to update these JDBC-access stored procedures.

579891
Generating code from the Mobile Application Diagram or from the Device Application Designer, or deploying projects to Unwired WorkSpace, leaves the project in an unsaved state.

Workaround: Save Unwired WorkSpace projects after generating code or deploying to Unwired Server.