「やること」の使い道は「使う人」次第!??

公開日:

こんにちはっ。システム開発グループの わだっち です。
厳しかった猛暑、残暑の日々も過ぎ去り、気持ち肌寒くも感じる季節になってきましたね。
体調を崩しやすく、感染症にも気を付けないといけない時期ですので、みなさまご自愛ください。

さて、今日も今日とて、私がとある(お客さまからご依頼を受けてシステム構築支援をする)案件で
「あれ?できそうなのに(できると思ったのに)上手くいかない!!困ったぞ。。。」
となって、チャットーズに相談して解決して貰いましたよという1つの場面を切り取ってまた書いてみます。

注意

本記事は情報提供を目的としており、本記事の内容は無保証かつサポートの対象外です。
サポート窓口や問合せ窓口にご質問いただいても、対応いたしかねますのでご了承ください。

機能的な背景

kintoneには「インライン編集」という機能があります。
「一覧画面」で「鉛筆」マークをクリックしてレコード単位に編集→保存ができるアレですね。
※2024年9月 のアップデートで、ダブルクリックでもインライン編集ができるようになってます
 https://kintone.cybozu.co.jp/update/main/2024-09.html

そしてカスタマインには、「フィールドを無効化する」という「やること」があり、
これは一覧画面におけるインライン編集時にも動作させることができます。

今回の話のネタ元になる、とあるお客さまの背景/要件としては以下のような感じでした。

  • 書類が添付されているかどうかを一覧画面で確認したい
  • 編集時に書類が添付されていたら、一覧の条件で利用する用途のフラグ「済」をたてたい
  • 書類を添付するユーザが、直接フラグを編集はできなくしたい
  • 書類添付をするユーザとは別のユーザで、そもそも書類添付が不要のレコードもあり、編集でフラグを「対象外」とするようにしたい
  • 「対象外」とするのは両ユーザが見れる一覧画面でフラグのフィールドを表示してのインライン編集を基本としたい

要件としてこうした内容をお聞きした最初の段階では、なんとなく「簡単にできそうだ」と思ったのですが
そうは問屋が卸してくれず、いろいろと試行錯誤することになります。

具体的な対応の方針

基本的な対応(カスタマイズ)としては、基本的にカスタマインを使って実装していきます。

「編集時に書類が添付されていたら、フラグをたてたい」については、運用として編集→詳細画面の事を指していらっしゃるようなので、
フィールドに値をセットする」で問題なさそうです。
項目を1件以上選択しているならば も使います

「書類を添付するユーザが、直接フラグを編集できなくしたい」については、
基本機能による「フィールドのアクセス権」設定でも良さそうですが、kintoneの設定で「編集」を不可にしてしまうと、
さきほどの「フラグをたてる」が叶わなくなりますので、カスタマイズ「フィールドを無効化する」を使うことにします。

「書類添付をするユーザとは別のユーザで、一覧画面のインライン編集でフラグを直接編集したい」については、
これ単体の要件のためにカスタマイズは不要で、専用の一覧にフラグのフィールドを表示して
基本機能の「インライン編集」をして貰えばよさそうです。

なので、考えるべき課題点としては「書類を添付するユーザによるインライン編集でのフラグ変更をどう防ぐか」でした。

できそうで出来なかった事

一覧画面を表示したタイミングで、ログインユーザーの所属組織を取得して、
取得した組織が「特定の組織」でないならば、フィールドを無効化。

これはまあ、よくあるダメな例で、慣れてくると試す前から結果は見えているのですが、

こちらが結果のキャプチャで、やはりNGです。

今回は、インライン編集をしたタイミングで無効化したい ので 一覧画面を表示したタイミング だと
要件に合致していません。
※そもそも、kintone基本機能で一覧画面を表示したタイミングで有効化されているフィールドなんてある?的なヤツですね

それならば… と、今度は起点となるタイミングを変えてみます。
 一覧画面を表示した時 → 編集画面を表示した時 (一覧画面の鉛筆を押した時も含める) に変更です。
※画像では 追加画面・編集画面を表示した時 になっていますが、今回は一覧画面上での操作を対象とするので追加画面は不要です
※ドキュメントから抜粋:「一覧画面の鉛筆を押した時も含める」を選ぶと、鉛筆ボタンを押してインライン編集を開始したときもこの条件が発動します

起点となるタイミングが修正され、アクションも繋がっているので、これでいけるかなーと思ったのですが

結果としてはNGでした。

ならば今度は と、「ログインユーザーの所属組織を取得する」 と 「フィールドを無効化する」のアクションを
それぞれ別々の起点(タイミング)で実行するようにして、取得した組織だけ使う形にできないか と変更してみました。

結果、今度はカスタマイン設定の段階でエラー(「組織・グループの取得完了を待つ必要があります。」)になってしまいました。
まいった、ひょっとしてこの要件は無理筋なのか…という思いがよぎりましたが、
「助けて!チャットーズ~」と、いつものように社内問合せをする私の姿がそこにあるのでした。

目から鱗な解決策!??

「こうこうこういう感じで困っていまして・・・」
「ああ、それねー、そうなるよね~」「そういう場合はね・・・」
と、似たようなチャットのお問い合わせが最近あったのかと思うスピード感で、スッと解決策を提示してくれます。

↑の設定を アクショングラフ にして表示したのが こちら↓

アクショングラフを見ると分かり易いかと思いますが、
「一覧画面を表示した時」を起点に実行される、アクション1→2 と
「編集画面を表示した時」×「一覧画面の鉛筆を押した時も含める」を起点に実行される、アクション3 とは
カスタマインのアクション上は繋がっていません

アクション3が実際に動作する段階では、アクション1→2の実行が 完了しているはず という組み立てで、
アクション3における「追加条件」として、アクション1で取得した組織によってアクション2を実行することで
アクションの結果が特定の値ならば でその「結果」を使って判断できるようにしている形です。

アクション1→2は、あくまで「フラグ管理」的な要素で、その結果に応じてアクション3を実行するかどうか判定している訳です。

数値をフォーマットする」の「やること」にこんな使い方があるのか…と、正直驚きました。

↑若干分かり辛い画像になっちゃってますが「添付の有無」というチェックボックスがインライン編集のタイミングで無効化されています 
 ※アクション3が動作しているという結果になり、要件に対応することができました

まだまだ知られざる「やること」の使い方が存在する???

カスタマインの「やること」について、それぞれドキュメントを見て仕様を確認するというのは基本として、
一般的/汎用的な「使い方」以外にも、こうした「組み合わせ」で意外な使い方ができるものはあるかもしれません。
※私も、柔軟な発想を常々心がけないといけないなぁと再認識しました

この記事を読んでいただいている皆さまも、
「あ、できないな」とすぐに諦めるのではなく、ひょっとして「こうすればできるんじゃないか」や
「こういう使い方をしてみたらどうなるんだろう」という具合に
色々と試行錯誤していただくことで、意外な発見があったり、設定→動作 の理解が深まるかもしれません。

お時間に余裕があればですが、是非トライしてみてください。
困ったらきっと「チャットーズ」が力になってくれますよ。

それでは~

投稿者プロフィール

アバター画像
わだっち
"kintone「かかりつけ医」「伴走者」「よろず屋」 kintoneに関する提案、構築、相談など幅広く色々やっています。
元ユーザという事もあり、お客様に近い距離でのやり取りを主な生業としています。"