Referência para escrever expressões para mapeamentos de atributo no Microsoft Entra ID

Quando você configura o provisionamento de um aplicativo SaaS, um dos tipos de mapeamentos de atributos que você pode especificar é o mapeamento de expressão. Para esses mapeamentos, você precisa escrever uma expressão semelhante a script que permite transformar os dados de usuários em formatos que são mais aceitáveis para o aplicativo SaaS.

Visão geral da sintaxe

A sintaxe de expressões para mapeamentos de atributos é semelhante à das funções de VBA (Visual Basic for Applications).

  • A expressão inteira deve ser definida em termos de funções, que consistem em um nome seguido pelos argumentos entre parênteses: FunctionName(<<argument 1>>,<<argument N>>)

  • Você pode aninhar funções umas nas outras. Por exemplo: FunctionOne(FunctionTwo(<<argument1>>))

  • Você pode passar três tipos diferentes de argumentos em funções:

    1. Atributos, que devem ser colocados entre colchetes. Por exemplo: [attributeName]
    2. Constantes de cadeia de caracteres, que devem ser colocadas entre aspas duplas. Por exemplo: "Estados Unidos"
    3. Outras funções. Por exemplo: FunctionOne(<<argument1>>, FunctionTwo(<<argument2>>))
  • Para constantes de cadeia de caracteres, se você precisar de uma barra invertida (\) ou aspas (") na cadeia de caracteres, ela deve ser escapada com o símbolo de barra invertida (\). Por exemplo: "Nome da empresa: \"Contoso\""

  • A sintaxe diferencia maiúsculas de minúsculas, e isso deve ser levado em conta ao digitá-las como cadeias de caracteres em uma função quando comparado a copiá-las colando-as diretamente aqui.

Lista de funções

AcrescentarAppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexContarCStrDateAddDateDiffDateFromNumFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNullIsNullOrEmptyIsPresentIsStringItemUnirEsquerdaMidNormalizeDiacriticsNotAgoraNumFromDatePCaseRandomStringRedactRemoveDuplicatesSubstituirSelectUniqueValueSingleAppRoleAssignmentDividirStripSpacesMudarToLowerToUpperPalavra


Acrescentar

Função: Append(source, suffix)

Descrição: seleciona um valor da cadeia de caracteres de origem e acrescenta o sufixo ao final dela.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Normalmente o nome do atributo do objeto de source.
suffix Obrigatório String A cadeia de caracteres que você deseja acrescentar ao final do valor de source.

Acrescentar sufixo constante ao nome de usuário

Exemplo: se estiver usando uma Área Restrita Salesforce, talvez será necessário anexar outro sufixo a todos os nomes de usuário antes de sincronizá-los.

Expressão:Append([userPrincipalName], ".test")

Entrada/saída de exemplo:

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

AppRoleAssignmentsComplex

Função: AppRoleAssignmentsComplex([appRoleAssignments])

Descrição: usado para configurar várias funções para um usuário. Para obter informações detalhadas sobre uso, consulte Tutorial: como personalizar mapeamentos de atributos do provisionamento de usuário para aplicativos SaaS no Microsoft Entra ID.

Parâmetros:

Nome Obrigatório/repetição Type Observações
[appRoleAssignments] Obrigatório String Objeto [appRoleAssignments].

BitAnd

Função: BitAnd (value1, value2)

Descrição: esta função converte ambos os parâmetros para a representação binária e define um bit para:

  • 0 – se um ou ambos os bits correspondentes em value1 e value2 forem 0
  • 1 - se ambos os bits correspondentes são 1.

Em outras palavras, ele retorna 0 em todos os casos, exceto quando os bits correspondentes de ambos os parâmetros são 1.

Parâmetros:

Nome Obrigatório/repetição Type Observações
value1 Obrigatório Num Valor numérico ao qual deve ser acrescentado o AND com value2
value2 Obrigatório Num Valor numérico ao qual deve ser acrescentado o AND com value1

Exemplo:BitAnd(&HF, &HF7)

11110111 AND 00000111 = 00000111, portanto BitAnd retorna 7, o valor binário de 00000111.


CBool

Função:CBool(Expression)

Descrição:CBool retorna um valor booleano com base na expressão avaliada. Se a expressão é avaliada como um valor diferente de zero, então CBool retorna True; caso contrário, ele retorna False.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Expression Obrigatório expressão Qualquer expressão válida

Exemplo:CBool([attribute1] = [attribute2])
Retorna True se ambos os atributos têm o mesmo valor.


CDate

Função:
CDate(expression)

Descrição:
a função CDate retorna um DateTime UTC a partir de uma cadeia de caracteres. O DateTime não é um tipo de atributo nativo, mas poderá ser usado em funções de data como FormatDateTime e DateAdd.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Expression Obrigatório Expression Qualquer cadeia de caracteres válida que representa uma data/hora. Para formatos com suporte, consulte cadeias de caracteres de formato de data e hora personalizadas do .NET.

Comentários:
A cadeia de caracteres retornada é sempre em UTC e segue o formato M/d/aaaa h:mm:ss tt.

Exemplo 1:
CDate([StatusHireDate])
Entrada/saída de exemplo:

  • INPUT (StatusHireDate): "2020-03-16-07:00"
  • SAÍDA: "16/03/2020 7:00:00" <-- Observe que o equivalente em UTC do DateTime acima é retornado

Exemplo 2:
CDate("2021-06-30+08:00")
Entrada/saída de exemplo:

  • INPUT: "2021-06-30+08:00"
  • SAÍDA: "29/06/2021 16:00:00" <-- Observe que o equivalente em UTC do DateTime acima é retornado

Exemplo 3:
CDate("2009-06-15T01:45:30-07:00")
Entrada/saída de exemplo:

  • INPUT: "2009-06-15T01:45:30-07:00"
  • SAÍDA: "15/06/2009 8:45:30 AM" <-- Observe que o equivalente em UTC do DateTime acima é retornado

Coalesce

Função: Coalesce(source1, source2, ..., defaultValue)

Descrição: retornará o primeiro valor de origem que não for NULL. Se todos os argumentos forem NULOS e defaultValue estiver presente, o defaultValue será retornado. Se todos os argumentos forem NULL e defaultValue não estiver presente, Coalesce retornará NULL.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source1 … sourceN Obrigatório String Obrigatório, número de vezes variável. Normalmente o nome do atributo do objeto de source.
defaultValue Opcional Cadeia de caracteres Valor padrão a ser usado quando todos os valores de origem forem NULL. Pode ser uma cadeia de caracteres vazia ("").

Fluir o valor de email, se não for NULL; caso contrário, fluir userPrincipalName

Exemplo: Você deseja fluir o atributo de email caso ele esteja presente. Caso contrário, convém fluir o valor de userPrincipalName.

Expressão:Coalesce([mail],[userPrincipalName])

Entrada/saída de exemplo:

  • INPUT (mail): NULL
  • INPUT (userPrincipalName): "John.Doe@contoso.com"
  • OUTPUT: "John.Doe@contoso.com"

ConvertToBase64

Função: ConvertToBase64(source)

Descrição: a função ConvertToBase64 converte uma cadeia de caracteres em uma cadeia de caracteres Unicode em base64.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Cadeia de caracteres a ser convertida em base 64

Exemplo:ConvertToBase64("Hello world!")

retorna "SABlAGwAbABvACAAdwBvAHIAbABkACEA"


ConvertToUTF8Hex

Função: ConvertToUTF8Hex(source)

Descrição: a função ConvertToUTF8Hex converte uma cadeia de caracteres em um valor codificado em UTF8 hexadecimal.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Cadeia de caracteres a ser convertida em UTF8 Hexadecimal

Exemplo:ConvertToUTF8Hex("Hello world!")

retorna 48656C6C6F20776F726C6421


Contagem

Função: Count(attribute)

Descrição: a função Count retorna o número de elementos em um atributo de valores múltiplos.

Parâmetros:

Nome Obrigatório/repetição Type Observações
attribute Obrigatório atributo Atributo com valores múltiplos que terá elementos contados

CStr

Função: CStr(value)

Descrição: A função CStr converte um valor em um tipo de dados de cadeia de caracteres.

Parâmetros:

Nome Obrigatório/repetição Type Observações
value Obrigatório numérico, de referência ou booliano pode ser um valor numérico, o atributo de referência ou booliano.

Exemplo:CStr([dn])

Retorna "cn=Joe,dc=contoso,dc=com"


DateAdd

Função:
DateAdd(interval, value, dateTime)

Descrição:
Retorna uma cadeia de caracteres de data/hora que representa uma data à qual um intervalo de tempo especificado foi adicionado. A data retornada está no formato: M/d/aaaa h:mm:ss tt.

Parâmetros:

Nome Obrigatório/repetição Type Observações
interval Obrigatório String Intervalo de tempo que você deseja adicionar. Veja os valores aceitos depois desta tabela.
value Obrigatório Número o número de unidades que você deseja adicionar. Ele pode ser positivo (para obter datas no futuro) ou negativo (para obter datas no passado).
dateTime Obrigatório Datetime DateTime, representando a data à qual o intervalo é adicionado.

Ao transmitir uma cadeia de caracteres de data como entrada, use a função CDate para encapsular a cadeia de caracteres datetime. Para obter a hora do sistema em UTC, use a função Now.

A cadeia de caracteres do intervalo deve ter um dos seguintes valores:

  • aaaa Ano
  • m - Mês
  • d - Dia
  • ww - Semana
  • h - Hora
  • m - Minuto
  • s - Segundo

Exemplo 1: Gerar um valor de data com base no StatusHireDate de entrada do Workday
DateAdd("d", 7, CDate([StatusHireDate]))

Exemplo intervalo value dateTime (valor da variável StatusHireDate) output
Adicionar sete dias à data de contratação "d" 7 2012-03-16-07:00 23/3/2012 7:00:00
Obter uma data de dez dias antes da data de contratação "d" -10 2012-03-16-07:00 6/3/2012 7:00:00
Adicionar duas semanas à data de contratação "ww" 2 2012-03-16-07:00 30/3/2012 7:00:00
Adicionar dez meses à data de contratação "m" 10 2012-03-16-07:00 16/1/2013 7:00:00
Adicionar dois anos à data de contratação "yyyy" 2 2012-03-16-07:00 16/3/2014 7:00:00

DateDiff

Função:
DateDiff(interval, date1, date2)

Descrição:
Essa função usa o parâmetro interval para retornar um número que indica a diferença entre as duas datas de entrada. Retorna

  • um número positivo se date2 > date1,
  • um número negativo se date2 < date1,
  • 0 se date2 == date1

Parâmetros:

Nome Obrigatório/Opcional Type Observações
interval Obrigatório String Intervalo de tempo a ser usado para calcular a diferença.
date1 Obrigatório Datetime DateTime que representa uma data válida.
date2 Obrigatório Datetime DateTime que representa uma data válida.

Ao transmitir uma cadeia de caracteres de data como entrada, use a função CDate para encapsular a cadeia de caracteres datetime. Para obter a hora do sistema em UTC, use a função Now.

A cadeia de caracteres do intervalo deve ter um dos seguintes valores:

  • aaaa Ano
  • m - Mês
  • d - Dia
  • ww - Semana
  • h - Hora
  • m - Minuto
  • s - Segundo

Exemplo 1: Comparar a data atual com a data de contratação do Workday com intervalos diferentes
DateDiff("d", Now(), CDate([StatusHireDate]))

Exemplo intervalo date1 date2 output
Diferença positiva em dias entre duas datas d 2021-08-18+08:00 2021-08-31+08:00 13
Diferença negativa em dias entre duas datas d 25/8/2021 17:41:18 2012-03-16-07:00 -3449
Diferença em semanas entre duas datas ww 25/8/2021 17:41:18 2012-03-16-07:00 -493
Diferença em meses entre duas datas m 25/8/2021 17:41:18 2012-03-16-07:00 -113
Diferença em anos entre duas datas yyyy 25/8/2021 17:41:18 2012-03-16-07:00 -9
Diferença quando as duas datas são iguais d 2021-08-31+08:00 2021-08-31+08:00 0
Diferença em horas entre duas datas h 2021-08-24 2021-08-25 24
Diferença em minutos entre duas datas n 2021-08-24 2021-08-25 1440
Diferença em segundos entre duas datas s 2021-08-24 2021-08-25 86.400

Exemplo 2: combinar DateDiff com a função IIF para definir o valor do atributo
Se uma conta estiver ativa no Workday, defina o atributo accountEnabled do usuário como true somente se a data de contratação estiver dentro dos próximos 5 dias.

Switch([Active], , 
  "1", IIF(DateDiff("d", Now(), CDate([StatusHireDate])) > 5, "False", "True"), 
  "0", "False")

DateFromNum

Função: DateFromNum(value)

Descrição: a função DateFromNum converte um valor no formato de data do AD em um do tipo DateTime.

Parâmetros:

Nome Obrigatório/repetição Type Observações
value Obrigatório Data Data do AD a ser convertida para o tipo DateTime

Exemplo:DateFromNum([lastLogonTimestamp])

DateFromNum(129699324000000000)

Retorna um DateTime que representa 1º de janeiro de 2012 às 23:00.


FormatDateTime

Função: FormatDateTime(source, dateTimeStyles, inputFormat, outputFormat)

Descrição: converte uma cadeia de caracteres de data de um formato em um formato diferente.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Normalmente o nome do atributo do objeto de source.
dateTimeStyles Opcional Cadeia de caracteres Use esse parâmetro para especificar as opções de formatação que personalizam a análise de cadeia de caracteres para alguns métodos de análise de data e hora. Para obter os valores com suporte, consulte o Documento DateTimeStyles. Se deixado em branco, o valor padrão usado será DateTimeStyles. RoundtripKind, DateTimeStyles. AllowLeadingWhite, DateTimeStyles. AllowTrailingWhite
inputFormat Obrigatório String Formato esperado do valor de source. Para formatos com suporte, consulte cadeias de caracteres de formato de data e hora personalizadas do .NET.
outputFormat Obrigatório String Formato da data de saída.

Gerar data como uma cadeia de caracteres em um determinado formato

Exemplo: você deseja enviar datas para um aplicativo SaaS como o ServiceNow em um determinado formato. Você pode considerar o uso da expressão a seguir.

Expressão:

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

Entrada/saída de exemplo:

  • ENTRADA (extensionAttribute1): "20150123105347.1Z"
  • SAÍDA: "2015-01-23"

Guid

Função: Guid()

Descrição: A função Guid gera um novo GUID aleatório

Exemplo:
Guid()
Saída de exemplo: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"


IgnoreFlowIfNullOrEmpty

Função: IgnoreFlowIfNullOrEmpty(expression)

Descrição: a função IgnoreFlowIfNullOrEmpty instrui o serviço de provisionamento a ignorar o atributo e soltá-lo do fluxo se a função ou o atributo incluído for NULL ou vazio.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Expression Obrigatório Expression Expressão a ser avaliada

Exemplo 1: não faça um atributo fluir se ele for nulo
IgnoreFlowIfNullOrEmpty([department])
A expressão acima remove o atributo de departamento do fluxo de provisionamento caso ele seja nulo ou vazio.

Exemplo 2: não faça um atributo fluir se o mapeamento de expressão for avaliado como uma cadeia de caracteres vazia ou nulo
Digamos que o prefixo do atributo SuccessFactors esteja mapeado para o atributo Active Directory local personalTitle usando o seguinte mapeamento de expressão:
IgnoreFlowIfNullOrEmpty(Switch([prefix], "", "3443", "Dr.", "3444", "Prof.", "3445", "Prof. Dr."))
A expressão acima avalia primeiro a função Switch. Se o atributo prefix não tiver nenhum dos valores listados na função Switch, então, ** retornará uma cadeia de caracteres vazia e o atributo personalTitle não será incluído no fluxo de provisionamento para o Active Directory local.


IIF

Função: IIF(condition,valueIfTrue,valueIfFalse)

Descrição: a função IIF retorna um valor de um conjunto de valores possíveis com base em uma condição especificada.

Parâmetros:

Nome Obrigatório/repetição Type Observações
condition Obrigatório Variável ou expressão Qualquer valor ou expressão que possa ser avaliada como verdadeira ou falsa.
valueIfTrue Obrigatório Variável ou cadeia de caracteres se a condição for avaliada como true, o valor será retornado.
valueIfFalse Obrigatório Variável ou cadeia de caracteres se a condição for avaliada como false, o valor será retornado.

Os seguintes operadores de comparação podem ser usados na condição:

  • Igual a (=) e não igual a (<>)
  • Maior que (>) e maior que e igual a (>=)
  • Menor que (<) e menor que e igual a (<=)

Exemplo: definir o valor do atributo de destino como o atributo do país de origem se country="USA", caso contrário, definir o valor do atributo de destino como o atributo do departamento de origem. IIF([country]="USA",[country],[department])

Limitações conhecidas

Esta seção inclui limitações e soluções alternativas para a função IIF. Para obter informações sobre como solucionar problemas de criação de usuários, confira Falha na criação devido a valores nulos/vazios.

  • A função IIF atualmente não dá suporte a operadores lógicos AND e OR.
  • Para implementar a lógica AND, use a instrução IIF aninhada encadeada ao longo do caminho trueValue. Exemplo: se country="USA" e state="CA", o valor "True" é retornado, caso contrário, "False". IIF([country]="USA",IIF([state]="CA","True","False"),"False")
  • Para implementar a lógica OR, use a instrução IIF aninhada encadeada ao longo do caminho falseValue. Exemplo: se country="USA" ou state="CA", o valor "True" é retornado, caso contrário, "False". IIF([country]="USA","True",IIF([state]="CA","True","False"))
  • Se o atributo de origem usado na função IIF estiver vazio ou for nulo, a verificação de condição falhará.
    • Exemplos de expressão IIF sem suporte:
      • IIF([country]="","Other",[country])
      • IIF(IsNullOrEmpty([country]),"Other",[country])
      • IIF(IsPresent([country]),[country],"Other")
    • Solução alternativa recomendada: use a função Switch para verificar se há valores vazios/nulos. Exemplo: se o atributo country estiver vazio, defina o valor "Outros". Se ele estiver presente, transmita o valor do atributo country para o atributo de destino.
      • Switch([country],[country],"","Other")

InStr

Função: InStr(value1, value2, start, compareType)

Descrição: a função InStr localiza a primeira ocorrência de uma substring em uma cadeia de caracteres.

Parâmetros:

Nome Obrigatório/repetição Type Observações
value1 Obrigatório String Cadeia de caracteres a ser pesquisada
value2 Obrigatório String Cadeia de caracteres a ser encontrada
start Opcional Inteiro Posição inicial para encontrar a substring
compareType Opcional Enumeração Pode ser vbTextCompare ou vbBinaryCompare

Exemplo:InStr("The quick brown fox","quick")

é avaliado como 5

InStr("repEated","e",3,vbBinaryCompare)

é avaliado como 7


IsNull

Função: IsNull(Expression)

Descrição: se a expressão for avaliada como Null, a função IsNull retornará true. para um atributo, um valor Null é expresso pela ausência do atributo.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Expression Obrigatório Expression Expressão a ser avaliada

Exemplo:IsNull([displayName])

Retornará True se o atributo não estiver presente.


IsNullorEmpty

Função: IsNullOrEmpty(Expression)

Descrição: se a expressão for null ou uma cadeia de caracteres vazia, a função IsNullOrEmpty retornará true. Isso será avaliado como True se o atributo estiver ausente ou presente, mas for uma cadeia de caracteres vazia. O inverso dessa função é chamado de IsPresent.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Expression Obrigatório Expression Expressão a ser avaliada

Exemplo:IsNullOrEmpty([displayName])

Retornará True se o atributo não estiver presente ou for uma cadeia de caracteres vazia.


IsPresent

Função: IsPresent(Expression)

Descrição: se a expressão for avaliada como uma cadeia de caracteres que não seja Null e não estiver vazia, a função IsPresent retornará true. o inverso dessa função é chamado de IsNullOrEmpty.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Expression Obrigatório Expression Expressão a ser avaliada

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


IsString

Função: IsString(Expression)

Descrição: se a expressão puder ser avaliada como um tipo de cadeia de caracteres, a função IsString será avaliada como True.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Expression Obrigatório Expression Expressão a ser avaliada

Item

Função: Item(attribute, index)

Descrição: a função Item retorna um item de um atributo/cadeia de caracteres de valores múltiplos.

Parâmetros:

Nome Obrigatório/repetição Type Observações
attribute Obrigatório Atributo Atributo de valores múltiplos a ser pesquisado
index Necessária Inteiro Índice de um item na cadeia de caracteres de valores múltiplos

Exemplo:Item([proxyAddresses], 1) retorna o primeiro item no atributo de valores múltiplos. O índice 0 não deverá ser usado.


Join

Função: Join(separator, source1, source2, …)

Descrição: Join() é semelhante a Append(), exceto por combinar diversos valores de cadeia de caracteres de origem em uma única cadeia de caracteres, e cada valor é separado por uma cadeia de caracteres de separador.

Se um dos valores de origem for um atributo com valores múltiplos, todos os valores nesse atributo serão agrupados juntos, sendo separados pelo valor do separador.

Parâmetros:

Nome Obrigatório/repetição Type Observações
separator Obrigatório String Cadeia de caracteres usada para separar os valores de origem quando eles são concatenados em uma cadeia de caracteres. Pode ser "" se não for necessário nenhum separador.
source1 … sourceN Obrigatório, número de vezes variável String Valores de cadeia de caracteres a serem unidos.

Esquerda

Função: Left(String, NumChars)

Descrição: a função Left retorna um número especificado de caracteres a partir da esquerda de uma cadeia de caracteres. Se numChars = 0, retorne a cadeia de caracteres vazia. Se numChars < 0, retorne a cadeia de caracteres de entrada. Se a cadeia de caracteres for nula, retorne a cadeia de caracteres vazia. Se a cadeia de caracteres contiver menos caracteres que o número especificado em numChars, uma cadeia de caracteres idêntica à cadeia (ou seja, que contém todos os caracteres no parâmetro 1) será retornada.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Cadeia de caracteres Obrigatório Atributo A cadeia de caracteres da qual os caracteres serão retornados
NumChars Necessária Inteiro Um número que identifica o número de caracteres para retornar do início (à esquerda) da cadeia de caracteres

Exemplo:Left("John Doe", 3)

retorna "Joh".


Mid

Função: Mid(source, start, length)

Descrição: retorna uma substring do valor de origem. Uma subcadeia de caracteres é uma cadeia de caracteres que contém apenas alguns dos caracteres da cadeia de caracteres de source.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Geralmente o nome do atributo.
start Obrigatório Inteiro Índice na cadeia de caracteres de origem em que a subcadeia deve iniciar. O primeiro caractere da cadeia tem um índice 1, o segundo caractere tem um índice 2 e assim por diante.
length Obrigatório Inteiro Comprimento da subcadeia de caracteres. Se o comprimento terminar fora da origem da cadeia de caracteres, a função retornará a subcadeia de caracteres do índice iniciado até o final da origem da cadeia de caracteres.

NormalizeDiacritics

Função: NormalizeDiacritics(source)

Descrição: requer um argumento de cadeia de caracteres. Retorna a cadeia de caracteres, mas com todos os caracteres diacríticos substituídos por caracteres não diacríticos equivalentes. Normalmente usado para converter os nomes e sobrenomes que contêm caracteres diacríticos (acentos) em valores legais que podem ser usados em vários identificadores de usuário, como nomes de entidade de segurança do usuário, nomes de conta SAM e endereços de email.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Geralmente um atributo de nome ou sobrenome.
Caractere com marca diacrítica Caractere normalizado Caractere com marca diacrítica Caractere normalizado
ä, à, â, ã, å, á, ą, ă, ā, ā́, ā̀, ā̂, ā̃, ǟ, ā̈, ǡ, a̱, å̄ um Ä, À, Â, Ã, Å, Á, Ą, Ă, Ā, Ā́, Ā̀, Ā̂, Ā̃, Ǟ, Ā̈, Ǡ, A̱, Å̄ A
æ, ǣ ae Æ, Ǣ AE
ç, č, ć, c̄, c̱ c Ç, Č, Ć, C̄, C̱ C
ď, d̄, ḏ d Ď, D̄, Ḏ D
ë, è, é, ê, ę, ě, ė, ē, ḗ, ḕ, ē̂, ē̃, ê̄, e̱, ë̄, e̊̄ e Ë, È, É, Ê, Ę, Ě, Ė, Ē, Ḗ, Ḕ, Ē̂, Ē̃, Ê̄, E̱, Ë̄, E̊̄ E
ğ, ḡ, g̱ g Ğ, Ḡ, G̱ G
ï, î, ì, í, ı, ī, ī́, ī̀, ī̂, ī̃, i̱ i Ï, Î, Ì, Í, İ, Ī, Ī́, Ī̀, Ī̂, Ī̃, I̱ I
ľ, ł, l̄, ḹ, ḻ l Ł, Ľ, L̄, Ḹ, Ḻ L
ñ, ń, ň, n̄, ṉ n Ñ, Ń, Ň, N̄, Ṉ N
ö, ò, ő, õ, ô, ó, ō, ṓ, ṑ, ō̂, ō̃, ȫ, ō̈, ǭ, ȭ, ȱ, o̱ o Ö, Ò, Ő, Õ, Ô, Ó, Ō, Ṓ, Ṑ, Ō̂, Ō̃, Ȫ, Ō̈, Ǭ, Ȭ, Ȱ, O̱ O
ø, ø̄, œ̄ oe Ø, Ø̄, Œ̄ OE
ř, r̄, ṟ, ṝ r Ř, R̄, Ṟ, Ṝ R
ß ss
š, ś, ș, ş, s̄, s̱ s Š, Ś, Ș, Ş, S̄, S̱ S
ť, ț, t̄, ṯ t Ť, Ț, T̄, Ṯ T
ü, ù, û, ú, ů, ű, ū, ū́, ū̀, ū̂, ū̃, u̇̄, ǖ, ṻ, ṳ̄, u̱ u Ü, Ù, Û, Ú, Ů, Ű, Ū, Ū́, Ū̀, Ū̂, Ū̃, U̇̄, Ǖ, Ṻ, Ṳ̄, U̱ U
ÿ, ý, ȳ, ȳ́, ȳ̀, ȳ̃, y̱ s Ÿ, Ý, Ȳ, Ȳ́, Ȳ̀, Ȳ̃, Y̱ S
ź, ž, ż, z̄, ẕ z Ź, Ž, Ż, Z̄, Ẕ Z

Remover diacríticos de uma cadeia de caracteres

Exemplo: substituir caracteres que contenham os acentos por caracteres equivalentes que não contenham acentos.

Expressão: NormalizeDiacritics([givenName])

Entrada/saída de exemplo:

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

Not

Função: Not(source)

Descrição: Inverte o valor booliano da origem. Se o valor de source for True, retorna False. Caso contrário, retorna True.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório Cadeia de caracteres booliana Valores da origem esperados são "True" ou "False".

Agora

Função: Now()

Descrição:
A função Now retorna uma cadeia de caracteres que representa o DateTime UTC atual no formato M/d/aaaa h:mm:ss tt.

Exemplo:Now()
Valor de exemplo retornado 7/2/2021 3:33:38 PM


NumFromDate

Função: NumFromDate(value)

Descrição: A função NumFromDate converte um valor DateTime para o formato Active Directory que é necessário para definir atributos como accountExpires. Use essa função para converter valores DateTime recebidos de aplicativos de RH de nuvem, como o Workday e o SuccessFactors, para a representação do AD equivalente.

Parâmetros:

Nome Obrigatório/repetição Type Observações
value Obrigatório String Cadeia de caracteres de data/hora no formato ISO 8601. Se a variável de data estiver em um formato diferente, use a função FormatDateTime para converter a data no formato ISO 8601.

Exemplo:

  • Exemplo do Workday: supondo que você queira mapear o atributo ContractEndDate do Workday, que está no formato 2020-12-31-08:00 para o campo accountExpires no AD, veja como você pode usar essa função e alterar o deslocamento do fuso horário para que ele corresponda à sua localidade. NumFromDate(Join("", FormatDateTime([ContractEndDate], ,"yyyy-MM-ddzzz", "yyyy-MM-dd"), " 23:59:59-08:00"))

  • Exemplo do SuccessFactors: supondo que você queira mapear o atributo endDate do SuccessFactors, que está no formato M/d/yyyyy hh:mm:ss tt para o campo accountExpires no AD, veja como você pode usar essa função e alterar o deslocamento do fuso horário para que ele corresponda à sua localidade. NumFromDate(Join("",FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyy-MM-dd")," 23:59:59-08:00"))


PCase

Função: PCase(source, wordSeparators)

Descrição: a função PCase converte em letras maiúsculas o primeiro caractere de cada palavra em uma cadeia de caracteres, enquanto todos os outros caracteres são convertidos em letras minúsculas.

Parâmetros:

Nome Obrigatório/Opcional Type Observações
source Obrigatório String source Valor a ser convertido no formato correto de maiúsculas e minúsculas.
wordSeparators Opcional String Especifique um conjunto de caracteres usado como separador de palavras (exemplo: " ,-'")

Comentários:

  • Se o parâmetro wordSeparators não for especificado, o PCase invocará internamente a função .NET ToTitleCase para converter a cadeia de caracteres de origem no formato de maiúsculas e minúsculas apropriado. A função .NET ToTitleCase dá suporte a um conjunto abrangente de categorias de caracteres Unicode como separadores de palavras.
    • Caractere de espaço
    • Caractere de nova linha
    • Caracteres de controle como CRLF
    • Caracteres de controle de formato
    • Caracteres de ConnectorPunctuation como sublinhado
    • Caracteres DashPunctuation como traço e hífen (incluindo caracteres como En Dash, Em Dash, hifen duplo e assim por diante)
    • Caracteres OpenPunctuation e ClosePunctuation que ocorrem em pares como parênteses, colchetes, colchetes angulares, e assim por diante.
    • Caracteres InitialQuotePunctuation e FinalQuotePunctuation, como aspas simples, aspas duplas e aspas angulares.
    • Caracteres OtherPunctuation como ponto de exclamação, sinal numérico, sinal de porcentagem, E comercial, asterisco, vírgula, parada completa, dois-pontos, ponto e vírgula, e assim por diante.
    • Caracteres MathSymbol como sinal de adição, sinal menor que e maior que, linha vertical, til, sinal de igual, e assim por diante.
    • Caracteres CurrencySymbol como sinal de dólar, sinal de centavo, sinal de libra, sinal de euro, e assim por diante.
    • Caracteres ModifierSymbol como macron, acentos, setas, e assim por diante.
    • Caracteres OtherSymbol como símbolo de direitos autorais, sinal de grau, símbolo de marca registrada, etc.
  • Se o parâmetro wordSeparators for especificado, a função PCase só usará os caracteres especificados como separadores de palavras.

Exemplo:

Digamos que você está obtendo os atributos firstName e lastName do SAP SuccessFactors e, em RH, ambos os atributos estão em letras maiúsculas. Usando a função PCase, você pode converter o nome no formato correto de maiúsculas e minúsculas, conforme mostrado aqui.

Expression Entrada Saída Observações
PCase([firstName]) firstName = "MARIA EDUARDA (SEGUNDO)" "Maria Eduarda (Segundo)" Como o parâmetro wordSeparators não é especificado, a função PCase usa o conjunto de caracteres separadores de palavras padrão.
PCase([lastName]," '-") lastName = "SCHMIDT" "Schmidt" A função PCase usa caracteres no parâmetro wordSeparators para identificar palavras e transformá-las no formato correto de maiúsculas e minúsculas.
PCase(Join(" ",[firstName],[lastName])) firstName = CARLOS, lastName = "LIMA" "Carlos Lima" Você pode aninhar a função Join em PCase. Como o parâmetro wordSeparators não é especificado, a função PCase usa o conjunto de caracteres separadores de palavras padrão.

RandomString

Função: RandomString(Length, MinimumNumbers, MinimumSpecialCharacters, MinimumCapital, MinimumLowerCase, CharactersToAvoid)

Descrição: a função Randomstring gera uma cadeia de caracteres aleatória com base nas condições especificadas. Os caracteres permitidos podem ser identificados aqui.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Comprimento Obrigatório Número Comprimento total da cadeia de caracteres aleatória. Isso deve ser maior ou igual à soma de MinimumNumbers, MinimumSpecialCharacters e MinimumCapital. Máximo de 256 caracteres.
MinimumNumbers Obrigatório Número Números mínimos na cadeia de caracteres aleatória.
MinimumSpecialCharacters Obrigatório Número Número mínimo de caracteres especiais.
MinimumCapital Obrigatório Número Número mínimo de letras maiúsculas na cadeia de caracteres aleatória.
MinimumLowerCase Obrigatório Número Número mínimo de letras minúsculas na cadeia de caracteres aleatória.
CharactersToAvoid Opcional Cadeia de caracteres Caracteres a serem excluídos ao gerar a cadeia de caracteres aleatória.

Exemplo 1: - gerar uma cadeia de caracteres aleatória sem restrições de caracteres especiais: RandomString(6,3,0,0,3) Gera uma cadeia de caracteres aleatória com 6 caracteres. A cadeia de caracteres contém 3 números e 3 caracteres minúsculos (1a73qt).

Exemplo 2: - gerar uma cadeia de caracteres aleatória com restrições de caracteres especiais: RandomString(10,2,2,2,1,"?,")Gera uma cadeia de caracteres aleatória com 10 caracteres. A cadeia de caracteres contém pelo menos 2 números, 2 caracteres especiais, 2 letras maiúsculas, 1 letra minúscula e exclui os caracteres "?" e "," (1@!2BaRg53).


Redigir

Função: Redact()

Descrição: A função redação substitui o valor do atributo pelo literal de cadeia de caracteres "[redação]" nos logs de provisionamento.

Parâmetros:

Nome Obrigatório/repetição Type Observações
atributo/valor Obrigatório String Especifique o atributo ou constante/cadeia de caracteres a ser redação dos logs.

Exemplo 1: Redigir um atributo: Redact([userPrincipalName]) Remove o userPrincipalName dos logs de provisionamento.

Exemplo 2: Redigir uma cadeia de caracteres: Redact("StringToBeRedacted") Remove uma cadeia de caracteres constante dos logs de provisionamento.

Exemplo 3: Redigir uma cadeia de caracteres aleatória: Redact(RandomString(6,3,0,0,3)) Remove a cadeia de caracteres aleatória dos logs de provisionamento.


RemoveDuplicates

Função: RemoveDuplicates(attribute)

Descrição: a função RemoveDuplicates obtém uma cadeia de caracteres de valores múltiplos e verifica se cada valor é exclusivo.

Parâmetros:

Nome Obrigatório/repetição Type Observações
attribute Obrigatório Atributo com valores múltiplos Atributo de vários valores que tem duplicatas removidas

Exemplo:RemoveDuplicates([proxyAddresses]) retorna um atributo proxyAddress higienizado em que todos os valores duplicados são removidos.


Substitua

Função: Replace(source, oldValue, regexPattern, regexGroupName, replacementValue, replacementAttributeName, template)

Descrição: Substitui valores dentro de uma cadeia de caracteres diferenciando maiúsculas e minúsculas. A função atua de maneira diferente a depender dos parâmetros fornecidos:

  • Quando oldValue e replacementValue são fornecidos:

    • Substitui todas as ocorrências de oldValue em source por replacementValue
  • Quando oldValue e template são fornecidos:

    • Substitui todas as ocorrências de oldValue no modelo pelo valor de origem
  • Quando regexPattern e replacementValue são fornecidos:

    • A função aplica o regexPattern à cadeia de caracteres source e você pode usar os nomes de grupo Regex para construir a cadeia de caracteres para replacementValue

Observação

Para saber mais sobre constructo de agrupamento de regex e subexpressões nomeadas, consulte Agrupar constructos em expressões regulares.

  • Quando regexPattern, regexGroupName e replacementValue são fornecidos:

    • A função aplica o regexPattern à cadeia de caracteres source e substitui todos os valores correspondentes a regexGroupName com replacementValue
  • Quando regexPattern, regexGroupName e replacementAttributeName são fornecidos:

    • Se source tiver um valor, source será retornado
    • Se source não tiver nenhum valor, a função aplicará o regexPattern ao replacementAttributeName e retornará o valor correspondente ao regexGroupName

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Normalmente, o nome do atributo do objeto de source.
oldValue Opcional Cadeia de caracteres Valor a ser substituído em source ou template.
regexPattern Opcional Cadeia de caracteres Padrão Regex para o valor a ser substituído na origem. Quando replacementAttributeName é usado, o regexPattern é aplicado para extrair um valor do replacementAttributeName.
regexGroupName Opcional Cadeia de caracteres Nome do grupo dentro de regexPattern. Quando replacementAttributeName nomeado for usado, extrairemos o valor do grupo regex nomeado do replacementAttributeName e o retornaremos como o valor de substituição.
replacementValue Opcional Cadeia de caracteres Novo valor com o qual substituir um antigo.
replacementAttributeName Opcional Cadeia de caracteres Nome do atributo a ser usado para o valor de substituição
template Opcional String Quando o valor do modelo for fornecido, procuraremos oldValue dentro do modelo e o substituiremos pelo valor da origem.

Substituir caracteres usando uma expressão regular

Exemplo 1: Usando oldValue e replacementValue para substituir toda a cadeia de caracteres de origem por outra cadeia de caracteres.

Digamos que seu sistema de RH tenha um atributo BusinessTitle. Como parte das alterações recentes de cargo, sua empresa deseja atualizar qualquer pessoa com o título comercial "Desenvolvedor de Produtos" para "Engenheiro de Software". Nesse caso, você pode usar a expressão a seguir no mapeamento de atributo.

Replace([BusinessTitle],"Product Developer", , , "Software Engineer", , )

  • source: [BusinessTitle]
  • oldValue: "Desenvolvedor de Produto"
  • replacementValue: "Engenheiro de Software"
  • Expression output: Engenheiro de Software

Exemplo 2: Usando oldValue e template para inserir a cadeia de caracteres de origem em outra cadeia de caracteres templatized.

O parâmetro oldValue é um termo impróprio neste cenário. Na verdade, é o valor que é substituído.
Vamos supor que você sempre quer gerar uma ID de logon no formato <username>@contoso.com. Há um atributo de origem chamado UserID, e você quer que esse valor seja usado para a parte de <username> da ID de logon. Nesse caso, você pode usar a expressão a seguir no mapeamento de atributo.

Replace([UserID],"<username>", , , , , "<username>@contoso.com")

  • source: [UserID] = "jsmith"
  • oldValue: "<username>"
  • template: "<username>@contoso.com"
  • Saída da expressão: "jsmith@contoso.com"

Exemplo 3: Usando regexPattern e replacementValue para extrair uma parte da cadeia de caracteres de origem e substituí-la por uma cadeia de caracteres vazia ou um valor personalizado criado usando-se padrões regex ou nomes de grupo regex.

Digamos que você tenha um atributo de origem telephoneNumber que tenha componentes country code e phone number separados por um caractere de espaço. Por exemplo, +91 9998887777 Nesse caso, você poderá usar a seguinte expressão no mapeamento de atributo para extrair o número de telefone de 10 dígitos.

Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", , "${phoneNumber}", , )

  • source: [telephoneNumber] = "+91 9998887777"
  • regexPattern: "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})"
  • replacementValue: "${phoneNumber}"
  • Saída da expressão: 9998887777

Você também pode usar esse padrão para remover caracteres e recolher uma cadeia de caracteres. Por exemplo, a expressão a seguir remove parênteses, traços e caracteres de espaço na cadeia de caracteres de número de telefone celular e retorna apenas dígitos.

Replace([mobile], , "[()\\s-]+", , "", , )

  • source: [mobile] = "+1 (999) 888-7777"
  • regexPattern: "[()\\s-]+"
  • replacementValue: "" (cadeia de caracteres vazia)
  • Saída da expressão: 19998887777

Exemplo 4: Usando regexPattern, regexGroupName e replacementValue para extrair uma parte da cadeia de caracteres de origem e substituí-la por outro valor literal ou cadeia de caracteres vazia.

Digamos que seu sistema de origem tenha um atributo AddressLineData com dois componentes número da rua e nome da rua. Como parte de uma mudança recente, digamos que o número da rua do endereço alterou e você quer atualizar apenas a parte do número da rua da linha de endereço. Nesse caso, você pode usar a expressão a seguir no mapeamento de atributo para extrair o número da rua.

Replace([AddressLineData], ,"(?<streetNumber>^\\d*)","streetNumber", "888", , )

  • source: [AddressLineData] = "545 Tremont Street"
  • regexPattern: "(?<streetNumber>^\\d*)"
  • regexGroupName: "streetNumber"
  • replacementValue: "888"
  • Saída da expressão: 888 Tremont Street

Aqui está outro exemplo em que o sufixo de domínio de um UPN é substituído por uma cadeia de caracteres vazia para gerar a ID de logon sem sufixo de domínio.

Replace([userPrincipalName], , "(?<Suffix>@(.)*)", "Suffix", "", , )

  • source: [userPrincipalName] = "jsmith@contoso.com"
  • regexPattern: "(?<Suffix>@(.)*)"
  • regexGroupName: "Sufixo"
  • replacementValue: "" (cadeia de caracteres vazia)
  • Saída da expressão: jsmith

Exemplo 5: Usando regexPattern, regexGroupName e replacementAttributeName para lidar com cenários em que o atributo de origem está vazio ou não tem um valor.

Digamos que seu sistema de origem tenha um atributo telephoneNumber. Se telephoneNumber estiver vazio, você deseja extrair os 10 dígitos do atributo número do telefone celular. Nesse caso, você pode usar a expressão a seguir no mapeamento de atributo.

Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", "phoneNumber" , , [mobile], )

  • source: [telephoneNumber] = "" (cadeia de caracteres vazia)
  • regexPattern: "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})"
  • regexGroupName: "phoneNumber"
  • replacementAttributeName: [mobile] = "+91 8887779999"
  • Saída da expressão: 8887779999

Exemplo 6: é necessário localizar caracteres que correspondam a um valor de expressão regular e removê-los.

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

  • source [mailNickname]
  • oldValue: "john_doe72"
  • replaceValue: ""
  • Saída da expressão: 72

SelectUniqueValue

Função: SelectUniqueValue(uniqueValueRule1, uniqueValueRule2, uniqueValueRule3, …)

Descrição: requer um mínimo de dois argumentos, que são regras de geração de valor exclusivo definidas usando expressões. A função avalia cada regra e, em seguida, verifica o valor gerado para exclusividade no aplicativo/diretório de destino. O primeiro valor exclusivo encontrado será retornado o um. Se todos os valores já existirem no destino, a entrada será garantida e o motivo será registrado nos logs de auditoria. Não há nenhum limite superior para o número de argumentos que podem ser fornecidos.

  • Essa função deve estar no nível superior e não pode ser aninhada.

  • Essa função não pode ser aplicada a atributos que têm uma precedência correspondente.

  • Essa função destina-se somente a ser usado para criações de entrada. Ao usá-lo com um atributo, defina a Aplicar mapeamento propriedade somente durante a criação do objeto.

  • No momento, essa função tem suporte para uso com estes aplicativos:

    • Provisionamento de Usuário do Workday para o Active Directory
    • SuccessFactors para o Provisionamento de Usuário do Active Directory
    • Provisionamento controlado por API para o Active Directory local

    SelectUniqueValue não tem suporte para uso com outros aplicativos de provisionamento.

  • A pesquisa LDAP que a função SelectUniqueValue executa no Active Directory local não escapa caracteres especiais como diacríticos. Se você passar uma cadeia de caracteres, como "Jéssica Smith" que contém um caractere especial, encontrará erros de processamento. Aninhe a função NormalizeDiacritics conforme mostrado neste exemplo para normalizar os caracteres especiais.

Parâmetros:

Nome Obrigatório/repetição Type Observações
uniqueValueRule1 … uniqueValueRuleN Pelo menos 2 são necessários, sem limite superior String Lista de regras de geração de valor exclusivo para avaliar.

Gerar um valor exclusivo para o atributo userPrincipalName (UPN)

Exemplo: Com base no primeiro nome, segundo nome e sobrenome do usuário, você precisa gerar um valor para o atributo UPN e verificar a exclusividade desse atributo no diretório de destino AD antes de atribuir o valor ao atributo UPN.

Expressão:

    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/saída de exemplo:

  • INPUT (PreferredFirstName): "John"
  • INPUT (PreferredLastName): "Smith"
  • SAÍDA: "John.Smith@contoso.com" se o valor de UPN do John.Smith@contoso.com ainda não existir no diretório
  • SAÍDA: "J.Smith@contoso.com" se o valor UPN de John.Smith@contoso.com já existir no diretório
  • SAÍDA: "Jo.Smith@contoso.com" se os dois valores UPN acima já existirem no diretório

SingleAppRoleAssignment

Função: SingleAppRoleAssignment([appRoleAssignments])

Descrição: retorna um único appRoleAssignment da lista de todos os appRoleAssignments atribuídos a um usuário em um determinado aplicativo. Essa função é necessária para converter o objeto appRoleAssignments em uma cadeia de caracteres de nome de função única. A melhor prática é garantir que apenas um appRoleAssignment seja atribuído a um usuário por vez. Essa função não tem suporte em cenários nos quais os usuários têm várias atribuições de função de aplicativo.

Parâmetros:

Nome Obrigatório/repetição Type Observações
[appRoleAssignments] Obrigatório String Objeto [appRoleAssignments].

Divisão

Função: Split(source, delimiter)

Descrição: divide uma cadeia de caracteres em uma matriz com valores múltiplos, usando o caractere delimitador especificado.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Valor da origem para atualizar.
delimiter Obrigatório String Especifica o caractere usado para dividir a cadeia de caracteres (exemplo: ",")

Dividir uma cadeia de caracteres em uma matriz de vários valores

Exemplo: é necessário usar uma lista de cadeias de caracteres delimitada por vírgula e dividi-las em uma matriz que possa ser conectada a um atributo com vários valores, como o atributo PermissionSets do Salesforce. Nesse exemplo, uma lista de conjuntos de permissões foi preenchida em extensionAttribute5 no Microsoft Entra ID.

Expressão: Split([extensionAttribute5], ",")

Entrada/saída de exemplo:

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

StripSpaces

Função: StripSpaces(source)

Descrição: remove todos os caracteres de espaço (" ") da cadeia de caracteres de origem.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Valor da origem para atualizar.

Comutador

Função: Switch(source, defaultValue, key1, value1, key2, value2, …)

Descrição: Quando o valor de origem corresponde a uma chave, retorna o valor dessa chave. Se o valor da origem não corresponder a nenhuma chave, retorna defaultValue. Os parâmetros key e value devem sempre ocorrer em pares. A função sempre espera um número par de parâmetros. A função não deverá ser usada para atributos referenciais como gerente.

Observação

A função switch executa uma comparação de cadeia de caracteres diferenciando maiúsculas de minúsculas dos valores source e key. Se você quiser executar uma comparação que não diferencia maiúsculas de minúsculas, normalize a cadeia de caracteres de source antes da comparação usando uma função aninhada ToLower e verifique se todas as cadeias de caracteres de key usam letras minúsculas. Exemplo: Switch(ToLower([statusFlag]), "0", "true", "1", "false", "0"). Neste exemplo, o atributo sourcestatusFlag pode ter valores ("True" / "true" / "TRUE"). No entanto, a função Switch sempre a converte em uma cadeia de caracteres "true" em minúsculas antes da comparação com os parâmetros key.

Cuidado

Para o parâmetro source, não use as funções aninhadas IsPresent, IsNull ou IsNullOrEmpty. Em vez disso, use uma cadeia de caracteres vazia literal como um dos valores de chave.
Exemplo: Switch([statusFlag], "Default Value", "true", "1", "", "0"). Nesse exemplo, se o atributo source statusFlag estiver vazio, a função Switch retornará o valor 0.

Cuidado

Problema: o serviço de provisionamento definiu incorretamente um valor de atributo como null no sistema de destino ao usar uma instrução switch.
Resolução: use uma instrução IIF em vez de uma instrução switch para evitar valores nulos inesperados ou use a função IgnoreFlowIfNullOrEmpty com a instrução switch. Por exemplo, switch([companyName], "External", "Company A", "A", "Company B", "B") should be represented as IIF([companyName] = "Company A", "A", IIF([companyName] = "Company B", "B", "External")). Nos casos em que o valor padrão é um atributo, use uma expressão como IgnoreFlowIfNullOrEmpty(switch([companyName], [companyName], "Company A", "A", "Company B", "B")).
Causa raiz: esse problema é específico para cenários em que o Microsoft Entra ID é o sistema de origem e a instrução switch contém um valor padrão.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Source a atualizar.
defaultValue Opcional Cadeia de caracteres Valor padrão a ser usado quando source não corresponde a nenhum parâmetro. Pode ser uma cadeia de caracteres vazia ("").
chave Obrigatório String Parâmetro key com o qual comparar o valor de source.
value Obrigatório String Valor de substituição para o source que corresponde ao parâmetro key.

Substituir um valor com base em um conjunto predefinido de opções

Exemplo: definir o fuso horário do usuário com base no código de estado armazenado no Microsoft Entra ID. Se o código de estado não corresponder a nenhuma das opções predefinidas, use o valor padrão de "Australia/Sydney".

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

Entrada/saída de exemplo:

  • ENTRADA (estado): "QLD"
  • SAÍDA: "Australia/Brisbane"

ToLower

Função: ToLower(source, culture)

Descrição: converte um valor de cadeia de caracteres de origem em letras minúsculas usando as regras de cultura especificadas. Se não houver nenhuma informação de cultura especificada, ela usará a cultura invariável.

Se você quiser definir os valores existentes no sistema de destino para letras minúsculas, atualize o esquema do aplicativo de destino e defina a propriedade caseExact como 'true' do atributo no qual está interessado.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Normalmente o nome do atributo do objeto de source
cultura Opcional Cadeia de caracteres O formato para o nome da cultura com base em RFC 4646 é languagecode2-country/regioncode2, em que regioncode2 é o código de idioma de duas letras e country/regioncode2 é o código de subcultura de duas letras. Exemplos incluem ja-JP para japonês (Japão) e en-US para inglês (Estados Unidos). Nos casos em que um código de idioma de duas letras não estiver disponível, será usado um código de três letras derivado da ISO 639-2.

Converter o valor userPrincipalName (UPN) gerado em letras minúsculas

Exemplo: você gostaria de gerar o valor UPN concatenando os campos de origem PreferredFirstName e PreferredLastName e convertendo todos os caracteres em letras minúsculas.

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

Entrada/saída de exemplo:

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

ToUpper

Função: ToUpper(source, culture)

Descrição: converte um valor de cadeia de caracteres de origem em letras maiúsculas usando as regras de cultura especificadas. Se não houver nenhuma informação de cultura especificada, ela usará a cultura invariável.

Se você quiser definir os valores existentes no sistema de destino como letras maiúsculas, atualize o esquema do aplicativo de destino e defina a propriedade caseExact como "true" do atributo no qual está interessado.

Parâmetros:

Nome Obrigatório/repetição Type Observações
source Obrigatório String Normalmente o nome do atributo do objeto de source.
cultura Opcional Cadeia de caracteres O formato para o nome da cultura com base em RFC 4646 é languagecode2-country/regioncode2, em que regioncode2 é o código de idioma de duas letras e country/regioncode2 é o código de subcultura de duas letras. Exemplos incluem ja-JP para japonês (Japão) e en-US para inglês (Estados Unidos). Nos casos em que um código de idioma de duas letras não estiver disponível, será usado um código de três letras derivado da ISO 639-2.

Word

Função: Word(String,WordNumber,Delimiters)

Descrição: a função Word retorna uma palavra contida em uma cadeia de caracteres com base nos parâmetros que descrevem os delimitadores a serem usados e o número de palavras a serem retornadas. cada cadeia de caracteres separada por um dos caracteres delimitadores na cadeia de caracteres é identificada como palavra:

Se number < 1, retorna uma cadeia de caracteres vazia. Se a cadeia de caracteres for nula, retorna a cadeia de caracteres vazia. Se a cadeia de caracteres for menor que o número de palavras ou a cadeia não contiver palavras identificadas por delimitadores, será retornada uma cadeia de caracteres vazia.

Parâmetros:

Nome Obrigatório/repetição Type Observações
Cadeia de caracteres Obrigatório Atributo com valores múltiplos Cadeia de caracteres da qual uma palavra deve ser retornada.
WordNumber Necessária Inteiro WordNumber: um número que identifica qual número de palavras deve ser retornado
delimiters Obrigatório String Uma cadeia de caracteres que representa o(s) delimitador(s) que deve(m) ser usado(s) para identificar palavras

Exemplo:Word("The quick brown fox",3," ")

Retorna "brown".

Word("This,string!has&many separators",3,",!&#")

Retorna "has".


Exemplos

Esta seção fornece mais exemplos de uso de função de expressão.

Retirar o nome de domínio conhecido

Retirar um nome de domínio conhecido do email de um usuário para obter um nome de usuário. Por exemplo, se o domínio for "contoso.com", você pode usar a seguinte expressão:

Expressão:Replace([mail], "@contoso.com", , ,"", ,)

Entrada/saída de exemplo:

  • INPUT (mail): "john.doe@contoso.com"
  • SAÍDA: "davi.barros"

Gerar o alias de usuário concatenando partes do nome e do sobrenome

Gerar um alias de usuário selecionando as três primeiras letras do nome do usuário e as cinco primeiras letras do sobrenome do usuário.

Expressão:Append(Mid([givenName], 1, 3), Mid([surname], 1, 5))

Entrada/saída de exemplo:

  • ENTRADA (givenName): "Davi"
  • ENTRADA (sobrenome): "Barros"
  • SAÍDA: "DaviBarros"

Adicione uma vírgula entre o sobrenome e o nome.

Adicione uma vírgula entre o sobrenome e o nome.

Expressão:Join(", ", "", [surname], [givenName])

Entrada/saída de exemplo:

  • ENTRADA (givenName): "Davi"
  • ENTRADA (sobrenome): "Barros"
  • SAÍDA: "Barros, Davi"

Gere uma ID para um usuário com base na sua ID de objeto do Microsoft Entra. Remova todas as letras do ID e adicione 1000 no início.

Essa expressão permite gerar um identificador para um usuário que começa com 1000 e provavelmente será exclusivo.

Expressão: Join("", 1000, Replace(ConvertToUTF8Hex([objectId]), , "[a-zA-Z_]*", , "", , ))

Entrada/saída de exemplo:

  • INPUT: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
  • SAÍDA: "100064303565343762312333930392343435612626135652636136306362633065346234"