PROVISION_TABLE_SEARCH_FIELDS_MISMATCH для инициализации IBM Mobile First JsonStore

Я использую Javascript JSONStore для инициализации коллекции JsonStore в IBM Mobile First Platform 8.0.0. Проблема, с которой я столкнулся, заключается в том, что приведенный ниже код работает нормально для некоторых устройств, а для некоторых устройств это дает ошибку ниже.

Я что-то упустил здесь для инициализации JsonStore в IBM MFP 8.0? Любая помощь будет оценена по достоинству.

$scope.init_collection = function () {
    ProgressIndicator.showSimpleWithLabel(false, 'Loading...');

    //Data Collection

    collections1['COLLECTION_NAME'] = {
        searchFields: {'id': 'string', 'processid': 'string', 'state': 'integer'}
    };

    WL.JSONStore.init(collections1, options)
    .then(function () {
        WL.Logger.info("Inside Task Submission Collection");

        WL.JSONStore.fileInfo()
                                .then(function (res) {
                                WL.Logger.debug(" Success response of Task Submission Collection fileInfo :" +JSON.stringify(res));
                                  //res => [{isEncrypted : true, name : carlos, size : 3072}]
                                })

                                  .fail(function (failRes) {
                                  WL.Logger.debug("Failure response of Task Submission Collection fileInfo :" +JSON.stringify(failRes));
                                  // Handle failure.
                                });
    })
    .fail(function (errorObject) {
        //WL.Logger.error(Messages.ERR_LGN_FAIL_INI_DTA_STRG);
        WL.Logger.error("Initialization failure on : Task Submission Collection "+JSON.stringify(errorObject));
    });
    //WL.Logger.info(Messages.INF_LGN_INI_DTA_STRG);
    //Data Collection

    //Image Collection

    collections2["COLLECTION_IMAGE"] = {
        searchFields: {'id': 'string', 'processid': 'string', 'isImageSubmitted': 'boolean'}
    };

    WL.JSONStore.init(collections2, options)
    .then(function () {
        WL.Logger.info("Inside Image Submission Collection");

        WL.JSONStore.fileInfo()
                                    .then(function (res) {
                                    WL.Logger.debug(" Success response of Image Submission Collection fileInfo :" +JSON.stringify(res));
                                      //res => [{isEncrypted : true, name : carlos, size : 3072}]
                                    })

                                      .fail(function (failRes) {
                                      WL.Logger.debug("Failure response of Image Submission Collection fileInfo :" +JSON.stringify(failRes));
                                      // Handle failure.
                                    });
    })
    .fail(function (errorObject) {
        //WL.Logger.error(Messages.ERR_LGN_FAIL_INI_IMG_CLL);
        WL.Logger.error("Initialization failure on : Image Submission Collection "+JSON.stringify(errorObject));
    });
    //WL.Logger.info(Messages.INF_LGN_CLL_INI);

    //Image Collection


    //TODAY Collection

    collections3["COLLECTION_TODAY"] = {
        searchFields: {'id': 'string', 'processid': 'string', 'state': 'integer', 'insname': 'string'}
    };
    WL.JSONStore.init(collections3, options)
    .then(function () {
        WL.Logger.info("Inside Task List Collection");

        WL.JSONStore.fileInfo()
        .then(function (res) {
            WL.Logger.debug("Success response of Task List Collection fileInfo :" +JSON.stringify(res));
                                      //res => [{isEncrypted : true, name : carlos, size : 3072}]
        })
        .fail(function (failRes) {
            WL.Logger.debug("Failure response of Task List Collection fileInfo :" +JSON.stringify(failRes));
            // Handle failure.
        });
    })
    .fail(function (errorObject) {
        //WL.Logger.error(Messages.ERR_LGN_FAIL_INI_IMG_CLL);
        WL.Logger.error("Initialization failure on : Task List Collection "+JSON.stringify(errorObject));
    });
    //WL.Logger.info(Messages.INF_LGN_CLL_INI);

    //TODAY Collection

    //List Collection
    collections4["COLLECTION_LIST"] = {
        searchFields: {'name': 'string'}
    };
    WL.JSONStore.init(collections4, options)
    .then(function () {
        WL.Logger.info("Inside Inspector List Collection");

        WL.JSONStore.fileInfo()
        .then(function (res) {
            WL.Logger.debug("Success response of Inspector List Collection fileInfo :" +JSON.stringify(res));
                                      //res => [{isEncrypted : true, name : carlos, size : 3072}]
        })
        .fail(function (failRes) {
            WL.Logger.debug("Failure response of Inspector List Collection fileInfo :" +JSON.stringify(failRes));
            // Handle failure.
        });
    })
    .fail(function (errorObject) {
        //WL.Logger.error(Messages.ERR_LGN_FAIL_INI_IMG_CLL);
        WL.Logger.error("Initialization failure on : Inspector List Collection " +JSON.stringify(errorObject));
    });
    WL.Logger.info(Messages.INF_LGN_CLL_INI);
    //List Collection

};

Сообщение об ошибке «PROVISION_TABLE_SEARCH_FIELDS_MISMATCH» может появиться, когда


person kaushik parmar    schedule 21.01.2018    source источник


Ответы (1)


Поля поиска не являются динамическими. Невозможно изменить поля поиска без вызова метода destroy или метода removeCollection перед вызовом метода init или open с новыми полями поиска. Эта ошибка может возникнуть, если вы измените имя или тип поля поиска. Например: {key: ‘string’} на {key: ‘number’} или {myKey: ‘string’} на {theKey: ‘string’}.

Дополнительные сведения см. здесь: http://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/troubleshooting/jsonstore/

Привет, проблема только с некоторыми устройствами. Он отлично работает с реальными устройствами или симуляторами, но выдает ошибку PROVISION_TABLE_SEARCH_FIELDS_MISMATCH для нескольких устройств. Это случайная проблема. Мы выполнили указанную вами ссылку, но проблема по-прежнему сохраняется.

person manjunath kallannavar    schedule 22.01.2018
comment
Можете ли вы указать, на каких устройствах и версиях Android вы видите проблему? - person kaushik parmar; 22.01.2018
comment
мы сталкиваемся с этой проблемой в Pixel XL Android API 25, 26 и 27. Мы проводим тестирование приложения на реальных устройствах Google Pixel. - person manjunath kallannavar; 22.01.2018
comment
Я успешно протестировал пример приложения магазина JSON в Pixel Android 25 и 26. Поделитесь своим приложением, в котором наблюдается проблема, я проверю свое пиксельное устройство и увижу, что блокирует запуск вашего приложения на пиксельном устройстве. - person kaushik parmar; 22.01.2018
comment
Вы изменяете или добавляете новые поля поиска к полям поиска существующей коллекции. - person manjunath kallannavar; 22.01.2018
comment
01-19 19:49:43.487 11622-11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java:197 :: Несоответствие схемы таблицы для существующей коллекции. 01-19 19:49:43.492 11622-11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java:197 :: диспетчерское действие "provision" 01-19 19:49:43.498 11622-11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java:197 :: вызов диспетчера действий "provision" с параметрами: 01-19 19:49:43.501 11622-11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java :197 :: dbName = spectorList 01-19 19:49:43.505 11622-11622/com.mobiInspect D/WebView: оценкаJavascript=cordova.callbackFromNative('LoggerPlugin1661877744',true,1,["OK"],false); 01-19 19:49:43.506 11622-11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java:197 :: schema={"name":"string"} 01-19 19:49:43.512 11622 -11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java:197 :: options=[значение не зарегистрировано] 01-19 19:49:43.515 11622-11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java:197 :: AdditionalSearchFields={} 01-19 19:49:43.519 11622-11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java:197 :: dropCollection=false 01-19 19: 49:43.523 11622-11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java:197 :: username=jsonstore 01-19 19:49:43.529 11622-11646/com.mobiInspect D/JSONSTORE: JSONStoreLogger.logTrace в JSONStoreLogger.java:197 :: collectionPassword=xxxxxxxx 01-19 19:49:43.533 11622-11646/com.mobiInspect E/null: Ошибка инициализации: Коллекция списка задач {"src":"initCollection","err": -2,"мс g":"PROVISION_TABLE_SEARCH_FIELDS_MISMATCH","col":"myTasks","usr":"jsonstore","doc":{},"res":{}} 01–19 19:49:43.535 11622-11646/com .mobiInspect E/wl.jsonstore: {"src":"initCollection","err":-2,"msg":"PROVISION_TABLE_SEARCH_FIELDS_MISMATCH","col":"myTasks","usr":"jsonstore","doc ":{},"res":{}} 01-19 19:49:43.753 11622-11633/com.mobiInspect I/art: фоновая липкая одновременная развертка меток Сборщик мусора освободил 41582 (2 МБ) объекты AllocSpace, 0 (0B) LOS объекты, 10 % свободно, 15 МБ/17 МБ, приостановлено 3,657 мс, всего 148,294 мс 01–19 19:49:43,768 11622–11646/com.mobiInspect D/wl.response: WLResponse. в WLResponse.java:69 :: Ответ не включает заголовок Content-Encoding. Попытка прочитать тело ответа. 01-19 19:49:43. 814 11622-11646/com.mobiInspect D/wl.request: WLRequestSender.run в WLRequestSender.java:43 :: Отправка запроса https://www.serverurl.com/mfp/api/az/v1/токен - person manjunath kallannavar; 23.01.2018