Multilevel Insert

Multilevel insert allows a single synchronization to execute a chain of related insert operations.

Consider creating a Customer and a new Customer order at the same time on the client side, where the SalesOrder has a reference to the new Customer identifier. The following example demonstrates a multilevel insert:

Customer customer = new Customer();
customer.setFname(“firstName”);
customer.setLname(“lastName”);
customer.setPhone(“777-8888”);
customer.save();
SalesOrder order = new SalesOrder();
order.setCustomer(customer);
order.setOrder_date(new java.util.Date());
order.setRegion("Eastern");
order.setSales_rep(102);
customer.getOrders().add(order);
//Both the child and parent MBO must call save()
order.save();
//Must submit parent
...

To insert an order for an existing customer, first find the customer, then create a sales order with the customer ID retrieved:

Customer customer = Customer.findById(101);
SalesOrder order = new SalesOrder();
order.setCustomer(customer);
order.setOrder_date(new java.util.Date());
order.setRegion("Eastern");
order.setSales_rep(102);
customer.getSalesOrders().add(order);
order.save();
customer.submitPending();

See the Sybase Unwired Platform online documentation for specific multilevel insert requirements.