JSDO properties, methods, and events reference : afterUpdate event
  

afterUpdate event

Fires after the JSDO, by means of a saveChanges( ) call following an assign( ) call, sends a request to update a record in the Data Object resource and receives a response to this request from the server.
This event fires after the response from an Update 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 updates has been received.
Note: A single Update operation request is sent for each record object that you have updated 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 update request. For more information, see the description of jsdo property of the request object.
record
A reference to the table record upon which the update request acted. For more information, see the description of jsrecord property of the request object.
success
A boolean that is true if the update 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 update 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, onAfterUpdate, to handle the afterUpdate event fired on the JSDO, myjsdo, created for an OpenEdge single-table resource, ttCustomer, where myid is the known ID of a record to find and update:
/* subscribe to event */
myjsdo.subscribe( 'afterUpdate', onAfterUpdate );

/* some code that might update one or more
records, then apply the updates on the server */
var jsrecord = myjsdo.findById(myid);
if (jsrecord) {jsrecord.assign( updatedDataObject );};
. . .

myjsdo.saveChanges();

function onAfterUpdate ( jsdo , record , success , request ) {
var myField,
lenErrors,
errors,
errorType;
    if (success) {
        /* for example, get the values updated by the server from the record
           to redisplay */
        var newValue = record.data.myField;
        . . .
    }
    else { /* Handle Update 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 Update operation errors */
};

See also:

assign( ) method (JSDO class), beforeUpdate event, saveChanges( ) method, subscribe( ) method (JSDO class), unsubscribe( ) method (JSDO class)