Troubleshoot mobile business object (MBO) behavior problems.
Problem: The MBO does not retrieve the expected data.
Explanation: When you create a relationship to a mobile business object and define a synchronization parameter for the child object, the child object can no longer be used to retrieve all the items. If you want the MBO to retrieve all items, you must create a new MBO without relationships, or create the relationship to the MBO and set the synchronization parameter. Set the synchronization parameter with a default or a personalization key, or allow the user to input the value of the synchronization parameter.
Solution:
If there is a structured parameter in an operation, such as create, update, or delete, the Device Application Designer "flattens" that structured parameter out to a single row for each parameter. This means you can set only one row in the table inputs.
For example, if an MBO includes a create-customer operation with these parameters:
name phone orders[] id, description, quantity
the device application shows it as:
name phone orders.id orders.description orders.quantiy {submit}
This means that you can create only one order in this form.
Workaround: Convert the structured parameters to regular parameters by manually changing the "periods" to "underscores".
Problem: If you update operations on a child MBO and synchronize the parent MBO, the updated data shows correctly on the parent MBO, but a pending status record still shows on the child MBO. This also affects table and list detail MBOs.
Workaround: If the MBO to which you are adding a synchronization action has a child MBO, you must add a Refresh action to the screen of the child MBO so that the screen refreshes with the updated data.