# 他アプリから取得した情報の編集画面での表示

**URL:** <https://community.cybozu.dev/t/topic/2021>\
**Category:** kintone 開発相談\
**Created:** [2015 年 3 月 23 日午後 3:45 UTC](https://community.cybozu.dev/t/topic/2021 "2015-03-23T15:45:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2070](https://avatars.discourse-cdn.com/v4/letter/l/e9c0ed/32.png) [@Legacy\_Account2070](https://community.cybozu.dev/u/Legacy_Account2070)\
**Post date:** [2015 年 3 月 23 日午後 3:45 UTC](https://community.cybozu.dev/t/topic/2021/1 "2015-03-23T15:45:40Z")

</div>

JavaScriptでのカスタマイズに関しての質問です。

あるアプリで他のアプリからの情報を取得してテキストフィールドの初期値にしたいと考えています。  
例）アプリA フィールドA-1  
アプリB フィールドB-1

アプリAの編集画面を開いた際にアプリBのフィールドB-1の値をA-1に表示したい。

## アプリAのJavaScript

&nbsp;&nbsp;&nbsp;&nbsp;kintone.events.on(‘app.record.edit.show’, function (event){  
&nbsp; // リクエストパラメータ  
var requestParam = {  
‘app’: xx //アプリBのappId  
};

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var tableRecords = event.record.subTable\_records.value;  
kintone.api(  
kintone.api.url(‘/k/v1/records’, true),  
‘GET’,  
requestParam,  
function(resp) {  
// 取得レコード: resp.records  
console.log(resp.records[0].フフィールドB-1.value); //ちゃんと値は取れている。  
tableRecords[0].value[‘フィールドA-1’].value = resp.records[0].フィールドB-1.value;  
}  
);

&nbsp;  
// tableRecords[0].value[‘フィールドA-1’].value = ‘aaa’; //固定値はちゃんと表示される。  
return event;  
&nbsp;&nbsp;&nbsp;&nbsp;});

## })();

以下の確認はとれました。  
・アプリAからアプリBのフィールドB-1の値はちゃんと取れている。（コンソールには出力される）  
・フィールドA-1に取得したB-1の値ではなく、固定値などで試してみるとちゃんと設定される。

function(resp)はcallback関数なのでeventへの連携は出来ないのかなあと思ったりもするのですが、うまく取得して設定する方法はないものでしょうか。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1523](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@Legacy\_Account1523](https://community.cybozu.dev/u/Legacy_Account1523)\
**Post date:** [2015 年 3 月 24 日午前 12:42 UTC](https://community.cybozu.dev/t/topic/2021/2 "2015-03-24T00:42:53Z")

</div>

ばみさん、はじめまして。  
アイティー・プラス・ワンの星野です。

”kintone.app.record.set()”を利用することで、コールバックやボタンクリックイベント(kintone標準じゃないイベント)でも値を設定することが可能となります。  
参考URL：[https://cybozudev.zendesk.com/hc/ja/articles/201942014-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97#step4](https://cybozudev.zendesk.com/hc/ja/articles/201942014-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97#step4)  
ソースを見ると、アプリA フィールドA-1はサブテーブルになっているのでしょうか？  
もしサブテーブルになっているようでしたら以下のようなソースでいかがでしょうか？  
※アプリB フィールドB-1がどのようなフィールドか読み取れませんでしたのでindexが”0”固定になっています。

```
// レコードを取得します
kintone.api(kintone.api.url('/k/v1/records', true),'GET',requestParam,function(resp) {
    // 現在表示しているレコードを取得
    var rec = kintone.app.record.get();
    // サブテーブルを取得
    var subList = rec.subTable_records.value;
    var subListLength = subList.length;

    for (var i=0; i < subListLength ; i++) {
        // サブテーブルのすべてのフィールドA-1項目にアプリB フィールドB-1を設定します。
        subList[i].value.フィールドA-1.value = resp.records[0].フィールドB-1.value;
    }
    // 画面に設定
    kintone.app.record.set(rec);
});

```

もし意図に沿っていないようでしたら、再度質問ください。  
以上です。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account616](https://avatars.discourse-cdn.com/v4/letter/l/b5e925/32.png) [@Legacy\_Account616](https://community.cybozu.dev/u/Legacy_Account616)\
**Post date:** [2015 年 3 月 24 日午前 12:43 UTC](https://community.cybozu.dev/t/topic/2021/3 "2015-03-24T00:43:03Z")

</div>

ばみさん

cstapの落合です。  
仰るとおり、アプリAに値をsetしているのが、kintone.apiのcallbackのため、return eventされた後に、値がsetされるため反映されません。  
こういう場合は、[レコードに値をセットする](https://cybozudev.zendesk.com/hc/ja/articles/201942014#step4)APIが利用できるかと思います。

以上、参考になりますでしょうか？

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2070](https://avatars.discourse-cdn.com/v4/letter/l/e9c0ed/32.png) [@Legacy\_Account2070](https://community.cybozu.dev/u/Legacy_Account2070)\
**Post date:** [2015 年 3 月 24 日午前 4:24 UTC](https://community.cybozu.dev/t/topic/2021/4 "2015-03-24T04:24:30Z")

</div>

星野さん、落合さん

回答ありがとうございます。  
setを使って思った通りの動作ができました！

星野さんにはサンプルソースまでご提示いただきありがとうございます。  
ご回答の通り、サブテーブルを使用しています。  
一点、はまった点が。

var rec = kintone.app.record.get();  
rec.xxx  
このアクセスの仕方だとうまくいきませんでした。  
rec[‘record’].xxx  
というアクセスが必要みたいですね。

回答いただきましてほんとうにありがとうございました。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account616](https://avatars.discourse-cdn.com/v4/letter/l/b5e925/32.png) [@Legacy\_Account616](https://community.cybozu.dev/u/Legacy_Account616)\
**Post date:** [2015 年 3 月 24 日午前 4:26 UTC](https://community.cybozu.dev/t/topic/2021/5 "2015-03-24T04:26:32Z")

</div>

ばみさん

解決されたようで良かったです！  
また何かありましたら、ご質問ください！

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1523](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@Legacy\_Account1523](https://community.cybozu.dev/u/Legacy_Account1523)\
**Post date:** [2015 年 3 月 24 日午前 4:37 UTC](https://community.cybozu.dev/t/topic/2021/6 "2015-03-24T04:37:24Z")

</div>

ばみさん

問題が解決されたようでよかったです。  
サンプルが間違ってたらたまったもんじゃないですね。  
申し訳ありませんでした。  
拙い説明でしたがまた何かありましたら質問してみてください。
