1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ノンビン塾~エンジニアとしての成長記録5~

Posted at

ノンビン塾について

そもそもノンビン塾ってなに?
過去の記事参照

前回の課題提出

テーマ

 閏年のコードをelseif を使って簡略化する

回答

 elseifは使った事がなかったので、まずはどういったものなのか調べてみた。

if (条件式①) {
記述した条件が満たされた場合の処理
} else if (条件式②) {
①が満たされず②の条件が満たされた場合の処理
} else {
①も②満たされなかった場合の処理
}

ふむふむ。何となくイメージはつかめた。
ではやってみよう。

calc.js
(function() {
  'use strict';
  kintone.events.on(['app.record.create.submit','app.record.edit.submit'], function(event) {
    let str = '';
    let num = Number(event.record..value)
     if (num%4 !==0){
        // 4で割り切れない
        str = '平年です'
      } else if (num%100 !==0){
        // 100で割り切れない 
        str = '閏年です'
      } else if (num%400 ===0){
        // 400で割り切れる
        str = '閏年です'
      } else{
        str = '平年です'
      }
    event.record.結果.value = str;
    return event;
  });
})();

少しずつ修正しながらも完成させた。
テストしてみてると、無事に機能した。
だが、合っているか自信がなかったので、ウッチーと別日に答え合わせを実施。笑
結果、全く同じコードだったので、「あ、やっぱり合ってるんだな!」と自信がついた。

ノンビン塾当日、
よっしゃ、見せたるぜ!
と自信満々に見せると、・・・(以下フィードバックに続く)

フィードバック

  • もう少しコード削れるよ。
    →最初のstrに「平年です」を入れると、最後のelse以降は削除できる。
calc.js
(function() {
  'use strict';
  kintone.events.on(['app.record.create.submit','app.record.edit.submit'], function(event) {
    let str = '平年です'; //平年ですと追記
    let num = Number(event.record..value)
     if (num%4 !==0){
        str = '平年です'
      } else if (num%100 !==0){
        str = '閏年です'
      } else if (num%400 ===0){
        str = '閏年です' //else以降を削除できる
      // } else{
      //   str = '平年です'
      }
    event.record.結果.value = str;
    return event;
  });
})();

完璧だと思った回答も、一瞬でコードが短くなり、
開いた口が塞がらなかったのはここだけの話。。笑

なんと、まだ削れるらしい。
なるほど。
こうやってスキルが上がっていくと、
コードが見やすく・短くなっていくのか。

非常に面白い。

今回の講義

【テーマ】
 Kintoneの顧客アプリをAPIたたいて取得してみよう!
 
【事前準備】
 ・Kintoneの開発者ライセンス入手
  ⇒アプリ:顧客リスト(@Kintoneアプリストア)
 ・プラグイン追加:JSEdit for kintone

1)まずは、Kintoneのリファレンスを読もう。

いきなりコードを書き始めるのではなく、
顧客データから特定のものだけ取得するには、何をどうすれば良いのか。
を調べるのが最初の一手。

このページを熟読する必要がある。

自分の為にも、再度念押ししておこう。 「熟読」 である。
→後述するが、私は最初熟読しなかった為、少しハマってしまった。

なお、今回の場合重要なところは、
「リクエストパラメータ」と「演算子」である。
スクリーンショット 2022-06-14 223317.png

2)顧客アプリからレコード番号10未満のデータを取得してみよう

リファレンスをみながら、以下のqueryのところにコードを入れてみる。

list.js
(function() {
  'use strict';
  kintone.events.on('app.record.index.show', function(event) {
    const body = {
      'app': kintone.app.getId(),
      'query': 'レコード番号 < 10', //ここにレコード番号10未満を指定
      'fields': []
    };
    kintone.api(kintone.api.url('/k/v1/records.json', true), 'GET', body, (resp) => {
      // success
      console.log(resp);
    }, (error) => {
      // error
      console.log(error);
    });
  });
})();

この状態で保存ボタンをクリックし、アプリ:顧客リストを開く。
キーボードのF12をクリックし、コンソールを表示させる。
そうすると、console.log(resp)で取得したデータを表示させることができた。
スクリーンショット 2022-06-14 224141.png
やったーー!

3)顧客アプリから会社名が林田商会のデータを取得してみよう

会社名が林田商会。が前提であるため、以下のようにする。

list.js
(function() {
  'use strict';
  kintone.events.on('app.record.index.show', function(event) {
    const body = {
      'app': kintone.app.getId(),
      'query': '会社名 = "林田商会"', // =の演算子を使用する。
      'fields': []
    };
    kintone.api(kintone.api.url('/k/v1/records.json', true), 'GET', body, (resp) => {
      // success
      console.log(resp);
    }, (error) => {
      // error
      console.log(error);
    });
  });
})();

コンソールをみてみると、以下のようにきちんと取得できていた。
スクリーンショット 2022-06-14 224742.png

4)顧客アプリから電話番号が090-××××-××××のデータを取得してみよう

これでハマってしまった。
まず、3)でやった形を真似てやってみた。
フィールドコードは【TEL(数字のみ)】である事をまず確認。
スクリーンショット 2022-06-14 225556.png
以下コードでやってみた。

list.js
(function() {
  'use strict';
  kintone.events.on('app.record.index.show', function(event) {
    const body = {
      'app': kintone.app.getId(),
      'query': 'TEL(数字のみ) = "090-××××-××××"',
      'fields': []
    };
    kintone.api(kintone.api.url('/k/v1/records.json', true), 'GET', body, (resp) => {
      // success
      console.log(resp);
    }, (error) => {
      // error
      console.log(error);
    });
  });
})();

コンソールにエラーが出た(;'∀')
スクリーンショット 2022-06-14 225812.png

どこがおかしいのか悩んだ。
しばらく悩んでいると、神の声が聞こえた。(ノンビンアドバイス。笑)

「リファレンスをちゃんと読んでみよう」

そう。
実は、私はちゃんと読んでいたつもりでも、
無意識にサラーっと流していたあるキーワードがあった。
これだ。。。
スクリーンショット 2022-06-14 230112.png

フィールドコード

これが何かを明確に分かっていなかったのだ。
「熟読していなかった。」 

まずはフィールドコードとは何ぞや。と調べてみる。
結果、「TEL(数字のみ)」のフィールドコードは、以下の通りだった。
スクリーンショット 2022-06-14 230517.png
これか。。。。
ということで、修正し、以下コードで確認。

list.js
(function() {
  'use strict';
  kintone.events.on('app.record.index.show', function(event) {
    const body = {
      'app': kintone.app.getId(),
      'query': 'TEL = "090-××××-××××"', //TELに修正
      'fields': []
    };
    kintone.api(kintone.api.url('/k/v1/records.json', true), 'GET', body, (resp) => {
      // success
      console.log(resp);
    }, (error) => {
      // error
      console.log(error);
    });
  });
})();

そうすると、以下のとおり取得できたーーーーー!!!
スクリーンショット 2022-06-14 230934.png

感想

今回の学び・気づきは、

  • リファレンスはしっかり読もう。熟読!!!!! 超大事!
    →今回は、これに尽きる気がする。笑
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?