カテゴリー内の他の記事

そのカスタマイズ大丈夫? アップデートの影響を受けにくいカスタマイズ Tips

はじめに

 kintoneは毎月の定期メンテナンスでアップデートしています。

このとき、API ドキュメントに記載していない方法でkintoneカスタマイズを行うと、kintoneの機能追加の影響を受けて、カスタマイズが動かなくなるリスクがあります。
例えば、直接 HTML 要素の参照や編集を行う「DOM操作」と呼ばれる実装方法などがあります。

そこで本記事では、kintoneのアップデートで動かなくなるリスクがあるカスタマイズの例を紹介します。
例を通じて、アップデートの影響を受けにくいカスタマイズについて考えていきましょう。

具体例

ここからは、具体例を交えて説明します。
回避策がある場合はその内容についても説明します。

DOM操作

HTML要素の参照

kintoneの画面上に要素(ボタンなど)を表示したい場合は
kintone.app.record.getSpaceElement()kintone.app.record.getHeaderMenuSpaceElement()などで取得したスペース要素にボタンなどの要素を追加してください。

ID名やClass名の指定は動かなくなるリスクがあります。例えば以下のようなコードです。
クラス名のrecordlist-cell-gaiaは変更される可能性があるためです。

 

もちろんjQueryを使ってjQuery('.recordlist-cell-gaia')のように指定するのも同様です。

つまり、APIで取得できる場所以外に要素を追加することは、動かなくなるリスクがあります。
以下のようにHTMLタグを参照するのも同様です。

positionを使った要素の配置

スペース要素やメニュー上側の空白要素を取得して、そこにHTML要素を追加するのはAPIドキュメントに準じた方法です。
しかし、positionプロパティを利用して任意の位置にHTML要素を追加する方法は、動かなくなるリスクがあります。
親要素などのスタイルが変更になる可能性があるためです。
例えば以下のようなコードが該当します。

HTML要素の操作

getFieldElement()で取得した要素はスタイル変更のみがAPIドキュメントに準じた方法です。

スタイル変更以外は動かなくなるリスクがあります。
例えば以下のようなイベント取得です。

マウスやキーボード入力のイベントを利用したい場合は、以下の手順をオススメします。

  1. スペース要素を取得する
  2. スペース要素にテキストボックスなどを追加する
  3. テキストボックスのイベントを利用する
  4. 必要なタイミングで入力値を利用する
    例)レコード保存実行前イベントで入力値をkintoneに反映する

 

URL の利用

URLの参照

kintoneのURLは変更になる可能性があります。
例えばkintone全体のカスタマイズでURLを参照することにより特定スペースのみでカスタマイズを実行できますが、URL変更によりカスタマイズが動作しなくなる可能性があります。

URLの指定

同様に以下のようなURLの指定も動かなくなるリスクがあります。

cybozu developer network でも、こちらの記事などで、直接URLを指定したカスタマイズをしています。

URLパラメーター(クエリーストリング)を利用する

kintoneの画面を開くときにURLパラメーターを使えば外部からkintoneにデータを渡せますが、動かなくなるリスクがあります。
外部のデータを利用するにはレコード表示などのイベントでREST APIを利用してデータを取得してください。

 

おわりに

 今回取り上げた、リスクのあるカスタマイズ方法は一例ですが、kintoneのアップデートで影響を受ける可能性がある実装方法のイメージが掴める内容になっていれば幸いです。
楽しいカスタマイズライフを!

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

サインインしてコメントを残してください。