「安全に在庫管理を行うテクニック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指定で無事に正常終了することができました!
引き続きよろしくお願いいたします。