複数アプリからテーブルを作成する

アプリAの一覧画面をカスタマイズしてテキストボックスとボタンを配置し,
ボタンをクリックしたら,
テキストボックスに入力した文字に一致したフリガナのあるデータを抽出したいです。

アプリAから氏名とフリガナ,
アプリBから,会社名を抽出したいです。
(両アプリにはIDという共通のフィールドがあります。)

アプリAから抽出することがはできているのですが,
アプリBから会社名をもってくることができません。。
どうしたらいいでしょうか?

KSbtn.onclick = function() { //検索ボタンを押した押したときの動作
var aaa = myTextBox.value;//検索ボックスの内容をaaaに入れる
(略)
});

var requestParam1 = {
"app": (アプリAのアプリid)
"query":'(フリガナ like "'+aaa+'"'
};//requestParam

kintone.api(kintone.api.url('/k/v1/records', true), 'GET', requestParam1, function(resp) {
myDisplayCustomizedView(resp.records);
}//function(resp)
);//api
function myDisplayCustomizedView(records) {// カスタマイズビューにレコード表示

for (var i = 0; i < records.length; i++) {
var recorda = records[i];
var row1 = myRecordSpace.insertRow(myRecordSpace.rows.length);
var cell1 = row1.insertCell(0);
var cell2 = row1.insertCell(1);
var cell3 = row1.insertCell(2);

cell1.innerText = recorda.氏名.value;
cell2.innerText = recorda.フリガナ.value;

//セル3にアプリBから会社名
var SIID = recorda.ID.value;
var query = 'ID ="'+SIID+'"';
var requestParam2 = {
"app": (アプリBのアプリid)
query: query
};//params2
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', requestParam2)
.then(function(resp2) {
var relatedRecords2 = resp2.records;
var companyname = '';
relatedRecords2.forEach(function(relatedRecord2) {
if(relatedRecord2.ID.value == SIID){//データをループ
companyname = relatedRecord2.会社名.value;
}//if
});//forEach
});//resp2
cell3.innerText = companyname;
}//for
}//function
};//onclick
}

masuto様

お世話になっております.

44行目に

cell3.innerText = companyname;

とありますが,「companyname」のスコープ外かと思います.
https://qiita.com/santaku3109/items/ad66f57ebb70b580ebaa

まず,43行目と44行目を入れ替えて動作を確認してみると良いかと思います.

});//forEach
});//resp2
cell3.innerText = companyname;
}//for

});//forEach  
cell3.innerText = companyname;
});//resp2
}//for

それでも動作しない場合は,コンソール画面でエラーメッセージを確認してみると良いと思います.
https://developer.cybozu.io/hc/ja/articles/207613916

>江田篤史 さま

 

ありがとうございます!!

});//forEach
cell3.innerText = companyname;
});//resp2
}//for

そして

cell3.innerText = companyname;
});//forEach
});//resp2
}//for

としてみたところ,検索ボタンを一度クリックしたらなにも表示されず。
二度クリックすると,検索結果の1つだけに,会社名が表示されました。
さらに

cell3.innerText = companyname;
}//if
});//forEach
});//resp2
}//for

としてみたところ,検索結果の1つだけに会社名が表示されています。
検索結果すべてに「会社名」を表示させるにはどうしたらいいでしょうか?