はじめに
カスタマイズで行き詰まったとき、cybozu developer コミュニティで課題を共有すると、有志のエンジニアがアドバイスをくれます。
ただ、コミュニティに投稿しても直ぐに回答がつくわけではなく、必ず回答があるとも限りません。
でも、cybozu developer network の記事に、解決のヒントが隠れているかもしれません。
この記事では、コミュニティでよくカスタマイズの質問、回答でよく引用される developer network の記事と、とくに見てほしいポイントをまとめています。
コミュニティで質問をする前に、まずはこの記事で紹介している内容を確認してみましょう。
よくある質問と引用される記事
カスタマイズしたのに動きが変わらない。期待通りの動きをしない。
- 動かないときは、まずは開発者ツールでエラーメッセージが表示されていないかを確認しましょう。
開発者ツールを見ると、フィールドコードの間違いや括弧が足りないなどの構文ミスに気づくことができます。 - エラー表示されていないのに動かない場合は、kintone 特有のエラーの可能性もあります。
記事で紹介されている kintone 特有のエラーに該当していないかを確認しましょう。
レコード情報をうまく取得できない。 データを更新したいがデータの指定方法・形式がわからない。
Google Chrome 開発者ツールのTips集 -kintone開発特化編-
- 取得・更新したいフィールド型の形式を「value」の例で確認しましょう。
フィールドによっては、数値や文字列ではなく、配列型で指定するものもあります。 - 取得のみ、取得と登録のみに対応しているフィールドもあります。
対象のフィールドが行いたい操作に対応しているかを含めて確認しましょう。 - 開発者ツールで kintone.app.record.get();を実行すると record オブジェクトの形式をかんたんに確認できます。
別アプリのレコードを表示・登録・更新したいが、失敗する。うまくいかないことがある。
kintone API で Promise を使ってみよう!
- 「アプリAの画面にアプリBのデータも表示したい」「アプリAでレコードを登録したタイミングで、アプリBへレコードを登録・更新したい」といった場合です。
- kintone イベントの中には、非同期で実行されるイベントがあります。
なぜ Promise を使う必要があるかを理解し、Promise の書き方を学びましょう。 - Promise サポートされているイベント・リクエストの一覧を確認しましょう。
日付の書式を変更したい。日付計算したい。特定の日付を取りたい。日付の比較をしたい。
Moment.js を利用して、日時フィールドのフォーマットをカスタマイズする
- Moment.js という外部ライブラリを使うと、日付処理がぐんと楽になります。
- kintone で Moment.js を利用するには、Cybozu CDN を設定します。
- 記事では、Moment.js を使ってできる日付計算や書式変更の例を紹介しています。
アプリの全てのレコードを取得したい。大量レコードを一括取得したい。
- レコード一覧イベントで取得できるレコードは最大20件です。
アプリ内の全レコードを取得するには kintone REST API(レコードの一括取得(クエリで条件を指定)API や カーソルAPI)を使います。
レコードを一括取得するには利用ケースに応じて適切な API を選択する必要があります。「offset の制限値を考慮したレコード一括取得について」を参考にしてください。 - どの方法でも、単純にループを使って API を呼び出すだけでは、レスポンスを待たずにループが進んでしまうので全件取得できません。
kintone.Promise を使って再帰的に呼び出しましょう。
おわりに
プログラミングに慣れないうちは難しいかもしれませんが、自力で解決できるとコーディングスキルの向上に繋がります。
この記事で紹介されている内容を確認してみたけれど解決できなかった場合でも、質問と一緒にソースコードやエラーメッセージを記載すると、より的確なアドバイスをもらえることがあります。
もしかすると、同じような問題で行き詰まった人もいるかもしれません。
コミュニティの投稿は、上部の検索ボックスから検索できます。似たような質問を確認することもオススメします。
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。