📔

属性式について

属性式属性式とは属性式が使える場所標準項目のエイリアス一覧メンバー項目(userで参照)グループ共通項目(会社・組織・事業所・プロジェクトに共通、groupで参照)会社・組織・事業所・プロジェクトそれぞれの固有項目基本的な書き方リテラル(そのまま使える値)値へのアクセス演算子メンバーの情報を取得する(user)メンバー自身の属性値を取得する所属している会社・組織・事業所・プロジェクトの情報を取得する入社日・退職日を取得するメンバーの主務組織・兼務組織の情報を取得するgetPrimaryOrganizationValue(属性キー)getPrimaryOrganizationFullPath(言語, 区切り文字, [デフォルト名])getPrimaryOrganizationAncestorValue(階層, 属性キー)getAdditionalOrganizationValues(属性キー)getAdditionalOrganizationFullPaths(言語, 区切り文字, [デフォルト名])getAdditionalOrganizationAncestorValues(階層, 属性キー)グループの情報を取得する(group)グループ自身の属性値を取得するグループの有効期間・階層・親グループを取得するグループのフルパス・祖先グループの情報を取得する使用できる関数文字列を操作する(String)数値を扱う(Math)配列を扱う(Arrays)パスワードを生成する(Password)パスワードをハッシュ化する(Password)注意点関連記事

属性式

💡 このページでは、業務アセットの「同期する項目」でYESODから接続先サービスへ連携する値を設定する際に使用する「属性式」の書き方について説明します。

属性式とは

属性式は、YESODから接続先サービスへアカウント情報を連携する際、連携する値をメンバー・グループの情報をもとに変換・生成するための機能です。
例えば、以下のような設定ができます。
  • 姓と名を結合してフルネームを作成する
  • メールアドレスのドメイン部分だけを変更する
  • 雇用形態に応じて連携する値を切り替える(例:「正社員」→ "full_time")
  • メンバーの主務組織を自動判定して、その組織の属性値を連携する
  • アカウント作成時にランダムな初期パスワードを生成する
⚠️
属性式を設定・変更するとSaaS側のアカウントに影響がある場合があります。もし変更時に影響範囲が知りたい等のご懸念がありましたら事前にカスタマーサクセス担当までご相談ください。

属性式が使える場所

業務アセットの「アカウント設定」-「同期する項目」の設定で、「YESODから連携する値」の欄に属性式を入力します。 設定手順は 同期する項目の設定 を参照してください。
💡
グループプッシュ対応の業務アセットでは、「グループプッシュ」-「アカウント設定」-「同期する項目」にも設定箇所があります。
 

標準項目のエイリアス一覧

属性式では、項目を「エイリアス名」「項目ID(Base64形式・22文字)」「項目ID(UUID形式)」のいずれでも指定できます(例: / / )。 Base64形式のIDは、UUID形式のIDを22文字に変換したもので、項目のIDコピー からコピーできるのはこちらの形式です。標準搭載されている主な項目のエイリアスは以下のとおりです。
💡
テナントによっては非表示になっている項目や、ここに記載のない独自のカスタム項目が追加されている場合があります。カスタム項目の項目IDは 項目のIDコピー から確認できます。不明な点はカスタマーサクセス担当までご確認ください。

メンバー項目(で参照)

項目名エイリアス名項目ID(Base64形式)項目ID(UUID形式)
姓(ヨミガナ)
名(ヨミガナ)
姓(ローマ字)
名(ローマ字)
ミドルネーム(現地語)
ミドルネーム(英語)
メールアドレス
メンバー番号
顔写真
アカウント削除日
会社(参照項目)
在籍状況
雇用形態
社員番号
肩書き
組織(参照項目)
役職
関与度合
事業所(参照項目)
プロジェクト(参照項目)
プロジェクトでの役割

グループ共通項目(会社・組織・事業所・プロジェクトに共通、で参照)

項目名エイリアス名項目ID(Base64形式)項目ID(UUID形式)
名称(英語名)
名称
順序
親グループ

会社・組織・事業所・プロジェクトそれぞれの固有項目

項目名対象エイリアス名項目ID(Base64形式)項目ID(UUID形式)
会社コード会社
組織コード組織
事業所コード事業所
プロジェクトコードプロジェクト

基本的な書き方

属性式では、値の組み合わせ・比較・条件分岐などをシンプルな構文で記述します。

リテラル(そのまま使える値)

種類書き方
文字列シングルクォート で囲む
数値そのまま記述する
真偽値 /
Null

値へのアクセス

  • プロパティ:ドット でつなぎます(例: / )
  • 配列・リスト:角括弧 でインデックス(0始まり)を指定します(例: / )
  • マップ:角括弧 でキー(文字列)を指定します(例: / )

演算子

種類記号説明記述例説明
算術演算 数値の計算、または文字列の結合に使用します姓と名を半角スペースで結合
比較演算 値を比較し または を返しますメンバー番号が20以上の場合 返す
論理演算複数の条件を組み合わせます会社に所属しており、かつ事業所コードが「TKY」の場合
三項演算子条件に応じて値を切り替えます会社に所属していれば会社名を、していなければを返す
安全なナビゲーション値が の場合にエラーにせず を返します会社コード「10」の会社が見つかれば社員番号を、見つからなければエラーにせずを返す
エルビス演算子値が の場合に代替値を返します主務組織のコードを取得し、主務組織がなければ「未所属」を返す
💡
上記以外の書き方をしたい場合や、より詳細な構文を確認したい場合はカスタマーサクセス担当までご相談ください。

メンバーの情報を取得する(user)

メンバーに関する属性同期を設定する場合、属性式の中で を使ってメンバーの情報を参照できます。

メンバー自身の属性値を取得する

属性はエイリアス名・項目ID・UUID形式のいずれでも指定できます。

所属している会社・組織・事業所・プロジェクトの情報を取得する

以下のプロパティで、メンバーが所属しているグループの情報(配列)を取得できます。
プロパティ説明
所属する会社
所属する組織
所属する事業所
所属するプロジェクト
条件を指定して、特定のグループの情報だけを取得することもできます。

入社日・退職日を取得する

プロパティ説明
入社日(またはグループへの参加日)
退職日(またはグループからの脱退日)。在籍中の場合は
これらは他の属性と異なり、「グループのEntityID(グループごとに割り振られた識別子)をキーとし、日付を値とするマップ」を返す特殊なプロパティです。何も指定せずに書くと、所属している全グループ分の日付がまとめて返ります。
💡
EntityIDはメンバー・グループ作成時に自動的に採番されるYESODの内部IDです。 グループのEntityは別途グループAPI等のレスポンスから取得してください
特定の1グループだけの日付を取得したい場合は、 の中にそのグループのEntityID(Base64形式)を指定します。
💡
⚠️ ここで指定できるのは「配列の何番目か(インデックス)」ではなく、対象グループの「EntityID」のみです。 のように条件や順番で絞り込んだグループから、そのままEntityIDを取り出して指定する書き方は現在提供されていません。特定のグループを指定して入社日・退職日を取得したい場合は、対象グループのEntityIDをカスタマーサクセス担当にご確認のうえ設定してください。

メンバーの主務組織・兼務組織の情報を取得する

YESODの「主務・兼務」「関与度合」の考え方にもとづき、以下のメソッドで組織情報を取得できます。 関与度合が最も高い組織が「主務組織」、それ以外が「兼務組織」として扱われます。
メソッド説明
主務組織(関与度が最も高い組織)の属性値を取得します
主務組織のフルパス(階層名を結合した文字列)を取得します
主務組織の上位組織(指定した階層)の属性値を取得します
主務以外の兼務組織の属性値を、関与度の高い順にリストで取得します
主務以外の兼務組織のフルパスを、関与度の高い順にリストで取得します
主務以外の兼務組織の上位組織の属性値を、関与度の高い順にリストで取得します

getPrimaryOrganizationValue(属性キー)

主務組織(関与度合が最も高い組織)の、指定した属性の値を取得します。
  • 引数:(属性のエイリアスまたは項目ID)
  • 返り値:属性の値。選択肢(SELECT)型の場合はラベル、日付型の場合は形式の文字列。主務組織が存在しない場合は

getPrimaryOrganizationFullPath(言語, 区切り文字, [デフォルト名])

主務組織のルートからのフルパス(階層名を区切り文字で結合した文字列)を取得します。
  • 引数:言語コード( または )、区切り文字、デフォルト名(省略可。組織名が未設定の場合の代替文字)
  • 返り値:フルパスの文字列。主務組織が存在しない場合は

getPrimaryOrganizationAncestorValue(階層, 属性キー)

主務組織の、指定した階層にある上位組織の属性値を取得します。
  • 引数:階層番号(ルート組織を1とする整数)、属性キー
  • 返り値:指定した階層の組織の属性値。組織が存在しない場合や、指定した階層が主務組織自身の階層を超える場合は

getAdditionalOrganizationValues(属性キー)

主務組織以外の兼務組織について、指定した属性の値を関与度合の高い順にリストで取得します。
  • 引数:属性キー
  • 返り値:兼務組織ごとの属性値のリスト

getAdditionalOrganizationFullPaths(言語, 区切り文字, [デフォルト名])

主務組織以外の兼務組織について、フルパスを関与度合の高い順にリストで取得します。

getAdditionalOrganizationAncestorValues(階層, 属性キー)

主務組織以外の兼務組織について、指定した階層にある上位組織の属性値を関与度合の高い順にリストで取得します。

グループの情報を取得する(group)

は、外部サービス側に連携するグループそのものの情報を参照するためのオブジェクトです。 業務アセットの「グループプッシュ」機能で、外部サービスに連携するグループの属性(グループ名など)を設定する「グループ属性マッピング」の中で使用します。
💡
メンバーのアカウント連携で使う「同期する項目」の と役割は似ていますが、 はグループプッシュでグループ自体の情報を連携する場合専用のオブジェクトです。

グループ自身の属性値を取得する

グループの有効期間・階層・親グループを取得する

プロパティ説明
グループの有効期間の開始日
グループの有効期間の終了日(無期限の場合は
ルートグループを1とした階層の深さ
親グループのコード(親がない場合は
💡
⚠️ 動的グループ(View)は通常のグループと階層・有効期間の扱いが異なるため、上記のプロパティや下記のメソッドの一部が使用できません。

グループのフルパス・祖先グループの情報を取得する

メソッド説明
対象グループのルートからのフルパスを取得します
指定した階層の祖先グループの属性値を取得します
1階層上の親グループの属性値を取得します

使用できる関数

属性式の中では、値の加工・生成のために以下の関数を使用できます。呼び出す際は の形式で記述します。

文字列を操作する(String)

関数説明
文字列の結合
区切り文字で複数の文字列を結合
文字列の長さを取得
半角スペースを除去(全角スペースは対象外)
一致する部分をすべて置換
最初に一致した部分のみ置換
指定した文字列で始まるか判定
指定した文字列を含むか判定
文字列に応じて出力する値を切り替え
指定した範囲を抽出
指定した文字列より後ろを抽出
指定した文字列より前を抽出
大文字に変換
小文字に変換
空または かどうかを判定
例:メールアドレスの より前の部分を取り出し、別ドメインを付与する

数値を扱う(Math)

関数説明
0以上1未満のランダムな数値を生成

配列を扱う(Arrays)

関数説明
指定したインデックスの要素を取得します(範囲外の場合はエラーにならず

パスワードを生成する(Password)

関数説明
8文字のパスワードを生成します(数字2文字+アルファベット6文字、記号なし)。 と同じ結果です
指定した桁数でパスワードを生成します。数字は常に2文字、記号は0文字で固定され、残りをアルファベット(大文字・小文字混在)で埋めます
桁数・数字の数・記号の数をそれぞれ指定し、残りをアルファベットで埋めます。記号は の中からランダムに選ばれます
桁数・数字の数・記号の数をそれぞれ範囲(最小値〜最大値、両端を含む)で指定し、範囲内でランダムに決定します
💡
⚠️ およびその範囲指定版で、「数字の数+記号の数」が「桁数」を超える指定をした場合、アルファベットの文字数は0になり、実際に生成されるパスワードの桁数は指定した桁数ではなく「数字の数+記号の数」になります。
💡
生成結果は毎回ランダムなため、同じ引数で実行しても毎回異なるパスワードが生成されます。

パスワードをハッシュ化する(Password)

生成・設定したパスワードをそのまま連携するのではなく、ハッシュ化した値を連携したい場合に使用します。
関数説明
Unix crypt形式でハッシュ化します
MD5ベースのUnix crypt形式でハッシュ化します
SHA-256ベースのUnix crypt形式でハッシュ化します
SHA-512ベースのUnix crypt形式でハッシュ化します
BCrypt形式でハッシュ化します
ハッシュ化された値と平文のパスワードが一致するか判定します(/)。ハッシュの形式は自動で判別されます
💡
⚠️ ハッシュ化した値を連携しても、連携先サービス側でその値がそのままパスワードとして使えるとは限りません。ハッシュ化が必要かどうか、どの形式が適切かは連携先サービスの仕様によって異なるため、設定前にカスタマーサクセス担当までご相談ください。

注意点

💡
⚠️ 属性の値が になる可能性がある場合は、(安全なナビゲーション)や (エルビス演算子)を使用してください。 の値をそのまま関数の引数に渡すとエラーになる場合があります。
💡
⚠️ 属性式の内容を誤って設定すると、連携される値が意図しないものになったり、同期処理がエラーになったりすることがあります。設定を変更する際は、事前に少数のメンバー・グループで動作を確認することをおすすめします。