Share via


Escritura de expresiones para asignaciones de atributos en Microsoft Entra ID

Al configurar la sincronización en la nube, uno de los tipos de asignaciones de atributos que se pueden especificar es una asignación de expresiones.

La asignación de expresiones permite personalizar atributos mediante una expresión similar a un script. Esto permite transformar los datos locales en un valor nuevo o diferente. Por ejemplo, puede que desee combinar dos atributos para formar uno solo, ya que este atributo lo usa una de las aplicaciones en la nube.

En el siguiente documento se tratarán las expresiones similares a scripts que se usan para transformar los datos. Esto es solo una parte del proceso. A continuación, deberá usar esta expresión y colocarla en una solicitud web para el inquilino. Para más información al respecto, consulte Transformaciones

Información general sobre la sintaxis

La sintaxis de expresiones para asignaciones de atributos recuerda a las funciones de Visual Basic para Aplicaciones (VBA).

  • Toda la expresión se tiene que definir en términos de funciones, que constan de un nombre seguido de argumentos entre paréntesis:
    FunctionName(<<argument 1>>,<<argument N>>)

  • Es posible anidar funciones dentro de otras. Por ejemplo:
    FunctionOne(FunctionTwo(<<argument1>>))

  • Puede transformar tres tipos diferentes de argumentos en funciones:

    1. Atributos, que deben ir entre corchetes. Por ejemplo: [NombreAtributo]
    2. Constantes de cadena, que deben ir entre comillas. Por ejemplo: "Estados Unidos"
    3. Otras funciones. Por ejemplo: FunctionOne(<<argument1>>, FunctionTwo(<<argument2>>))
  • Para las constantes de cadena, si necesita una barra diagonal inversa (\) o comillas dobles (") en la cadena, se deben convertirse con el símbolo de barra diagonal inversa (\). Por ejemplo: "Company name: \"Contoso\""

Lista de funciones

Lista de funciones Descripción
Append adopta un valor de la cadena de origen y anexa el sufijo al final de la misma.
BitAnd : la función BitAnd establece los bits especificados en un valor.
CBool : la función CBool devuelve un valor booleano basado en la expresión evaluada.
ConvertFromBase64 : la función ConvertFromBase64 convierte el valor codificado en base64 especificado en una cadena normal.
ConvertToBase64 La función ConvertToBase64 convierte una cadena en una en base64 de Unicode.
ConvertToUTF8Hex : la función ConvertToUTF8Hex convierte una cadena en un valor codificado hexadecimal UTF8.
Recuento : la función Count devuelve el número de elementos en un atributo multivalor.
Cstr : la función CStr se convierte en un tipo de datos de cadena.
DateFromNum : la función DateFromNum convierte un valor con formato de fecha de AD en un tipo DateTime.
DNComponent : la función DNComponent devuelve el valor de un componente DN especificado empezando por la izquierda.
Error : la función Error se usa para devolver un error personalizado.
FormatDateTime adopta una cadena de fecha en un formato y la convierte a un formato distinto.
GUID La función GUID genera un identificador único global aleatorio.
IIF : la función IIF devuelve uno de un conjunto de valores posibles según una condición especificada.
InStr La función InStr busca la primera repetición de una subcadena en una cadena.
IsNull si la expresión se evalúa como Null, la función IsNull devuelve True.
IsNullOrEmpty si la expresión es Null o una cadena vacía, la función IsNullOrEmpty devuelve True.
IsPresent si la expresión se evalúa como una cadena que no es Null y no está vacía, la función IsPresent devuelve True.
IsString si la expresión se puede evaluar en un tipo de cadena, la función IsString se evalúa en True.
Elemento la función Item devuelve un elemento de un atributo o una cadena de varios valores.
Join Join() es similar a Append(), excepto en que puede combinar varios valores de cadena de source en una sola cadena, y cada valor estará separado por una cadena de separator.
Left la función Left devuelve un número especificado de caracteres desde la izquierda de una cadena.
Mid devuelve una subcadena del valor de origen. Una subcadena es una cadena que contiene sólo algunos de los caracteres de la cadena de origen.
NormalizeDiacritics Requiere un argumento de cadena. Devuelve la cadena, pero se reemplazan todos los caracteres diacríticos por sus equivalentes no diacríticos.
Not Invierte el valor booleano de source. Si el valor de source es "True", devuelve "False". De lo contrario, devuelve "True".
RemoveDuplicates la función RemoveDuplicates toma una cadena multivalor y garantiza que cada valor es único.
Sustituya Reemplaza valores dentro de una cadena.
SelectUniqueValue Requiere dos argumentos como mínimo, que son las reglas de generación de valor único definidas con expresiones. La función evalúa cada regla y, a continuación, comprueba la unicidad del valor generado en el directorio o la aplicación de destino.
SingleAppRoleAssignment Devuelve una única función appRoleAssignment de la lista de todas las funciones appRoleAssignments asignadas a un usuario para una aplicación determinada.
Dividir divide una cadena en una matriz de varios valores, usando el carácter delimitador especificado.
StringFromSID la función StringFromSid convierte una matriz de bytes o una matriz de bytes multivalor que contiene un identificador de seguridad en una cadena o en una cadena multivalor.
StripSpaces quita todos los caracteres de espacio (" ") de la cadena de origen.
Switch Cuando el valor de source coincide con una key, devuelve el value de dicha key.
ToLower Toma un valor de cadena de origen y se convierte a minúsculas mediante las reglas de referencia cultural que se hayan especificado.
ToUpper Toma un valor de cadena de origen y se convierte a mayúsculas mediante las reglas de referencia cultural que se hayan especificado.
Trim la función Trim quita los espacios en blanco del principio y del final de una cadena.
Word : la función Word devuelve una palabra incluida en una cadena, según los parámetros que describen los delimitadores que se usarán y el número de palabras que se devolverán.

Append

Función:
Append(source, suffix)

Descripción:
adopta un valor de la cadena de origen y anexa el sufijo al final de la misma.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String Normalmente el nombre del atributo del objeto de origen.
suffix Obligatorio String La cadena que se va a anexar al final del valor de origen.

BitAnd

Descripción:
: la función BitAnd establece los bits especificados en un valor.

Sintaxis:
num BitAnd(num value1, num value2)

  • value1, value2: valores numéricos que deberían estar unidos por el operador AND

Observaciones:
: esta función convierte ambos parámetros en la representación binaria y establece un bit en los siguientes valores:

  • 0: si uno o ambos de los bits correspondientes en value1 y value2 son 0.
  • 1: si ambos de los bits correspondientes son 1.

En otras palabras, devuelve 0 en todos los casos excepto cuando los bits correspondientes de los dos parámetros son 1.

Ejemplo:

BitAnd(&HF, &HF7)
Devuelve 7 porque los valores hexadecimales "F" y "F7" se evalúan en este valor.


CBool

Descripción:
: la función CBool devuelve un valor booleano basado en la expresión evaluada.

Sintaxis:
bool CBool(exp Expression)

Observaciones:
Si la expresión se evalúa en un valor distinto de cero, CBool devuelve True. En caso contrario, devuelve False.

Ejemplo:
CBool([attrib1] = [attrib2])

Devuelve True si ambos atributos tienen el mismo valor.


ConvertFromBase64

Descripción:
: la función ConvertFromBase64 convierte el valor codificado en base64 especificado en una cadena normal.

Sintaxis:
str ConvertFromBase64(str source) da por hecho que se usará Unicode para la codificación.
str ConvertFromBase64(str source, enum Encoding)

  • source: cadena codificada en Base64
  • Encoding: Unicode, ASCII, UTF8

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

Ambos ejemplos devuelven "Hola a todos"


ConvertToBase64

Descripción:
La función ConvertToBase64 convierte una cadena en una en base64 de Unicode.
Convierte el valor de una matriz de enteros en su representación de cadena equivalente que se codifica con dígitos de base 64.

Sintaxis:
str ConvertToBase64(str source)

Ejemplo:
ConvertToBase64("Hello world!")
devuelve "SABlAGwAbABvACAAdwBvAHIAbABkACEA".


ConvertToUTF8Hex

Descripción:
: la función ConvertToUTF8Hex convierte una cadena en un valor codificado hexadecimal UTF8.

Sintaxis:
str ConvertToUTF8Hex(str source)

Observaciones:
El formato de salida de esta función es usado por Microsoft Entra ID como formato de atributo DN.

Ejemplo:
ConvertToUTF8Hex("Hello world!")
devuelve 48656C6C6F20776F726C6421.


Count

Descripción:
: la función Count devuelve el número de elementos en un atributo multivalor.

Sintaxis:
num Count(mvstr attribute)


CStr

Descripción:
: la función CStr se convierte en un tipo de datos de cadena.

Sintaxis:
str CStr(num value)
str CStr(ref value)
str CStr(bool value)

  • value: puede ser un valor numérico, un atributo de referencia o un valor booleano.

Ejemplo:
CStr([dn])
podría devolver "cn=Joe,dc=contoso,dc=com"


DateFromNum

Descripción:
: la función DateFromNum convierte un valor con formato de fecha de AD en un tipo DateTime.

Sintaxis:
dt DateFromNum(num value)

Ejemplo:
DateFromNum([lastLogonTimestamp])
DateFromNum(129699324000000000)
devuelve un valor DateTime que representa 2012-01-01 23:00:00.


DNComponent

Descripción:
: la función DNComponent devuelve el valor de un componente DN especificado empezando por la izquierda.

Sintaxis:
str DNComponent(ref dn, num ComponentNumber)

  • dn: el atributo de referencia que interpretar
  • ComponentNumber: el componente en DN para devolver

Ejemplo:
DNComponent(CRef([dn]),1)
si dn es "cn=Joe,ou=…", devuelve Joe.


Error

Descripción:
: la función Error se usa para devolver un error personalizado.

Sintaxis:
void Error(str ErrorMessage)

Ejemplo:
IIF(IsPresent([accountName]),[accountName],Error("AccountName is required"))
si el atributo accountName no está presente, se produce un error en el objeto.


FormatDateTime

Función:
FormatDateTime(source, inputFormat, outputFormat)

Descripción:
adopta una cadena de fecha en un formato y la convierte a un formato distinto.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String Normalmente el nombre del atributo del objeto de origen.
inputFormat Obligatorio String Formato esperado del valor de origen. Para conocer los formatos admitidos, consulte /dotnet/standard/base-types/custom-date-and-time-format-strings.
outputFormat Obligatorio String Formato de la fecha de salida.

Guid

Descripción:
La función GUID genera un nuevo GUID aleatorio.

Sintaxis:
str Guid()


IIF

Descripción:
: la función IIF devuelve uno de un conjunto de valores posibles según una condición especificada.

Sintaxis:
var IIF(exp condition, var valueIfTrue, var valueIfFalse)

  • condition: cualquier valor o expresión que pueda evaluarse en True o False.
  • valueIfTrue: si la condición se evalúa como true, el valor devuelto.
  • valueIfFalse: si la condición se evalúa como false, el valor devuelto.

Ejemplo:
IIF([employeeType]="Intern","t-" & [alias],[alias])
Si el usuario está en prácticas, devuelve el alias de un usuario al que agrega "t-" al principio. De lo contrario, el alias del usuario se queda como está.


InStr

Descripción:
: la función InStr busca la primera repetición de una subcadena en una cadena.

Sintaxis:

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: cadena que se va a buscar
  • stringmatch: cadena que se tiene que encontrar
  • start: posición de inicio para encontrar la subcadena
  • compare: vbTextCompare o vbBinaryCompare

Observaciones:
: devuelve la posición en la que se encontró la subcadena o 0 si no se encuentra.

Ejemplo:
InStr("The quick brown fox","quick")
se evalúa en 5.

InStr("repEated","e",3,vbBinaryCompare)
Se evalúa en 7.


IsNull

Descripción:
si la expresión se evalúa como Null, la función IsNull devuelve True.

Sintaxis:
bool IsNull(var Expression)

Observaciones:
para un atributo, un valor Null se expresa mediante la ausencia del atributo.

Ejemplo:
IsNull([displayName])
devuelve True si el atributo no está presente en CS o MV.


IsNullOrEmpty

Descripción:
si la expresión es Null o una cadena vacía, la función IsNullOrEmpty devuelve True.

Sintaxis:
bool IsNullOrEmpty(var Expression)

Observaciones:
para un atributo, esto se evaluaría como True si el atributo no está presente o está presente, pero es una cadena vacía.
La función contraria a esta es IsPresent.

Ejemplo:
IsNullOrEmpty([displayName])
devuelve True si el atributo no está presente o si es una cadena vacía en CS o MV.


IsPresent

Descripción:
si la expresión se evalúa como una cadena que no es Null y no está vacía, la función IsPresent devuelve True.

Sintaxis:
bool IsPresent(var expression)

Observaciones:
la función contraria a esta es IsNullOrEmpty.

Ejemplo:
Switch(IsPresent([directManager]),[directManager], IsPresent([skiplevelManager]),[skiplevelManager], IsPresent([director]),[director])


Elemento

Descripción:
la función Item devuelve un elemento de un atributo o una cadena de varios valores.

Sintaxis:
var Item(mvstr attribute, num index)

  • attribute: atributo de varios valores
  • index: índice para un elemento en la cadena de varios valores.

Observaciones:
la función Item es útil con la función Contains puesto que esta última función devuelve el índice a un elemento en el atributo de varios valores.

Se produce un error si el índice está fuera de los límites.

Ejemplo:
Mid(Item([proxyAddresses],Contains([proxyAddresses], "SMTP:")),6)
devuelve la dirección de correo electrónico principal.


IsString

Descripción:
si la expresión se puede evaluar en un tipo de cadena, la función IsString se evalúa en True.

Sintaxis:
bool IsString(var expression)

Observaciones:
se usa para determinar si CStr() puede analizar correctamente la expresión.


Join

Función:
Join(separator, source1, source2, …)

Descripción:
Join() es similar a Append(), excepto en que puede combinar varios valores de cadena de source en una sola cadena, y cada valor estará separado por una cadena de separator.

Si uno de los valores de origen es un atributo multivalor, cada valor de ese atributo se unirá, separado por el valor del separador.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
separator Obligatorio String Cadena utilizada para separar los valores de origen cuando se concatenan en una sola cadena. Puede ser "" si no es necesario ningún separador.
origen1 … origenN Obligatorio, número variable de veces String Valores de cadena que se van a agrupar.

Left

Descripción:
la función Left devuelve un número especificado de caracteres desde la izquierda de una cadena.

Sintaxis:
str Left(str string, num NumChars)

  • string: la cadena desde la que devolver los caracteres
  • NumChars: un número que identifica el número de caracteres que devolver desde el principio (izquierdo) de la cadena

Observaciones:
una cadena que contiene los primeros caracteres numChars de la cadena:

  • Con numChars = 0, se devuelve una cadena vacía.
  • Si numChars < 0, se devuelve la cadena de entrada.
  • Si la cadena es null, se devuelve una cadena vacía.

Si la cadena contiene menos caracteres que el número especificado en numChars, se devuelve una cadena idéntica a la cadena (es decir, que contiene todos los caracteres en el parámetro 1).

Ejemplo:
Left("John Doe", 3)
Devuelve Joh.


Mid

Función:
Mid(source, start, length)

Descripción:
devuelve una subcadena del valor de origen. Una subcadena es una cadena que contiene sólo algunos de los caracteres de la cadena de origen.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String Normalmente el nombre del atributo.
start Obligatorio integer Índice de la cadena de source donde debe empezar la subcadena. El primer carácter de la cadena tendrá el índice de 1, el segundo carácter tendrá el índice de 2, y así sucesivamente.
length Obligatorio integer Longitud de la subcadena. Si length acaba fuera de la cadena de source, la función devolverá una subcadena desde el índice de start hasta el final de la cadena de source.

NormalizeDiacritics

Función:
NormalizeDiacritics(source)

Descripción:
Requiere un argumento de cadena. Devuelve la cadena, pero se reemplazan todos los caracteres diacríticos por sus equivalentes no diacríticos. Normalmente se usa para convertir nombres y apellidos que contienen caracteres diacríticos (acentos) en valores legales que se pueden emplear en diversos identificadores de usuario como, nombres principales de usuario, nombres de cuenta de SAM y direcciones de correo electrónico.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String Normalmente un atributo de nombre o de apellido.

Not

Función:
Not(source)

Descripción:
Invierte el valor booleano de source. Si el valor de source es "True", devuelve "False". De lo contrario, devuelve "True".

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio Cadena booleana Los valores de source esperados son "True" o "False".

RemoveDuplicates

Descripción:
la función RemoveDuplicates toma una cadena multivalor y garantiza que cada valor es único.

Sintaxis:
mvstr RemoveDuplicates(mvstr attribute)

Ejemplo:
RemoveDuplicates([proxyAddresses])
devuelve un atributo proxyAddress saneado donde se han quitado todos los valores duplicados.


Replace

Función:
Replace(source, oldValue, regexPattern, regexGroupName, replacementValue, replacementAttributeName, template)

Descripción:
Reemplaza valores dentro de una cadena. Funciona de forma diferente dependiendo de los parámetros proporcionados:

  • Cuando se proporcionan oldValue y replacementValue:

    • Reemplaza todas las apariciones de oldValue en el origen por replacementValue
  • Cuando se proporcionan oldValue y template:

    • Reemplaza todas las ocurrencias de oldValue en template por el valor de source
  • Cuando se proporcionan regexPattern y replacementValue:

    • La función aplica regexPattern a la cadena de source, y usted puede usar los nombres de grupo regex para construir la cadena para replacementValue
  • Cuando se proporcionan regexPattern, regexGroupName y replacementValue:

    • La función aplica regexPattern a la cadena de source y reemplaza todos los valores que coinciden con regexGroupName por replacementValue
  • Cuando se proporcionan regexPattern, regexGroupName y replacementAttributeName:

    • Si source no tiene un valor, se devuelve source.
    • Si source tiene un valor, la función aplica regexPattern a la cadena de source y reemplaza todos los valores coincidentes de regexGroupName por el valor asociado con replacementAttributeName

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String Normalmente el nombre del atributo del objeto source.
oldValue Opcional String Valor que se va a reemplazar en source o template.
regexPattern Opcional String Patrón Regex del valor que se va a reemplazar en source. O bien, cuando se usa replacementPropertyName, patrón para extraer el valor de la propiedad replacementPropertyName.
regexGroupName Opcional String Nombre del grupo dentro de regexPattern. Solo cuando se usa replacementPropertyName, extraeremos el valor de este grupo como replacementValue de replacementPropertyName.
replacementValue Opcional String Nuevo valor para reemplazar uno anterior.
replacementAttributeName Opcional String Nombre del atributo que se usará para el valor de reemplazo
template Opcional String Cuando se proporcione el valor de template, buscaremos oldValue dentro de la plantilla y lo reemplazaremos por el valor de source.

SelectUniqueValue

Función:
SelectUniqueValue(uniqueValueRule1, uniqueValueRule2, uniqueValueRule3, …)

Descripción:
Requiere dos argumentos como mínimo, que son las reglas de generación de valor único definidas con expresiones. La función evalúa cada regla y, a continuación, comprueba la unicidad del valor generado en el directorio o la aplicación de destino. Se devolverá el primer valor único encontrado. Si todos los valores ya existen en el destino, la entrada se depositará y el motivo se anota en los registros de auditoría. No hay ningún límite superior para el número de argumentos que se pueden proporcionar.

Nota:

  • Esta es una función de nivel superior, no se puede anidar.
  • Esta función no se puede aplicar a los atributos que tienen una precedencia de coincidencia.
  • Esta función solo está destinada a usarse para creaciones de entradas. Al usarla con un atributo, establezca la propiedad Apply Mapping (Aplicar asignación) en Solo durante la creación del objeto.
  • Actualmente, esta función solo se admite en el "aprovisionamiento de usuarios de Workday y SuccessFactors en Active Directory". No se puede usar con otras aplicaciones de aprovisionamiento.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
uniqueValueRule1 … uniqueValueRuleN Al menos se requieren dos, sin límite superior String Lista de reglas de generación de valor único para realizar la evaluación.

SingleAppRoleAssignment

Función:
SingleAppRoleAssignment([appRoleAssignments])

Descripción:
Devuelve una única función appRoleAssignment de la lista de todas las funciones appRoleAssignments asignadas a un usuario para una aplicación determinada. Esta función es necesaria para convertir el objeto appRoleAssignments en una cadena de nombre de rol único. Tenga en cuenta que el procedimiento recomendado consiste en asegurarse de que solo una función appRoleAssignment esté asignada a un usuario a la vez. Si se asignan varios roles, la cadena del rol devuelta podría no ser predecible.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
[appRoleAssignments] Obligatorio String Objeto [appRoleAssignments] .

Dividir

Función:
Split(source, delimiter)

Descripción:
divide una cadena en una matriz de varios valores, usando el carácter delimitador especificado.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String de origen que se actualiza.
delimitador Obligatorio String Especifica el carácter que se usará para dividir la cadena (ejemplo: ",").

StringFromSid

Descripción:
la función StringFromSid convierte una matriz de bytes o una matriz de bytes multivalor que contiene un identificador de seguridad en una cadena o en una cadena multivalor.

Sintaxis:
str StringFromSid(bin ObjectSID)


StripSpaces

Función:
StripSpaces(source)

Descripción:
quita todos los caracteres de espacio (" ") de la cadena de origen.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String de origen que se actualiza.

Switch

Función:
Switch(source, defaultValue, key1, value1, key2, value2, …)

Descripción:
Cuando el valor de source coincide con una key, devuelve el value de dicha key. Si el valor de source no coincide con ninguna clave, devuelve defaultValue. Los parámetros key y value siempre deben estar emparejados. La función espera siempre un número par de parámetros.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String Valor de origen que se va a comprobar.
defaultValue Opcional String Valor predeterminado que se usará si el origen no coincide con ninguna clave. Puede tratarse de una cadena vacía ("").
key Obligatorio String Key con que se compara el valor de source.
value Obligatorio String Valor de reemplazo para el source que coincide con la clave.

ToLower

Función:
ToLower (origen, referencia cultural)

Descripción:
Toma un valor de cadena de origen y se convierte a minúsculas mediante las reglas de referencia cultural que se hayan especificado. Si no hay ninguna información de referencia cultural especificada, se usará la referencia cultural invariable.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String Normalmente el nombre del atributo del objeto de origen
referencia cultural Opcional String El formato para el nombre de la referencia cultural según RFC 4646 es languagecode2-country/regioncode2, donde languagecode2 es el código de idioma de dos letras y country/regioncode2 es el código de referencia de subcultura de dos letras. Algunos ejemplos son a ja-JP para japonés (Japón) y en-US para inglés (Estados Unidos). En casos donde un código de idioma de dos letras no está disponible, se usa un código de tres letras derivado de ISO 639-2.

ToUpper

Función:
ToUpper (origen, referencia cultural)

Descripción:
Toma un valor de cadena de origen y se convierte a mayúsculas mediante las reglas de referencia cultural que se hayan especificado. Si no hay ninguna información de referencia cultural especificada, se usará la referencia cultural invariable.

Parámetros:

Nombre Obligatorio/Repetición Tipo Notas
de origen Obligatorio String Normalmente el nombre del atributo del objeto de origen.
referencia cultural Opcional String El formato para el nombre de la referencia cultural según RFC 4646 es languagecode2-country/regioncode2, donde languagecode2 es el código de idioma de dos letras y country/regioncode2 es el código de referencia de subcultura de dos letras. Algunos ejemplos son a ja-JP para japonés (Japón) y en-US para inglés (Estados Unidos). En casos donde un código de idioma de dos letras no está disponible, se usa un código de tres letras derivado de ISO 639-2.

Trim

Descripción:
la función Trim quita los espacios en blanco del principio y del final de una cadena.

Sintaxis:
str Trim(str value)

Ejemplo:
Trim(" Test ")
devuelve "test".

Trim([proxyAddresses])
Quita los espacios del principio y del final de cada valor en el atributo proxyAddress.


Word

Descripción:
: la función Word devuelve una palabra incluida en una cadena, según los parámetros que describen los delimitadores que se usarán y el número de palabras que se devolverán.

Sintaxis:
str Word(str string, num WordNumber, str delimiters)

  • string: la cadena desde la que devolver una palabra.
  • WordNumber: un número que identifica qué número de palabras debe devolver.
  • delimiters: una cadena que representa los delimitadores que deben usarse para identificar palabras

Observaciones:
: cada cadena de caracteres en la cadena separada por uno de los caracteres en los delimitadores se identifica como palabras:

  • Si el número es < 1, se devuelve una cadena vacía.
  • Si la cadena es Null, se devuelve una cadena vacía.

Si la cadena contiene menos palabras o si la cadena no contiene palabras identificadas por los delimitadores, se devuelve una cadena vacía.

Ejemplo:
Word("The quick brown fox",3," ")
devuelve "brown".

Word("This,string!has&many separators",3,",!&#")
devolvería "has".

Ejemplos

Seccionar un nombre de dominio conocido

Debe seccionar un nombre de dominio conocido de correo electrónico de un usuario para obtener un nombre de usuario.
Por ejemplo, si el dominio es "contoso.com", puede usar la expresión siguiente:

Expresión:
Replace([mail], "@contoso.com", , ,"", ,)

Ejemplo de entrada y salida:

  • ENTRADA (mail): "john.doe@contoso.com"
  • SALIDA: "john.doe"

Anexar sufijos constantes a nombres de usuario

Si está utilizando un espacio aislado de Salesforce, deberá anexar un sufijo adicional a los nombres de usuario antes de sincronizarlas.

Expresión:
Append([userPrincipalName], ".test")

Entrada/salida de ejemplo:

  • ENTRADA: (userPrincipalName): "John.Doe@contoso.com"
  • OUTPUT: "John.Doe@contoso.com.test"

Generar el alias de usuario concatenando partes de nombre y apellidos

Debe generar un alias de usuario con las tres primeras letras del nombre del usuario y las cinco primeras letras del apellido del usuario.

Expresión:
Append(Mid([givenName], 1, 3), Mid([surname], 1, 5))

Entrada/salida de ejemplo:

  • INPUT (givenName): "John"
  • INPUT (surname): "Doe"
  • SALIDA: "JohDoe"

Quitar los signos diacríticos de una cadena

Necesita reemplazar caracteres que contienen acentos por otros equivalentes que no los contienen.

Expresión:
NormalizeDiacritics([givenName])

Entrada/salida de ejemplo:

  • INPUT (givenName): "Zoë"
  • OUTPUT: "Zoe"

Dividir una cadena en una matriz con varios valores

Debe tomar una lista de cadenas delimitada con comas y dividir esas cadenas en una matriz que se pueda conectar a un atributo de varios valores, como el atributo PermissionSets de Salesforce. En este ejemplo, una lista de conjuntos de permisos se ha rellenado en extensionAttribute5 en Microsoft Entra ID.

Expresión:
Split([extensionAttribute5], ",")

Entrada/salida de ejemplo:

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

Fecha de resultado como una cadena en un formato determinado

Desea enviar las fechas a una aplicación SaaS con un formato determinado.
Por ejemplo, desea dar formato a las fechas de ServiceNow.

Expresión:

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

Entrada/salida de ejemplo:

  • INPUT (extensionAttribute1): "20150123105347.1Z"
  • SALIDA: "2015-01-23"

Reemplazar un valor basado en un conjunto predefinido de opciones

Debe definir la zona horaria del usuario según el código de estado almacenado en Microsoft Entra ID.
Si el código de estado no coincide con ninguna de las opciones predefinidas, use el valor predeterminado de "Australia/Sídney".

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

Entrada/salida de ejemplo:

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

Reemplazar los caracteres con una expresión regular

Debe buscar los caracteres que coincidan con un valor de expresión regular y quitarlos.

Expresión:

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

Entrada/salida de ejemplo:

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

Conversión del valor generado de userPrincipalName (UPN) a minúsculas

En el ejemplo siguiente, el valor de UPN se genera mediante la concatenación de los campos de origen PreferredFirstName y PreferredLastName, y la función ToLower opera en la cadena generada para convertir todos los caracteres a minúsculas.

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

Entrada/salida de ejemplo:

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

Generación de un valor único para el atributo userPrincipalName (UPN)

Según el nombre del usuario, el segundo nombre y el apellido, deberá generar un valor para el atributo UPN y comprobar su unicidad en el directorio de AD de destino antes de asignar el valor al atributo UPN.

Expresión:

    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")
    )

Entrada/salida de ejemplo:

  • INPUT (PreferredFirstName): "John"
  • INPUT (PreferredLastName): "Smith"
  • OUTPUT: "John.Smith@contoso.com" si el valor de UPN John.Smith@contoso.com no existe aún en el directorio
  • OUTPUT: "J.Smith@contoso.com" si el valor de UPN John.Smith@contoso.com ya existe en el directorio
  • OUTPUT: "Jo.Smith@contoso.com" si los dos valores de UPN anteriores ya existen en el directorio

Pasos siguientes