Articles tagged with: プラグイン

Ship Vol.2に参加してきました


2023年12月8日に『Ship Vol.2』に参加してきました。

会場はサイボウズ社本社。前日のMOVED MeetUpも同じ場所だったので、二日連続の訪問です。

今回のShipへの参加は私にとって初めてです。4/21にVol.1が催された際は、私に参加する余裕がなかったため、弊社のメンバーに代わりに参加してもらいました。

あれから約8カ月近く経ち、弊社の状況にも変化が生じました。
そして私自身の考えも変化しました。

どう変わったかと言うと、kintoneシステム開発においてJavaScriptを主に使ったカスタマイズの限界を悟りました。

つまり、もう、案件の数が増えすぎて、JavaScriptだけで対応しきれなくなりました。
そもそもkintone自体が、容易に変化するお客様の仕様に柔軟に対応することを前提にしています。kintoneが変わるなら、カスタマイズ要件も頻繁に変わります。
どれだけ要件定義を入念に行ってもそれは変わりません。お客様自身が確定させたつもりの仕様も、社会情勢の変動によって変更を余儀なくされます。しかもその速度はますます速まっている昨今です。
kintoneシステム開発のやり方もアジャイル開発の考えが主流になっている今、いちど決まった要件が覆らないかつての常識は通用しません。
そして、JavaScript開発ではどうしてもその速度においてプラグインにかないません。つまり、JavaScript開発を続けていると、いつまでたっても生産性が上がりません。

弊社はJavaScriptで頑張ってやってきました。うちのメンバーもJavaScript開発では多層Promiseを扱った実装もこなしてくれるようになっています。
が、今年に入ってエンジニアの育成が必要になった途端、JavaScriptを書く前提の育成の速度ではプラグインに及ばない現実にやられました。
ということは、JavaScriptでやり切れるとすれば、最初からスキルのあるエンジニアを抱えている場合のみです。
この半年でその現実を痛感しました。

JavaScriptに成り代わり、kintoneのカスタマイズを行う手段はいろいろとあります。大きく分けるとプラグインか外部サービスでしょうか。
外部サービスは著名なところではgusuku Customineやトヨクモシリーズがあります。
一方、プラグインは有償無償を問わず、各社様から多種多様のプラグインが提供されています。

krewDataやkrewSheetは、一つのプラグインだけで、アプリ連携やデータ連携処理を何重にもつなげて行えることが特徴です。
と、偉そうなことを書いていますが、実は私がkrewDataを触り始めたのはつい最近です。この半年どころか、2カ月以内です。

gusuku Customineは5、6年ほど前から触っていたにもかかわらず、krewDataを触るのが遅れたのは、弊社のお客様が使っていらっしゃらなかったことが理由です。

ところが、今年になって二つの案件でkrewDataを扱うことになり、私も実際に触ることになりました。そして、その機能に舌を巻きました。

実際、krewDataはよくできていると思います。
フローをつなげていき、上流の設定値が変わったら、連結される下流のフローに一気に反映する点もなかなか魅力的です。
慣れてくると、JavaScriptよりもかなり簡単です。

正直にいうと、krewDataで実現できることはJavaScriptでも書けます。フローの連携もできます。
ところが、案件によっては、複雑な連携を何十にも連ねる実装をJavaScriptで書こうとするとかなりのコード量になるでしょう。
その中のどこか1カ所でもPromiseのReturnを置く位置を間違えれば、またはResolveやRejectの値を間違えれば、途端によくない結果を招きます。

また、せっかく実装してもお客様側の仕様が変更になると、その全てがやり直しになってしまいます。
krewDataは、そうしたコーディングにまつわるあらゆる手間を省いてくれます。私がkrewDataの機能に舌を巻いたのもそれが理由です。

上記のようないきさつをへて変化しつつあった私の心を待っていたかのように、今回、Ship開催のアナウンスがありました。
そして、私自身がまだグレープシティ、現在のメシウス社の文化や社風を十分に理解していません。
そこで、今回はShipに参加しようと思いました。
ところが、私の調整がなかなかつかずにいるうちに、ページからShipが申し込めなくなってしまいました。

今回は運営するメシウス様のご好意で、後から追加枠として入れていただけることになりました。感謝いたします。

さて、今回はサイボウズ社27Fに繁るシンボル「サイボウ樹」の前に集ってのセミナー形式。私にとってこの形式は久々です。


最初にメシウス社の佐藤さんと大江さんより開会の挨拶。


そして、株式会社ZOZOの新井さん(あーけん)からは「krewDataのすゝめ」。
ふむ、Char関数はVBAを扱う際にはよく使いますが、krewDataでも使えるんですね。
そして、膨大なデータチェック自体もkrewDataだけで完結できる可能性を見せてもらえたのは、まさにイベントならではの気づきです。あーけんさんに感謝です。


続いて、NPO法人チャリティーサンタの青山さんから「全国のサンタクロースを支えるkintone 開発」。
こちらは主にkrewSheetをお使いの事例でした。
krewSheetは、私も以前からお客様の案件によっては導入したりして使っていました。
Excelからkintoneにチャレンジしたお客様に、高いハードルを与えずにkintoneになじんでもらう際、krewSheetは最適なツールです。
krewSheetを使って運用を直観的にしながら、集計もkrewDataを効果的に使っていらっしゃる良い事例でした。
また、チーム応援ライセンスが適用できるユーザーはkrewシリーズが安価に使えるプランがあることを私はあまり認識していませんでした。この可能性を知った事も、ありがたい情報でした。青山さんに感謝です。


続いて、マルテー大塚の石井さんより「キントーンとアクセスの話」。
上に書いた通り、私はkrewDataを使っていて、kintoneではできなかったSQLを活用した可能性に驚きました。
kintoneではOUTER JOINもUNIONもできません。Group ByもHavingもそれを使ったデータ加工やアプリ連携をするにあたってはJavaScriptやAlaSQLなどのライブラリが必要です。
石井さんのセッションでは、こうしたSQLを起点としたさまざまな事例を取り上げてくださいました。
私もそうですが、RDBやSQLに慣れている者にとってkintoneの癖と呼べる点こそ、このSQL的なアプローチができない点です。
技術者にさらにkintoneを使っていただくうえで、石井さんのセッションは参考になるはずです。石井さん、ありがとうございました。


続いてメシウス社の佐藤さんより「krewのマーケチームではこうやって予実管理してます」。
これも、Excelでは直感的にできていたのに、kintoneでは直感的な操作ができないと考える人への好事例ですね。
こうした事例は、最終的なデータ加工や見せ方に関する部分なので、私もそこまで積極的にお客様に提案してこなかったのですが、より最後の一塩の意味をこめて、今後は提案していきたいと思いました。
佐藤さんには今回追加枠のご案内もいただきました。それも含めてありがとうございました。


さて、その後はkrewラベル付きのビールやジュースが配られ、交流タイムです。
5つほど属性ごとに分かれて集まってもらい、そこで輪になって語ってもらう趣旨がアナウンスされました。
さて、私の属性はkintone初心者ではないし、情シスでもありません。どちらかといえばkrewData初心者のようなもの。近くにたまたま近くにいたいた中尾さんと、どのグループに行きましょうかね~とのんきに話していたら、いつのまにかグループが定まっていました。なので、私は中尾さんに加え、同じようにはみ子になってしまったお二方と四人で話をしていました。


なるほど、こういう運営方法なのですね。理解できたところで、次の懇親会第二部の時間になりました。
ところが私はこの日の夜、横浜で忘年会の約束がありました。そのため、ここで辞去しました。

雰囲気も把握したし、また次の機会があれば参加したいと思います。メシウスさん、参加者の皆さん、ありがとうございました。


kintone Café 神奈川 Vol.9を開催しました


九月二十八日にkintone Café 神奈川 Vol.9を開催しました。

qloba上の公式サイト。
https://kintonecafe-kanagawa.qloba.com/activities/11229

前々回のVol.7の中で、これからはkintone Café 神奈川は3カ月おきに開催する、と申し上げました。
なんとかその約束を守れました。まず、ご参加者の皆様やスタッフの皆様に感謝いたします。

今回は、まだリアルとオンラインのハイブリッド開催には時期尚早ということで、完全オンラインで開催しました。

今回のテーマは「使って/買ってよかったプラグイン」とさせていただきました。
kintoneの良さは、プラグインを活用することでより輝きを増す。そのことに異論のあるかたはいらっしゃらないでしょう。
kintoneが単体で弱い部分をプラグインで補う。例えばJavaScriptによる開発は、プログラマーやシステム・エンジニアなら可能です。でも、そうではない方がkintoneをよりよく使うには、開発ベンダーに開発を依頼するか、プラグインを導入するかのどちらかです。


清水さんのセッション「顧客管理アプリと使ってよかったプラグイン」は、その生きた実例でした。導入プラグインはgusuku CustomineとCalendar Plusの二つのみ。ですが、その二つをとことん使い込み、活用しつくすことで業務を回しておられます。
Customineの設定の実画面や、デモを利用したkintoneのカスタマイズをノンコーディングで行う様子は、まさにkintoneの可能性を見せてくれました。たとえプログラミングができなくても、プラグインを使えば何でもできてしまう。その可能性に満ちたセッションでした。
実は清水さんがkintoneを使っていこうと決意して、初めて参加したコミュニティこそ、私が主宰したkintone Café だったのですね。そのご縁に感慨もありました。清水さん、ありがとうございました。


続いて鈴木さんのセッション「私のイチ推しプラグイン」です。656アプリを誰でも業務カイゼン、みんなで業務カイゼンの名のもとに、自由に使ってもらう。それだけでも見事ですが、読み込み済みのプラグインは83。
それほどの数のプラグインを使いこなしているだけあり、検索プラグインの各社ごとの比較はとても参考になるものでした。そして、計算式プラグインの詳細な紹介。これもまさに見事。開発ベンダーの目からみても、価格と機能を考えると、自社で開発して提供するより、はじめからプラグインで提案した方が良いと思わせるものでした。見事でした。鈴木さん、ありがとうございました。


続いて、LTです。まずは藤村さんよりプラグインの選び方について。藤村さんは昨年のkintone Hackの本選に出場されています。プラグインは数多くありますが、なんでも取り入れるのではなく、「やりたいこと」を意識する。そしてプラグインの内容をきちんと吟味した上で選ぶ。その大切さを教えてくださいました。
このことはkintoneを使う上で学ぶべきことです。藤村さん、ありがとうございました。


続いては金春さん。御存じアールスリーインスティテュートでgusuku Customineの製品を統括されています。金春さんからはgusuku Customineをなぜ作ったのか。今までの発展と、これからの可能性について教わりました。清水さんのセッションでもCustomineの威力は分かりました。実は弊社でもお客様にgusuku Customineをお勧めし、短納期で複雑な案件を納品にこぎつけた経験もあり、開発ベンダーであっても可能性を知っています。なぜCustomineを作ったかというのは私も初めて伺いましたし、サポートや頻繁な機能追加にもかかわらず値上げをしていないなど、金春さんの本気度とgusuku Customineの可能性を感じました。金春さん、ありがとうございました。


続いては吉田さん。kintoneエバンジェリストとしてkintone Café 浜松を主宰されています。浜松は全国のkintone Caféでも断トツの開催回数を誇っています。
吉田さんが話してくださったのはfreee for kintoneについて。会計クラウドであるfreeeとkintoneをつなぐプラグインですが、freeeの充実したAPIリファレンスの紹介や、freee for kintoneを使うことでかえってカスタマイズが必要になることもあるなど、開発者の実体験に即した内容でした。弊社もfreeeは良く扱っているだけに、とても分かりました。吉田さん、ありがとうございました。


最後に弊社代表の長井です。コロナ陽性からの回復途上にある中、リハビリテーションもかねての参加。LTの内容は数日前に遭難した山の中で考えました。そもそも開発ベンダーとして、JavaScriptやプラグイン開発も行うのは当然ですが、場合によっては既存のプラグインを提案することもありではないか。
その観点から、弊社としての判断基準を語ってみました。もっとも忘れてはならないのは、あくまでもお客様のご希望を優先することです。開発ベンダーとしてはなるべく自社で開発したい気持ちは良く分かりますが、場合によっては既存のプラグインを使うこともありではないか、ということを話しました。

その後の質疑応答の時間でも皆様から積極的な質問を頂きました。プラグインをテーマにしたことに手応えを感じた時間でした。

21時からは、ご希望する方で懇親会。ここでもプラグインの活用や今後のkintone Café、10月のkintoneアップデートなど、多彩な話題で盛り上がりました。22時半まで。

いやぁ、ご参加の皆様、スタッフの皆様、ありがとうございました。また次は3カ月後の開催を目指して手応えを感じました。またお会いしましょう!


box for kintoneでERR_CONNECTION_REFUSEDが出てしまった場合


kintoneをカスタマイズする際は、デバッグが欠かせません。
ブラウザーのコンソールに出るエラーメッセージはデバッグを行う上で重要なメッセージですよね。

とくに複数のカスタマイズやプラグインを入れたアプリでは、どのエラーがどのJavaScriptによって出力されるのか把握しておかねばなりません。そうしないと私のように脳のフラッシュメモリー容量が少ない人はすぐにCPU100%に達してしまうのです。

今回、弊社で別のプラグインを作るにあたり、box for kintoneで謎のエラーが出ていました。
エラーが出ているのにbox for kintoneのプラグイン自体はきちんと動作しているという。おやまあ。
謎です。全くの謎です。

と、そんな混乱は、以下にご紹介する方法で解消されました。
ウェブ上でもあまりこの件についての記事がなかったので、ニッチですが皆様のご参考になればとアップしました。

同様にファイアウォール系拡張機能とオンラインストレージの組み合わせだと出るかも。

0.box for kintoneとは

 オンラインストレージとkintoneを連動するプラグインです。こちらは「box for kintone」で検索していただければいくつも見つかると思います。使用上の注意をよく読み、用法 用量を守って正しくお使い下さい。
 こちらとか

1.謎のエラー

 ところが、一見すると想定通りに動いているように見えるbox for kintoneですが、コンソールには
 謎のエラーがうごめいています。

 な、なんやこれ?
 上図では見えませんが、エラーに「その心は?」と聞いてみると「ERR_CONNECTION_REFUSED!」と叫んでいます

 他のカスタマイズを進める都合上、こういうエラーは先につぶしておかないと。

 普通、ERR_CONNECTION_REFUSEDはウェブサイトにアクセスできないときに出るエラー。
 なのにkintoneの画面上にあるboxの窓には接続できていて、ドラッグするとファイルのアップロードもできる。謎です。

 何かが起これば、ファイアウォールを疑う。これは某氏(誰?)の金言です。

 と、そこで、ブラウザー(Google Chrome)に拡張機能として入れているマカフィーの存在に思い至ります。

2.拡張機能を探す。

 拡張機能については、下図のようにたどれば設定画面にたどりつけるはずです。
 

 ここでマカフィーウェブアドバイザーなる拡張機能が登場。これかな。
 

3.拡張機能の「ファイルのURLへのアクセスを許可する」機能をオフにする。

 詳細を押すと、こんな画面が。うむ。OFFになっている模様。これをOnにするといかがかな?
 


 
 こんな風にぽちっと。青くなりましたね。

4.念のためキャッシュやクッキーも消しておきましょうね。

 やってみたらうまくいかないので、ブラウザーがクッキーの消化不良を起こしているに違いない。ここは胃を空っぽにしてあげましょう。

 ここでは閲覧履歴データの消去を選びます。

 ここで閲覧履歴にチェックをいれて消去してしまうと、いろんなサイトで再アクセスが必要になるのでご用心ください。

 すると、謎のboxエラーはいなくなりました。めでたしめでたし。

5.終わりに

これは、2018/9/5時点の情報です。
もちろん、折角ファイアウォールさんがファイルへのURLを許可しないようにしてくれているのに、それを許可するということは、セキュリティ上リスクも増します。
そのあたりをご理解の上、参考にしていただければ。もちろん何かあっても弊社では責任はとれませんので。

なお、弊社はこれから、box for kintoneを拡張し、サブテーブルの行ごとにBOX上でサブフォルダーも作れるようにする予定です。