Configuring Data Synchronization by Filtering a Client Parameter

Filtering by a client parameter determines synchronization behavior and affects caching of Enterprise Information System (EIS) information on Unwired Server when a mobile business object (MBO) is accessed by a device application.

  1. From the Mobile Application Diagram, right-click the MBO for which you are configuring synchronization and select Show Properties View.
  2. In the Properties view, select the Attributes tab located on the left side, then select the Parameters tab located on the top.
  3. Unselect Hide Advanced Columns.
  4. Select Filter by and define a parameter, include the Parameter Name, Datatype, and other properties described here.
    If the attribute has a Filter by parameter set, the value can be supplied by the client each time it synchronizes the MBO:
    • If the parameter includes a Default Value, and Required is selected, the client must supply a value. Otherwise, a client-supplied value is optional.
    • If a value is optional, and the client does not supply one, Unwired Server synchronizes based on the specified Default Value.
    • If a Personalization Key is specified, the client is not required to specify a value for the parameter, but must define a personalization value for the key before successfully synchronizing the MBO.

    During subsequent synchronizations, the client may provide different values for the parameter, which affects Enterprise Information System (EIS) data refresh results from Unwired Server.

You develop an MBO named "salesOrder" and define a Filter by parameter named "region". The default value of "region" is "Eastern." Once the MBO is deployed to Unwired Server, the implications of setting Filter by are:
  1. The Unwired Server Cache (consolidated database or Cdb) is partitioned for the MBO data based on the value of the Filter by parameter. In this example, the "region" parameter is passed to the database MBO:
    select * from sales_order where region = ?
  2. The results from the select query populate the salesOrder MBO, but the MBO data's cache Cdb is also partitioned by the region value (Eastern). Meaning that when the MBO executes with region equal to "Eastern", the set of rows returned is compared against the previously cached results only from a previous execution of the query with region equal to "Eastern". None of the CDb rows containing salesOrder data for the region equal to "Southern" are considered in this differential calculation.
If the developer unselects Filter by, redeploys, and runs this query against the MBO:
select * from sales_order where region = ?

  1. The first query after redeployment with region equal to "Eastern" populates the cache with Eastern region sales orders.
  2. If the second query runs with region equal to "Southern", all rows in the Cdb are different, resulting in the deletion of all Eastern rows, the insertion of Southern rows, and the additional overhead required to perform the operation. In this scenario, clients synchronizing this MBO see all the different rows, since the data was not filtered by a parameter.


Created September 17, 2009. Send feedback on this help topic to Sybase Technical Publications: pubs@sybase.com