やること「一覧から指定の選択肢を消す」で消す対象に指定しても、選択肢から一覧が消えずに表示される場合があります。
これは、やること「一覧から指定の選択肢を消す」のドキュメントにも記載がありますが、「やること」で一覧の一番上の選択項目を消しても「アプリへのリンク」から画面遷移してきた場合は、消す前に一覧の選択欄の一番上に設定された一覧が表示される動きとなるためです。
具体的には、ユーザーが何らかの部署に所属(人によっては複数の部署に所属)しているような場合に、自分の所属している部署の一覧のみを表示したいケースにおいて、例えばこのような一覧が作成されているとします。
この場合に、一番上に設定されている「営業部」の一覧を次のようなカスタマイズで非表示設定したとしても、
営業部に所属していないユーザーがアプリへのリンクからこの一覧画面へ遷移してくると、「営業部」が初期表示されてしまいます。
また「営業部」以外の一覧を選び、他の一覧に遷移すると「営業部」の選択肢が消えます。
この記事では、本現象の回避方法について記します。
回避方法
ログインユーザーの所属組織ごとに一覧を所属組織に併せたものを表示するようにし、その上でやること「一覧から指定の選択肢を消す」を使って頂く事で、上記の現象を回避する事が出来ます。
なお、もう少し簡単な ユーザー別に初期表示一覧を設定 という記事もありますので、併せてご覧頂くのがおすすめです。
処理の流れは次のようになります。
「アプリへのリンク」からアプリに遷移してくると、kintoneアプリの一覧で一番上に作成されている一覧が表示されるので、一番上に遷移用の一覧「遷移用」を追加する
一覧「遷移用」が表示されたら、ログインユーザーの所属組織ごとの一覧へ遷移させる
遷移先の所属組織ごとの一覧で、不要な一覧を非表示にする
このようなカスタマイズとすることで、「アプリへのリンク」からアプリに遷移した直後に一覧「遷移用」から他の一覧に遷移させ、非表示にしたはずの一覧が表示されてしまう状況を回避します。
アプリの準備
やること「一覧から指定の選択肢を消す」で上記の現象を回避するため、kintoneアプリの設定の「作成済みの一覧」で、画面遷移用の一覧を作成し一番上に移動させておきます(今回は「遷移用」という名前で作成しています)。
Customineでのカスタマイズ
ログインユーザーの所属組織を取得する
まず、ログインユーザーの所属組織を取得します。
これにはやること「ログインユーザーの所属組織を取得する」、条件「一覧画面を表示した時」を選択します。また、やること「ログインユーザーの所属組織を取得する」ではセット先フィールドは指定しません。
このアクションは、画面遷移処理、選択肢を非表示にする処理の両方で使用します。
一覧画面を遷移する
一覧「遷移用」が表示された時、かつ所属組織が「営業部」の時は一覧「営業部」に遷移するようにします。
これには、やること「レコード一覧画面に遷移する」、条件「他のアクションの実行が完了した時」「現在の一覧が指定の一覧ならば」「指定のグループ・組織に所属するならば」を使います。
やること「レコード一覧画面に遷移する」の遷移先アプリはこのアプリになるので空欄に、また一覧の名前は「営業部」を指定し、タブは「同じタブで開く」を指定します。
また条件「他のアクションの実行が完了した時」はログインユーザーの組織を取得した後に処理を行う必要があるので、1番アクションを指定します。
併せて、一覧「遷移用」の時だけ遷移したいので「現在の一覧が指定の一覧ならば」を選択します。
これに加えて、ログインユーザーの所属組織が「営業部」の時に一覧「営業部」に遷移したいので、「指定のグループ・組織に所属するならば」を選択します。
この時、ユーザーが所属しているグループ/組織は組織を取得したアクション「1」、グループコード/組織コードはあらかじめcybozu.com共通管理の組織とユーザーの設定から取得した組織コードを指定します。
※組織コードについてはcybozu.com共通管理の画面で確認するようにしてください。
同様に、総務部、経理部の場合のカスタマイズも作成します。
変わるポイントは2か所あります。やること「レコード一覧画面に遷移する」の一覧の名前が変わるのと、条件「指定のグループ・組織に所属するならば」のグループコード/組織コードが変わります。
ここまでで、遷移の処理は完了です。
一覧「遷移用」を非表示にする
一覧「遷移用」を非表示にするカスタマイズを行います。
やること「一覧から指定の選択肢を消す」、条件「他のアクションの実行が完了した時」を使います。
自分の所属組織に含まれていない一覧を非表示にする
続いて、自分の所属していない組織の一覧を非表示にします。ここでは例として、「営業部」を対象にします。
やること「一覧から指定の選択肢を消す」、条件「他のアクションの実行が完了した時」「指定のグループ・組織に所属しないならば」を使います。
やること「一覧から指定の選択肢を消す」では「営業部」を、また条件「他のアクションの実行が完了した時」はログインユーザーの組織を取得した後に処理を行う必要があるので、1番アクションを指定します。
また「指定のグループ・組織に所属しないならば」は、「指定のグループ・組織に所属するならば」の条件を反転させると設定できます。条件の反転は緑色の回転する矢印のアイコンをクリックして下さい。
同様に、総務部、経理部の場合のカスタマイズも作成します。
こちらも差分は2か所、やること「一覧から指定の選択肢を消す」の一覧の名前が変わるのと、条件「指定のグループ・組織に所属しないならば」のグループコード/組織コードが変わります。
以上でカスタマイズは完了です。
「kintoneアプリへ登録」を行い、動きを確認してみてください。
所属組織が「営業部」のユーザーでログインし、アプリにアクセスするとまず「遷移用」一覧が表示され、自動的に一覧「営業部」に遷移します。
選択肢を確認すると、下記のように「営業部」の選択肢のみが表示されるようになりました。
ご不明な点がございましたら、チャットでお問い合わせください。