# テーブル操作について

**URL:** <https://community.cybozu.dev/t/topic/2017>\
**Category:** kintone 開発相談\
**Created:** [2015 年 3 月 3 日午前 12:48 UTC](https://community.cybozu.dev/t/topic/2017 "2015-03-03T00:48:07Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1834](https://avatars.discourse-cdn.com/v4/letter/l/fbc32d/32.png) [@Legacy\_Account1834](https://community.cybozu.dev/u/Legacy_Account1834)\
**Post date:** [2015 年 3 月 3 日午前 12:48 UTC](https://community.cybozu.dev/t/topic/2017/1 "2015-03-03T00:48:07Z")

</div>

[https://cybozudev.zendesk.com/hc/ja/articles/200752984-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B4%E6%96%B0%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E6%93%8D%E4%BD%9C%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF](https://cybozudev.zendesk.com/hc/ja/articles/200752984-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B4%E6%96%B0%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E6%93%8D%E4%BD%9C%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF)

上記URLにきさいされているテーブル操作ですが、レコード追加or編集画面で他のレコードのテーブル情報を取得し、編集中のレコードのテーブルを動的に操作することは可能でしょうか？

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1657](https://avatars.discourse-cdn.com/v4/letter/l/f4b2a3/32.png) [@Legacy\_Account1657](https://community.cybozu.dev/u/Legacy_Account1657)\
**Post date:** [2015 年 3 月 18 日午前 7:49 UTC](https://community.cybozu.dev/t/topic/2017/2 "2015-03-18T07:49:05Z")

</div>

吉岡さん

はじめまして。  
以前回答があったような気がするのですが、回答がない状態となっているため  
回答してみます。

他のレコード情報を取得し、テーブルへ追加することは可能です。

１．REST API (GET)を用いて、対象のレコード情報を取得する。  
２．取得情報を、テーブルの形式に成型しする  
３．テーブルに格納し、return を返す。

簡易に記載をしてますが、上記にてテーブルへのデータ格納ができます。

また、テーブルの特定の項目が変更された際に、値を再取得したい  
場合などには、以下のイベントを用いて、上記の処理を行うことで、  
動的な変更が可能と考えられます。

編集時  
app.record.edit.change.\<フィールドコード\>

追加時  
app.record.create.change.\<フィールドコード\>

上記イベントについては、下記リンク等で案内がされています。  
[https://cybozudev.zendesk.com/hc/ja/articles/201941984#step3](https://cybozudev.zendesk.com/hc/ja/articles/201941984#step3)

以上

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1634](https://avatars.discourse-cdn.com/v4/letter/l/8dc957/32.png) [@Legacy\_Account1634](https://community.cybozu.dev/u/Legacy_Account1634)\
**Post date:** [2015 年 3 月 25 日午前 6:06 UTC](https://community.cybozu.dev/t/topic/2017/3 "2015-03-25T06:06:36Z")

</div>

割り込み失礼いたします\>\<  
テーブル操作に関して、行き詰っております。  
１のGETで情報を取得するところまでは出来たのですが、  
２．取得情報を、テーブルの形式に成型する  
３．テーブルに格納し、return を返す。  
の部分が出来ません。  
他のテーブルに関する質問も参考にしたのですが、いまいち理解できず・・・  
サンプルコードなどあれば、大変助かります。。  
すみませんが、よろしくお願いします！

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1657](https://avatars.discourse-cdn.com/v4/letter/l/f4b2a3/32.png) [@Legacy\_Account1657](https://community.cybozu.dev/u/Legacy_Account1657)\
**Post date:** [2015 年 3 月 26 日午前 3:01 UTC](https://community.cybozu.dev/t/topic/2017/4 "2015-03-26T03:01:14Z")

</div>

田中さん

はじめまして。  
取得した値をテーブルの初期値として入れるということでいいのでしょうか？  
違った場合指摘してもらえればと思います。

行き詰っていると思われる点に関しては、下記ページにてサンプルコードつきで  
掲載がされています。  
[https://cybozudev.zendesk.com/hc/ja/articles/202796890](https://cybozudev.zendesk.com/hc/ja/articles/202796890)

ソース内の createValue にてテーブル成型。  
kintone.events内で、テーブルの更新処理を行っているものとなってます。

今回の流れとしては、取得した情報を引数として、createValue に引き渡して  
そのまま処理することで、取得情報を元にしたテーブルが作成されるかと  
思います。

何か不明点等あればコメントください！

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1634](https://avatars.discourse-cdn.com/v4/letter/l/8dc957/32.png) [@Legacy\_Account1634](https://community.cybozu.dev/u/Legacy_Account1634)\
**Post date:** [2015 年 3 月 26 日午前 4:28 UTC](https://community.cybozu.dev/t/topic/2017/5 "2015-03-26T04:28:29Z")

</div>

サクラエビさん  
ご回答ありがとうございます！  
説明不足しておりすみません。  
もともとあるテーブルに別のフィールドの値をとってきて、  
その値を追加したいのです。  
更に言うと、その別のフィールドにはcsv読み込みで値を入れて、  
一覧画面で更新ボタンを押すとそのフィールドの値がテーブルに追加される  
という動きにしたいです・・・。  
わかりずらいかもしれませんが、よろしくお願いいたします！

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1834](https://avatars.discourse-cdn.com/v4/letter/l/fbc32d/32.png) [@Legacy\_Account1834](https://community.cybozu.dev/u/Legacy_Account1834)\
**Post date:** [2015 年 3 月 28 日午前 7:52 UTC](https://community.cybozu.dev/t/topic/2017/6 "2015-03-28T07:52:11Z")

</div>

サクラエビさん

返事が遅くなりま申し訳ありません。

ご教示頂いた方法で解決しました。

誠にありがとうございます。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1657](https://avatars.discourse-cdn.com/v4/letter/l/f4b2a3/32.png) [@Legacy\_Account1657](https://community.cybozu.dev/u/Legacy_Account1657)\
**Post date:** [2015 年 3 月 31 日午前 9:35 UTC](https://community.cybozu.dev/t/topic/2017/7 "2015-03-31T09:35:45Z")

</div>

吉岡さん  
無事解決したとのことで、お役に立てたようでよかったです。

田中さん  
すみません。確認ができてませんでした。  
テーブルに入れたいフィールド値は、同一レコード内の  
特定のフィールドでしょうか？それとも他のアプリの特定の  
フィールド等ですか？

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1634](https://avatars.discourse-cdn.com/v4/letter/l/8dc957/32.png) [@Legacy\_Account1634](https://community.cybozu.dev/u/Legacy_Account1634)\
**Post date:** [2015 年 4 月 1 日午前 12:50 UTC](https://community.cybozu.dev/t/topic/2017/8 "2015-04-01T00:50:54Z")

</div>

サクラエビさん  
お返事ありがとうございます！

> テーブルに入れたいフィールド値は、同一レコード内の  
> 特定のフィールドでしょうか？それとも他のアプリの特定の  
> フィールド等ですか？  
> ⇒同一レコード内の特定のフィールドです。

以前アドバイスいただきましたcreateValueですと、  
一覧表示画面では実行出来ませんよね？  
一覧表示画面で、テーブル追加の動きを実装したいです･･･。  
お手数おかけしますが、よろしくお願いします！

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1657](https://avatars.discourse-cdn.com/v4/letter/l/f4b2a3/32.png) [@Legacy\_Account1657](https://community.cybozu.dev/u/Legacy_Account1657)\
**Post date:** [2015 年 4 月 9 日午前 7:38 UTC](https://community.cybozu.dev/t/topic/2017/9 "2015-04-09T07:38:06Z")

</div>

田中さん

前回コメントにreturnで更新をかければと言ってますが、テーブル値の更新は  
出来ないものでしたね。。。失念していました。

試行錯誤した結果以下の方法が必要となるようです。

１．ボタン押下時のイベントとして、レコード情報を取得する。  
一覧表示イベント内にボタン処理を実装している場合、一覧表示で取得  
したレコード値を利用しても問題ないです。  
※100件までしか取得されないため注意が必要です。

2．取得した情報を元に、リクエストボディを作成する。  
テーブル更新なので、ちょっと形が複雑です。  
下記を参考にしてもらえればいいかと思います。  
[https://cybozudev.zendesk.com/hc/ja/articles/202166330](https://cybozudev.zendesk.com/hc/ja/articles/202166330)

３．作成した情報を元に、更新処理(PUT)を行う  
注意が必要なのが、イベント内で処理を行っている場合、kintoneAPI  
を利用した更新を行おうとすると、非同期処理であることから、空更新が  
されてしまいます。  
その為、XMLHttpRequestを用いて処理を同期処理としました。

上記処理の場合、リクエストボディを動的に作成し、更新をかけているため、  
レコードのフィールド値を元に、テーブル行の更新が行えました。  
私が作成した際は、レコードが100件ない状態で、確認をしたため、  
イベントでレコード値を取得し、２．３の処理をループさせ処理してみました。

わかりずらい感がありますが、参考になりますでしょうか？

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1634](https://avatars.discourse-cdn.com/v4/letter/l/8dc957/32.png) [@Legacy\_Account1634](https://community.cybozu.dev/u/Legacy_Account1634)\
**Post date:** [2015 年 4 月 10 日午前 4:21 UTC](https://community.cybozu.dev/t/topic/2017/10 "2015-04-10T04:21:07Z")

</div>

サクラエビさん

ご丁寧にありがとうございます！！  
私自身作成してみたのですが、現在空更新のデータが出来上がってしまっている状況です。  
kintoneAPIを利用した更新を行うと、空更新のデータが出来上がってしまうんですね。  
他投稿をみるとXMLHttpRequestはあまり推奨されていないようですが、  
kintoneAPIでの方法はないのでしょうか？？  
お手数おかけいたしますが、よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1657](https://avatars.discourse-cdn.com/v4/letter/l/f4b2a3/32.png) [@Legacy\_Account1657](https://community.cybozu.dev/u/Legacy_Account1657)\
**Post date:** [2015 年 4 月 10 日午前 5:48 UTC](https://community.cybozu.dev/t/topic/2017/11 "2015-04-10T05:48:51Z")

</div>

田中さん

kintoneAPIで更新をすると空更新がされるというわけではなく、  
下記のような処理を行った場合、同期処理でないことから、  
空更新が起きてしまいます。

①kintone.events.on{  
②kintone.api{  
eventsで取得した情報を元に更新処理  
}  
③なんらかの処理  
処理順序をわかりやすくする為に書いています。  
}

上記の場合、①、③、②の順で処理がされてしまいます。  
①の完了後に②が実行されるため、①で取得した情報を元に  
更新処理を行っている場合、取得情報が空となってしまっており、  
空更新が発生するものとなっています。  
そのため、①で取得した情報を元に更新処理を行う場合には、  
同期処理を行う必要があります。

と若干わかりずらい説明となってますが、理解いだけるとありがたいです。

XMLHttpRequestについては、あまり推奨されていませんが、現在の  
仕様上使わざるを得ないかと思います。  
なお、公開サンプル等でも同期処理として利用がされているので、  
問題はないとは思いますが。

XMLHttpRequestを利用せず、kintoneAPIのみで処理を行う方法に  
ついては、パッとは思いつかないですね。。。  
何かいい方法が思いつきましたら、コメントさせていただきます。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1634](https://avatars.discourse-cdn.com/v4/letter/l/8dc957/32.png) [@Legacy\_Account1634](https://community.cybozu.dev/u/Legacy_Account1634)\
**Post date:** [2015 年 4 月 17 日午前 2:09 UTC](https://community.cybozu.dev/t/topic/2017/12 "2015-04-17T02:09:36Z")

</div>

サクラエビさん  
その後、XMLHttpRequestを用いて実装することができました！  
丁寧なご説明ありがとうございました！！  
今後もよろしくお願いいたします。

---

<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 月 29 日午前 4:41 UTC](https://community.cybozu.dev/t/topic/2017/13 "2025-05-29T04:41:19Z")

</div>

クローズされました: 2025 年 5 月 29 日午前 4:41 UTC

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