どうして必要か?
kintoneアプリをテンプレート化して、アプリテンプレートからアプリを作成するとアプリIDが新たに採番されます。一方でkintoneのREST APIを使用して別画面(外部アプリ)のデータ参照/更新するには対象アプリのアプリIDが必要です。環境ごとのコード修正を回避したい場合、どうにかして外部アプリのアプリIDを取得する必要があります。
どうするか?
kintoneのルックアップと関連レコードには、参照先のアプリIDが取得できるAPIがあるのでそれを使用します。
・ルックアップの場合
関連付けるアプリに、アプリIDを取得したい外部アプリを指定します。
・関連レコードの場合
参照するアプリに、アプリIDを取得したい外部アプリを指定します。
・Javascript
ルックアップの場合はgetLookupTargetAppId()、関連レコードの場合はgetRelatedRecordsTargetAppId()でアプリIDを取得できます。
(function() {
"use strict";
var events = [
// レコード追加画面表示時、レコード詳細画面表示時、編集画面表示時
'app.record.create.show',
'app.record.detail.show',
'app.record.edit.show'
];
var handler_submit = function(event) {
// ルックアップフィールドの参照先アプリIDを取得
var lookupid = kintone.app.getLookupTargetAppId('ルックアップ');
console.log("ルックアップの参照先アプリID:" + lookupid);
// 関連レコード一覧の参照先アプリIDを取得
var relatedid = kintone.app.getRelatedRecordsTargetAppId('関連レコード一覧');
console.log("関連レコードの参照先アプリID:" + relatedid);
};
kintone.events.on(events, handler_submit);
})();
最後に
今回の方法では、ルックアップや関連レコードで紐づいていない外部アプリのアプリIDは取得できません。画面上の入出力に使用しない項目を追加するのに抵抗のある方もいらっしゃるかもしれませんが、ルックアップ関連レコード項目を使用しない画面でも、一旦紐付けを行った上で項目を非表示化することができますので、検討してみてください。