こちらで動作原理についても知りたいのことでしたのでQiitaに書こうかと。
kintoneおみくじアプリ作ってみました!!の動作原理説明編です。
なんのことはなく、参照先のアプリからデータを取ってきてランダムで抽選をかけて、おみくじの結果レコードを作成してるだけ、です。
どんな感じで動作しているかは以下をご覧ください!
kintoneおみくじアプリ2021 使用例
app55.js
/**
* おみくじアプリ
* AUTHOR S.Morita(AntbearCreates)
*/
(function () {
"use strict";
/**
* カスタムビューで表示した時&カスタムビューに配置した#post_btnをクリック時の処理
*/
kintone.events.on(['app.record.index.show'], function (event)
{
/* カスタムビューの処理 特にカスタムビューのIDなど指定していないけど・・・ */
jQuery('#post_btn').click(function()
{
const add_appId = kintone.app.getId();//追加先のアプリID(自アプリ)
const master_appId = kintone.app.getLookupTargetAppId("おみくじid");//おみくじマスターアプリのID
//おみくじマスタから最大500件まで取得して抽選!
let param = {
app: master_appId,
query: 'limit 500',
fields: ['$id','おみくじ結果'],
totalCount: true,
isGuest: false
};
//kintoneUtility廃止される前のモジュールなんでご勘弁
kintoneUtility.rest.getRecords(param).then(function(resp) {
// 成功時の処理
//抽選結果を確定
let random = Math.floor( Math.random() * resp.records.length );
//結果に貼り付けるためのログインユーザー情報
let user = kintone.getLoginUser();
//結果レコードを追加
let add_record = {
'おみくじid' : { value: resp.records[random]["$id"].value },
"ユーザー" : { value: [{"code": user.code }]}
};
let add_param = {
app: add_appId,
record: add_record,
isGuest: false
};
kintoneUtility.rest.postRecord(add_param).then(function(add_resp) {
// 成功時の処理を記載する
console.dir(add_resp);
//作ったおみくじ結果のレコードに移動しましょう!
location.href="/k/"+ add_appId +"/show#record="+add_resp.id;
return event;
}).catch(function(error) {
// エラー時の処理を記載する・・・とりあえず省略
console.log(error.message);
});
}).catch(function(error) {
// エラー時の処理を記載する・・・とりあえず省略
console.log(error.message);
});
});
return event;
});
})();