如何避免IBM JSONStore中的重复条目

时间:2017-11-25 19:14:23

标签: ibm-mobilefirst mobilefirst-adapters jsonstore ibm-mobile-services

WL.JSONStore.get(collectionName).change(data,options)方法似乎不适用于重复值。每当通过适配器加载数据时,我都会输入重复值。下面是我用来避免重复输入的代码。

init(){
console.log('JSONStore init function callled');
let collections = {
  activities: {
    searchField: {serialKey: 'string'},
    adapter: {
      name: 'ServiceAdapter',
      add: 'pushActivities',
      remove: 'removeActivity',
      replace: 'replaceActivity',
      load: {
          procedure: 'getActivities',
          params: [],
          key: 'rows'
      }
  }
  }
}
WL.JSONStore.init(collections).then((success) => {
  console.log('-->JSONStore init success')
}, (failure) => {
  console.log('-->JSONStore init failed', failure)
})
}

load() {
let dataRequest = new 
WLResourceRequest("/adapters/ServiceAdapter/getActivities", 
WLResourceRequest.GET);
dataRequest.send().then(
(response) => {
this.data = response.responseJSON.rows;
this.activityService.put(this.data);
})
}

put(data){
console.log('--> JSONStore put function called');
let collectionName = 'activities';
let options = {
  replaceCriteria: ['serialKey'],
  addNew: true,
  markDirty: false
};
WL.JSONStore.get(collectionName).change(data, options).then((success) => {
  console.log('--> JSONStore put success')
}, (failure) => {
  console.log('--> JSONStore put failed', failure)
})
}

适配器功能:

function getActivities() {
var path = 'employees' + '/_all_docs?include_docs=true';
var input = {
    method : 'get',
    returnedContentType : 'json',
    path : path,
};
var response = MFP.Server.invokeHttp(input);
if (!response.rows) {
    response.isSuccessful = false;
    return response;
} else {
    var results = [];
    for (var i=0; i < response.rows.length; i++) {
        results.push(response.rows[i].doc);
    }
    return {'rows': results};
}
}       

我甚至尝试过:

searchFields: {serialKey: 'string',serialId: 'string'}
replaceCriteria: ['serialKey','serialId']

但没有运气。 注意:前者没有错误,后者导致错误。

错误:PROVISION_TABLE_SEARCH_FIELDS_MISMATCH(我已经尝试销毁集合并执行更改,正如link建议的那样。

我已按照以下链接:

https://www.youtube.com/watch?v=Ep6w1zXoI-k

我使用以下版本: mfpdev:8.0.0-2017102406

如果您需要更多详细信息,请与我们联系。

0 个答案:

没有答案