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

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

このたび、フォームブリッジで、「回答を途中で保存」する
機能を実装するため、本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行」コントロールに
表示させることは可能でございますでしょうか?

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

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

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

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

(function(){
    “use strict”;

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

})();

ハイキックさん

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

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

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

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

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

rex0220 様

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

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

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

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