Skip to content

VMXFoundry.OfflineObjects.incrementalSetup

The Offline Objects incrementalSetup API allows the client application to consume the latest changes made to Volt MX Foundry app’s object services schema after a particular timestamp, without breaking the existing functionality. Similar to setup API, incrementalSetup API is also an application-level API with same method arguments.

Note:
  • Either setup or incrementalSetup API must be invoked on first time launch of the app.
    Incremental setup API is not supported on multi-tenant environment.
  • End users should have the latest schema (for the currently installed version) in the device before doing an app upgrade. To fetch the latest schema, the app needs to call an incremental setup API.

Scenarios that are supported in incrementalSetup:

  • Addition and deletion of the objects in an Object Service.
  • Update operations on objects in an Object Service as:
    • Addition and deletion of new non-primary key columns.
    • Update properties like nullable, unique, and auto generated on non-primary key attributes.
    • Update change tracking parameters like attributes for identifying a soft delete and change tracking timeStamp field.

      Note: If the timeStamp attribute is not linked to an object field, the incremental sync and delete operations will fail for records associated with that object.

Unsupported scenarios include:

  • Addition, deletion, or any update on primary key attributes.
  • Update attribute properties such as data type and length.

Volt MX Iris (JavaScript)

Signature

VMXFoundry.OfflineObjects.incrementalSetup(options, onSuccess, onFailure)

Parameters

Parameter Type Description Required
options JSON Options based on which incrementalSetup is performed. Yes
SuccessCallback Function Callback invoked upon successful incremental setup. Yes
FailureCallback Function Callback invoked upon unsuccessful incremental setup. Yes

incrementalSetup Options

Parameter Type Description Required
deviceDbEncryptionKey String password No (it is mandatory if encrypted in previous application setup).
treatBooleanFieldValuesAsNumeric Boolean If the treatBooleanFieldValuesAsNumeric key is set to false, all the boolean field values are converted to boolean type (true or false) during upload session or on reading records from local device database. When the option is set to true, fallbacks to default implementation (uploading and reading boolean field values as numeric). By default, the key is set to True.
Note: Supported for iOS, Android and Windows from V8 SP4 Fix Pack 102 onward
No

Example

function onSuccess(result) {
//Operation to be performed on successful incremental Setup.
}

function onFailure(err) {
//Operation to be performed on unsuccessful incremental Setup.
}

try {
var options;
var mfInstance = voltmx.sdk.getCurrentInstance();
mfInstance.OfflineObjects.incrementalSetup(options, onSuccess, onFailure);
} catch (err) {
alert("Exception in incremental setup " + err);
}

Android (Java)

Signature

void <OfflineObjects>.incrementalSetup(final HashMap<String, Object> options, final VMXCallback syncCallback)

Parameters

Parameter Type Description Required
options Hashmap<String, Object> Options based on which incrementalSetup is performed. Yes
syncCallback VMXCallback Takes onSuccess and onFailure methods. Yes

incrementalSetup Options

Parameter Type Description Required
deviceDbEncryptionKey String password No (it is mandatory if encrypted in previous application setup).
treatBooleanFieldValuesAsNumeric Boolean If the treatBooleanFieldValuesAsNumeric key is set to false, all the boolean field values are converted to boolean type (true or false) during upload session or on reading records from local device database. When the option is set to true, fallbacks to default implementation (uploading and reading boolean field values as numeric). By default, the key is set to True.
Note: Supported for iOS, Android and Windows from V8 SP4 Fix Pack 102 onward
No

Example

try {

    VoltMXClient client = new VoltMXClient();
    HashMap < String, Object > options = null;
    IVoltMXApplicationSync appSync = client.getOfflineObjects();
    appSync.incrementalSetup(options, new VoltMXSyncCallback() {
        @Override
        public void onSuccess(Object object) {
            Log.d("Incremental Setup", "Incremental Setup Succeeded");
            //operation to be performed on successful incremental setup.
        }

        @Override
        public void onFailure(VoltMXException voltmxException) {
            Log.e("Incremental Setup", "Incremental Setup failed with Exception :" + voltmxException.getMessage());
            voltmxException.getStackTrace();
            //operation to be performed on failed incremental setup.
        }

    });

} catch (Exception e) {
Log.e("Exception in incremental setup" + e.getMessage());
}

iOS (Objective C)

Signature

(void) < OfflineObjects > .incrementalSetup: (NSDictionary < NSString _ , id > _ ) options
onSuccess: (VMXSuccessCompletionHandler) onSuccess
onFailure: (VMXFailureCompletionHandler) onFailure

Parameters

Parameter Type Description Required
options NSDictionary Options based on which incrementalSetup is performed. Yes
onSuccess VMXSuccessCompletionHandler The function is invoked on successful incremental setup. Yes
onFailure VMXFailureCompletionHandler The function is invoked on unsuccessful incremental setup. Yes

incrementalSetup Options

Parameter Type Description Required
deviceDbEncryptionKey NSString password No (it is mandatory if encrypted in previous application setup).
treatBooleanFieldValuesAsNumeric Boolean If the treatBooleanFieldValuesAsNumeric key is set to false, all the boolean field values are converted to boolean type (true or false) during upload session or on reading records from local device database. When the option is set to true, fallbacks to default implementation (uploading and reading boolean field values as numeric). By default, the key is set to True.
Note: Supported for iOS, Android and Windows from V8 SP4 Fix Pack 102 onward
No

Example

NSError _ error;
VMXClient _ client = [VMXClient sharedClient];
VMXApplicationSync * applicationSync = [client getOfflineObjects];

VMXSuccessCompletionHandler onSuccess = ^ void(id object) {
NSLog(@"incremental Setup successful");
};

VMXFailureCompletionHandler onFailure = ^ void(id object) {
NSLog(@"incremental Setup failed");
};

NSDictionary < NSString _ , id > _ options = nil;

[applicationSync incrementalSetup: options
onSuccess: onSuccess
onFailure: onFailure
];