# アプリ1で取得したメールアドレスを別フォームに表示させたい

**URL:** <https://community.cybozu.dev/t/topic/3472>\
**Category:** kintone 開発相談\
**Created:** [2018 年 10 月 24 日午前 11:26 UTC](https://community.cybozu.dev/t/topic/3472 "2018-10-24T11:26:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account776](https://avatars.discourse-cdn.com/v4/letter/l/ac8455/32.png) [@Legacy\_Account776](https://community.cybozu.dev/u/Legacy_Account776)\
**Post date:** [2018 年 10 月 24 日午前 11:26 UTC](https://community.cybozu.dev/t/topic/3472/1 "2018-10-24T11:26:16Z")

</div>

平素は大変お世話になっております。  
ありがとうございます。

このたび、フォームブリッジで、「回答を途中で保存」する  
機能を実装するため、本Cybozu Developer Networkでご教示  
いただいた、フォームを複数作成し、1つ目の回答をアプリに  
保存後、JSで次のフォームURLへリダイレクトすることに  
成功いたしました。  
先輩方のご教示のおかげでございます。ありがとうございます。

ここで次の課題が出てまいりました。たびたび申し訳ございません  
が、お知恵を拝借できればと思い、再度投稿させていただきました。

【現在の状況】  
Kintoneで「アプリ1」、「アプリ2」を作成  
フォームブリッジで、Kintone各アプリに連動した「フォーム1」  
と「フォーム2」を作成  
2つのフォームはKviewerの「Myページ」に連動するように設定  
いたしました。

フォーム1で入力を終え、「途中保存」ボタンをクリックいたします  
と、フォーム1の内容がアプリ1に保存されます。続けて、JSで  
フォーム2の公開URLに\_\_kViewerViewCode\_\_と\_\_kViewerRecordCode\_\_  
をフォーム1から取得して代入し、フォーム2を編集モードで開きます。

ここでフォーム2に回答を入力し、「回答を完了」ボタンクリックで  
アプリ2にデータが保存されます。

行いたいことは、Kviewerを使って、アプリ1およびアプリ2のデータを  
フォーム1およびフォーム2に表示させて再編集させたいということで  
ございます。

アプリ1とアプリ2のレコード番号はともに「1」で、同一人物が回答  
したものと仮定します。  
このとき、 ブラウザのURL欄に、先ほどの  
フォーム2の公開URLに\_\_kViewerViewCode\_\_と\_\_kViewerRecordCode\_\_  
を入力しても、新規の編集画面になり、フォーム2にはアプリ2のデータ  
を表示することはできませんでした。

アプリ2に連動したKviewerの「MyページURL」を確認すると、先ほど  
JSで取得した\_\_kViewerViewCode\_\_と\_\_kViewerRecordCode\_\_とは  
異なる文字列になっておりました。

そこで考えましたことは、アプリ1でメールアドレスを入力しているため、  
アプリ1のテーブルからフォーム2のコントロール(1行文字列など)に  
表示させ、フォーム2の回答後処理で、KviewerのMyページURLを自動返信  
メールでお知らせすることでございます。

アプリ1から取得したメールアドレスを「文字列1行」コントロールに  
表示させることは可能でございますでしょうか？

また、他によい方法がございましたら、ぜひお教え頂ければ幸いです。

どうぞよろしくお願い申し上げます。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account776](https://avatars.discourse-cdn.com/v4/letter/l/ac8455/32.png) [@Legacy\_Account776](https://community.cybozu.dev/u/Legacy_Account776)\
**Post date:** [2018 年 10 月 25 日午前 1:22 UTC](https://community.cybozu.dev/t/topic/3472/2 "2018-10-25T01:22:02Z")

</div>

おはようございます。  
Cybozu Developer Nework の投稿を参考にし、以下のJSを作成してみました。

フォームブリッジのDOMが作成される前のイベントに実装してみました。  
これを、アプリ1と紐づけたKviewer の「Myページ」のレコード番号「1」で  
フォーム2を開いた際、コード番号(フィールドコード：i\_code)の値からクエリ  
を実行してアプリ1のメールアドレス(フィールドコード：mail\_address)の値を  
取得しようといたしました。  
結果は、フォーム2の コードには「1」が表示されておりますが、メールアドレス  
の文字列(1列)には何も表示されませんでした。  
間違いがあると存じますので、ご指摘いただければ幸いでございます。  
どうぞよろしくお願い申し上げます。

(function(){  
&nbsp;&nbsp;&nbsp; “use strict”;

//DOMが作成される前のイベントで実装  
fb.events.form.created = (function(event){  
&nbsp;&nbsp;&nbsp; var record = event.record;  
&nbsp;&nbsp;&nbsp; var appId = 16;  
&nbsp;&nbsp;&nbsp; var recordId = record[‘i\_code’].value[0].name;  
&nbsp;&nbsp;&nbsp; kintone.api(‘k/v1/records’,‘GET’,{  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app:appId,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query: ‘i\_code = "’ + recordId + ‘"’,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fields: [‘mail\_address’],  
&nbsp;&nbsp;&nbsp; },  
&nbsp;&nbsp;&nbsp; function(resp){  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var ma = resp[‘records’][0][‘mail\_address’][‘value’];  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var record = kintone.app.record.get();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; record[‘record’][‘mail\_address’][‘value’] = ma;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kintone.app.record.set(record);&nbsp;&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp; });  
&nbsp;&nbsp;&nbsp; return event;  
});

})();

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1517](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account1517](https://community.cybozu.dev/u/Legacy_Account1517)\
**Post date:** [2018 年 10 月 25 日午前 4:03 UTC](https://community.cybozu.dev/t/topic/3472/3 "2018-10-25T04:03:35Z")

</div>

ハイキックさん

kintone.api、kintone.app.record.set は、kintone が提供している関数なので外部サービスのフォームブリッジでは使用できません。

また今のところフォームブリッジから kintone REST API を直接呼び出すことは出来ません。

MS FLOW や 外部に「kintone REST API を呼び出す API」を作成して使うなど１クッション必要です。

Azure functions などサーバーレスでAPIを実装すると運用も楽なのでいいかもしれません。

あとは kViewer と連携して kViewerルックアップ機能などもあるようです。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account776](https://avatars.discourse-cdn.com/v4/letter/l/ac8455/32.png) [@Legacy\_Account776](https://community.cybozu.dev/u/Legacy_Account776)\
**Post date:** [2018 年 10 月 25 日午前 6:34 UTC](https://community.cybozu.dev/t/topic/3472/4 "2018-10-25T06:34:27Z")

</div>

rex0220 様

&nbsp;大変お詳しいご説明を賜りまして、まことにありがとうございます。  
当方の勉強不足で、大変失礼をいたしました。ありがとうございます。  
MS FLOW も利用しておりますので、そちらのアプローチも考えて  
みたいと存じます。

また、KViewerルックアップもご教示いただきましてありがとうございます。  
この機能についていろいろ調べさせていただきましたところ、検索フィールド  
に入力された値をキーに、紐づいたデータを別の文字列やドロップダウンの  
フィールドに自動表示することができるようでございますので、こちらも  
検証してまいりたいと存じます。

また、rex0220様よりご教示いただいた、外部に一度Kintone  
REST APIを呼び出して使う方法も模索してまいりたいと存じます。  
大変お詳しくご説明いただきまして、本当にありがとうございます。  
引き続き、本Cybozu Developer Network で勉強させていただきます。

今後とも何卒よろしくお願い申し上げます。
