📔

属性式について

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

属性式

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

属性式とは

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

属性式が使える場所

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

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

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

メンバー項目(で参照)

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

基本的な書き方

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

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

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

値へのアクセス

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

演算子

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

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

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

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

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

選択肢(SELECT型)項目のコード値・ラベル・並び順を取得する

選択肢(SELECT)型の項目では、ブラケット記法で項目の識別子(エイリアス名・項目ID)に に続けて以下のいずれかのキーワードを指定することで、選択されているオプション(選択肢)の値を個別に取得できます。
指定するキーワード取得できる値
コード値
日本語ラベル
英語ラベル
オプションID(Base64形式)
オプションの並び順(数値)
  • この記法は選択肢(SELECT)型の項目にのみ使用できます。それ以外のデータ型の項目に指定するとエラーになります。
  • 会社・組織・事業所・プロジェクトへの関連項目(同じ項目名で複数の所属先ごとに値を持つ項目)の場合は、所属先ごとの値をまとめた 配列 が返ります。
  • 所属している会社・組織・事業所・プロジェクトの項目に対しても同じ記法が使えます( など)。詳しくは次のセクションを参照してください。
  • グループプッシュの オブジェクトでも同じ記法が使えます。
⚠️ 注意 選択肢が未選択の場合、またはコード値が設定されていない選択肢(標準で用意されている選択肢を含む)が選択されている場合、 の指定は を返します。 はCSV出力時には空欄になります。連携先で を許容できない場合は (エルビス演算子)などで代替値を設定してください。 なお、値が配列で返るケース(関連項目など)では、 になった要素は同期時の出力から取り除かれます(他のサブプロパティと同様の挙動です)。

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

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

所属先の選択肢(SELECT型)項目のコード値を取得する

所属している会社・組織・事業所・プロジェクトの選択肢(SELECT)型項目についても、前述のサブプロパティ記法( / / / / )が使用できます。
⚠️ 注意 会社には組織のような「主務・兼務」の概念がありません。そのため のようなインデックス指定は「主務の会社」を指すのではなく、組織ツリー上の並び順(階層が浅い順→並び順)で先頭の会社を指します。所属している会社の構成が変わると、 が指す会社も変わる可能性があるため、特定の会社に絞りたい場合は会社コードなどの条件で指定する方法()を推奨します。

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

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

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

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

getPrimaryOrganizationValue(属性キー, [format])

主務組織(関与度合が最も高い組織)の、指定した属性の値を取得します。
  • 引数:(属性のエイリアスまたは項目ID)
  • (任意・第2引数):属性が選択肢(SELECT)型の場合に、オプションのどの値を返すかを指定します。指定できる値は / / / / の5種類です。選択肢(SELECT)型以外の属性に指定した場合はエラーになります。
  • 返り値:属性の値。選択肢(SELECT)型の場合はラベル、日付型の場合は形式の文字列。主務組織が存在しない場合は
💡 ポイント 第1引数の「属性キー」と、第2引数()の は意味が異なります。組織そのもののコード(例:組織コード)を取得したい場合は のように第1引数にその項目のキーを指定します。一方、選択肢(SELECT)型項目に設定されているオプションのコード値を取得したい場合は、 のように第2引数に を指定します。

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

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

getPrimaryOrganizationAncestorValue(階層, 属性キー, [format])

主務組織の、指定した階層にある上位組織の属性値を取得します。
  • 引数:階層番号(ルート組織を1とする整数)、属性キー
  • (任意・第3引数): と同様に、選択肢(SELECT)型属性の返却フォーマット( / / / / )を指定できます。選択肢(SELECT)型以外の属性に指定した場合はエラーになります。
  • 返り値:指定した階層の組織の属性値。組織が存在しない場合や、指定した階層が主務組織自身の階層を超える場合は

getAdditionalOrganizationValues(属性キー, [format])

主務組織以外の兼務組織について、指定した属性の値を関与度合の高い順にリストで取得します。
  • 引数:属性キー
  • (任意・第2引数):選択肢(SELECT)型属性の返却フォーマット( / / / / )を指定できます。
  • 返り値:兼務組織ごとの属性値のリスト
⚠️ 注意 コード値が未設定の選択肢が含まれる場合、リストの該当要素は同期の出力からは取り除かれます(他のメンバー・組織の値とインデックスがずれる場合があるため、複数列を突き合わせて使う場合はご注意ください)。

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

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

getAdditionalOrganizationAncestorValues(階層, 属性キー, [format])

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

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

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

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

選択肢(SELECT型)項目のコード値を取得する

オブジェクトでも、 と同じサブプロパティ記法で選択肢(SELECT)型項目の値を取得できます。

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

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

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

プロパティ説明
グループの有効期間の開始日
グループの有効期間の終了日(無期限の場合は )
ルートグループを1とした階層の深さ
親グループのコード(親がない場合は )

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

項目名対象エイリアス名項目ID(Base64形式)項目ID(UUID形式)
会社コード会社
組織コード組織
事業所コード事業所
プロジェクトコードプロジェクト
⚠️
動的グループ(View)は通常のグループと階層・有効期間の扱いが異なるため、上記のプロパティや下記のメソッドの一部が使用できません。

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

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

使用できる関数

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

文字列を操作する(String)

関数説明
文字列の結合
区切り文字で複数の文字列を結合
文字列の長さを取得
半角スペースを除去(全角スペースは対象外)
一致する部分をすべて置換
最初に一致した部分のみ置換
指定した文字列で始まるか判定
指定した文字列を含むか判定
文字列に応じて出力する値を切り替え
指定した範囲を抽出
指定した文字列より後ろを抽出
指定した文字列より前を抽出
大文字に変換
小文字に変換
全角の文字を半角に変換します(カナ・英数字・記号が対象)。全角の濁点・半濁点付きカナ(例:)は、半角カナ+濁点/半濁点の2文字(例:)に変換されます
半角の文字を全角に変換します(カナ・英数字・記号が対象)。半角の濁点・半濁点付きカナ(例:)は、1文字の全角カナ(例:)に変換されます
空または かどうかを判定
例:メールアドレスの より前の部分を取り出し、別ドメインを付与する
「連携先のサービスが半角カナを要求する」といったケースに、同期する項目にこれらの関数を設定することで対応できます。
例:ヨミガナ(全角カナ)を半角カナに変換する
全角の英数字・記号も半角に変換できます。
逆に、半角の文字を全角に変換したい場合は を使用します。

数値を扱う(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形式でハッシュ化します
ハッシュ化された値と平文のパスワードが一致するか判定します(/)。ハッシュの形式は自動で判別されます
⚠️
ハッシュ化した値を連携しても、連携先サービス側でその値がそのままパスワードとして使えるとは限りません。ハッシュ化が必要かどうか、どの形式が適切かは連携先サービスの仕様によって異なるため、設定前にカスタマーサクセス担当までご相談ください。

注意点

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