Partilhar via


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

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

Visão geral da sintaxe

A sintaxe para expressões para mapeamentos de atributo é uma reminiscência de funções do Visual Basic for Applications (VBA).

  • Toda a expressão deve ser definida em termos de funções, que consistem em um nome seguido de 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 para 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 deverá ser escapada com o símbolo de barra invertida ( \ ). Por exemplo: "Nome da empresa: \"Contoso\""

  • A sintaxe diferencia maiúsculas de minúsculas, o que deve ser considerado ao digitá-las como strings em uma função vs copiar colando-as diretamente daqui.

Lista de funções

AcrescentarAppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexCountCStrDateAddDateDiffDateFromNumFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNullIsNullOrEmptyIsPresentIsStringItemJoinLeftMidNormalizeDiacriticsNãoAgoraNumFromDatePCaseRandomStringRedactRemoveDuplicatesSubstituirSelectUniqueValueSingleAppRoleAssignmentDividirStripSpacesAlternarparaInferiorpara Superior Palavra


Acrescentar

Função: Append (fonte, sufixo)

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String Normalmente, o nome do atributo do objeto de origem.
sufixo Necessário String A cadeia de caracteres que você deseja acrescentar ao final do valor de origem.

Acrescentar sufixo constante ao nome de usuário

Exemplo: se você estiver usando um Salesforce Sandbox, talvez seja necessário acrescentar outro sufixo a todos os seus nomes de usuário antes de sincronizá-los.

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

Amostra de entrada/saída:

  • INPUT: (userPrincipalName): "John.Doe@contoso.com"
  • SAÍDA: "John.Doe@contoso.com.test"

AppRoleAssignmentsComplex

Função: AppRoleAssignmentsComplex([appRoleAssignments])

Descrição: Usado para configurar várias funções para um usuário. Para uso detalhado, consulte Tutorial - Personalizar mapeamentos de atributos de provisionamento de usuário para aplicativos SaaS no Microsoft Entra ID.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
[appRoleAssignments] Necessário String [appRoleAssignments] objeto.

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 pouco para:

  • 0 - se um ou ambos os bits correspondentes em value1 e value2 forem 0
  • 1 - se ambos os bits correspondentes forem 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/ Repetindo Type Notas
valor1 Necessário Número Valor numérico que deve ser AND'ed com value2
valor2 Necessário Número Valor numérico que deve ser AND'ed com value1

Exemplo:BitAnd(&HF, &HF7)

11110111 E 00000111 = 00000111 assim BitAnd retorna 7, o valor binário de 00000111.


CBool

Função:CBool(Expression)

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Expression Necessário expressão Qualquer expressão válida

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


CDate

Função:
CDate(expression)

Description:
A função CDate retorna um UTC DateTime de uma cadeia de caracteres. DateTime não é um tipo de atributo nativo, mas pode ser usado em funções de data, como FormatDateTime e DateAdd.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Expression Necessário Expression Qualquer cadeia de caracteres válida que represente uma data/hora. Para obter os formatos suportados, consulte Cadeias de caracteres de formato de data e hora personalizadas do .NET.

Observações:
A string retornada está sempre em UTC e segue o formato M/d/aa h:mm:ss tt.

Exemplo 1:
CDate([StatusHireDate])
Amostra de entrada/saída:

  • ENTRADA (StatusHireDate): "2020-03-16-07:00"
  • OUTPUT: "16/03/2020 07:00:00" <-- Observe que o equivalente UTC do DateTime acima é retornado

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

  • ENTRADA: "2021-06-30+08:00"
  • OUTPUT: "6/29/2021 4:00:00 PM" <-- Observe que o equivalente UTC do DateTime acima é retornado

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

  • ENTRADA: "2009-06-15T01:45:30-07:00"
  • OUTPUT: "6/15/2009 8:45:30 AM" <-- Observe que o equivalente UTC do DateTime acima é retornado

Coalesce

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

Descrição: retorna o primeiro valor de origem que não é NULL. Se todos os argumentos forem NULL 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/ Repetindo Type Notas
fonte1 ... fonteN Necessário String Obrigatório, número variável de vezes. Normalmente, o nome do atributo do objeto de origem.
defaultValue Opcional String Valor padrão a ser usado quando todos os valores de origem são NULL. Pode ser string vazia ("").

Valor de email de fluxo se não NULL, caso contrário, fluxo userPrincipalName

Exemplo: Você deseja fluir o atributo mail se ele estiver presente. Se não estiver, você deseja fluir o valor de userPrincipalName em vez disso.

Expression:Coalesce([mail],[userPrincipalName])

Amostra de entrada/saída:

  • INPUT (correio): NULL
  • INPUT (userPrincipalName): "John.Doe@contoso.com"
  • SAÍDA: "John.Doe@contoso.com"

ConvertToBase64

Função: ConvertToBase64 (fonte)

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String String a ser convertida para base 64

Exemplo:ConvertToBase64("Hello world!")

Devolve "SABlAGwAbABvACAAdwBvAHIAbABkACEA"


ConvertToUTF8Hex

Função: ConvertToUTF8Hex (fonte)

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String String a ser convertida em UTF8 Hex

Exemplo:ConvertToUTF8Hex("Hello world!")

Devolve 48656C6C6F20776F726C6421


Count

Função: Contagem(atributo)

Descrição: A função Count retorna o número de elementos em um atributo de vários valores.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
atributo Necessário atributo Atributo de vários valores que tem 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/ Repetindo Type Notas
valor Necessário numérico, de referência ou booleano Pode ser um valor numérico, atributo de referência ou booleano.

Exemplo:CStr([dn])

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


DateAdd

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

Description:
Retorna uma cadeia de caracteres de data/hora que representa uma data à qual um intervalo de tempo especificado é adicionado. A data de retorno está no formato: M/d/aaaa h:mm:ss tt.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
interval Necessário String Intervalo de tempo que pretende adicionar. Consulte os valores aceitos após esta tabela.
valor Necessário Número O número de unidades que você deseja adicionar. Pode ser positivo (para obter datas no futuro) ou negativo (para obter datas no passado).
dateTime Necessário DateTime DateTime que representa a data à qual o intervalo é adicionado.

Ao passar 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 Agora .

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

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

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

Exemplo interval valor dateTime (valor da variável StatusHireDate) saída
Adicionar 7 dias à data de contratação "d" 7 2012-03-16-07:00 23/03/2012 07:00:00
Obter uma data dez dias antes para a data de contratação "d" -10 2012-03-16-07:00 06/03/2012 07:00:00
Adicionar duas semanas à data de contratação "WW" 2 2012-03-16-07:00 30/03/2012 07:00:00
Adicionar dez meses à data de contratação "m" 10 2012-03-16-07:00 16/01/2013 07:00:00
Adicionar dois anos à data de contratação "AAAA" 2 2012-03-16-07:00 16/03/2014 07:00:00

DateDiff

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

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

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

Parâmetros:

Nome Obrigatório/Opcional Type Notas
interval Necessário String Intervalo de tempo a utilizar para calcular a diferença.
data1 Necessário DateTime DateTime que representa uma data válida.
data2 Necessário DateTime DateTime que representa uma data válida.

Ao passar 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 Agora .

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

  • Ano aaaa
  • m Mês
  • d Dia
  • Semana ww
  • h Hora
  • n 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 interval data1 data2 saída
Diferença positiva em dias entre duas datas d 2021-08-18+08:00 2021-08-31+08:00 13
Diferença negativa de dias entre duas datas d 25/8/2021 17:41:18 2012-03-16-07:00 -3449
Diferença de semanas entre duas datas ww 25/8/2021 17:41:18 2012-03-16-07:00 -493
Diferença de meses entre duas datas m 25/8/2021 17:41:18 2012-03-16-07:00 -113
Diferença de anos entre duas datas yyyy 25/8/2021 17:41:18 2012-03-16-07:00 -9
Diferença quando ambas as datas são iguais d 2021-08-31+08:00 2021-08-31+08:00 0
Diferença de 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 86400

Exemplo 2: Combine 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 cinco 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 tipo DateTime.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
valor Necessário Date Data do AD a ser convertida para o tipo DateTime

Exemplo:DateFromNum([lastLogonTimestamp])

DateFromNum(129699324000000000)

Retorna um DateTime representando 1º de janeiro de 2012 às 23h00.


FormatDateTime

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

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String Normalmente, o nome do atributo do objeto de origem.
dateTimeStyles Opcional String 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 valores suportados, consulte o documento DateTimeStyles. Se deixado vazio, o valor padrão usado é DateTimeStyles.RoundtripKind, DateTimeStyles.AllowLeadingWhite, DateTimeStyles.AllowTrailingWhite
inputFormat Necessário String Formato esperado do valor de origem. Para formatos suportados, consulte Cadeias de caracteres de formato de data e hora personalizadas do .NET.
outputFormat Necessário String Formato da data de saída.

Data de saída 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.

Expression:

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

Amostra de entrada/saída:

  • INPUT (extensionAttribute1): "20150123105347.1Z"
  • REALIZAÇÃO: "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(expressão)

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 atributo incluído for NULL ou vazio.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Expression Necessário Expression Expressão a avaliar

Exemplo 1: Não fluir um atributo se ele for nulo
IgnoreFlowIfNullOrEmpty([department])
A expressão acima descarta o atributo department do fluxo de provisionamento se ele for nulo ou vazio.

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


IIF

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

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
condição Necessário Variável ou expressão Qualquer valor ou expressão que possa ser avaliado como verdadeiro ou falso.
valorSeVerdadeiro Necessário Variável ou String Se a condição for avaliada como true, o valor retornado.
valorSeFalso Necessário Variável ou String Se a condição for avaliada como false, o valor 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 igual a (>=)
  • Inferior a (<) e inferior a igual a (<=)

Exemplo: defina o valor do atributo de destino para o atributo de país de origem se country="USA", caso contrário, defina o valor do atributo de destino para 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, consulte Falha na criação devido a valores nulos/vazios.

  • A função IIF atualmente não suporta 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", retornar o valor "True", senão retornar "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", retorne o valor "True", caso contrário retorne "False". IIF([country]="USA","True",IIF([state]="CA","True","False"))
  • Se o atributo source usado na função IIF estiver vazio ou nulo, a verificação de condição falhará.
    • Exemplos de expressões IIF sem suporte:
      • IIF([country]="","Other",[country])
      • IIF(IsNullOrEmpty([country]),"Other",[country])
      • IIF(IsPresent([country]),[country],"Other")
    • Solução recomendada: Use a função Switch para verificar valores vazios/nulos. Exemplo: Se o atributo country estiver vazio, defina o valor "Outro". Se estiver presente, passe o valor do atributo country para o atributo target.
      • 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 string.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
valor1 Necessário String String a ser pesquisada
valor2 Necessário String String a ser encontrada
start Opcional Número inteiro Posição inicial para localizar a substring
compareType Opcional Enumeração Pode ser vbTextCompare ou vbBinaryCompare

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

Avalia até 5

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

Avalia até 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 Null é expresso pela ausência do atributo.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Expression Necessário Expression Expressão a avaliar

Exemplo:IsNull([displayName])

Retorna True se o atributo não estiver presente.


IsNullorEmpty

Função: IsNullOrEmpty(Expressão)

Descrição: Se a expressão for nula ou uma cadeia de caracteres vazia, a função IsNullOrEmpty retornará true. Isso avalia como True se o atributo está ausente ou está presente, mas é uma cadeia de caracteres vazia. O inverso desta função é chamado IsPresent.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Expression Necessário Expression Expressão a avaliar

Exemplo:IsNullOrEmpty([displayName])

Retorna 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 é Nula e não está vazia, a função IsPresent retornará true. O inverso dessa função é chamado IsNullOrEmpty.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Expression Necessário Expression Expressão a avaliar

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 para um tipo de cadeia de caracteres, a função IsString será avaliada como True.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Expression Necessário Expression Expressão a avaliar

Item

Função: Item(atributo, índice)

Descrição: A função Item retorna um item de uma cadeia de caracteres/atributo de vários valores.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
atributo Necessário Atributo Atributo de vários valores a ser pesquisado
índice Necessário Número inteiro Índice para um item na cadeia de caracteres de vários valores

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


Participar

Função: Join(separador, source1, source2, ...)

Descrição: Join() é semelhante a Append(), exceto que ele pode combinar vários valores de cadeia de caracteres de origem em uma única cadeia de caracteres, e cada valor é separado por uma cadeia de caracteres separadora .

Se um dos valores de origem for um atributo de vários valores, todos os valores desse atributo serão unidos, separados pelo valor separador.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
separador Necessário String String usada para separar valores de origem quando eles são concatenados em uma cadeia de caracteres. Pode ser "" se nenhum separador for necessário.
fonte1 ... fonteN Número de vezes obrigatório e variável String Valores de cadeia de caracteres a serem unidos.

Left

Função: Esquerda (String, NumChars)

Descrição: A função Left retorna um número especificado de caracteres 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 string for null, retorne string vazia. Se string contiver menos caracteres do que o número especificado em numChars, uma string idêntica a string (ou seja, contendo todos os caracteres no parâmetro 1) será retornada.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Cadeia Obrigatório Atributo A cadeia de caracteres para retornar caracteres de
NumChars Necessário Número inteiro Um número que identifica o número de caracteres a serem retornados do início (à esquerda) da cadeia de caracteres

Exemplo:Left("John Doe", 3)

Retorna "Joh".


Mid

Função: Meio (fonte, início, comprimento)

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String Geralmente nome do atributo.
start Necessário Número inteiro Índice na cadeia de caracteres de origem onde a substring deve começar. O primeiro caractere na cadeia de caracteres tem um índice de 1, o segundo caractere tem um índice 2 e assim por diante.
length Necessário Número inteiro Comprimento da substring. Se o comprimento terminar fora da cadeia de caracteres de origem, a função retornará a subcadeia do índice inicial até o final da cadeia de caracteres de origem.

NormalizeDiacritics

Função: NormalizeDiacritics (fonte)

Descrição: Requer um argumento de cadeia de caracteres. Retorna a cadeia de caracteres, mas com quaisquer caracteres diacríticos substituídos por caracteres não diacríticos equivalentes. Normalmente usado para converter nomes e sobrenomes contendo caracteres diacríticos (acentos) em valores legais que podem ser usados em vários identificadores de usuário, como nomes principais de usuário, nomes de contas SAM e endereços de e-mail.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String Geralmente um atributo de nome ou sobrenome.
Personagem com Diacritic Caráter normalizado Personagem com Diacritic Caráter normalizado
ä, à, â, ã, å, á, ą, ă, ā, ā́, ā̀, ā̂, ā̃, ǟ, ā̈, ǡ, a̱, å̄ a Ä, À, Â, Ã, Å, Á, Ą, Ă, Ā, Ā́, Ā̀, Ā̂, Ā̃, Ǟ, Ā̈, Ǡ, 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̱ posso Ï, Î, Ì, Í, İ, Ī, Ī́, Ī̀, Ī̂, Ī̃, 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̱ S Ü, Ù, Û, Ú, Ů, Ű, Ū, Ū́, Ū̀, Ū̂, Ū̃, U̇̄, Ǖ, Ṻ, Ṳ̄, U̱ U
ÿ, ý, ȳ, ȳ́, ȳ̀, ȳ̃, y̱ S Ÿ, Ý, Ȳ, Ȳ́, Ȳ̀, Ȳ̃, Y̱ Y
ź, ž, ż, z̄, ẕ z Ź, Ž, Ż, Z̄, Ẕ Z

Remover diacríticos de uma cadeia de caracteres

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

Expressão: NormalizeDiacritics([givenName])

Amostra de entrada/saída:

  • INPUT (givenName): "Zoë"
  • SAÍDA: "Zoe"

Not

Função: Não (fonte)

Descrição: inverte o valor booleano da fonte. Se o valor de origem for True, retornará False. Caso contrário, retorna True.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário Corda Booleana Os valores de origem esperados são "True" ou "False".

Agora

Função: Agora()

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

Exemplo:Now()
Valor de exemplo retornado 02/07/2021 15:33:38


NumFromDate

Função: NumFromDate(value)

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
valor Necessário String Cadeia de caracteres de data e 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 para o formato ISO 8601.

Exemplo:

  • Exemplo de dia útil: supondo que você queira mapear o atributo ContractEndDate de 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 de fuso horário para corresponder à sua localidade. NumFromDate(Join("", FormatDateTime([ContractEndDate], ,"yyyy-MM-ddzzz", "yyyy-MM-dd"), " 23:59:59-08:00"))

  • Exemplo de SuccessFactors: Supondo que você queira mapear o atributo endDate de SuccessFactors, que está no formato M/d/aa hh:mm:ss tt para o campo accountExpires no AD, veja como você pode usar essa função e alterar o deslocamento de fuso horário para corresponder à 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 (fonte, wordSeparators)

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

Parâmetros:

Nome Obrigatório/Opcional Type Notas
fonte Necessário String valor de origem para converter em maiúsculas e minúsculas.
wordSeparadores Opcional String Especifique um conjunto de caracteres que é usado como separadores de palavras (exemplo: " ,-'")

Observações:

  • Se o parâmetro wordSeparators não for especificado, o PCase invocará internamente a função ToTitleCase do .NET para converter a cadeia de caracteres de origem em maiúsculas e minúsculas. A função .NET ToTitleCase suporta um conjunto abrangente de categorias de caracteres Unicode como separadores de palavras.
    • Caráter de espaço
    • Novo caractere de linha
    • Caracteres de controle como CRLF
    • Formatar caracteres de controle
    • ConectorCaracteres de pontuação como sublinhado
    • Caracteres de pontuação de traço como traço e hífen (incluindo caracteres como En Dash, Em Dash, hífen duplo e assim por diante)
    • Caracteres OpenPunctuation e ClosePunctuation que ocorrem em pares como parênteses, colchete encaracolado, colchete angular e assim por diante.
    • Caracteres InitialQuotePunctuation e FinalQuotePontuação , como aspas simples, aspas duplas e aspas angulares.
    • OutrosCaracteres de pontuação como ponto de exclamação, sinal numérico, sinal de porcentagem, e comercial, asterisco, vírgula, ponto final, dois pontos, ponto-e-vírgula e assim por diante.
    • Caracteres MathSymbol como sinal de mais, sinal menor que e maior que sinal, linha vertical, til, sinal de igual e assim por diante.
    • Caracteres CurrencySymbol como cifrão, centavo, sinal de libra, símbolo de euro e assim por diante.
    • Caracteres ModifierSymbol como macron, acentos, pontas de seta e assim por diante.
    • Caracteres OtherSymbol como sinal de direitos autorais, sinal de grau, sinal registrado e assim por diante.
  • Se o parâmetro wordSeparators for especificado, o PCase usará apenas os caracteres especificados como separadores de palavras.

Exemplo:

Digamos que você esteja adquirindo os atributos firstName e lastName do SAP SuccessFactors e, no RH, ambos os atributos estão em maiúsculas. Usando a função PCase, você pode converter o nome para maiúsculas e minúsculas, como mostrado aqui.

Expression Entrada Saída Notas
PCase([firstName]) firstName = "PABLO GONSALVES (SEGUNDO)" "Pablo Gonsalves (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]," '-") sobrenome = "PINTO-DE'SILVA" "Pinto-de'Silva" A função PCase usa caracteres no parâmetro wordSeparators para identificar palavras e transformá-las em maiúsculas e minúsculas .
PCase(Join(" ",[firstName],[lastName])) firstName = GREGORY, lastName = "JAMES" "Gregório Tiago" Você pode aninhar a função Join no 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 string aleatória com base nas condições especificadas. Os caracteres permitidos podem ser identificados aqui.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Comprimento Necessário Número Comprimento total da cadeia aleatória. Isso deve ser maior ou igual à soma de MinimumNumbers, MinimumSpecialCharacters e MinimumCapital. 256 caracteres máx.
MínimoNúmeros Necessário Número Números mínimos na cadeia aleatória.
MinimumSpecialCharacters Necessário Número Número mínimo de caracteres especiais.
Capital Mínimo Necessário Número Número mínimo de letras maiúsculas na cadeia aleatória.
MínimoLetras minúsculas Necessário Número Número mínimo de letras minúsculas na cadeia aleatória.
CaracteresParaEvitar Opcional String Caracteres a serem excluídos ao gerar a cadeia de caracteres aleatória.

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

Exemplo 2: - Gere uma string 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 string 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).


Redação

Função: Redact()

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Atributo/Valor Necessário String Especifique o atributo ou constante / string para redigir a partir 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 usa uma cadeia de caracteres de vários valores e verifique se cada valor é exclusivo.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
atributo Necessário Atributo de vários valores Atributo de vários valores que removeu duplicatas

Exemplo:RemoveDuplicates([proxyAddresses]) Retorna um atributo proxyAddress limpo onde todos os valores duplicados são removidos.


Replace

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

Descrição: substitui valores dentro de uma cadeia de caracteres de maneira que diferencia maiúsculas de minúsculas. A função se comporta de forma diferente dependendo dos parâmetros fornecidos:

  • Quando oldValue e replacementValue são fornecidos:

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

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

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

Nota

Para saber mais sobre construções de agrupamento regex e subexpressões nomeadas, consulte Agrupando construções em expressões regulares.

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

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

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String Normalmente, o nome do atributo do objeto de origem .
oldValue Opcional String Valor a ser substituído na fonte ou modelo.
regexPattern Opcional String Padrão Regex para o valor a ser substituído na origem. Quando replacementAttributeName é usado, o regexPattern é aplicado para extrair um valor de replacementAttributeName.
regexGroupName Opcional String Nome do grupo dentro de regexPattern. Quando o nome replacementAttributeName é usado, extraímos o valor do grupo regex nomeado do replacementAttributeName e o retornamos como o valor de substituição.
substituiçãoValor Opcional String Novo valor para substituir o antigo.
replacementAttributeName Opcional String Nome do atributo a ser usado para o valor de substituição
aninhado Opcional String Quando o valor do modelo é fornecido, procuramos oldValue dentro do modelo e o substituímos pelo valor de 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 o seu sistema de RH tenha um atributo BusinessTitle. Como parte das recentes mudanças de cargo, sua empresa deseja atualizar qualquer pessoa com o título comercial "Desenvolvedor de Produto" para "Engenheiro de Software". Nesse caso, você pode usar a seguinte expressão no mapeamento de atributos.

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

  • Fonte: [BusinessTitle]
  • oldValue: "Desenvolvedor de produtos"
  • replacementValue: "Engenheiro de Software"
  • Saída de expressão: Engenheiro de Software

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

O parâmetro oldValue é um nome incorreto neste cenário. Na verdade, é o valor que é substituído.
Digamos que você queira sempre gerar ID de login no formato <username>@contoso.com. Há um atributo source chamado UserID e você deseja que esse valor seja usado para a <username> parte do ID de login. Nesse caso, você pode usar a seguinte expressão no mapeamento de atributos.

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

  • fonte: [UserID] = "jsmith"
  • oldValue: "<username>"
  • Modelo: "<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 padrões regex ou nomes de grupo regex.

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

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

  • fonte: [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 móvel e retorna apenas dígitos.

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

  • Fonte: [mobile] = "+1 (999) 888-7777"
  • regexPattern: "[()\\s-]+"
  • replacementValue: "" (cadeia 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 foi alterado e você deseja 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 atributos para extrair o número da rua.

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

  • fonte: [AddressLineData] = "Rua Tremont, 545"
  • regexPattern: "(?<streetNumber>^\\d*)"
  • regexGroupName: "número da rua"
  • replacementValue: "888"
  • Saída de 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 ID de login sem sufixo de domínio.

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

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

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

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

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

  • fonte: [telephoneNumber] = "" (string vazia)
  • regexPattern: "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})"
  • regexGroupName: "TelefoneNúmero"
  • replacementAttributeName: [mobile] = "+91 8887779999"
  • Saída da expressão: 8887779999

Exemplo 6: Você precisa encontrar caracteres que correspondam a um valor de expressão regular e removê-los.

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

  • fonte [mailNickname]
  • oldValue: "john_doe72"
  • replaceValue: ""
  • Saída de 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 exclusivas definidas usando expressões. A função avalia cada regra e, em seguida, verifica o valor gerado quanto à exclusividade no aplicativo/diretório de destino. O primeiro valor único encontrado é o retornado. Se todos os valores já existirem no destino, a entrada será depositada e o motivo será registrado nos logs de auditoria. Não há limite superior para o número de argumentos que podem ser fornecidos.

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

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

  • Esta função destina-se apenas a ser usada para criações de entrada. Ao usá-lo com um atributo, defina a propriedade Apply Mapping como Somente durante a criação do objeto.

  • Esta função é atualmente suportada para utilização com estas aplicações:

    • Dia de trabalho para o provisionamento de usuários do Ative Directory
    • SuccessFactors para provisionamento de usuários do Ative Directory
    • Provisionamento controlado por API para o Ative Directory local

    SelectUniqueValue não é suportado para uso com outros aplicativos de provisionamento.

  • A pesquisa LDAP que a função SelectUniqueValue executa no Ative Directory local não escapa de 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. Aninhar a função NormalizeDiacritics como mostrado neste exemplo para normalizar caracteres especiais.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
uniqueValueRule1 ... uniqueValueRuleN São necessários pelo menos 2, sem limite superior String Lista de regras exclusivas de geração de valor a avaliar.

Gerar valor exclusivo para o atributo userPrincipalName (UPN)

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

Expression:

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

Amostra de entrada/saída:

  • INPUT (PreferredFirstName): "João"
  • INPUT (PreferredLastName): "Smith"
  • OUTPUT: "John.Smith@contoso.com" se o valor UPN de John.Smith@contoso.com ainda não existir no diretório
  • OUTPUT: "J.Smith@contoso.com" se o valor UPN de John.Smith@contoso.com já existir no diretório
  • OUTPUT: "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 para um determinado aplicativo. Essa função é necessária para converter o objeto appRoleAssignments em uma única cadeia de caracteres de nome de função. A prática recomendada é garantir que apenas um appRoleAssignment seja atribuído a um usuário de cada vez. Essa função não é suportada em cenários em que os usuários têm várias atribuições de função de aplicativo.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
[appRoleAssignments] Necessário String [appRoleAssignments] objeto.

Dividida

Função: Split (fonte, delimitador)

Descrição: Divide uma cadeia de caracteres em uma matriz de vários valores, usando o caractere delimitador especificado.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String valor de origem a ser atualizado.
delimitador Necessá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: você precisa pegar uma lista delimitada por vírgulas de cadeias de caracteres e dividi-las em uma matriz que possa ser conectada a um atributo de vários valores, como o atributo PermissionSets do Salesforce. Neste exemplo, uma lista de conjuntos de permissões é preenchida em extensionAttribute5 no Microsoft Entra ID.

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

Amostra de entrada/saída:

  • INPUT (extensionAttribute5): "PermissionSetOne, PermissionSetTwo"
  • SAÍDA: ["PermissionSetOne", "PermissionSetTwo"]

Espaços StripSpaces

Função: StripSpaces (fonte)

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String valor de origem a ser atualizado.

Switch

Função: Switch (fonte, defaultValue, key1, value1, key2, value2, ...)

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

Nota

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

Atenção

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"). Neste exemplo, se o atributo statusFlag source estiver vazio, a função Switch retornará o valor 0.

Atenção

Problema: o serviço de provisionamento define 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") deve ser representado como 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/ Repetindo Type Notas
fonte Necessário String Valor de origem a ser atualizado.
defaultValue Opcional String Valor padrão a ser usado quando a origem não corresponde a nenhuma chave. Pode ser string vazia ("").
key Necessário String Chave para comparar o valor de origem com.
valor Necessário String Valor de substituição para a origem correspondente à chave.

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

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

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

Amostra de entrada/saída:

  • ENTRADA (estado): "QLD"
  • SAÍDA: "Austrália/Brisbane"

ToLower

Função: ToLower (fonte, cultura)

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

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String Normalmente, o nome do atributo do objeto de origem
cultura Opcional String O formato para o nome da cultura baseado no RFC 4646 é languagecode2-country/regioncode2, onde languagecode2 é 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 está disponível, um código de três letras derivado da ISO 639-2 é usado.

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

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

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

Amostra de entrada/saída:

  • INPUT (PreferredFirstName): "João"
  • INPUT (PreferredLastName): "Smith"
  • SAÍDA: "john.smith@contoso.com"

ToUpper

Função: ToUpper (fonte, cultura)

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

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

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
fonte Necessário String Normalmente, o nome do atributo do objeto de origem.
cultura Opcional String O formato para o nome da cultura baseado no RFC 4646 é languagecode2-country/regioncode2, onde languagecode2 é 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 está disponível, um código de três letras derivado da ISO 639-2 é usado.

Word

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

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

Se o número < 1, retorna a cadeia de caracteres vazia. Se string for null, retorna string vazia. Se string contiver menos de palavras numéricas ou string não contiver palavras identificadas por delimitadores, uma string vazia será retornada.

Parâmetros:

Nome Obrigatório/ Repetindo Type Notas
Cadeia Obrigatório Atributo de vários valores String para retornar uma palavra.
Número de palavras Necessário Número inteiro Número que identifica qual número de palavra deve retornar
delimitadores Necessário String Uma cadeia de caracteres que representa o(s) delimitador(es) que deve ser usado para identificar palavras

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

Retorna "marrom".

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

Devolve "tem".


Exemplos

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

Retirar nome de domínio conhecido

Remova um nome de domínio conhecido do e-mail 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:

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

Amostra de entrada/saída:

  • INPUT (correio): "john.doe@contoso.com"
  • SAÍDA: "john.doe"

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

Gere um alias de usuário usando as três primeiras letras do primeiro nome do usuário e as cinco primeiras letras do sobrenome do usuário.

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

Amostra de entrada/saída:

  • INPUT (givenName): "João"
  • INPUT (sobrenome): "Doe"
  • SAÍDA: "JohDoe"

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

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

Expression:Join(", ", "", [surname], [givenName])

Amostra de entrada/saída:

  • INPUT (givenName): "João"
  • INPUT (sobrenome): "Doe"
  • SAÍDA: "Doe, John"

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

Esta 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_]*", , "", , ))

Amostra de entrada/saída:

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