JSDO properties, methods, and events reference : afterCreate event
  

afterCreate event

Fires after the JSDO, by means of a saveChanges( ) call following an add( ) call, sends a request to create a record in the Data Object resource and receives a response to this request from the server.
This event fires after the response from a Create operation request (sent without using Submit) has been received, and fires after the response from a Submit operation request for each one of possibly multiple record creates has been received.
Note: A single Create operation request is sent for each record object that you have created in the JSDO with a single call to saveChanges( ) or saveChanges(false). A single Submit operation request for any and all created, updated, and deleted JSDO record objects is sent with a single call to saveChanges(true).
Applies to: progress.data.JSDO class, table reference property (JSDO class)
The following parameters appear in the signature of any event handler (callback) function (or functions) that you subscribe to this event:

Syntax

function ( jsdo , record , success , request )
jsdo
A reference to the JSDO that invoked the create request. For more information, see the description of jsdo property of the request object.
record
A reference to the table record upon which the create request acted. For more information, see the description of jsrecord property of the request object.
success
A boolean that is true if the create request was successful. For more information, see the description of success property of the request object.
request
A reference to the request object returned after the create request completes. For more information, see the description of request object.
Application code can subscribe a callback to this event by invoking the subscribe( ) method on a JSDO instance or one of its table references.

Example

The following code fragment subscribes the function, onAfterCreate, to handle the afterCreate event fired on the JSDO, myjsdo, created for an OpenEdge single-table resource, ttCustomer, where newRecordData is an object containing the field values to set in the new record:
/* subscribe to event */
myjsdo.subscribe( 'afterCreate', onAfterCreate );

/* some code that might add one or more
records and save them on the server */
var jsrecord = myjsdo.add( newRecordData );
. . .

myjsdo.saveChanges();

function onAfterCreate ( jsdo , record , success , request ) {
var myField,
lenErrors,
errors,
errorType;
    if (success) {
        /* for example, get the values from the record for redisplay */
        myField = record.data.myField;
        . . .
    }
    else { /* Handle Create operation errors */
errors = jsdo.ttCustomer.getErrors();
lenErrors = errors.length;
for (var idxError=0; idxError < lenErrors; idxError++) {
switch(errors[idxError].type) {
case progress.data.JSDO.DATA_ERROR:
errorType = "BI Data Error: ";
break;
case progress.data.JSDO.RETVAL:
errorType = "Server App Return Value: ";
break;
case progress.data.JSDO.APP_ERROR:
errorType = "Server App Error #"
+ errors[idxError].errorNum + ": ";
break;
case progress.data.JSDO.ERROR:
errorType = "Server General Error: ";
break;
}
/* Log error type and message for current error */
console.log("ERROR: " + errorType + errors[idxError].error);
if (errors[idxError].id) { /* Log info for error with record object */
console.log("RECORD ID: " + errors[idxError].id);
/* If the error record ID matches the operation
record ID, log the record data values */
if (errors[idxError].id == record.getId()) {
console.log ("Customer Record Fields:");
console log (" CustNum = " + record.data.CustNum);
. . .
}
}
/* Log additional HTTP text for web or other server errors */
if (errors[idxError].responseText) {
console.log("HTTP FULL TEXT: " + errors[idxError].responseText);
}
}
    } /* End Create operation errors */
};

See also:

add( ) method, beforeCreate event, record property, saveChanges( ) method, subscribe( ) method (JSDO class), unsubscribe( ) method (JSDO class)