# 在庫管理について

**URL:** <https://community.cybozu.dev/t/topic/10386>\
**Category:** kintone の構築／設計／運用\
**Created:** [2025 年 5 月 15 日午前 1:46 UTC](https://community.cybozu.dev/t/topic/10386 "2025-05-15T01:46:51Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![m.f](https://avatars.discourse-cdn.com/v4/letter/m/b4bc9f/32.png) [@m.f](https://community.cybozu.dev/u/m.f)\
**Post date:** [2025 年 5 月 15 日午前 1:46 UTC](https://community.cybozu.dev/t/topic/10386/1 "2025-05-15T01:46:51Z")

</div>

KINTONE初心者です。AIに聞いて下記構文を作成して在庫の増減を自動で入力したいのですが、うまく動きません。どなたかご教授頂けますか？

(function() {  
“use strict”;

// 在庫マスターアプリのアプリID  
const STOCK\_MASTER\_APP\_ID = 301  
// 在庫マスターアプリの在庫数フィールドコード  
const STOCK\_FIELD\_CODE = ‘stock\_quantity’;  
// 入出庫記録アプリの処理区分フィールドコード  
const TRANSACTION\_TYPE\_FIELD\_CODE = ‘transaction\_type’;  
// 入出庫記録アプリの数量フィールドコード  
const QUANTITY\_FIELD\_CODE = ‘quantity’;  
// 入出庫記録アプリのルックアップフィールドコード  
const LOOKUP\_FIELD\_CODE = ‘Product\_number’;  
// 在庫マスターアプリのレコードIDのフィールドコード（ルックアップで取得するフィールド）  
const STOCK\_MASTER\_ID\_FIELD\_CODE = ‘id’;

kintone.events.on([  
‘app.record.create.submit.success’,  
‘app.record.edit.submit.success’  
], function(event) {  
const record = event.record;  
const transactionType = record[TRANSACTION\_TYPE\_FIELD\_CODE].value;  
const quantity = record[QUANTITY\_FIELD\_CODE].value;  
const stockMasterId = record[LOOKUP\_FIELD\_CODE].value[0].id;

```
if (!stockMasterId) {
  console.error("在庫マスターのIDが取得できませんでした。");
  return event;
}

// 在庫マスターアプリのレコードを取得
kintone.api.getRecord({
  app: STOCK_MASTER_APP_ID,
  id: stockMasterId
}).then(function(resp) {
  const stockMasterRecord = resp.record;
  let currentStock = stockMasterRecord[STOCK_FIELD_CODE].value;

  // 入庫処理
  if (transactionType === '入庫') {
    currentStock += quantity;
  }
  // 出庫処理
  else if (transactionType === '出庫') {
    currentStock -= quantity;
  }
  // 処理区分が入庫でも出庫でもない場合
  else {
    console.error("処理区分が不正です: " + transactionType);
    return event;
  }

  // 在庫マスターアプリのレコードを更新
  const updateData = {};
  updateData[STOCK_FIELD_CODE] = currentStock;
  kintone.api.updateRecord({
    app: STOCK_MASTER_APP_ID,
    id: stockMasterId,
    record: updateData
  }).then(function(resp) {
    // 更新成功
    console.log("在庫数を更新しました。新しい在庫数: " + currentStock);
    return event;
  }).catch(function(error) {
    // 更新失敗
    console.error("在庫数の更新に失敗しました:", error);
    return event;
  });
}).catch(function(error) {
  // レコード取得失敗
  console.error("在庫マスターのレコード取得に失敗しました:", error);
  return event;
});

```

});  
})();

---

<div class="post-metadata">

**Author:** ![wv-sumichan](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/wv-sumichan/32/1665_2.png) [@wv-sumichan](https://community.cybozu.dev/u/wv-sumichan)\
**Post date:** [2025 年 5 月 15 日午前 8:36 UTC](https://community.cybozu.dev/t/topic/10386/2 "2025-05-15T08:36:16Z")

</div>

具体的なエラーの内容が分からないと、答えようがないと思います。  
[質問ガイドライン](https://community.cybozu.dev/guidelines#post) にある通り、

- 発生した問題やエラーメッセージを具体的に書きましょう

の段落を追加すると回答者が答えやすくなると思います。

* * *

在庫管理については、サイボウズが紹介しているサンプルや Tips があるので、一度こちらを読んでみてはいかがでしょうか。

> **[kintoneで安全に在庫管理を行うテクニック](https://cybozu.dev/ja/kintone/tips/development/customize/update-records/inventory-control-technique-using-kintone/)**
>
> kintoneのデータ更新時にリビジョンを指定して、安全に在庫を管理するカスタマイズ方法を紹介します。

> [@在庫管理の機能強化](https://community.cybozu.dev/t/topic/10126):
>
> 上記の在庫管理でできることを増やしました。 なお、分かりやすさ重視でフィールドコードはフィールド名と一致させています。 JavaScript (() =\> { 'use strict'; // レコード追加画面で保存したときの処理 kintone.events.on('app.record.create.submit', async (event) =\> { con…

> **[kintoneで在庫管理する場合の利用シーンと注意事項](https://cybozu.dev/ja/kintone/tips/best-practices/colum/kintone-inventory-management-usage-and-precautions/)**
>
> 在庫管理用途でkintoneを利用する場合に適した利用シーンや注意が必要な場合などを紹介します。標準機能、JavaScriptカスタマイズ、プラグインいずれかの方法で実現する場合でも適用できる考え方です。

---

<div class="post-metadata">

**Author:** ![m.f](https://avatars.discourse-cdn.com/v4/letter/m/b4bc9f/32.png) [@m.f](https://community.cybozu.dev/u/m.f)\
**Post date:** [2025 年 5 月 16 日午前 6:30 UTC](https://community.cybozu.dev/t/topic/10386/3 "2025-05-16T06:30:02Z")

</div>

アドバイス頂きありがとうございました。参考にさせて頂きます。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2025 年 5 月 21 日午前 5:41 UTC](https://community.cybozu.dev/t/topic/10386/4 "2025-05-21T05:41:47Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
