お世話になります。
2つのアプリの連携を行いたいと思っております。
①最高気温アプリ:フィールド:「日付(日付)」「最高気温(数値)」
②給水量アプリ:フィールド:「日付(日付)」「給水量(数値)」
③連携アプリ:フィールド:「日付(日付)」「最高気温(数値)」「給水量(数値)」
アプリ①②は作成済みです。
アプリ③にアプリ①②を元に
値がセットされたレコードを作成するには
どのような方法がありますでしょうか?
ご教示いただければ幸いです。
お手数ですが、よろしくお願い致します。
上記の質問に追記します。
サンプルソースを参考に現状はここまで実装しています。
①最高気温アプリ:フィールド:「日付(文字列)」「最高気温(数値)」
②給水量アプリ:フィールド:「日付(文字列)」「給水量(数値)」
③連携アプリ:フィールド:「日付(ルックアップ)」「最高気温(数値)」「給水量(数値)」
※ルックアップのコピー元のフィールドに日付型は指定できないようでしたので
日付のフィールドは文字列型にしています。
■①のアプリにボタン(以下のソース)を追加しています。
処理:ボタンを設置して③のアプリにレコードを挿入
期待する動作:
・アプリ③内の日付(ルックアップ)にアプリ①の「日付(文字列)」がセットされる。
・ルックアップが動作してアプリ②から日付をキーに給水量をセット
結果:・アプリ①のレコードがアプリ③にコピーされる(最高気温のみ)。
・アプリ③内の日付(ルックアップ)に値がセットされていません。
【質問】
・ルックアップに別アプリから文字列を挿入することは可能でしょうか。
・ルックアップに値を挿入できれば別アプリからの値の取得は自動で動作するのでしょうか。
・現在、試行している手順では期待する動作が実現できない場合は他の方法がありますでしょうか。
質問ばかりで申し訳ございませんが、よろしくお願い致します。
(function() {
//ボタンを作る処理
“use strict”;
// レコード一覧の表示後イベント
kintone.events.on(‘app.record.index.show’, function (event) {
// ボタン
// 増殖バグを防ぐ
if (document.getElementById (‘my_index_button’) != null) {
return;
}
var myIndexButton = document.createElement(‘button’);
myIndexButton.id = ‘my_index_button’;
myIndexButton.innerHTML = ‘連携アプリに反映’;
// メニューの右側の空白部分にボタンを設置
kintone.app.getHeaderMenuSpaceElement().appendChild(myIndexButton);
myIndexButton.onclick = function() {
// アプリIDの取得
var appId = event.appId;
// レコード番号の取得
var recordId = event.recordId;
var record = event.record;
for (var i = 0; i < record.length; i++) {
// リクエストプロパティ(JSON)
var params = {
"app": 43, // ← 連携アプリのID
"record": {
"日付": { "value": 日付 },
"最高気温": { "value": 最高気温 }
}
};
// kintone REST API リクエスト ~ レコードの登録(POST)
kintone.api(
kintone.api.url('/k/v1/record', true), // - pathOrUrl
'POST', // - method
params, // - params
function(resp) { // - callback
// (特に何もしない)
},
function(resp) { // - errback
// (特に何もしない)
}
);
}
window.alert('処理が完了しました。');
}
});
})();
ルックアップのコピー元フィールドの値の重複を許すにチェックを入れれば動作しました。
お騒がせしました。
今後ともよろしくお願い致します。