カスタマイズ

ユーザーのプロフィールを取得する

概要

ユーザー選択フィールドなどで選択されているユーザーのプロフィール情報を取得します。

使い方

取得した情報は文字列(1行)フィールドなどにセットすることができます。

また、別のアクションにて、数式を用いて

= $1

のように取得することもできます。$1 の 1 の部分は、この「やること」をセットしたアクション番号を記述します。

ただし、「取得したい情報」が「すべて」だった場合は、

= $1.email 

のように「どの情報か」までを式で指定する必要があります。

設定するパラメーター

「ユーザー選択フィールド」「取得したい情報」「複数ユーザーが選択されている場合」「セット先フィールド(省略可)」を指定します。

ユーザー選択フィールド

ユーザーが選択されているフィールドを指定します。

選択可能なフィールドタイプは以下の通りです。

  • ユーザー選択
  • 作成者
  • 更新者
  • 作業者

テーブル内のフィールドを選択した場合、各行に対して取得が行われます。ただしこの場合、アクションの結果を $1 のような式で参照しようとした場合、どの行の結果が返るか不定になります。テーブル内の各行に対して処理を行いたい場合は、「セット先フィールド」を指定してください。

このフィールドでユーザーが一人も選択されていなかった場合、エラーにはならず、空の文字列が取得されます。

取得したい情報

メールアドレスなど、どの情報を取得したいかを選択します。

基本的には1回のアクションで1種類の情報しかとることができません。「メールアドレスと電話番号」のように複数の種類が欲しい場合は、アクションを2つに分けてください。

例外として「すべて」を選ぶとすべての情報を一度に取得します。ただしこの場合は使用方法がやや特殊になります。

複数ユーザーが選択されている場合

「ユーザー選択フィールド」に複数のユーザーが選択されている場合の動作を選びます。

  • カンマで区切る … 「鈴木,山田,佐藤」のように、得られた情報をカンマで区切ります。
  • 最初の1人目のみ取得する … 文字通り最初のひとり分のみを取得し、残りは無視します。
  • エラーにする … フィールドに「複数のユーザーが選択されています。」というエラーを表示します。

「取得したい情報」に「すべて」を選んだ場合、「カンマで区切る」を選ぶとエラーになります。

セット先フィールド(省略可)

取得した情報を他のフィールドにセットする場合に指定します。直接フィールドにはセットせず、結果を別のアクションで使用したい場合は、省略できます。

「取得したい情報」に「すべて」を選んだ場合、このパラメーターをセットするとエラーになります。

テーブル内のフィールドを指定した場合、特別な場合(*1)を除き、テーブル内のすべての行にセットされます。

(*1) 条件側で、「フィールドの値を編集して値が変わった時」のように、テーブル行を限定するように条件が入っている場合は、対象の行だけにセットされます。

「すべて」について

「取得したい情報」に「すべて」を選んだ場合、セット先フィールドは指定できません。代わりに、「フィールドに値をセットする」などで、式を用いて値を取り出します。

例えば、この「やること」をセットしたアクションの番号が1番で、メールアドレスを取りたい場合は、

= $1.email

のように式を記述します。

“email” の部分はCybozu のドキュメント に記載されている「User 型」の「キー」が使用できます。

カスタマイズ項目について

カスタマイズ項目は、「取得したい情報」に「すべて」を選んだ場合に取得可能です。

カスタマイズ項目は項目コード(code)と値(value)から構成されますが、Customine では項目コード(code)を取得することはできません。値(value)は customItemValues で参照することができます。

例えば、この「やること」をセットしたアクションの番号が1番で、カスタマイズ項目の1項目のvalueを取りたい場合は、

= $1.customItemValues[0]

のように式を記述します。

括弧内の数字は表示順に従います。また、カスタマイズ項目は50個まで項目を追加できますので、 customItemValues[0] から customItemValues[49] までの値が指定可能です。

krewSheet 対応状況

一部対応しています。

「セット先フィールド(省略可)」を省略せずに指定している場合は以下の条件時のみ対応しています。

ただし、以下の制限があります。

  • ルックアップでコピーされるフィールドにはセットできません。
  • 以下のフィールドは「レコードを保存する直前(削除時は除く)」のようにレコード保存のタイミングのみでセット可能です。やや専門的になりますが、より詳しく知りたい方は krewSheet のドキュメント も参考にしてください。
    • krewSheet の表示列に含まれていないフィールド
    • krewSheet で読み取り専用に設定されているフィールド
    • リッチエディターフィールド

「セット先フィールド(省略可)」を省略する場合は、条件に関わらず対応しています。

制限事項

  • 「セット先フィールド」が指定されている場合、以下のいずれかの画面で使用できます。それ以外の画面で使用すると、アプリ実行時にエラーになります。「セット先フィールド」を省略している場合はこれ以外の画面、例えばレコード詳細画面でも使用することができます。

    • レコード追加画面
      • 任意のタイミングで使用可能
    • レコード編集画面
      • 任意のタイミングで使用可能
    • PCのレコード一覧画面インライン編集モード(鉛筆アイコンを押して編集モードになった状態)
      • 「レコードを保存する直前」時のみ使用可能
  • 「複数ユーザーが選択されている場合」を「エラーにする」にしても、以下の場合にはエラーを表示することができません。

    • レコード詳細画面や印刷画面など、フィールドを編集している状態ではない画面の場合
    • 「ユーザー選択フィールド」パラメーターに「作業者」を選んでいる場合
  • ゲストユーザーの情報は取得できません。

  • Cybozu のドキュメント に記載されている項目に「優先する組織のID」がありますが、これは文字通りIDしか取得できません。優先する組織の組織名や組織コードを含む情報を取得したい場合、「ログインユーザーの優先する組織を取得する」を使用してください。

関連記事