# テーブル内フィールドコードより別アプリを参照し値をセットしたが、画面に表示されない。

**URL:** <https://community.cybozu.dev/t/topic/6191>\
**Category:** kintone 開発相談\
**Created:** [2022 年 7 月 25 日午前 7:06 UTC](https://community.cybozu.dev/t/topic/6191 "2022-07-25T07:06:47Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account418](https://avatars.discourse-cdn.com/v4/letter/l/dc4da7/32.png) [@Legacy\_Account418](https://community.cybozu.dev/u/Legacy_Account418)\
**Post date:** [2022 年 7 月 25 日午前 7:06 UTC](https://community.cybozu.dev/t/topic/6191/1 "2022-07-25T07:06:47Z")

</div>

**背景・実現したいこと**

テーブル内のフィールド（コード）をキーに別アプリを参照し、該当レコードの名前をテーブル内の名称を表示したい。もし、該当レコードがない場合、テーブルのフィールドにエラー「対象レコードがありません」と表示し、名称には空白又は「商品がみつかりません」と表示したい。

現在の状況は、レコードがヒットした場合は、テーブルの名称に品名を表示できておりますが、ヒットしなかった場合、上記のようにエラーは表示できるのですが、 テーブルの名称に空白もしくは「商品がみつかりません」と表示ができません。

下記定義を書くと上記までは漕ぎつけ、なんとかchanges.row.valueで値が変わった行に対してアプローチはできるのですがなぜ下記定義で表示できるのか理由があまり理解できておりません。

var record = event.record;

kintone.app.record.set({record});

又、errorを表示しないようにすると（// changes.row.value.code.error = error\_name;）

レコードにヒットしない場合、名称が空白もしくは「商品がみつかりません」と表示ができます。

つまり、フィールドにエラー「対象レコードがありません」且つ、名称に空白もしくは「商品がみつかりません」の両者を表示実現する記述の仕方とkintone.app.record.set({record});との意味合いをどなたか教えていただけませんでしょうか。

よろしくお願いいたします。

&nbsp;

**利用したソースコード**

(function(){

&nbsp; &nbsp; ‘use strict’;

&nbsp; &nbsp; const events =[

&nbsp; &nbsp; &nbsp; &nbsp; ‘app.record.create.submit’,

&nbsp; &nbsp; &nbsp; &nbsp; ‘app.record.edit.submit’,

&nbsp; &nbsp; &nbsp; &nbsp; ‘app.record.create.show’,

&nbsp; &nbsp; &nbsp; &nbsp; ‘app.record.edit.show’

&nbsp; &nbsp; ];

&nbsp; &nbsp; kintone.events.on(‘app.record.create.change.code’,function(event) {

&nbsp; &nbsp; &nbsp; var changes = event.changes;

&nbsp; &nbsp; &nbsp; var register\_id = changes.row.value.code.value;

&nbsp; &nbsp; &nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; var body = {

&nbsp; &nbsp; &nbsp; &nbsp; “app”: 9,

&nbsp; &nbsp; &nbsp; &nbsp; “query”: "HINCOD = " + register\_id,

&nbsp; &nbsp; &nbsp; &nbsp; “fields”: [“HINNAME”]

&nbsp; &nbsp; &nbsp; };

&nbsp; &nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; var wk\_name; //品名

&nbsp; &nbsp; &nbsp; var error\_name;

&nbsp; &nbsp; &nbsp; kintone.api(kintone.api.url(‘/k/v1/records.json’, true), ‘GET’, body, (resp) =\> {

&nbsp; &nbsp; &nbsp; &nbsp; // success

&nbsp; &nbsp; &nbsp; &nbsp; if (resp.records.length === 0){

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wk\_name = ‘商品がみつかりません’;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; error\_name = ‘対象レコードがありません’; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else{

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wk\_name = resp.records[0].HINNAME.value;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; error\_name = null;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;changes.row.value.name.value = wk\_name;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;changes.row.value.code.error = error\_name;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var record = event.record;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;kintone.app.record.set({record});

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; }, (error) =\> {

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // error

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(error);

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp;);

&nbsp; &nbsp; return event;

&nbsp; &nbsp;

&nbsp; });

})();

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2229](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@Legacy\_Account2229](https://community.cybozu.dev/u/Legacy_Account2229)\
**Post date:** [2022 年 7 月 28 日午後 11:52 UTC](https://community.cybozu.dev/t/topic/6191/2 "2022-07-28T23:52:17Z")

</div>

マルさん

こんにちは。

&nbsp;

フィールドコード.errorの方が優先されるのかもしれません。

そのため、他フィールドに値が反映されない。

&nbsp;

kintone.app.record.set() を2回に分けて叩けば反映できました。

```
changes.row.value.name.value = wk_name;
kintone.app.record.set(event);

changes.row.value.code.error = error_name;
kintone.app.record.set(event);

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1969](https://avatars.discourse-cdn.com/v4/letter/l/c67d28/32.png) [@Legacy\_Account1969](https://community.cybozu.dev/u/Legacy_Account1969)\
**Post date:** [2022 年 7 月 28 日午後 11:52 UTC](https://community.cybozu.dev/t/topic/6191/3 "2022-07-28T23:52:45Z")

</div>

kintone.app.record.set()については記述がないですが、return event のときは

> ハンドラーが event オブジェクトの error にエラーメッセージを代入して event オブジェクトを return した場合、フィールドの値の書き換えと編集可／不可の設定はキャンセルされ、画面の上部にエラーメッセージが表示されます。

[https://developer.cybozu.io/hc/ja/articles/202166270#step7](https://developer.cybozu.io/hc/ja/articles/202166270#step7)

だそうなので、もしかしたらkintone.app.record.set()のときも  
errorに値を設定していたらフィールドの値の書き換えが無効になるのかもしれませんね。

setは編集中のレコードの値の表示を、set(object)の引数で書き換えるというだけなので、  
～.name.value = “”;  
の後にも一度set()を挟んだらうまく行きそうな気がします。

valueの変更  
set  
errorの設定  
set

な感じで。

&nbsp;

※koichiさんと被ってしまいましたが、上手くいくみたいなので良かったです。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account418](https://avatars.discourse-cdn.com/v4/letter/l/dc4da7/32.png) [@Legacy\_Account418](https://community.cybozu.dev/u/Legacy_Account418)\
**Post date:** [2022 年 8 月 1 日午前 2:14 UTC](https://community.cybozu.dev/t/topic/6191/4 "2022-08-01T02:14:22Z")

</div>

[koichi様](https://community.cybozu.dev/hc/ja/profiles/900225082446-koichi)

ご指摘ありがとうございました。

kintone.app.record.set() を２回、フィールド項目とエラーフィールド毎に実行すると表示できました。

ありがとうございました。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account418](https://avatars.discourse-cdn.com/v4/letter/l/dc4da7/32.png) [@Legacy\_Account418](https://community.cybozu.dev/u/Legacy_Account418)\
**Post date:** [2022 年 8 月 1 日午前 2:18 UTC](https://community.cybozu.dev/t/topic/6191/5 "2022-08-01T02:18:30Z")

</div>

[らいと](https://community.cybozu.dev/hc/ja/profiles/7090107970585-%E3%82%89%E3%81%84%E3%81%A8)様

アドバイスありがとうございました。

koichi様からもアドバイスいただき、２回kintone.app.record.set() を実行することにより表示がされましたが、理由がらいと様の指摘されている「フィールドの値の書き換えと編集可／不可の設定はキャンセルされる」理由により、フィールド上の値はセットしていても画面上表示できない現象につながっていたのですね。

大変勉強になりました、ドキュメントをしっかりと読み込まないとやはりダメですね。

ありがとうございました。

---

<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:** [2024 年 9 月 6 日午前 12:53 UTC](https://community.cybozu.dev/t/topic/6191/6 "2024-09-06T00:53:50Z")

</div>

クローズされました: 2024 年 9 月 6 日午前 12:53 UTC

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