Azure Active Directory における属性マッピングの式の書き方Writing expressions for attribute mappings in Azure Active Directory

クラウド プロビジョニングを構成するときに指定できる属性マッピングの種類の 1 つは、式マッピングです。When you configure cloud provisioning, one of the types of attribute mappings that you can specify is an expression mapping.

式マッピングでは、スクリプトに似た式を使用して属性をカスタマイズすることができます。The expression mapping allows you to customize attributes using a script-like expression. そうすることでオンプレミス データを新しい (つまり異なる) 値に変換することができます。This allows you to transform the on-premises data into an new or different value. たとえば、2 つの属性を 1 つの属性に結合して、いずれかのクラウド アプリケーションで使用するケースが考えられます。For example, you may want to combine two attributes into a single attribute because this single attribute is used by one of your cloud applications.

以降のドキュメントでは、データの変換に使用される、スクリプトに似た式について取り上げます。The following document will cover the script-like expressions that are used to transform the data. これはプロセスの一部分にすぎません。This is only part of the process. その後、この式をテナントに対する Web 要求に含める必要があります。Next you will need to use this expression and place it in a web request to your tenant. 詳細については、「変換」を参照してください。For more information on that see Transformations

構文の概要Syntax overview

属性マッピングの式の構文は、Visual Basic のApplications (VBA) 関数に似ています。The syntax for Expressions for Attribute Mappings is reminiscent of Visual Basic for Applications (VBA) functions.

  • 式全体は、関数の形式で定義する必要があります。名前の後にかっこで囲んだ引数を続けます。The entire expression must be defined in terms of functions, which consist of a name followed by arguments in parentheses:
    FunctionName(<<argument 1>>,<<argument N>>)FunctionName(<<argument 1>>,<<argument N>>)

  • 各関数内で他の関数を入れ子にすることができます。You may nest functions within each other. 次に例を示します。For example:
    FunctionOne(FunctionTwo(<<argument1>>))FunctionOne(FunctionTwo(<<argument1>>))

  • 関数には、次の 3 つの異なる種類の引数を渡すことができます。You can pass three different types of arguments into functions:

    1. 属性。角かっこで囲む必要があります。Attributes, which must be enclosed in square brackets. 例: [attributeName]For example: [attributeName]
    2. 文字列定数。二重引用符で囲む必要があります。String constants, which must be enclosed in double quotes. 次に例を示します。"米国"For example: "United States"
    3. 他の関数Other Functions. 次に例を示します。FunctionOne(<<argument1>>, FunctionTwo(<<argument2>>))For example: FunctionOne(<<argument1>>, FunctionTwo(<<argument2>>))
  • 文字列定数では、文字列に円記号 () または引用符 (") を含める必要がある場合は、円記号 () でエスケープする必要があります。For string constants, if you need a backslash ( \ ) or quotation mark ( " ) in the string, it must be escaped with the backslash ( \ ) symbol. 次に例を示します。"会社名:\"Contoso\""For example: "Company name: \"Contoso\""

関数の一覧List of functions

関数の一覧List of functions 説明Description
AppendAppend source 文字列値を受け取り、その末尾に suffix を追加します。Takes a source string value and appends the suffix to the end of it.
BitAndBitAnd BitAnd 関数は、値に指定のビットを設定します。The BitAnd function sets specified bits on a value.
CBoolCBool CBool 関数は、式の評価結果に基づいてブール値を返します。The CBool function returns a Boolean based on the evaluated expression
ConvertFromBase64ConvertFromBase64 ConvertFromBase64 関数は、指定した base64 でエンコードされた値を正規の文字列に変換します。The ConvertFromBase64 function converts the specified base64 encoded value to a regular string.
ConvertToBase64ConvertToBase64 ConvertToBase64 関数は、文字列を Unicode の base64 文字列に変換します。The ConvertToBase64 function converts a string to a Unicode base64 string.
ConvertToUTF8HexConvertToUTF8Hex ConvertToUTF8Hex 関数は、文字列を UTF8 の 16 進数でエンコードされた値に変換します。The ConvertToUTF8Hex function converts a string to a UTF8 Hex encoded value.
CountCount Count 関数は、複数値の属性内の要素数を返します。The Count function returns the number of elements in a multi-valued attribute
CstrCstr CStr 関数は、文字列データ型に変換します。The CStr function converts to a string data type.
DateFromNumDateFromNum DateFromNum 関数は、AD の日付形式の値を DateTime 型に変換します。The DateFromNum function converts a value in AD’s date format to a DateTime type.
DNComponentDNComponent DNComponent 関数は、指定した DN コンポーネントの値を左から返します。The DNComponent function returns the value of a specified DN component going from left.
ErrorError Error 関数は、カスタム エラーを返すために使用します。The Error function is used to return a custom error.
FormatDateTimeFormatDateTime 1 つの形式の日付文字列を受け取り、別の形式に変換します。Takes a date string from one format and converts it into a different format.
GUIDGUID GUID 関数は、新しいランダムな GUID を生成します。The function Guid generates a new random GUID.
IIFIIF IIF 関数は、指定した条件に基づいて、使用できる一連の値のうち、いずれかを返します。The IIF function returns one of a set of possible values based on a specified condition.
InStrInStr InStr 関数は文字列内の最初の部分文字列を検索します。The InStr function finds the first occurrence of a substring in a string.
IsNullIsNull 式の評価結果が Null の場合、IsNull 関数は true を返します。If the expression evaluates to Null, then the IsNull function returns true.
IsNullOrEmptyIsNullOrEmpty 式が null または空の文字列の場合、IsNullOrEmpty 関数は true を返します。If the expression is null or an empty string, then the IsNullOrEmpty function returns true.
IsPresentIsPresent 式の評価結果が Null でもなく、空でもない文字列の場合、IsPresent 関数は true を返します。If the expression evaluates to a string that is not Null and is not empty, then the IsPresent function returns true.
IsStringIsString 式を文字列型として評価できる場合、IsString 関数の評価結果は True になります。If the expression can be evaluated to a string type, then the IsString function evaluates to True.
ItemItem Item 関数は複数値の文字列/属性から 1 つの項目を返します。The Item function returns one item from a multi-valued string/attribute.
JoinJoin Join() は Append() によく似ていますが、Join() では複数の source 文字列値を 1 つの文字列に結合できます。文字列値は separator で区切って指定します。Join() is similar to Append(), except that it can combine multiple source string values into a single string, and each value will be separated by a separator string.
LeftLeft Left 関数は文字列の左端から数えて指定した文字数分の文字を返します。The Left function returns a specified number of characters from the left of a string.
MidMid source 値の部分文字列を返します。Returns a substring of the source value. 部分文字列は、source 文字列の文字のみを含む文字列です。A substring is a string that contains only some of the characters from the source string.
NormalizeDiacriticsNormalizeDiacritics 1 つの文字列引数が必要です。Requires one string argument. 文字列を返しますが、分音記号はそれ以外の同等の記号で置換されます。Returns the string, but with any diacritical characters replaced with equivalent non-diacritical characters.
NotNot source のブール値を反転します。Flips the boolean value of the source. source 値が "True" の場合は "False" を返します。If source value is "True", returns "False". "False" の場合は "True" を返します。Otherwise, returns "True".
RemoveDuplicatesRemoveDuplicates RemoveDuplicates 関数は複数値の文字列を受け取り、各値が一意になるように処理します。The RemoveDuplicates function takes a multi-valued string and make sure each value is unique.
ReplaceReplace 文字列内の値を置換します。Replaces values within a string.
SelectUniqueValueSelectUniqueValue 少なくとも 2 つの引数が必要です。引数は、式を使用して定義されている一意値生成ルールです。Requires a minimum of two arguments, which are unique value generation rules defined using expressions. 関数では、各ルールが評価された後、生成された値の対象となるアプリ/ディレクトリでの一意性が確認されます。The function evaluates each rule and then checks the value generated for uniqueness in the target app/directory.
SingleAppRoleAssignmentSingleAppRoleAssignment 指定したアプリケーションで 1 人のユーザーに割り当てられた appRoleAssignments の全一覧から、単一の appRoleAssignment を返します。Returns a single appRoleAssignment from the list of all appRoleAssignments assigned to a user for a given application.
SplitSplit 指定された区切り記号文字を使用して、文字列を複数値の配列に分割します。Splits a string into a multi-valued array, using the specified delimiter character.
StringFromSIDStringFromSID StringFromSid 関数は、セキュリティ識別子が含まれるバイト配列を文字列に変換します。The StringFromSid function converts a byte array containing a security identifier to a string.
StripSpacesStripSpaces source 文字列からすべての空白文字 (" ") を削除します。Removes all space (" ") characters from the source string.
スイッチSwitch source 値が key と一致するときに、その keyvalue を返します。When source value matches a key, returns value for that key.
ToLowerToLower source 文字列値を受け取り、指定されたカルチャ ルールを使用して小文字に変換します。Takes a source string value and converts it to lower case using the culture rules that are specified.
ToUpperToUpper source 文字列値を受け取り、指定されたカルチャ ルールを使用して大文字に変換します。Takes a source string value and converts it to upper case using the culture rules that are specified.
TrimTrim Trim 関数は、文字列の先頭と末尾の空白文字を削除します。The Trim function removes leading and trailing white spaces from a string.
WordWord Word 関数は、使用する区切り記号と返す単語の番号を表すパラメーターに基づいて、文字列内に含まれる単語を返します。The Word function returns a word contained within a string, based on parameters describing the delimiters to use and the word number to return.

AppendAppend

関数:Function:
Append(source, suffix)Append(source, suffix)

説明:Description:
source 文字列値を受け取り、その末尾に suffix を追加します。Takes a source string value and appends the suffix to the end of it.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString 通常は、source オブジェクトの属性の名前。Usually name of the attribute from the source object.
suffixsuffix 必須Required StringString source 値の末尾に追加する文字列。The string that you want to append to the end of the source value.

BitAndBitAnd

説明:Description:
BitAnd 関数は、値に指定のビットを設定します。The BitAnd function sets specified bits on a value.

構文 :Syntax:
num BitAnd(num value1, num value2)

  • value1, value2: ともに AND になる数値value1, value2: numeric values that should be AND’ed together

備考:Remarks:
この関数は両方のパラメーターをバイナリ表現に変換し、ビットを次に設定します。This function converts both parameters to the binary representation and sets a bit to:

  • 0 - value1value2 内の対応するビットの 1 つまたは両方が 0 の場合0 - if one or both of the corresponding bits in value1 and value2 are 0
  • 1 - 対応するビットの両方が 1 の場合。1 - if both of the corresponding bits are 1.

つまり、両方のパラメーターの対応するビットが 1 の場合を除くすべてのケースで 0 を返します。In other words, it returns 0 in all cases except when the corresponding bits of both parameters are 1.

例:Example:

BitAnd(&HF, &HF7)
16 進数の "F" と "F7" の AND は 7 と評価されるため、7 を返します。Returns 7 because hexadecimal "F" AND "F7" evaluate to this value.


CBoolCBool

説明:Description:
CBool 関数は、式の評価結果に基づいてブール値を返します。The CBool function returns a Boolean based on the evaluated expression

構文 :Syntax:
bool CBool(exp Expression)

備考:Remarks:
式の評価結果が 0 以外の値の場合は CBool によって True が返され、それ以外の場合は False が返されます。If the expression evaluates to a non-zero value, then CBool returns True, else it returns False.

例:Example:
CBool([attrib1] = [attrib2])

両方の属性が同じ値を持つ場合は、True を返します。Returns True if both attributes have the same value.


ConvertFromBase64ConvertFromBase64

説明:Description:
ConvertFromBase64 関数は、指定した base64 でエンコードされた値を正規の文字列に変換します。The ConvertFromBase64 function converts the specified base64 encoded value to a regular string.

構文 :Syntax:
str ConvertFromBase64(str source) - エンコードには Unicode を想定していますstr ConvertFromBase64(str source) - assumes Unicode for encoding
str ConvertFromBase64(str source, enum Encoding)

  • source:Base64 でエンコードされた文字列source: Base64 encoded string
  • Encoding:Unicode、ASCII、UTF8Encoding: Unicode, ASCII, UTF8

Example
ConvertFromBase64("SABlAGwAbABvACAAdwBvAHIAbABkACEA")
ConvertFromBase64("SGVsbG8gd29ybGQh", UTF8)

どちらの例でも "Hello world! " を返します。Both examples return "Hello world!"


ConvertToBase64ConvertToBase64

説明:Description:
ConvertToBase64 関数は、文字列を Unicode の base64 文字列に変換します。The ConvertToBase64 function converts a string to a Unicode base64 string.
整数の配列の値を、base 64 桁でエンコードされているそれと同等の文字列表現に変換します。Converts the value of an array of integers to its equivalent string representation that is encoded with base-64 digits.

構文 :Syntax:
str ConvertToBase64(str source)

例:Example:
ConvertToBase64("Hello world!")
"SABlAGwAbABvACAAdwBvAHIAbABkACEA" を返します。Returns "SABlAGwAbABvACAAdwBvAHIAbABkACEA"


ConvertToUTF8HexConvertToUTF8Hex

説明:Description:
ConvertToUTF8Hex 関数は、文字列を UTF8 の 16 進数でエンコードされた値に変換します。The ConvertToUTF8Hex function converts a string to a UTF8 Hex encoded value.

構文 :Syntax:
str ConvertToUTF8Hex(str source)

備考:Remarks:
この関数の出力形式は、DN 属性の形式として Azure Active Directory で使用されます。The output format of this function is used by Azure Active Directory as DN attribute format.

例:Example:
ConvertToUTF8Hex("Hello world!")
48656C6C6F20776F726C6421 を返します。Returns 48656C6C6F20776F726C6421


CountCount

説明:Description:
Count 関数は、複数値の属性内の要素数を返します。The Count function returns the number of elements in a multi-valued attribute

構文 :Syntax:
num Count(mvstr attribute)


CStrCStr

説明:Description:
CStr 関数は、文字列データ型に変換します。The CStr function converts to a string data type.

構文 :Syntax:
str CStr(num value)
str CStr(ref value)
str CStr(bool value)

  • value: 数値、参照属性、ブール値を指定できます。value: Can be a numeric value, reference attribute, or Boolean.

例:Example:
CStr([dn])
"cn=Joe,dc=contoso,dc=com" を返します。Could return "cn=Joe,dc=contoso,dc=com"


DateFromNumDateFromNum

説明:Description:
DateFromNum 関数は、AD の日付形式の値を DateTime 型に変換します。The DateFromNum function converts a value in AD’s date format to a DateTime type.

構文 :Syntax:
dt DateFromNum(num value)

例:Example:
DateFromNum([lastLogonTimestamp])
DateFromNum(129699324000000000)
2012-01-01 23:00:00 を表す DateTime を返します。Returns a DateTime representing 2012-01-01 23:00:00


DNComponentDNComponent

説明:Description:
DNComponent 関数は、指定した DN コンポーネントの値を左から返します。The DNComponent function returns the value of a specified DN component going from left.

構文 :Syntax:
str DNComponent(ref dn, num ComponentNumber)

  • dn: 解釈する参照属性dn: the reference attribute to interpret
  • ComponentNumber:返される DN のコンポーネントComponentNumber: The component in the DN to return

例:Example:
DNComponent(CRef([dn]),1)
dn が "cn=Joe,ou=…," の場合は、Joe が返されます。If dn is "cn=Joe,ou=…," it returns Joe


エラーError

説明:Description:
Error 関数は、カスタム エラーを返すために使用します。The Error function is used to return a custom error.

構文 :Syntax:
void Error(str ErrorMessage)

例:Example:
IIF(IsPresent([accountName]),[accountName],Error("AccountName is required"))
属性 accountName が存在しない場合は、オブジェクトでエラーをスローします。If the attribute accountName is not present, throw an error on the object.


FormatDateTimeFormatDateTime

関数:Function:
FormatDateTime(source, inputFormat, outputFormat)FormatDateTime(source, inputFormat, outputFormat)

説明:Description:
1 つの形式の日付文字列を受け取り、別の形式に変換します。Takes a date string from one format and converts it into a different format.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString 通常は、source オブジェクトの属性の名前。Usually name of the attribute from the source object.
inputFormatinputFormat 必須Required StringString 有効な形式の source 値。Expected format of the source value. サポートされている形式については、/dotnet/standard/base-types/custom-date-and-time-format-strings を参照してください。For supported formats, see /dotnet/standard/base-types/custom-date-and-time-format-strings.
outputFormatoutputFormat 必須Required StringString 出力日付の形式。Format of the output date.

GuidGuid

説明:Description:
GUID 関数は、新しいランダムな GUID を生成します。The function Guid generates a new random GUID

構文 :Syntax:
str Guid()


IIFIIF

説明:Description:
IIF 関数は、指定した条件に基づいて、使用できる一連の値のうち、いずれかを返します。The IIF function returns one of a set of possible values based on a specified condition.

構文 :Syntax:
var IIF(exp condition, var valueIfTrue, var valueIfFalse)

  • condition: 評価結果が true または false になる任意の値または式。condition: any value or expression that can be evaluated to true or false.
  • valueIfTrue:条件の評価結果が true の場合に返される値。valueIfTrue: If the condition evaluates to true, the returned value.
  • valueIfFalse:条件の評価結果が false の場合に返される値。valueIfFalse: If the condition evaluates to false, the returned value.

例:Example:
IIF([employeeType]="Intern","t-" & [alias],[alias])
ユーザーがインターンの場合はユーザーのエイリアスの先頭に "t-" を付けて返し、そうでない場合はユーザーのエイリアスをそのまま返します。If the user is an intern, returns the alias of a user with "t-" added to the beginning of it, else returns the user’s alias as is.


InStrInStr

説明:Description:
InStr 関数は文字列内の最初の部分文字列を検索します。The InStr function finds the first occurrence of a substring in a string

構文 :Syntax:

num InStr(str stringcheck, str stringmatch)
num InStr(str stringcheck, str stringmatch, num start)
num InStr(str stringcheck, str stringmatch, num start , enum compare)

  • stringcheck: 検索対象の文字列stringcheck: string to be searched
  • stringmatch: 検出対象の文字列stringmatch: string to be found
  • start: 部分文字列の検索開始位置start: starting position to find the substring
  • compare: vbTextCompare または vbBinaryComparecompare: vbTextCompare or vbBinaryCompare

備考:Remarks:
部分文字列が見つかった位置を返します。見つからなかった場合は 0 を返します。Returns the position where the substring was found or 0 if not found.

例:Example:
InStr("The quick brown fox","quick")
評価結果は 5 になります。Evalues to 5

InStr("repEated","e",3,vbBinaryCompare)
評価結果は 7 になります。Evaluates to 7


IsNullIsNull

説明:Description:
式の評価結果が Null の場合、IsNull 関数は true を返します。If the expression evaluates to Null, then the IsNull function returns true.

構文 :Syntax:
bool IsNull(var Expression)

備考:Remarks:
属性の場合、Null は属性の不在によって表されます。For an attribute, a Null is expressed by the absence of the attribute.

例:Example:
IsNull([displayName])
CS または MV に属性がない場合は True を返します。Returns True if the attribute is not present in the CS or MV.


IsNullOrEmptyIsNullOrEmpty

説明:Description:
式が null または空の文字列の場合、IsNullOrEmpty 関数は true を返します。If the expression is null or an empty string, then the IsNullOrEmpty function returns true.

構文 :Syntax:
bool IsNullOrEmpty(var Expression)

備考:Remarks:
属性の場合は、属性がないか、存在しても空の文字列の場合、評価結果は True になります。For an attribute, this would evaluate to True if the attribute is absent or is present but is an empty string.
この関数の逆の関数は IsPresent です。The inverse of this function is named IsPresent.

例:Example:
IsNullOrEmpty([displayName])
CS または MV に属性がないか、空の文字列の場合は True を返します。Returns True if the attribute is not present or is an empty string in the CS or MV.


IsPresentIsPresent

説明:Description:
式の評価結果が Null でもなく、空でもない文字列の場合、IsPresent 関数は true を返します。If the expression evaluates to a string that is not Null and is not empty, then the IsPresent function returns true.

構文 :Syntax:
bool IsPresent(var expression)

備考:Remarks:
この関数の逆関数は IsNullOrEmpty です。The inverse of this function is named IsNullOrEmpty.

例:Example:
Switch(IsPresent([directManager]),[directManager], IsPresent([skiplevelManager]),[skiplevelManager], IsPresent([director]),[director])


ItemItem

説明:Description:
Item 関数は複数値の文字列/属性から 1 つの項目を返します。The Item function returns one item from a multi-valued string/attribute.

構文 :Syntax:
var Item(mvstr attribute, num index)

  • attribute: 複数値の属性attribute: multi-valued attribute
  • index: 複数値の文字列内の項目へのインデックス。index: index to an item in the multi-valued string.

備考:Remarks:
Contains 関数は複数値の属性内の項目に対するインデックスを返すため、Item 関数を Contains 関数と共に使用すると便利です。The Item function is useful together with the Contains function since the latter function returns the index to an item in the multi-valued attribute.

インデックスが範囲外にある場合は、エラーをスローします。Throws an error if index is out of bounds.

例:Example:
Mid(Item([proxyAddresses],Contains([proxyAddresses], "SMTP:")),6)
プライマリ メール アドレスを返します。Returns the primary email address.


IsStringIsString

説明:Description:
式を文字列型として評価できる場合、IsString 関数の評価結果は True になります。If the expression can be evaluated to a string type, then the IsString function evaluates to True.

構文 :Syntax:
bool IsString(var expression)

備考:Remarks:
CStr() が式の解析に成功するかどうかを判断するために使用します。Used to determine if CStr() can be successful to parse the expression.


JoinJoin

関数:Function:
Join(separator, source1, source2, …)Join(separator, source1, source2, …)

説明:Description:
Join() は Append() によく似ていますが、Join() では複数の source 文字列値を 1 つの文字列に結合できます。文字列値は separator で区切って指定します。Join() is similar to Append(), except that it can combine multiple source string values into a single string, and each value will be separated by a separator string.

source 値の 1 つが複数値属性である場合は、その属性のすべての値を結合し、separator 値で区切ります。If one of the source values is a multi-value attribute, then every value in that attribute will be joined together, separated by the separator value.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
separatorseparator 必須Required StringString source 値を 1 つの文字列に連結するときに、各値を区切るのに使用する文字列。String used to separate source values when they are concatenated into one string. 区切り記号が必要ない場合は、“” とすることができます。Can be "" if no separator is required.
source1 … sourceNsource1 … sourceN 必須、回数は可変Required, variable-number of times StringString 結合する文字列値。String values to be joined together.

LeftLeft

説明:Description:
Left 関数は文字列の左端から数えて指定した文字数分の文字を返します。The Left function returns a specified number of characters from the left of a string.

構文 :Syntax:
str Left(str string, num NumChars)

  • string: 返される文字を含む文字列string: the string to return characters from
  • NumChars: 文字列の左端から数えて返される文字数を指定する数値NumChars: a number identifying the number of characters to return from the beginning (left) of string

備考:Remarks:
string 内の最初の numChars 文字分の文字を含む文字列。A string containing the first numChars characters in string:

  • numChars = 0 の場合、空の文字列を返します。If numChars = 0, return empty string.
  • numChars < 0 の場合、入力文字列を返します。If numChars < 0, return input string.
  • string が null の場合、空の文字列を返します。If string is null, return empty string.

string に含まれる文字数が numChars で指定した数より少ない場合は、string と同一の文字列 (パラメーター 1 のすべての文字が含まれる) が返されます。If string contains fewer characters than the number specified in numChars, a string identical to string (that is, containing all characters in parameter 1) is returned.

例:Example:
Left("John Doe", 3)
Joh が返されます。Returns Joh.


MidMid

関数:Function:
Mid(source, start, length)Mid(source, start, length)

説明:Description:
source 値の部分文字列を返します。Returns a substring of the source value. 部分文字列は、source 文字列の文字のみを含む文字列です。A substring is a string that contains only some of the characters from the source string.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString 通常、属性の名前。Usually name of the attribute.
startstart 必須Required 整数 (integer)integer 部分文字列が始まる source 文字列のインデックス。Index in the source string where substring should start. 文字列内の最初の文字のインデックスは 1、2 番目の文字のインデックスは 2です (以降同様)。First character in the string will have index of 1, second character will have index 2, and so on.
lengthlength 必須Required 整数 (integer)integer 部分文字列の長さ。Length of the substring. length が source 文字列の外で終わる場合は、start インデックスから source 文字列の末尾までの部分文字列を返します。If length ends outside the source string, function will return substring from start index till end of source string.

NormalizeDiacriticsNormalizeDiacritics

関数:Function:
NormalizeDiacritics(source)NormalizeDiacritics(source)

説明:Description:
1 つの文字列引数が必要です。Requires one string argument. 文字列を返しますが、分音記号はそれ以外の同等の記号で置換されます。Returns the string, but with any diacritical characters replaced with equivalent non-diacritical characters. 通常、分音記号 (アクセント記号) を含む姓と名を、さまざまなユーザー識別子 (ユーザー プリンシパル名、SAM アカウント名、電子メール アドレスなど) で使用できる有効な値に変換するために使用します。Typically used to convert first names and last names containing diacritical characters (accent marks) into legal values that can be used in various user identifiers such as user principal names, SAM account names, and email addresses.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString 通常は、名または姓の属性です。Usually a first name or last name attribute.

NotNot

関数:Function:
Not(source)Not(source)

説明:Description:
source のブール値を反転します。Flips the boolean value of the source. source 値が "True" の場合は "False" を返します。If source value is "True", returns "False". "False" の場合は "True" を返します。Otherwise, returns "True".

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required Boolean StringBoolean String 有効な source 値は "True" または "False" です。Expected source values are "True" or "False".

RemoveDuplicatesRemoveDuplicates

説明:Description:
RemoveDuplicates 関数は複数値の文字列を受け取り、各値が一意になるように処理します。The RemoveDuplicates function takes a multi-valued string and make sure each value is unique.

構文 :Syntax:
mvstr RemoveDuplicates(mvstr attribute)

例:Example:
RemoveDuplicates([proxyAddresses])
重複する値がすべて削除された、校正済みの proxyAddress 属性を返します。Returns a sanitized proxyAddress attribute where all duplicate values have been removed.


ReplaceReplace

関数:Function:
Replace(source, oldValue, regexPattern, regexGroupName, replacementValue, replacementAttributeName, template)Replace(source, oldValue, regexPattern, regexGroupName, replacementValue, replacementAttributeName, template)

説明:Description:
文字列内の値を置換します。Replaces values within a string. 指定されたパラメーターに応じて異なる動作をします。It works differently depending on the parameters provided:

  • oldValuereplacementValue が指定された場合:When oldValue and replacementValue are provided:

    • source に含まれるすべての oldValuereplacementValue に置換します。Replaces all occurrences of oldValue in the source with replacementValue
  • oldValuetemplate が指定された場合:When oldValue and template are provided:

    • template に含まれるすべての OldValuesource 値に置換します。Replaces all occurrences of the oldValue in the template with the source value
  • regexPatternreplacementValue が指定された場合:When regexPattern and replacementValue are provided:

    • この関数で regexPatternsource の文字列に適用され、regex グループ名を使って replacementValue の文字列を作成できます。The function applies the regexPattern to the source string and you can use the regex group names to construct the string for replacementValue
  • regexPatternregexGroupNamereplacementValue が指定された場合:When regexPattern, regexGroupName, replacementValue are provided:

    • この関数で regexPatternsource の文字列に適用され、regexGroupName と一致するすべての値が replacementValue に置き換えられますThe function applies the regexPattern to the source string and replaces all values matching regexGroupName with replacementValue
  • regexPatternregexGroupNamereplacementAttributeName が指定された場合:When regexPattern, regexGroupName, replacementAttributeName are provided:

    • source に値が指定されていない場合は、source を返します。If source has no value, source is returned
    • source に値がある場合、この関数で regexPatternsource の文字列に適用され、regexGroupName と一致するすべての値が replacementAttributeName に関連付けられた値に置き換えられますIf source has a value, the function applies the regexPattern to the source string and replaces all values matching regexGroupName with the value associated with replacementAttributeName

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString 通常は、source オブジェクトの属性の名前。Usually name of the attribute from the source object.
oldValueoldValue 省略可能Optional StringString source または template に含まれる置換前の値。Value to be replaced in source or template.
regexPatternregexPattern 省略可能Optional StringString sourceに含まれる置換前の値の正規表現パターン。Regex pattern for the value to be replaced in source. または、replacementPropertyName が使われるときは、replacementPropertyName から値を抽出するパターン。Or, when replacementPropertyName is used, pattern to extract value from replacementPropertyName.
regexGroupNameregexGroupName 省略可能Optional StringString regexPattern内のグループの名前。Name of the group inside regexPattern. replacementPropertyName を使用した場合にのみ、このグループの値が replacementPropertyName から replacementValue として抽出されます。Only when replacementPropertyName is used, we will extract value of this group as replacementValue from replacementPropertyName.
replacementValuereplacementValue 省略可能Optional StringString 古い値を置き換える新しい値。New value to replace old one with.
replacementAttributeNamereplacementAttributeName 省略可能Optional StringString 置換値に使用する属性の名前Name of the attribute to be used for replacement value
templatetemplate 省略可能Optional StringString template の値を指定した場合、template 内で oldValue が検索され、source の値で置換されます。When template value is provided, we will look for oldValue inside the template and replace it with source value.

SelectUniqueValueSelectUniqueValue

関数:Function:
SelectUniqueValue(uniqueValueRule1, uniqueValueRule2, uniqueValueRule3, …)SelectUniqueValue(uniqueValueRule1, uniqueValueRule2, uniqueValueRule3, …)

説明:Description:
少なくとも 2 つの引数が必要です。引数は、式を使用して定義されている一意値生成ルールです。Requires a minimum of two arguments, which are unique value generation rules defined using expressions. 関数では、各ルールが評価された後、生成された値の対象となるアプリ/ディレクトリでの一意性が確認されます。The function evaluates each rule and then checks the value generated for uniqueness in the target app/directory. 最初に見つかった一意の値が返されます。The first unique value found will be the one returned. すべての値がターゲットに既に存在する場合、エントリはエスクローされて、理由が監査ログに記録されます。If all of the values already exist in the target, the entry will get escrowed and the reason gets logged in the audit logs. 渡すことができる引数の数に上限はありません。There is no upper bound to the number of arguments that can be provided.

注意

  • これは最上位の関数であり、入れ子にはできません。This is a top-level function, it cannot be nested.
  • この関数は、照合の優先順位を持つ属性には適用できません。This function cannot be applied to attributes that have a matching precedence.
  • この関数は、エントリの作成に使用されることだけを目的としたものです。This function is only meant to be used for entry creations. 属性で使用するときは、 [Apply Mapping](マッピングの適用) プロパティを [オブジェクトの作成中のみ] に設定します。When using it with an attribute, set the Apply Mapping property to Only during object creation.
  • 現在、この関数は "Workday to Active Directory User Provisioning" でのみサポートされています。This function is currently only supported for "Workday to Active Directory User Provisioning". 他のプロビジョニング アプリでは使用できません。It cannot be used with other provisioning applications.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
uniqueValueRule1 … uniqueValueRuleNuniqueValueRule1 … uniqueValueRuleN 2 つ以上必要であり、上限はありませんAt least 2 are required, no upper bound StringString 評価する一意値生成ルールの一覧。List of unique value generation rules to evaluate.

SingleAppRoleAssignmentSingleAppRoleAssignment

関数:Function:
SingleAppRoleAssignment(appRoleAssignments)SingleAppRoleAssignment([appRoleAssignments])

説明:Description:
指定したアプリケーションで 1 人のユーザーに割り当てられた appRoleAssignments の全一覧から、単一の appRoleAssignment を返します。Returns a single appRoleAssignment from the list of all appRoleAssignments assigned to a user for a given application. appRoleAssignments オブジェクトを単一のロール名文字列に変換するために、この関数が必要になります。This function is required to convert the appRoleAssignments object into a single role name string. ベスト プラクティスは、確実に 1 つの appRoleAssignment だけが一度に 1 人のユーザーに割り当てられるようにすることです。複数のロールが割り当てられると、返されるロール文字列を予測できません。Note that the best practice is to ensure only one appRoleAssignment is assigned to one user at a time, and if multiple roles are assigned the role string returned may not be predictable.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
appRoleAssignments[appRoleAssignments] 必須Required StringString appRoleAssignments オブジェクト[appRoleAssignments] object.

SplitSplit

関数:Function:
Split(source, delimiter)Split(source, delimiter)

説明:Description:
指定された区切り記号文字を使用して、文字列を複数値の配列に分割します。Splits a string into a multi-valued array, using the specified delimiter character.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString source 値。source value to update.
delimiterdelimiter 必須Required StringString 文字列の分割に使用される文字を指定します (例: ",")Specifies the character that will be used to split the string (example: ",")

StringFromSidStringFromSid

説明:Description:
StringFromSid 関数は、セキュリティ識別子が含まれるバイト配列を文字列に変換します。The StringFromSid function converts a byte array containing a security identifier to a string.

構文 :Syntax:
str StringFromSid(bin ObjectSID)


StripSpacesStripSpaces

関数:Function:
StripSpaces(source)StripSpaces(source)

説明:Description:
source 文字列からすべての空白文字 (" ") を削除します。Removes all space (" ") characters from the source string.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString source 値。source value to update.

SwitchSwitch

関数:Function:
Switch(source, defaultValue, key1, value1, key2, value2, …)Switch(source, defaultValue, key1, value1, key2, value2, …)

説明:Description:
source 値が key と一致するときに、その keyvalue を返します。When source value matches a key, returns value for that key. source 値がどの key とも一致しない場合は、defaultValue を返します。If source value doesn't match any keys, returns defaultValue. keyvalue パラメーターは、常にペアで指定する必要があります。Key and value parameters must always come in pairs. この関数には、常に、偶数個のパラメーターを指定する必要があります。The function always expects an even number of parameters.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString 確認するsource 値。Source value to check.
defaultValuedefaultValue 省略可能Optional StringString source がどの key とも一致しないときに使用される既定値。Default value to be used when source doesn't match any keys. 空の文字列 ("") を指定できます。Can be empty string ("").
keykey 必須Required StringString source 値と比較する keyKey to compare source value with.
valuevalue 必須Required StringString key と一致する source の置換値。Replacement value for the source matching the key.

ToLowerToLower

関数:Function:
ToLower(source, culture)ToLower(source, culture)

説明:Description:
source 文字列値を受け取り、指定されたカルチャ ルールを使用して小文字に変換します。Takes a source string value and converts it to lower case using the culture rules that are specified. culture 情報が指定されていない場合は、インバリアント カルチャが使用されます。If there is no culture info specified, then it will use Invariant culture.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString 通常は、source オブジェクトの属性の名前。Usually name of the attribute from the source object
cultureculture 省略可能Optional StringString RFC 4646 に基づくカルチャ名の形式は、languagecode2-country/regioncode2 です。ここで、languagecode2 は 2 文字の言語コードで、country/regioncode2 は 2 文字のサブカルチャ コードです。The format for the culture name based on RFC 4646 is languagecode2-country/regioncode2, where languagecode2 is the two-letter language code and country/regioncode2 is the two-letter subculture code. 例には、日本語 (日本) の場合の ja-JP と英語 (米国) の場合の en-US が含まれています。Examples include ja-JP for Japanese (Japan) and en-US for English (United States). 2 文字の言語コードが使用できない場合は、ISO 639-2 から派生した 3 文字のコードが使用されます。In cases where a two-letter language code is not available, a three-letter code derived from ISO 639-2 is used.

ToUpperToUpper

関数:Function:
ToUpper(source, culture)ToUpper(source, culture)

説明:Description:
source 文字列値を受け取り、指定されたカルチャ ルールを使用して大文字に変換します。Takes a source string value and converts it to upper case using the culture rules that are specified. culture 情報が指定されていない場合は、インバリアント カルチャが使用されます。If there is no culture info specified, then it will use Invariant culture.

パラメーター:Parameters:

名前Name 必須/繰り返しRequired/ Repeating TypeType NotesNotes
sourcesource 必須Required StringString 通常は、source オブジェクトの属性の名前。Usually name of the attribute from the source object.
cultureculture 省略可能Optional StringString RFC 4646 に基づくカルチャ名の形式は、languagecode2-country/regioncode2 です。ここで、languagecode2 は 2 文字の言語コードで、country/regioncode2 は 2 文字のサブカルチャ コードです。The format for the culture name based on RFC 4646 is languagecode2-country/regioncode2, where languagecode2 is the two-letter language code and country/regioncode2 is the two-letter subculture code. 例には、日本語 (日本) の場合の ja-JP と英語 (米国) の場合の en-US が含まれています。Examples include ja-JP for Japanese (Japan) and en-US for English (United States). 2 文字の言語コードが使用できない場合は、ISO 639-2 から派生した 3 文字のコードが使用されます。In cases where a two-letter language code is not available, a three-letter code derived from ISO 639-2 is used.

TrimTrim

説明:Description:
Trim 関数は、文字列の先頭と末尾の空白文字を削除します。The Trim function removes leading and trailing white spaces from a string.

構文 :Syntax:
str Trim(str value)

例:Example:
Trim(" Test ")
"test" を返します。Returns "Test".

Trim([proxyAddresses])
proxyAddress 属性の値ごとに先頭と末尾の空白文字を削除します。Removes leading and trailing spaces for each value in the proxyAddress attribute.


WordWord

説明:Description:
Word 関数は、使用する区切り記号と返す単語の番号を表すパラメーターに基づいて、文字列内に含まれる単語を返します。The Word function returns a word contained within a string, based on parameters describing the delimiters to use and the word number to return.

構文 :Syntax:
str Word(str string, num WordNumber, str delimiters)

  • string: 返される単語を含む文字列。string: the string to return a word from.
  • WordNumber: 返すべき単語の番号を指定する数値。WordNumber: a number identifying which word number should return.
  • delimiters: 単語を識別するために使用される区切り記号を表す文字列delimiters: a string representing the delimiter(s) that should be used to identify words

備考:Remarks:
delimiters 内のいずれかの文字で区切られた string 内の各文字列が、単語として識別されます。Each string of characters in string separated by the one of the characters in delimiters are identified as words:

  • num < 1 の場合、空の文字列を返します。If number < 1, returns empty string.
  • string が null の場合、空の文字列を返します。If string is null, returns empty string.

string に含まれる単語の数が指定より少ないか、区切り記号文字で識別されるどの単語も string に含まれていない場合は、空の文字列が返されます。If string contains less than number words, or string does not contain any words identified by delimiters, an empty string is returned.

例:Example:
Word("The quick brown fox",3," ")
"brown" を返します。Returns "brown"

Word("This,string!has&many separators",3,",!&#")
"has" を返します。Would return "has"

Examples

既知のドメイン名をストリップするStrip known domain name

ユーザーの電子メールから既知のドメイン名をストリップして、ユーザー名を取得する必要があります。You need to strip a known domain name from a user’s email to obtain a user name.
たとえば、ドメインが "contoso.com" の場合は、次の式を使用することができます。For example, if the domain is "contoso.com", then you could use the following expression:

Expression:Expression:
Replace([mail], "@contoso.com", , ,"", ,)

サンプル入力/出力:Sample input / output:

  • 入力 (mail): "john.doe@contoso.com"INPUT (mail): "john.doe@contoso.com"
  • 出力: "john.doe"OUTPUT: "john.doe"

ユーザー名に定数のサフィックスを追加するAppend constant suffix to user name

Salesforce Sandbox を使用している場合は、ユーザー名を同期する前に、すべてのユーザー名に追加のサフィックスを追加する必要があります。If you are using a Salesforce Sandbox, you might need to append an additional suffix to all your user names before synchronizing them.

Expression:Expression:
Append([userPrincipalName], ".test")

サンプル入力/出力:Sample input/output:

  • 入力: (userPrincipalName): "John.Doe@contoso.com"INPUT: (userPrincipalName): "John.Doe@contoso.com"
  • 出力: "John.Doe@contoso.com.test"OUTPUT: "John.Doe@contoso.com.test"

姓の一部と名の一部を連結することでユーザー エイリアスを生成するGenerate user alias by concatenating parts of first and last name

ユーザーの名の最初の 3 文字とユーザーの姓の最初の 5 文字を取得することでユーザー エイリアスを生成する必要があります。You need to generate a user alias by taking first 3 letters of user's first name and first 5 letters of user's last name.

Expression:Expression:
Append(Mid([givenName], 1, 3), Mid([surname], 1, 5))

サンプル入力/出力:Sample input/output:

  • 入力 (givenName):"John"INPUT (givenName): "John"
  • 入力 (surname):"Doe"INPUT (surname): "Doe"
  • 出力:"JohDoe"OUTPUT: "JohDoe"

文字列から分音記号を削除するRemove diacritics from a string

アクセント記号を含む文字を、アクセント記号を含まない同等の文字に置換する必要があります。You need to replace characters containing accent marks with equivalent characters that don't contain accent marks.

Expression:Expression:
NormalizeDiacritics([givenName])NormalizeDiacritics([givenName])

サンプル入力/出力:Sample input/output:

  • 入力 (givenName):"Zoë"INPUT (givenName): "Zoë"
  • 出力:"Zoe"OUTPUT: "Zoe"

文字列を複数値の配列に分割しますSplit a string into a multi-valued array

コンマ区切りの一覧になっている文字列を受け取り、Salesforce の PermissionSets 属性などの複数値の属性にプラグインできる配列に分割する必要があります。You need to take a comma-delimited list of strings, and split them into an array that can be plugged into a multi-value attribute like Salesforce's PermissionSets attribute. この例では、アクセス許可セットの一覧が、Azure AD の extensionAttribute5 に格納されています。In this example, a list of permission sets has been populated in extensionAttribute5 in Azure AD.

Expression:Expression:
Split([extensionAttribute5], ",")Split([extensionAttribute5], ",")

サンプル入力/出力:Sample input/output:

  • INPUT (extensionAttribute5):"PermissionSetOne, PermisionSetTwo"INPUT (extensionAttribute5): "PermissionSetOne, PermisionSetTwo"
  • OUTPUT: ["PermissionSetOne", "PermissionSetTwo"]OUTPUT: ["PermissionSetOne", "PermissionSetTwo"]

特定の形式の文字列として日付を出力するOutput date as a string in a certain format

SaaS アプリケーションに特定の形式で日付を送信します。You want to send dates to a SaaS application in a certain format.
たとえば、ServiceNow 向けに日付の書式を設定します。For example, you want to format dates for ServiceNow.

Expression:Expression:

FormatDateTime([extensionAttribute1], "yyyyMMddHHmmss.fZ", "yyyy-MM-dd")

サンプル入力/出力:Sample input/output:

  • 入力 (extensionAttribute1):"20150123105347.1Z"INPUT (extensionAttribute1): "20150123105347.1Z"
  • 出力:"2015-01-23"OUTPUT: "2015-01-23"

定義済みのオプション セットに基づいて値を置換するReplace a value based on predefined set of options

Azure AD に格納されている都道府県コードに基づいて、ユーザーのタイム ゾーンを定義する必要があります。You need to define the time zone of the user based on the state code stored in Azure AD.
都道府県コードが定義済みオプションのいずれにも一致しない場合は、既定値 "Australia/Sydney" を使用します。If the state code doesn't match any of the predefined options, use default value of "Australia/Sydney".

Expression:Expression:
Switch([state], "Australia/Sydney", "NSW", "Australia/Sydney","QLD", "Australia/Brisbane", "SA", "Australia/Adelaide")

サンプル入力/出力:Sample input/output:

  • 入力 (state):"QLD"INPUT (state): "QLD"
  • 出力:"Australia/Brisbane"OUTPUT: "Australia/Brisbane"

正規表現を使用して文字を置換しますReplace characters using a regular expression

正規表現の値と一致する文字を見つけて削除する必要があります。You need to find characters that match a regular expression value and remove them.

Expression:Expression:

Replace([mailNickname], , "[a-zA-Z_]*", , "", , )Replace([mailNickname], , "[a-zA-Z_]*", , "", , )

サンプル入力/出力:Sample input/output:

  • INPUT (mailNickname: "john_doe72"INPUT (mailNickname: "john_doe72"
  • 出力:"72"OUTPUT: "72"

生成された userPrincipalName (UPN) の値を小文字に変換しますConvert generated userPrincipalName (UPN) value to lower case

次の例では、PreferredFirstName および PreferredLastName ソース フィールドを連結することで UPN 値が生成され、ToLower 関数は、すべての文字を小文字に変換するために、生成された文字列で機能します。In the example below, the UPN value is generated by concatenating the PreferredFirstName and PreferredLastName source fields and the ToLower function operates on the generated string to convert all characters to lower case.

ToLower(Join("@", NormalizeDiacritics(StripSpaces(Join(".", [PreferredFirstName], [PreferredLastName]))), "contoso.com"))

サンプル入力/出力:Sample input/output:

  • 入力 (PreferredFirstName):"John"INPUT (PreferredFirstName): "John"
  • 入力 (PreferredLastName):"Smith"INPUT (PreferredLastName): "Smith"
  • 出力: "john.smith@contoso.com"OUTPUT: "john.smith@contoso.com"

userPrincipalName (UPN) 属性用に一意の値を生成するGenerate unique value for userPrincipalName (UPN) attribute

ユーザーの名、ミドル ネーム、姓を基にして UPN 属性の値を生成し、値を UPN 属性に割り当てる前に、対象の AD ディレクトリで値が一意であることを確認する必要があります。Based on the user's first name, middle name and last name, you need to generate a value for the UPN attribute and check for its uniqueness in the target AD directory before assigning the value to the UPN attribute.

Expression:Expression:

    SelectUniqueValue( 
        Join("@", NormalizeDiacritics(StripSpaces(Join(".",  [PreferredFirstName], [PreferredLastName]))), "contoso.com"), 
        Join("@", NormalizeDiacritics(StripSpaces(Join(".",  Mid([PreferredFirstName], 1, 1), [PreferredLastName]))), "contoso.com"),
        Join("@", NormalizeDiacritics(StripSpaces(Join(".",  Mid([PreferredFirstName], 1, 2), [PreferredLastName]))), "contoso.com")
    )

サンプル入力/出力:Sample input/output:

  • 入力 (PreferredFirstName):"John"INPUT (PreferredFirstName): "John"
  • 入力 (PreferredLastName):"Smith"INPUT (PreferredLastName): "Smith"
  • 出力: John.Smith@contoso.com の UPN 値がディレクトリにまだ存在しない場合は "John.Smith@contoso.com"OUTPUT: "John.Smith@contoso.com" if UPN value of John.Smith@contoso.com doesn't already exist in the directory
  • 出力: John.Smith@contoso.com の UPN 値がディレクトリに既に存在する場合は "J.Smith@contoso.com"OUTPUT: "J.Smith@contoso.com" if UPN value of John.Smith@contoso.com already exists in the directory
  • 出力: 上記の 2 つの UPN 値がディレクトリに既に存在する場合は "Jo.Smith@contoso.com"OUTPUT: "Jo.Smith@contoso.com" if the above two UPN values already exist in the directory

次のステップNext steps