ノンビン塾について
そもそもノンビン塾ってなに?
→過去の記事参照
前回の課題提出
テーマ
閏年のコードをelseif
を使って簡略化する
回答
elseifは使った事がなかったので、まずはどういったものなのか調べてみた。
if (条件式①) {
記述した条件が満たされた場合の処理
} else if (条件式②) {
①が満たされず②の条件が満たされた場合の処理
} else {
①も②満たされなかった場合の処理
}
ふむふむ。何となくイメージはつかめた。
ではやってみよう。
(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以降は削除できる。
(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のリファレンスを読もう。
いきなりコードを書き始めるのではなく、
顧客データから特定のものだけ取得するには、何をどうすれば良いのか。
を調べるのが最初の一手。
このページを熟読する必要がある。
自分の為にも、再度念押ししておこう。 「熟読」 である。
→後述するが、私は最初熟読しなかった為、少しハマってしまった。
なお、今回の場合重要なところは、
「リクエストパラメータ」と「演算子」である。
2)顧客アプリからレコード番号10未満のデータを取得してみよう
リファレンスをみながら、以下のqueryのところにコードを入れてみる。
(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)で取得したデータを表示させることができた。
やったーー!
3)顧客アプリから会社名が林田商会のデータを取得してみよう
会社名が林田商会。が前提であるため、以下のようにする。
(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);
});
});
})();
コンソールをみてみると、以下のようにきちんと取得できていた。
4)顧客アプリから電話番号が090-××××-××××のデータを取得してみよう
これでハマってしまった。
まず、3)でやった形を真似てやってみた。
フィールドコードは【TEL(数字のみ)】である事をまず確認。
以下コードでやってみた。
(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);
});
});
})();
どこがおかしいのか悩んだ。
しばらく悩んでいると、神の声が聞こえた。(ノンビンアドバイス。笑)
「リファレンスをちゃんと読んでみよう」
そう。
実は、私はちゃんと読んでいたつもりでも、
無意識にサラーっと流していたあるキーワードがあった。
これだ。。。
フィールドコード
これが何かを明確に分かっていなかったのだ。
「熟読していなかった。」
まずはフィールドコードとは何ぞや。と調べてみる。
結果、「TEL(数字のみ)」のフィールドコードは、以下の通りだった。
これか。。。。
ということで、修正し、以下コードで確認。
(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);
});
});
})();
感想
今回の学び・気づきは、
- リファレンスはしっかり読もう。熟読!!!!! 超大事!
→今回は、これに尽きる気がする。笑