kintone JS SDKによる在庫引当でエラー

「安全に在庫管理を行うテクニック2 - リビジョンを試そう -」で、サンプル通りに実装して、出庫登録すると「商品を取得できませんでした。」のエラーとなり登録できない。どなたか解決策を教えてください。

岡原さん

こんにちは。ひよこです。

利用している kintone JS SDK のバージョンはいくつでしょうか?

記事のコメントにあるように、v0.5.0 から引数の型が変わっていて(こんな感じ)、記事のコードを書き換えないといけません。

371868777151

コメントありがとうございます。素人のため助かります。

確かに記事コメントに記載ありましたね(;‘∀’)

バージョンは v0.7.3 になります。

教えて頂いた記事を参考に実装してみます!

 

371868777151

ご教示頂いた通り、実装したのですが「出庫に失敗しました。」とエラーが出ます。
なお、//実行 以降をコメントアウトすると出庫登録は正常終了しますが、在庫アプリの引き当ては変化なしです。
kintone JS SDKのバージョン「v0.7.4」で下記の実装内容ですが解決策を教えて欲しいです。

 

var kintoneBulkRequest = new kintoneJSSDK.BulkRequest({con});
var responseBulkRequest = kintoneBulkRequest
.updateRecordByID({itemAppId, recordId, stock, recordRevision}) // レコード更新(在庫アプリ)
.addRecord({warehouseAppId, warehouse}) // レコード追加(出庫アプリ)
.execute();

//debug
window.alert(‘debug12’);

// 実行
return responseBulkRequest
.then(function(postRes) {
//debug
window.alert(‘debug13’);

// bulkRequestで登録した詳細ページに移動
location.href = ‘/k/’ + warehouseAppId + ‘/show#record=’ + postRes.results[1].id;
// 登録画面のレコードは保存しない
return false;
})
.catch(function(error) {
console.log(error);
event.error = ‘出庫に失敗しました。’;
return event;
});
})
.catch(function(error) {
console.log(error);
event.error = ‘商品を取得できませんでした。’;
return event;
});

岡原さん

返答遅くなってすみません。

updateRecordsByID や addRecord のオブジェクトの指定の仕方が違っています。
keyとvalueの変数名が同じ時は省略できるんですけど、異なる場合はちゃんと key も書いてあげる必要があります。

> ECMAScript 2015 では、同じことを達成するために利用可能な短い表記があります。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer#Property_definitions

たとえば、updateRecordByIDの場合です。

updateRecordByID({itemAppId, recordId, stock, recordRevision}) 

と書いていると、

updateRecordByID({itemAppId: itemAppId, recordId: recordId, stock: stock, recordRevision: recordRevision}) 

というふうに指定していることになります。

でも、updateRecordByID の場合、オブジェクトのキーは、app, id, record, revision なので、
https://kintone.github.io/kintone-js-sdk/latest/reference/record/#updaterecordbyidparams

updateRecordByID({app: itemAppId, id: recordId, record: stock, revision: recordRevision}) 

と指定しないといけません。
こんな感じで、addRecord についても同じように key 名を指定してみてください。

あと、右クリックで「検証」(Chromeの場合)として開発者コンソールでログを確認すると、
詳細なログが見えるので、どのリクエストでエラーになっているか確認しやすいと思います。

 

371868777151

お世話になります。

お忙しいところご教示頂きましてありがとうございます。

key指定で無事に正常終了することができました!

引き続きよろしくお願いいたします。