Create Operation

The create operation allows the client to create a new record in the local database. To execute a create operation on an MBO, create a new MBO instance, and set the MBO attributes, then call the save() or create() operation. To propagate the changes to the server, call submitPending.

(void)create

Example 1: Supports create operations on parent entities. The sequence of calls is:

SMP101Customer *newcustomer = [[SMP101Customer alloc] init];
newcustomer.fname = @”John”;
...  //Set the required fields for the customer
[newcustomer create];
[newcustomer submitPending];
[SMP101SMP101DB synchronize];

Example 2: Supports create operations on child entities.

SMP101Sales_Order *order = [[SMP101Sales_Order alloc] init];
[order autorelease];
//Set the other required fields for the order
order.region = @"Eastern";
order.xxx = yyy;

SMP101Customer *customer = [SMP101Customer find:1008];
[order setCustomer:customer];
[order create];
[order.customer refresh]; //refresh the parent
[order.customer submitPending];  //call submitPending on the parent.
[SMP101SMP101DB synchronize];
Note: If refresh is called on an MBO object before it has been created in the client database, the object may be left in an inconsistent state, or an exception may be thrown. Prevent this from occurring by adding code to your application that only calls refresh on an object that was previously created or saved in the database. For example:
if (!(mboInstance.isNew))    
[mboInstance refresh];