LoginSignup
2
0

More than 3 years have passed since last update.

kintoneおみくじアプリ作ってみました!!(動作原理について)

Last updated at Posted at 2020-12-29

こちらで動作原理についても知りたいのことでしたので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; 
    });


 })();
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0