Compartir a través de


Referencia de Functions para Microsoft Identity Manager 2016

En Microsoft Identity Manager (MIM) 2016, las funciones permiten modificar los valores de atributo antes de fluir a un destino en una actividad de función o aprovisionamiento declarativo. El objetivo de este documento es proporcionarle información general sobre las funciones disponibles y una descripción de cómo puede usarlas.

La configuración de asignaciones de flujo de atributos es una tarea elemental al configurar reglas de sincronización. La forma más sencilla de una asignación de flujo de atributo es una asignación directa. Como se indica con el nombre, una asignación directa toma el valor de un atributo de origen y la aplica al atributo de destino configurado. Hay casos en los que se necesitan que los valores de atributo existentes se modifiquen o se calculen nuevos valores de atributo antes de que el sistema los aplique a un destino.

Las funciones son un método integrado que se usa para definir el tipo de modificación que necesita que se aplique el motor de sincronización al generar un valor de atributo para un destino.

Las funciones de MIM se distribuyen en las siguientes categorías:

  • Manipulación de datos: realice diversas operaciones de manipulación en cadenas.

  • Recuperación de datos: extraiga datos de valores de atributo.

  • Generación de datos: genere valores.

  • Lógica: realice operaciones basadas en condiciones.

En las secciones siguientes se proporcionan más detalles sobre las funciones de cada categoría.

Funciones de manipulación de datos

Las funciones de manipulación de datos se usan para realizar diversas operaciones de manipulación en cadenas.

Concatenar Detalle
Descripción La función Concatenar concatena dos o más cadenas.
Signatura de función string1 + string2...
Entradas Dos o más cadenas.
Operaciones Todos los parámetros de cadena de entrada se concatenan entre sí.
Salida Una cadena.

Mayúsculo Detalle
Descripción La función UpperCase convierte todos los caracteres de una cadena en mayúsculas.
Signatura de función String UpperCase(string)
Entradas Una cadena.
Operaciones Todos los caracteres en minúsculas del parámetro de entrada se convierten en caracteres mayúsculas. Por ejemplo: UpperCase("test") da como resultado "TEST".
Salida Una cadena.

Minúscula Detalle
Descripción La función LowerCase convierte todos los caracteres de una cadena en minúsculas.
Signatura de función String LowerCase(string)
Entradas Una cadena.
Operaciones Todos los caracteres mayúsculas del parámetro de entrada se convierten en caracteres en minúsculas. Por ejemplo: LowerCase("TeSt") da como resultado "test".
Salida Una cadena.

ProperCase Detalle
Descripción La función ProperCase convierte el primer carácter de cada palabra delimitada por espacio en una cadena en mayúsculas. Todos los demás caracteres se convierten en minúsculas.
Signatura de función String ProperCase(string)
Entradas Una cadena.
Operaciones El primer carácter de cada palabra delimitada por espacio en el parámetro de entrada se convierte en mayúsculas. Todos los caracteres mayúsculas se convierten en caracteres en minúsculas. Si una palabra del parámetro de entrada comienza con un carácter que no es alfabético, el primer carácter de la palabra no se convierte en mayúsculas. Por ejemplo:
  • ProperCase("TEsT") da como resultado "Test".
  • ProperCase("britta simon") da como resultado "Britta Simon".
  • ProperCase(" TEsT") da como resultado " Test".
  • ProperCase("\$TEsT") da como resultado "\$Test".
Salida Una cadena.

LTrim Detalle
Descripción La función LTrim quita los espacios en blanco iniciales de una cadena.
Signatura de función String LTrim(string)
Entradas Una cadena.
Operaciones Se quitan los caracteres de espacio en blanco iniciales contenidos en el parámetro de entrada. Por ejemplo: LTrim(" Test ") da como resultado "Test ".
Salida Una cadena.

RTrim Detalle
Descripción La función RTrim quita los espacios en blanco finales de una cadena.
Signatura de función String RTrim(string)
Entradas Una cadena.
Operaciones Se quitan los caracteres finales de espacio en blanco contenidos en el parámetro de entrada. Por ejemplo: RTrim(" Test ") da como resultado " Test".
Salida Una cadena.

Recortar Detalle
Descripción La función Trim quita los espacios en blanco iniciales y finales de una cadena.
Signatura de función String Trim(string)
Entradas Una cadena.
Operaciones Se quitan los caracteres de espacio en blanco iniciales y finales contenidos en la cadena. Por ejemplo: Trim(" Test ") da como resultado "Test".
Salida Una cadena.

RightPad Detalle
Descripción La función RightPad rellena una cadena a una longitud especificada mediante un carácter de relleno proporcionado.
Signatura de función String RightPad(string, length, padCharacter)
Entradas
  • cadena: cadena que se va a rellenar.
  • longitud: un entero que representa la longitud deseada de la cadena.
  • padCharacter: una cadena que consta de un solo carácter que se va a usar como carácter de relleno.
Operaciones Si la longitud de cadena es menor que longitud, el padCharacter se anexa repetidamente al final de cadena hasta que la cadena de longitud es igual a longitud. Por ejemplo:
  • RightPad("User", 10, "0") da como resultado "User000000".
  • RightPad(RandomNum(1,10), 5, "0") podría dar lugar a "9000".
Salida Si cadena tiene una longitud mayor o igual que longitud, se devuelve una cadena idéntica a cadena. Si la longitud de cadena es menor que longitud, se devuelve una nueva cadena de la longitud deseada. La nueva cadena contiene cadena rellenado con un padCharacter. Si cadena es null, la función devuelve una cadena vacía.

Nota: padCharacter puede ser un carácter de espacio, pero no puede ser un valor NULL. Si la longitud de cadena es igual o mayor que longitud, se devuelve cadena sin cambios.

LeftPad Detalle
Descripción La función LeftPad rellena una cadena a una longitud especificada mediante un carácter de relleno proporcionado.
Signatura de función String LeftPad(string, length, padCharacter)
Entradas
  • cadena: cadena que se va a rellenar.
  • longitud: un entero que representa la longitud deseada de la cadena.
  • padCharacter: una cadena que consta de un solo carácter que se va a usar como carácter de relleno.
Operaciones Si la longitud de cadena es menor que longitud, el padCharacter se anexa repetidamente al principio de cadena hasta que la cadena de longitud es igual a longitud. Por ejemplo:
  • RightPad("User", 10, "0") da como resultado "000000User".
  • RightPad(RandomNum(1,10), 5, "0") podría dar lugar a "0009".
Salida Si cadena tiene una longitud mayor o igual que longitud, se devuelve una cadena idéntica a cadena. Si la longitud de cadena es menor que longitud, se devuelve una nueva cadena de la longitud deseada. La nueva cadena contiene cadena rellenado con un padCharacter. Si cadena es null, la función devuelve una cadena vacía.

Nota: padCharacter puede ser un carácter de espacio, pero no puede ser un valor NULL. Si la longitud de cadena es igual o mayor que longitud, se devuelve cadena sin cambios.

BitOr Detalle
Descripción La función BitOr establece un bit especificado en una marca en 1.
Signatura de función Int BitOr(mask, flag)
Entradas
  • máscara: valor hexadecimal que especifica el bit que se va a establecer en la marca .
  • marca: valor hexadecimal que se va a modificar un bit específico.
Operaciones Esta función convierte ambos parámetros en representación binaria y los compara:
  • Establece un bit en 1 si uno o ambos de los bits correspondientes de máscara y marca son 1.
  • Establece un bit en 0 si ambos bits correspondientes son 0.
  • Devuelve 1 en todos los casos, excepto cuando los bits correspondientes de ambos parámetros son 0.
  • El patrón de bits resultante es los bits "set" (1 o true) de cualquiera de los dos operandos.
  • Se pueden establecer varias marcas de bits si varios bits tienen el valor 1 en máscara.
Salida Nueva versión de marca con los bits especificados en máscara establecido en 1.

BitAnd Detalle
Descripción La función BitAnd establece un bit especificado en una marca en 0.
Signatura de función Int BitOr(mask, flag)
Entradas
  • máscara: valor hexadecimal que especifica el bit que se va a modificar en la marca .
  • marca: valor hexadecimal que se va a modificar un bit específico.
Operaciones Esta función convierte ambos parámetros en representación binaria y los compara:
  • Establece un bit en 0 si uno o ambos de los bits correspondientes de máscara y marca son 0.
  • Establece un bit en 1 si ambos bits correspondientes son 1.
  • Devuelve 0 en todos los casos, excepto cuando los bits correspondientes de ambos parámetros son 1.
  • Se pueden establecer varias marcas de bits en 0 si varios bits tienen el valor 0 en máscara.
Salida Nueva versión de marca con los bits especificados en máscara establecido en 0.

DateTimeFormat Detalle
Descripción La función DateTimeFormat se usa para dar formato a dateTime en forma de cadena a un formato especificado.
Signatura de función String DateTimeFormat(dateTime, format)
Entradas
  • dateTime: una cadena que representa la fecha y hora a la que se va a dar formato.
  • formato: una cadena que representa el formato al que se va a convertir.

Nota: para los caracteres que se aceptan para crear formatos definidos por el usuario, vea formatos de fecha y hora definidos por el usuario.
Operaciones La cadena de formato especificada en formato se aplica a DateTime en la cadena dateTime dateTime. La cadena especificada en formato debe ser un formato DateTime válido. Si no es así, se devuelve un error que indica que el formato no es un formato DateTime válido. Por ejemplo: DateTime("12/25/2007", "yyyy-MM-dd") da como resultado "2007-12-25".
Salida Cadena resultante de aplicar de formato de a dateTime.

ConvertSidToString Detalle
Descripción ConvertSidToString convierte una matriz de bytes que contiene un identificador de seguridad en una cadena.
Signatura de función String ConvertSidToString(ObjectSID)
Entradas ObjectSID: matriz de bytes que contiene un identificador de seguridad (SID).
Operaciones El SID binario especificado se convierte en una cadena.
Salida Representación de cadena del SID.

ConvertStringToGuid Detalle
Descripción La función ConvertStringToGuid convierte la representación de cadena de un GUID en una representación binaria del GUID.
Signatura de función Byte[] ConvertStringToGuid(stringGuid)
Entradas stringGuid: una cadena con formato en el patrón xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, donde el valor del GUID se representa como una serie de dígitos hexadecimales en grupos de 8, 4, 4, 4 y 12 dígitos y separados por guiones. Un ejemplo de un valor devuelto es 382c74c3-721d-4f34-80e557657b6cbc27.
Operaciones El stringGuid se convierte en su representación binaria. Si la cadena no es una representación de un GUID válido, la función rechaza el argumento con el error "El parámetro de la función ConvertStringToGuid debe ser una cadena que represente un Guid válido".
Salida Representación binaria del GUID.

ReplaceString Detalle
Descripción La función ReplaceString reemplaza todas las apariciones de una cadena a otra cadena.
Signatura de función String ReplaceString(string, OldValue, NewValue)
Entradas
  • cadena: cadena en la que se van a reemplazar los valores.
  • OldValue: cadena que se va a buscar y reemplazar.
  • NewValue: cadena a la que se va a reemplazar.
Operaciones Todas las apariciones de OldValue en la cadena de se reemplazan por NewValue. La función debe poder controlar los caracteres especiales \n. nueva línea, \r. retorno de carro y pestaña \t.. Por ejemplo: ReplaceString("One\n\rMicrosoft\n\r\Way","\n\r"," ") devuelve "One Microsoft Way".
Salida Cadena con todas las apariciones de OldValue en la cadena reemplazada por NewValue.

Funciones de recuperación de datos

Las funciones de recuperación de datos se usan para realizar operaciones que recuperan los caracteres deseados de una cadena.

Palabra Detalle
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.
Signatura de función String Word(string, number, delimiters)
Entradas
  • cadena: cadena de la que se va a devolver una palabra.
  • número: número que identifica qué número de palabra se debe devolver.
  • delimitadores: una cadena que representa los delimitadores que se deben usar para identificar palabras.
Operaciones Cada cadena de caracteres de la cadena separada por uno de los caracteres de delimitadores se identifica como una palabra. Si cadena es null, la función devuelve una cadena vacía. Se devuelve la palabra que se encontró en la posición especificada en número. Si número< 1, la función devuelve una cadena vacía. Por ejemplo:
  • Word("Test;of%function;", 3, ";$&%") devuelve "function".
  • Word("Test;;Function" , 2 , ";") devuelve "" (una cadena vacía).
  • Word("Test;of%function;", 0, ";$&%") devuelve "" (una cadena vacía).
Salida Cadena que contiene la palabra en la posición que solicitó el usuario. Si cadena contiene menos de número de palabras, o cadena no contiene ninguna palabra identificada por delimitadores, se devuelve una cadena vacía.

Izquierda Detalle
Descripción La función Left devuelve un número especificado de caracteres de la izquierda (principio) de una cadena.
Signatura de función String Left(string, numChars)
Entradas
  • cadena: cadena de la que se van a devolver caracteres.
  • numChars: número que identifica el número de caracteres que se van a devolver desde el principio de una cadena.
Operaciones numChars caracteres se devuelven desde la primera posición de la cadena . Por ejemplo: Left("Britta Simon", 3) devuelve "Bri".
Salida Cadena que contiene los primeros caracteres de numChars en la cadena de . Si numChars = 0, la función devuelve una cadena vacía. Si numChars< 0, la función devuelve una cadena de entrada. Si cadena es null, la función devuelve una cadena vacía.

Derecha Detalle
Descripción la función Right devuelve un número especificado de caracteres desde la derecha (final) de una cadena.
Signatura de función String Right(string, numChars)
Entradas
  • cadena: cadena de la que se van a devolver caracteres.
  • numChars: un número que identifica el número de caracteres que se van a devolver desde el final de una cadena.
Operaciones Devuelve numChars caracteres desde el final de la cadena de . Por ejemplo: Right("Britta Simon", 3) devuelve "mon".
Salida Cadena que contiene los últimos caracteres de numChars de la cadena . Si numChars = 0, la función devuelve una cadena vacía. Si numChars< 0, la función devuelve una cadena de entrada. Si cadena es null, la función devuelve una cadena vacía. Si cadena contiene menos caracteres que el número especificado en numChars, se devuelve cadena.

Medio Detalle
Descripción la función Mid devuelve un número especificado de caracteres desde una posición especificada en una cadena.
Signatura de función String Mid(string, pos, numChars)
Entradas
  • cadena: cadena de la que se van a devolver caracteres.
  • pos: número que identifica la posición inicial en una cadena para devolver caracteres.
  • numChars: número que identifica el número de caracteres que se van a devolver de una posición en la cadena.
Operaciones Devuelve numChars caracteres a partir de la posición pos en la cadena de . Por ejemplo: Mid("Britta Simon", 3, 5) devuelve "itta ".
Salida Cadena que contiene caracteres numChars de posición pos en la cadena de . Si numChars = 0, la función devuelve una cadena vacía. Si numChars< 0, la función devuelve una cadena vacía. Si pos> la longitud de cadena, la función devuelve una cadena de entrada. Si pos<= 0, la función devuelve una cadena de entrada. Si cadena es null, la función devuelve una cadena vacía. Si no hay ningún numChar caracteres restantes en cadena desde la posición pos, se devuelven tantos caracteres como sea posible.

Funciones de generación de datos

Las funciones de generación de datos se usan para generar valores para tipos de datos específicos.

CRLF Detalle
Descripción La función CRLF genera un retorno de carro/avance de línea. Use esta función para agregar una nueva línea.
Signatura de función String CRLF
Entradas Ninguno.
Operaciones Se devuelve un CRLF. Por ejemplo:
AddressLine1 + CRLF() + AddressLine2
da como resultado AddressLine1
AddressLine2.
Salida Una CRLF es la salida.

RandomNum Detalle
Descripción La función RandomNum devuelve un número aleatorio dentro de un intervalo especificado.
Signatura de función Int RandomNum(start, end)
Entradas
  • iniciar: número que identifica el límite inferior del valor aleatorio que se va a generar.
  • final: número que identifica el límite superior del valor aleatorio que se va a generar.
Operaciones Se genera un número aleatorio mayor o igual que iniciar y menor o igual que final. Por ejemplo: Random(0,999) podría devolver 100.
Salida Número aleatorio dentro del intervalo especificado por iniciar y finalizar.

EscapeDNComponent Detalle
Descripción El método EscapeDNComponent de MIISUtils se usa para realizar esta operación. Este método procesa la cadena de entrada en función del tipo de agente de administración (MA) que se usa.
Signatura de función String EscapeDNComponent(string)
Entradas cadena: una cadena que se usa para procesar un nombre distintivo. La cadena no debe contener caracteres de escape.
Operaciones Las distintas ENTIDADES de certificación requieren diferentes formatos de nombre distintivos. Este método procesa la cadena de entrada en función de los siguientes tipos de MA:
  • nombre distintivo LDAP: entre los ejemplos de este tipo de MA se incluyen Active Directory Domain Services, Sun Directory Server (anteriormente iPlanet Directory Server) y Microsoft Exchange Server.
    • Los caracteres XML no válidos de la parte de valor de una parte determinada están codificados hexadecimalmente.
    • Los caracteres no válidos (incluidos los caracteres XML no válidos) en la parte de nombre de una parte determinada generan un error.
    • Los caracteres de escape incluyen comas (,), iguales (=), más (+), menor que (<), mayor que (>), número (#), punto y coma (;), barra diagonal inversa () y comillas dobles (").
    • Si el último carácter de la cadena es un espacio ( ), ese espacio se escapa.
    • Se quitan los espacios iniciales o finales extraños alrededor de un nombre de pieza.
    • Para la MA XML, si hay varias partes, las partes se ordena alfabéticamente.
    • Si se especifican varias partes, la cadena de nombre distintivo compuesta es la concatenación de las cadenas individuales separadas por signos más (+).
    • Se genera un error si la cadena de entrada no es una cadena de nombre distintivo de estilo LDAP bien formada.
  • jerárquicos que no son LDAP: un ejemplo de este tipo de MA es Microsoft Lotus Notes.
    • Este tipo de MA no admite componentes de varias partes.
    • Si se pasan varias cadenas a EscapeDNComponent, se produce un argumentException.
    • Si alguno de los caracteres de la cadena de entrada son caracteres XML no válidos, se produce un argumentException.
    • Todas las comas (,) y las barras diagonales inversas (/) de la cadena de entrada se escapen.
    • Si el último carácter de la cadena es un espacio ( ), ese espacio se escapa.
  • extrinsic: algunos ejemplos de este tipo de MA incluyen bases de datos o XML sin un nombre distintivo LDAP.
    • Si algún elemento es binario o contiene un carácter XML no válido, ese elemento se almacena como una versión codificada hexadecimal de los datos sin procesar con un carácter numérico (#) prefijo en la parte frontal de la cadena. Por ejemplo, si una parte se AxC (donde x representa un carácter XML no válido, como 0x10), esa parte se codifica como #410010004300. De lo contrario, todas las instancias de estos caracteres se escapen: barra diagonal inversa (), coma (,), más (+) y número (#).
    • Si el último carácter de una cadena de pieza determinada es un espacio ( ), ese espacio se escapa.
    • Si se especifican varias partes, la cadena de nombre distintivo compuesta es la concatenación de todas las cadenas individuales separadas por signos más.
Salida Cadena que contiene un nombre de dominio válido.

Nota:

La validación de nombres distintivos es menos estricta que la sintaxis definida en las especificaciones LDAP. EscapeDNComponent(String[]) permite que un nombre de pieza contenga cualquier combinación de uno o varios de los caracteres 'a'-'z', 'A'-'Z', '0'-'9', '-' y '.'.

No es posible especificar una parte binaria con este método. Sin embargo, es posible tener una parte binaria en CommitNewConnector si el nombre distintivo se construye a partir de atributos de delimitador y uno de los atributos de anclaje es un tipo binario.


Nulo Detalle
Descripción La función Null se usa para especificar que la MA no tiene un atributo para contribuir, y esa precedencia de atributo debe continuar con la siguiente ma.
Signatura de función String Null
Entradas Ninguno.
Operaciones Se devuelve un valor Null. Por ejemplo: IIF(Eq(domain), "unknown", Null()) devuelve Null.
Salida Se genera un valor NULL.

Funciones lógicas

Las funciones lógicas se usan para realizar una operación en función de las condiciones evaluadas por el sistema.

IIF Detalle
Descripción : la función IIF devuelve uno de un conjunto de valores posibles según una condición especificada.
Signatura de función Object IIF(condition, valueIfTrue, valueIfFalse)
Entradas
  • condición: cualquier valor o expresión que se pueda evaluar como true o false. Las siguientes funciones están disponibles para su uso como expresiones en la función IIF para la condición de :
    • Eq: esta función compara dos argumentos para la igualdad.
    • NotEquals: esta función compara dos argumentos para la desigualdad, devolviendo true si no son iguales y false si son iguales. Por ejemplo: NotEquals(EmployeeType, "Contractor").
    • LessThan: esta función compara dos números, devolviendo true si el primero es menor que el segundo y false de lo contrario. Por ejemplo: LessThan(Salary, 100000).
    • GreaterThan: esta función compara dos números, devolviendo true si el primero es mayor que el segundo y false de lo contrario. Por ejemplo: GreaterThan(Salary, 100000).
    • LessThanOrEquals: esta función compara dos números, devolviendo true si el primero es menor o igual que el segundo y false de lo contrario. Por ejemplo: LessThanOrEquals(Salary, 100000).
    • GreaterThanOrEquals: esta función compara dos números, devolviendo true si el primero es mayor o es igual que el segundo y false de lo contrario. Por ejemplo: GreaterThanOrEquals(Salary, 100000).
    • IsPresent: esta función toma como entrada un atributo en el esquema ILM y devuelve true si el atributo no es null y false si el atributo es null.
  • valueIfTrue: valor que se devuelve si la condición se evalúa como true.
  • valueIfFalse: valor que se devuelve si la condición se evalúa como false.
Operaciones Si condición se evalúa como true, la función devuelve valueIfTrue. De lo contrario, la función devuelve valueIfFalse. Por ejemplo: IIF(Eq(EmployeeType,"Intern"),"t-" + Alias, Alias) devuelve el alias de un usuario con "t-" agregado al principio del alias si el usuario es un interno. De lo contrario, la función devuelve el alias del usuario as-is.
Salida La salida es valueIfTrue si la condición es true o valueIfFalse si la condición es false.