別アプリのサブテーブル行追加

お世話になります。

 

利用管理アプリと在庫管理アプリ、利用品マスタアプリの3つを作成しています。

利用管理アプリで使用(サブテーブルに入力)されたら在庫管理アプリに登録されている利用品の数を減らしたいです。(出庫サブテーブルに行追加)に利用品は分類1と分類2があります。

各アプリのレコード形態としては、以下の通りです。

在庫管理:1レコード1拠点1利用品

利用管理:1レコード1利用者複数利用品

 

利用品は1つの拠点ではなく複数拠点で利用され、各拠点で在庫管理されます。

利用管理アプリでサブテーブルに追加があったら、利用品IDと拠点IDが一致する在庫管理アプリの利用品レコードの出庫サブテーブルに追加する。と考えていますがどのようにコードを記述していけば良いかうまく理解が出来ておりません。

 

以下の投稿も参考に試していますが、思うようにできていない状態です。

https://developer.cybozu.io/hc/ja/community/posts/900003222263-%E5%88%A5%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AB%E8%BF%BD%E5%8A%A0?input_string=%E5%88%A5%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E8%A1%8C%E8%BF%BD%E5%8A%A0

御見苦しい文章ですが、お教えいただけると幸いです。

■利用管理アプリ構成(※)ルックアップで利用品マスタから参照

【項目】 【フィールド名】

ルックアップ 拠点ID

文字列 利用者

計算 分類1利用合計

計算 分類2利用合計

サブテーブル 分類1

日付 日付_分類1

ドロップダウン ドロップダウン_分類1(分類1) ※

数値 利用品ID_分類1 ※

ルックアップ 利用品名_分類1 ※

数値 利用単価_分類1

数値 利用数_分類1

計算 小計(利用単価_分類1*利用数_分類1)

サブテーブル 分類2

日付 日付_分類2

ドロップダウン ドロップダウン_分類2(分類2) ※

数値 利用品ID_分類2 ※

ルックアップ 利用品名_分類2 ※

数値 利用単価_分類2

数値 利用数_分類2

計算 小計(利用単価_分類2*利用数_分類2)

 

■在庫管理アプリ構成

【項目】 【フィールド名】

ルックアップ 拠点ID

文字列 利用品名

文字列 利用品ID

サブテーブル 入庫

日付 日付_入庫

数値 入庫数(手入力)

サブテーブル 出庫(ここに利用があった数を追加したい)

日付 日付_出庫

数値 出庫数

daikonsan さん

以下の流れで実現できないでしょうか?

レコード編集画面のフィールド値変更時イベントが実行されたとき
(フィールドコードの部分にテーブルのフィールドコードを設定すればいいかと思います)

  1. 在庫管理アプリのレコードを取得する
    1. で取得した値をもとに更新したい内容に書き換えて、在庫管理アプリのレコードの更新を行う

 

mofuku 様

 

お世話になります。

ご教授ありがとうございます。

あれから色々と試行錯誤してある程度はできたつもりなのですが、PUTのリクエストボディでサブテーブルの指定方法がよくわかっておりません…

在庫管理アプリの出庫サブテーブルの一番下の行に利用管理で入力された利用数を追加したいのですが、うまく動いていない状況です。

今のところ以下のような記述をしていますが、当たり前ですが動きません…日付と利用数のみを在庫管理アプリのサブテーブルに追加したいです。

■ソースコード

let paramForPut1 = {

          app: stockAPP_ID, //在庫管理アプリ

          id: resp.records[0].$id.value, //

            出庫tbl: { //ここから下の出庫サブテーブルの指定が分からない

              value: [

                {

                id: resp.records[0].$id.value,

                value: {

                  出庫数: {

                    value: event.record[“出庫数”].value

                  }

                }

                }

              ]

            }

          }

daikonsan さん

動いていない、とのことですが、コンソール画面になにかエラーは出ていますか?

デバッグの仕方は以下のページが参考になります。

https://developer.cybozu.io/hc/ja/articles/207613916

レコードの更新 API を実行するためのリクエストボディの書き方のうち、テーブルフィールドの書き方は以下のページが参考になると思います。

https://developer.cybozu.io/hc/ja/articles/202166330#subtable

 

mofuku 様

 

お世話になっております。

コンソール画面のエラーとしては「ReferenceError: row is not defined」と表示されます。

お教えいただいたリクエストボディの書き方を参考にして記述してみましたが、やはり上記のエラーが出てしまいます。

let paramForPut1 = {

          app: stockAPP_ID,

          id: resp.records[0].$id.value,

            “分類1”: {

              “value”: [

                {

                “id”: “48291”,

                “value”:{

                  “分類1利用数”: {

                    “value”: record[‘分類1’][‘value’].push(row)

                  }

                }}

              ]

            }

        }

 

 

そもそも在庫管理アプリのサブテーブルには複数レコードから出庫サブテーブルの追加があるので、PUTではなくPOSTで処理するべきなのでしょうか。