<object>.markForUpload
The <object>.markForUpload API selects the changes made to the records and sent to the server. If the markForUpload flag is not enabled, the changes made are deferred from uploading to the server until marked for upload using specific markForUpload APIs.
The markForUpload flag is set to true, by default.
Note:
- Supported for Windows from V8 SP4 Fix Pack 6 onwards.
- Supported for Mobile Web and Desktop Web channels from V8 SP4 Fixpack 12 onwards.
Volt MX Iris (JavaScript)
Signature
<object>.markForUpload(options, successCallback, failureCallback)
Parameters
Parameter | Type | Description | Required |
options | JSON | A dictionary containing mandatory key primaryKeys which contains the PK (column name and value). In case of a composite PK, the dictionary will contain multiple key-value pairs. | Yes |
successCallback | Function | The function is invoked when the changes are successfully uploaded to the server. | Yes |
failureCallback | Function | The function is invoked when the changes are deferred from uploading to the server. | Yes |
Options Keys
Keys | Type | Description | Required |
primaryKeys | JSON | Specify the primary keys of the record to select a query. Key Name: primaryKeys and value is a dictionary of primary keys. | Yes |
Return Type
void
Example
var category = new voltmx.sdk.VMXObj("CATEGORY");
var options = {};
var primaryKeys["CategoryID"] = "1";
options["primaryKeys"] = primaryKeys;
//mark the deferred record for upload with primary key 1
category.markForUpload(options, successCallback, failureCallback);
function successCallback() {
voltmx.print("markForUpload successful");
}
function errorCallback(error) {
voltmx.print("markForUpload failed " + error.code);
}
Android (Java)
Signature
<VMXObj>.markForUpload(final HashMap<String, Object> options, final VMXCallback callback)
Parameters
Parameter | Type | Description | Required |
options | HashMap<String, Object> | key: primaryKeys. Value: HashMap<String, Object>: Pass a hashmap of primary keys and its value. HashMap containing PK (column name and value). In case of a composite PK, the dictionary will contain multiple key-value pairs. | Yes |
callback | VMXCallback | Takes onSuccess and onFailure methods. | Yes |
Options Keys
Keys | Type | Description | Required |
primaryKeys | HashMap<String, Object> | Specify the primary keys of the record for the select query. Key Name: primaryKeys and respective values to populate primaryKeys map. | Yes |
Return Type
void
Examples
VMXObj category = new VMXObj("CATEGORY");
HashMap < String, Object > options = new HashMap < String, Object > ();
HashMap < String, Object > primaryKeys = new HashMap < String, Object > ();
primaryKeys.put("CATEGORY_ID", "1");
options.put("primaryKeys", primaryKeys);
//mark the deferred record for upload with primary key 1
category.markForUpload(options, new VMXCallback() {
@Override
public void onSuccess(Object object) {
Log.d("Object markforupload", "Object markforupload Successful ");
}
@Override
public void onFailure(object error) {
OfflineObjectsException e = (OfflineObjectsException) error;
Log.e("Object markforupload", "Object markforupload unsuccessful for category with Error :" + e.getMessage());
}
}
iOS (Objective C)
Signature
void <VMXObj> markForUpload:(NSDictionary <NSString *, id> *)options
onSuccess:(VMXSuccessCompletionHandler)onSuccess
onFailure:(VMXFailureCompletionHandler)onFailure
Parameters
Parameter | Type | Description | Required |
options | NSDictionary | key: primaryKeys. Value: Dictionary containing PK (column name and value). In case of composite PK, the dictionary will contain multiple key-value pairs. | Yes |
onSuccessCallback | VMXSuccessCompletionHandler | The function is invoked when the changes are successfully uploaded to the server. | Yes |
onFailCallback | VMXFailureCompletionHandler | The function is invoked when the changes are deferred from uploading the server. | Yes |
Options Keys
Keys | Type | Description | Required |
primaryKeys | NSDictionary<NSString*, id> | Specify the primary keys of the record to select the query. Key name: primaryKeys and value is a dictionary of primary keys. | Yes |
Return Type
void
Example
NSError error = nil;
VMXObj * _categories = [
[VMXObj alloc] initWithName: @"CATEGORY"
error: & error
];
NSDictionary * primaryKeys = @ {@
"CATEGORY_ID": "1"
};
NSDictionary * options = @ {
"primaryKeys": primaryKeys
};
//mark the deferred record for upload with primary key 1
[_categories markForUpload: options
onSuccess: ^ () {
NSLog(@"Object markforupload successful ");
}
onFailure: ^ (id object) {
OfflineObjectsError * error = (OfflineObjectsError) object;
NSLog(@"Object markforupload unsuccessful because of error:%@", [error.userInfo
localizedDescription
]);
}
];
Utility API
The API returns all the deferred records primary keys for a particular object.
Volt MX Iris (JavaScript)
Note:
- Supported for Windows from V8 SP4 Fix Pack 6.
- Not supported for Mobile Web, and Desktop Web channels.
Signature
<object>.getUploadDeferredRecordKeys(successCallback, failureCallback)
Example
var category = new voltmx.sdk.VMXObj("CATEGORY");
category.getUploadDeferredRecordKeys(successCallback, failureCallback);
function successCallback(result) {
for (var pks in result) {
voltmx.print("deferred records with primary keys " + JSON.stringify(pks));
}
}
function failureCallback(error) {
voltmx.print("failed with error " + error.code);
}
Android (Java)
Signature
void <VMXObj>. getUploadDeferredRecordKeys (final VMXCallback callback)
Example
VMXObj category = new VMXObj("CATEGORY");
category.getUploadDeferredRecordKeys(new VMXCallback() {
@Override
public void onSuccess(Object result) {
List < HashMap < String, Object >> pksList = (List < HashMap < String, Object > ) result;
for (HashMap < String, Object > pks: pksList) {
for (Map.Entry < String, Object > e: pks.entrySet()) {
Log.d("deferred record with key : " + e.getKey() + "value: "+e.getValue());
}
}
}
}
@Override
public void onFailure(Object error) {
OfflineObjectsException e = (OfflineObjectsException) error;
Log.e("getDeferredUpload", "getDeferredUpload failed with error " + e.getMessage());
}
});
iOS (Objective C)
Signature
<void> [<VMXObj> getUploadDeferredRecordKeys: (VMXSuccessCompletionHandler) onSuccess
onFailure: (VMXFailureCompletionHandler) onFailure]
Example
NSError error = nil;
VMXObj * _categories = [
[VMXObj alloc] initWithName: @"CATEGORY"
error: & error
];
[_categories getUploadDeferredRecordKeys: onSuccess: onFailure: onFailure];
VMXSuccessCompletionHandler onSuccess = ^ void(id result) {
NSArray * pks = (NSArray * ) result;
for (id obj in pks) {
for (id key in obj) {
NSLog(“key % @, value % @“, key, [obj objectForKey: key]);
}
}
}
VMXFailureCompletionHandler onFailure = ^ void(id error) {
NSLog("failed with error " + error.code);
}