カスタマインでできないことをするには

こんにちは。カスタマインで変なことばっかり記事にしている気がしている與那城です。

実用的かどうかはともかく、みなさんのカスタマインズの参考になっていれば幸いです。

カスタマインを使用してのkintoneアプリのカスタマイズを行なっていると、これどうやるんだろう…って考えることになります。

カスタマインのカスタマイズ画面で「やること」を眺めてみたり、ドキュメントを読んだり、Googleで検索してみたりしてみて考えると思います。

しかし、カスタマインだけでは、どうしても「できないこと」が出てくることはあります。

アプリの使い方や運用でどうにかするために、業務やアプリの作りを変えていく。というプロセスを踏むこともあるかと思いますが、
どうしてもカスタマイズでこれをやりたい!!!!っていう時、ありますよね?

そういった時に、どうやってやっていくかというのを紹介していきます。

カスタマインだけではできないことをやるには

カスタマインだけではできないことやろうと思った時、やる内容にもよりますが、やり方はおそらく下記の方法になるかと思います。
(順番に意味はありません。説明のために番号を振っています)

  1. やりたいことができるプラグインがある場合、それを導入する
  2. カスタマインの「JavaScriptを実行する」を使用してJavaScriptのコードを実行する
  3. カスタマインの「AWS Lambdaファンクションを実行する」を使用して、自分で開発したLambdaファンクションを呼び出す
  4. 通常のJavaScriptを使用したカスタマイズと併用する

やりたいことができるプラグインがある場合、それを導入する

まずはじめに「やりたいことができるプラグインがある場合、それを導入する」ですが、
カスタマインと連携しているプラグインについては、カスタマインと併用した時の動作確認を行なっているので
積極的に検討しても大丈夫です。(実際の運用を想定して検証してみてください)

ただし、すべてのkintoneプラグインとの動作確認を行なってはいません(プラグインの数は大量にありすぎて検証できない)。

プラグイン自体の不具合によってカスタマインだけでなく、他のプラグインと併用したときに動作しないプラグインというのもありますので、
実際にインストールして検証してみることをおすすめします。

カスタマインの「JavaScriptを実行する」を使用してJavaScriptのコードを実行する

カスタマインの「JavaScriptを実行する」を使用して、自分でJavaScriptのコードを書いて実行させる方法があります。

値の加工とか、外部サイトにリクエスト投げてみるとか、ちょっとしたJavaScriptのコードを動かすのには便利です。

「JavaScriptを実行する」のあとに「他のアクションの実行が終了したら」条件をうまく処理してくれます。
技術的なことを書くと、kintone.Promiseをreturnすると、Resolveを待ってから次のアクションを実行してくれるようになっています。

ただ、JavaScriptでの開発でありがちな

  • マルチブラウザ対応/モバイル対応が大変
  • JavaScriptがエラーになるとカスタマイズ全体がおかしくなる

とか大変です。また、技術的なところでいうと

  • TypeScriptとかで書けない(トランスパイルするとかBabelとかと組合せるとそれはそれで沼にハマります)
  • eventとか扱えない

といったような制約があるので、「JavaScriptを実行する」は、何でもできる訳ではありません。

それでも、使い方によっては強力な武器になるのは間違いありません。

カスタマインの「AWS Lambdaファンクションを実行する」を使用して、自分で開発したLambdaファンクションを呼び出す

kintoneの内部だけで処理できない(もしくは、外部に処理を投げれる内容)であれば、AWS Lambdaファンクションを呼び出す方法があります。

Lambdaファンクションの呼び出しはカスタマインでできるので、kintoneの特定のフィールドの値をLambdaに渡して、その処理結果をフィールドにセットする。といったようなことが可能です。

また、別にシステムにデータを送るとか…そういうLambdaを作っておいて、簡易的なシステム連携をすることも可能です。

たとえば

  • メールを送信するLambdaファンクション
  • JSでは処理しづらい文字列の処理(形態素解析とか、名前の正規化とか)や、外部のサービス・APIを使用した処理(レピュテーションとか、スコアリングとか)

とか、Lambdaファンクションでやると楽な処理はいっぱいあります。

ただ、当然ですが、UIの改善はLambdaファンクションの呼び出しではできません。

通常のJavaScriptを使用したカスタマイズと併用する

これであればJavaScriptを使用したカスタマイズは何でもできます。

カスタマインと併用することも可能なので、カスタマインでパパっとできるところはカスタマインでやってしまって、
カスタマインでできないところはJavaScriptで開発するということも可能です。

もちろん開発のスキルが必要になるので、弊社のHighSpeed SI等を利用するなど開発を依頼するといったことも可能です。

kintoneの開発に詳しくない場合、カスタマインのカスタマイズや他のプラグインを巻き込んで動かなくなるという可能性もありますので、そこは注意が必要です。

カスタマインの強みを知り、カスタマインでできないことを補う

カスタマインの強みはなんといっても、ノーコードでクイックかつ高度ににカスタマイズ・改善ができる点です。

よくXaaS(特にPaaS)導入の時に使われるフレーズですが、「やりたいことに集中」するために、カスタマインでできることはパパっとカスタマインで作って、
ここぞというポイントだけ開発することで時間も開発にかかるコストも圧縮することができるようになるはずです。

是非みなさんもカスタマインを有効活用してください!

追記

カスタマインへの要望は是非サポートチャットへ!