讨论社区

使用bulkrequest更新记录的时候,如果记录被更改,会有修订版本错误

在error情况下需要报错,但记录编号要这么获取呢。 下面是代码,revision 要如何使用?不是很理解这个意思


function getdata(id,rids){

    var keys= rids.join();

    var body={

        'app':id,

        'query':'$id in ('+keys+')'

    };

    var bodys={

        "requests": []

    }

    kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body, function(resp) {

        // success

        var firstID=resp.records[0].$id.value;

        var firstTab=resp.records[0][table].value;

        

        for(var i=1;i<resp.records.length;i++){

            var tablevalue=resp.records[i][table].value;

            var upID=resp.records[i].$id.value;//修改 记录 id

            for(var j=0;j<tablevalue.length;j++){

                var rows={};

                rows['value']=resp.records[i][table]['value'][j]['value'];

                firstTab.push(rows);//表格记录 

                var request={

                    "method": "PUT",

                    "api": "/k/v1/record.json",

                    "payload": {

                        "app": id,

                        "id": upID,

                        "revision": 2,

                        "record":{

                            "radActiveFlg":{

                                "value":["削除する"]

                            }

                        }

                    }

                };

                bodys.requests.push(request);

            }

        }

        var trequest={

            "method": "PUT",

            "api": "/k/v1/record.json",

            "payload": {

                "app": id,

                "id": firstID,

                "revision": 2,

                "record":{}

            }

        };

        trequest.payload.record[table]={"value":firstTab};

        bodys.requests.push(trequest);

        //console.log(bodys);

        kintone.api(kintone.api.url('/k/v1/bulkRequest', true), 'POST', bodys, function(resp) {

            //success

            errorCount=0;

            console.log(resp);

        }, function(error) {

            //error

            console.log(error);

            // radShowSweetAlert(radGetCommonMessage(15900,id,upID),1);

            // errorCount++;

            // if(errorCount>3){

            //     radShowSweetAlert(radGetCommonMessage(15010,id,upID),1);

            // }

        });

        

    }, function(error) {

        // error

        console.log(error);

    });

}


0 人关注了该问题 关注

0

cybozu • 6月前

如果你想确保你的数据是最新的,只需要再做一次查询,获取到revision后再将这个revison的值作为参数传入就行了

0 个讨论

您需要登录后才可回复
0

cybozu • 6月前

你好。

是的没错,revision 就是来提示你之前获取到的数据是不是最新版本,如果数据被更新,revision 也会跟着更新,来确保你更新的版本在你更新前是最新的。如果你不在乎你的数据在之前被更新了,直接忽略这个revision参数或者将其设置为-1就行了。

revision数值或字符串可省略修订号。和实际的修订号不一致时报错(不会更新记录)。 
但值为-1时或不指定时,将不检验修订号。


0 个讨论

您需要登录后才可回复
您需要登录后才可以回复