I Microsoft Identity Manager (MIM) 2016 kan du ändra attributvärden innan du skickar dem till ett mål i en funktionsaktivitet eller deklarativ etablering. Syftet med det här dokumentet är att ge dig en översikt över tillgängliga funktioner och en beskrivning av hur du kan använda dem.
Att konfigurera attributflödesmappningar är en elementär uppgift när du konfigurerar synkroniseringsregler. Den enklaste formen av en attributflödesmappning är en direkt mappning. Som namnet anger tar en direktmappning värdet för ett källattribut och tillämpar det på det konfigurerade målattributet. Det finns fall där du antingen behöver befintliga attributvärden som ska ändras eller nya attributvärden som ska beräknas innan systemet tillämpar dem på ett mål.
Funktioner är en inbyggd metod som används för att definiera vilken typ av ändring du behöver synkroniseringsmotorn för att tillämpa när du genererar ett attributvärde för ett mål.
MIM-funktionerna distribueras i följande kategorier:
Datamanipulering: Utför en mängd olika manipuleringsåtgärder på strängar.
Datahämtning: Extrahera data från attributvärden.
Datagenerering: Generera värden.
Logik: Utföra åtgärder baserat på villkor.
Följande avsnitt innehåller mer information om funktionerna i varje kategori.
Funktioner för datamanipulering
Datamanipuleringsfunktioner används för att utföra en mängd olika manipuleringsåtgärder på strängar.
| Concatenate |
Detalj |
| Beskrivning |
Funktionen Sammanfoga sammanfogar två eller flera strängar. |
| Funktionssignatur |
string1 + string2... |
| Ingångar |
Två eller flera strängar. |
| Verksamhet |
Alla indatasträngsparametrar sammanfogas med varandra. |
| Utdata |
En sträng. |
| Versal |
Detalj |
| Beskrivning |
Funktionen Versaler konverterar alla tecken i en sträng till versaler. |
| Funktionssignatur |
String UpperCase(string) |
| Ingångar |
En sträng. |
| Verksamhet |
Alla gemener i indataparametern konverteras till versaler. Exempel: UpperCase("test") resulterar i "TEST". |
| Utdata |
En sträng. |
| Gemen |
Detalj |
| Beskrivning |
Funktionen Gemener konverterar alla tecken i en sträng till gemener. |
| Funktionssignatur |
String LowerCase(string) |
| Ingångar |
En sträng. |
| Verksamhet |
Alla versaler i indataparametern konverteras till gemener. Exempel: LowerCase("TeSt") resulterar i "test". |
| Utdata |
En sträng. |
| ProperCase |
Detalj |
| Beskrivning |
Funktionen ProperCase konverterar det första tecknet för varje blankstegsavgränsat ord i en sträng till versaler. Alla andra tecken konverteras till gemener. |
| Funktionssignatur |
String ProperCase(string) |
| Ingångar |
En sträng. |
| Verksamhet |
Det första tecknet för varje blankstegsavgränsat ord i indataparametern konverteras till versaler. Alla versaler konverteras till gemener. Om ett ord i indataparametern börjar med ett icke-alfabettecken konverteras inte ordets första tecken till versaler. Till exempel:-
ProperCase("TEsT") resulterar i "Test". -
ProperCase("britta simon") resulterar i "Britta Simon". -
ProperCase(" TEsT") resulterar i " Test". -
ProperCase("\$TEsT") resulterar i "\$Test".
|
| Utdata |
En sträng. |
| LTrim |
Detalj |
| Beskrivning |
Funktionen LTrim tar bort de inledande blankstegen från en sträng. |
| Funktionssignatur |
String LTrim(string) |
| Ingångar |
En sträng. |
| Verksamhet |
De inledande blankstegstecken som finns i indataparametern tas bort. Exempel: LTrim(" Test ") resulterar i "Test ". |
| Utdata |
En sträng. |
| RTrim |
Detalj |
| Beskrivning |
RTrim-funktionen tar bort avslutande blanksteg från en sträng. |
| Funktionssignatur |
String RTrim(string) |
| Ingångar |
En sträng. |
| Verksamhet |
De avslutande blankstegstecken som finns i indataparametern tas bort. Exempel: RTrim(" Test ") resulterar i " Test". |
| Utdata |
En sträng. |
| Trimma |
Detalj |
| Beskrivning |
Funktionen Trim tar bort inledande och avslutande blanksteg från en sträng. |
| Funktionssignatur |
String Trim(string) |
| Ingångar |
En sträng. |
| Verksamhet |
De inledande och avslutande blankstegstecken som finns i strängen tas bort. Exempel: Trim(" Test ") resulterar i "Test". |
| Utdata |
En sträng. |
|
|
| RightPad |
Detalj |
| Beskrivning |
RightPad-funktionen högerkuddar en sträng till en angiven längd med hjälp av ett angivet utfyllnadstecken. |
| Funktionssignatur |
String RightPad(string, length, padCharacter) |
| Ingångar |
-
sträng: Strängen som ska fyllas på.
-
längd: Ett heltal som representerar strängens önskade längd.
-
padCharacter: En sträng som består av ett enda tecken som ska användas som ett strecktecken.
|
| Verksamhet |
Om längden på sträng är mindre än längdläggs padCharacter upprepade gånger till slutet av sträng tills strängen längd är lika med längd. Till exempel:-
RightPad("User", 10, "0") resulterar i "User000000". -
RightPad(RandomNum(1,10), 5, "0") kan resultera i "9000".
|
| Utdata |
Om sträng har en längd som är större än eller lika med längdreturneras en sträng som är identisk med sträng. Om längden på sträng är mindre än längdreturneras en ny sträng med önskad längd. Den nya strängen innehåller sträng vadderad med en padCharacter. Om sträng är null returnerar funktionen en tom sträng.
Obs: padCharacter kan vara ett blankstegstecken, men det kan inte vara ett null-värde. Om längden på sträng är lika med eller större än längdreturneras sträng oförändrad. |
| LeftPad |
Detalj |
| Beskrivning |
LeftPad-funktionen left-pads en sträng till en angiven längd med hjälp av ett angivet utfyllnadstecken. |
| Funktionssignatur |
String LeftPad(string, length, padCharacter) |
| Ingångar |
-
sträng: Strängen som ska fyllas på.
-
längd: Ett heltal som representerar strängens önskade längd.
-
padCharacter: En sträng som består av ett enda tecken som ska användas som ett strecktecken.
|
| Verksamhet |
Om längden på sträng är mindre än längdläggs padCharacter upprepade gånger till början av sträng tills strängen längd är lika med längd. Till exempel:-
RightPad("User", 10, "0") resulterar i "000000User". -
RightPad(RandomNum(1,10), 5, "0") kan resultera i "0009".
|
| Utdata |
Om sträng har en längd som är större än eller lika med längdreturneras en sträng som är identisk med sträng. Om längden på sträng är mindre än längdreturneras en ny sträng med önskad längd. Den nya strängen innehåller sträng vadderad med en padCharacter. Om sträng är null returnerar funktionen en tom sträng.
Obs: padCharacter kan vara ett blankstegstecken, men det kan inte vara ett null-värde. Om längden på sträng är lika med eller större än längdreturneras sträng oförändrad. |
| Bitor |
Detalj |
| Beskrivning |
BitOr-funktionen anger en angiven bit på en flagga till 1. |
| Funktionssignatur |
Int BitOr(mask, flag) |
| Ingångar |
-
mask: Ett hexadecimalt värde som anger den bit som ska anges på flaggan .
-
flagga: Ett hexadecimalt värde som ska ha en viss bit ändrad.
|
| Verksamhet |
Den här funktionen konverterar båda parametrarna till binär representation och jämför dem:- Anger en bit till 1 om en eller båda motsvarande bitar i mask och flagga är 1.
- Anger en bit till 0 om båda motsvarande bitar är 0.
- Returnerar 1 i alla fall, förutom där motsvarande bitar av båda parametrarna är 0.
- Det resulterande bitmönstret är "set" (1 eller true) bitar av någon av de två operanderna.
- Flera flagga bitar kan anges om flera bitar har värdet 1 i mask.
|
| Utdata |
En ny version av flagga med de bitar som anges i mask inställt på 1. |
| BitAnd |
Detalj |
| Beskrivning |
Funktionen BitAnd anger en angiven bit på en flagga till 0. |
| Funktionssignatur |
Int BitOr(mask, flag) |
| Ingångar |
-
mask: Ett hexadecimalt värde som anger vilken bit som ska ändras på -flaggan.
-
flagga: Ett hexadecimalt värde som ska ha en viss bit ändrad.
|
| Verksamhet |
Den här funktionen konverterar båda parametrarna till binär representation och jämför dem:- Anger en bit till 0 om en eller båda motsvarande bitar i mask och flagga är 0.
- Anger en bit till 1 om båda motsvarande bitar är 1.
- Returnerar 0 i alla fall, förutom där motsvarande bitar av båda parametrarna är 1.
- Flera flagga bitar kan anges till 0 om flera bitar har värdet 0 i mask.
|
| Utdata |
En ny version av flagga med bitarna som anges i mask inställt på 0. |
| DateTimeFormat |
Detalj |
| Beskrivning |
Funktionen DateTimeFormat används för att formatera en DateTime i strängform till ett angivet format. |
| Funktionssignatur |
String DateTimeFormat(dateTime, format) |
| Ingångar |
-
dateTime: En sträng som representerar DateTime som ska formateras.
-
format: En sträng som representerar det format som ska konverteras till.
Obs: För de tecken som godkänns för att skapa användardefinierade format, se användardefinierade datum-/tidsformat. |
| Verksamhet |
Formatsträngen som anges i format tillämpas på DateTime i strängen dateTime. Strängen som anges i format måste vara ett giltigt DateTime-format. Om det inte är det returneras ett fel som anger att formatet inte är ett giltigt DateTime-format. Exempel: DateTime("12/25/2007", "yyyy-MM-dd") resulterar i "2007-12-25". |
| Utdata |
En sträng som är resultatet av att tillämpa format på dateTime-. |
| ConvertSidToString |
Detalj |
| Beskrivning |
ConvertSidToString konverterar en bytematris som innehåller en säkerhetsidentifierare till en sträng. |
| Funktionssignatur |
String ConvertSidToString(ObjectSID) |
| Ingångar |
ObjectSID: En bytematris som innehåller en säkerhetsidentifierare (SID). |
| Verksamhet |
Angivet binärt SID konverteras till en sträng. |
| Utdata |
En strängrepresentation av SID. |
| ConvertStringToGuid |
Detalj |
| Beskrivning |
Funktionen ConvertStringToGuid konverterar strängrepresentationen av ett GUID till en binär representation av GUID. |
| Funktionssignatur |
Byte[] ConvertStringToGuid(stringGuid) |
| Ingångar |
stringGuid: En sträng formaterad i mönstret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, där värdet för GUID representeras som en serie hexadecimala siffror i grupper om 8, 4, 4, 4 och 12 siffror och avgränsas med bindestreck. Ett exempel på ett returvärde är 382c74c3-721d-4f34-80e557657b6cbc27. |
| Verksamhet |
stringGuid konverteras till dess binära representation. Om strängen inte är en representation av ett giltigt GUID avvisar funktionen argumentet med felet "Parametern för funktionen ConvertStringToGuid måste vara en sträng som representerar ett giltigt Guid". |
| Utdata |
En binär representation av GUID. |
| ReplaceString |
Detalj |
| Beskrivning |
Funktionen ReplaceString ersätter alla förekomster av en sträng till en annan sträng. |
| Funktionssignatur |
String ReplaceString(string, OldValue, NewValue) |
| Ingångar |
-
sträng: Strängen där värden ska ersättas.
-
OldValue: Strängen som du vill söka efter och ersätta.
-
NewValue: Strängen som ska ersättas med.
|
| Verksamhet |
Alla förekomster av OldValue i strängen ersätts med NewValue. Funktionen måste kunna hantera specialtecken \n. ny rad \r. vagnen returnerar och \t. fliken. Exempel: ReplaceString("One\n\rMicrosoft\n\r\Way","\n\r"," ") returnerar "One Microsoft Way". |
| Utdata |
En sträng med alla förekomster av OldValue i strängen som ersätts med NewValue. |
Datahämtningsfunktioner
Datahämtningsfunktioner används för att utföra åtgärder som hämtar önskade tecken från en sträng.
| Ord |
Detalj |
| Beskrivning |
Funktionen Word returnerar ett ord som finns i en sträng, baserat på parametrar som beskriver avgränsarna som ska användas och det ordnummer som ska returneras. |
| Funktionssignatur |
String Word(string, number, delimiters) |
| Ingångar |
-
sträng: Strängen som du vill returnera ett ord från.
-
tal: Ett tal som identifierar vilket ordnummer som ska returneras.
-
avgränsare: En sträng som representerar avgränsare som ska användas för att identifiera ord.
|
| Verksamhet |
Varje sträng med tecken i sträng som avgränsas med ett av tecknen i avgränsare identifieras som ett ord. Om sträng är null returnerar funktionen en tom sträng. Ordet som hittades vid den position som anges i tal returneras. Om tal< 1 returnerar funktionen en tom sträng. Till exempel:-
Word("Test;of%function;", 3, ";$&%") returnerar "function". -
Word("Test;;Function" , 2 , ";") returnerar "" (en tom sträng). -
Word("Test;of%function;", 0, ";$&%") returnerar "" (en tom sträng).
|
| Utdata |
En sträng som innehåller ordet vid den position som användaren bad om. Om sträng innehåller mindre än tal ord, eller om sträng inte innehåller ord som identifieras av avgränsare, returneras en tom sträng. |
| Vänster |
Detalj |
| Beskrivning |
Funktionen Vänster returnerar ett angivet antal tecken från vänster (början) av en sträng. |
| Funktionssignatur |
String Left(string, numChars) |
| Ingångar |
-
sträng: Strängen som du vill returnera tecken från.
-
numChars: Ett tal som identifierar antalet tecken som ska returneras från början av en sträng.
|
| Verksamhet |
numChars tecken returneras från den första positionen för strängen. Till exempel: Left("Britta Simon", 3) returnerar "Bri". |
| Utdata |
En sträng som innehåller de första numChars- tecknen i strängen. Om numChars = 0 returnerar funktionen en tom sträng. Om numChars< 0 returnerar funktionen en indatasträng. Om sträng är null returnerar funktionen en tom sträng. |
| Höger |
Detalj |
| Beskrivning |
Funktionen Höger returnerar ett angivet antal tecken från höger (slutet) av en sträng. |
| Funktionssignatur |
String Right(string, numChars) |
| Ingångar |
-
sträng: Strängen som du vill returnera tecken från.
-
numChars: Ett tal som identifierar antalet tecken som ska returneras från slutet av en sträng.
|
| Verksamhet |
Returnera numChars tecken från slutet av strängen. Till exempel: Right("Britta Simon", 3) returnerar "mon". |
| Utdata |
En sträng som innehåller de sista numChars tecknen i strängen. Om numChars = 0 returnerar funktionen en tom sträng. Om numChars< 0 returnerar funktionen en indatasträng. Om sträng är null returnerar funktionen en tom sträng. Om sträng innehåller färre tecken än det tal som anges i numCharsreturneras sträng. |
| Mid |
Detalj |
| Beskrivning |
Funktionen Mid returnerar ett angivet antal tecken från en angiven position i en sträng. |
| Funktionssignatur |
String Mid(string, pos, numChars) |
| Ingångar |
-
sträng: Strängen som du vill returnera tecken från.
-
pos: Ett tal som identifierar startpositionen i en sträng för att returnera tecken.
-
numChars: Ett tal som identifierar antalet tecken som ska returneras från en position i strängen.
|
| Verksamhet |
Returnera numChars tecken från position pos i strängen. Till exempel: Mid("Britta Simon", 3, 5) returnerar "itta ". |
| Utdata |
En sträng som innehåller numChars tecken från position pos i strängen. Om numChars = 0 returnerar funktionen en tom sträng. Om numChars< 0 returnerar funktionen en tom sträng. Om pos> längden på strängreturnerar funktionen en indatasträng. Om pos<= 0 returnerar funktionen en indatasträng. Om sträng är null returnerar funktionen en tom sträng. Om det inte finns några numChar tecken kvar i sträng från position posreturneras så många tecken som möjligt. |
Datagenereringsfunktioner
Datagenereringsfunktioner används för att generera värden för specifika datatyper.
| CRLF |
Detalj |
| Beskrivning |
CRLF-funktionen genererar en vagnretur/radmatning. Använd den här funktionen för att lägga till en ny rad. |
| Funktionssignatur |
String CRLF |
| Ingångar |
Ingen. |
| Verksamhet |
En CRLF returneras. Till exempel:
AddressLine1 + CRLF() + AddressLine2 resulterar i AddressLine1
AddressLine2. |
| Utdata |
En CRLF är utdata. |
| RandomNum |
Detalj |
| Beskrivning |
Funktionen RandomNum returnerar ett slumpmässigt tal inom ett angivet intervall. |
| Funktionssignatur |
Int RandomNum(start, end) |
| Ingångar |
-
starta: Ett tal som identifierar den lägre gränsen för det slumpmässiga värde som ska genereras.
-
slut: Ett tal som identifierar den övre gränsen för det slumpmässiga värde som ska genereras.
|
| Verksamhet |
Ett slumptal större än eller lika med starta och mindre än eller lika med slut genereras. Till exempel: Random(0,999) kan returnera 100. |
| Utdata |
Ett slumptal inom det intervall som anges av starta och slut. |
| EscapeDNComponent |
Detalj |
| Beskrivning |
Metoden EscapeDNComponent från MIISUtils används för att utföra den här åtgärden. Den här metoden bearbetar indatasträngen baserat på vilken typ av hanteringsagent (MA) som används. |
| Funktionssignatur |
String EscapeDNComponent(string) |
| Ingångar |
sträng: En sträng som används för att bearbeta ett unikt namn. Strängen får inte innehålla undantagna tecken. |
| Verksamhet |
Olika MA:er kräver olika unika namnformat. Den här metoden bearbetar indata sträng baserat på följande MA-typer:-
LDAP-unikt namn: Exempel av den här MA-typen är Active Directory Domain Services, Sun Directory Server (tidigare iPlanet Directory Server) och Microsoft Exchange Server.
- Ogiltiga XML-tecken i värdedelen av en viss del är hexadecimalkodade.
- Eventuella ogiltiga tecken (inklusive ogiltiga XML-tecken) i namndelen av en viss del genererar ett fel.
- Undantagna tecken inkluderar kommatecken (,), lika med (=), plus (+), mindre än (<), större än (>), tal (#), semikolon (;), omvänt snedstreck () och dubbelt citattecken (").
- Om det sista tecknet i strängen är ett blanksteg ( ), är det utrymmet undantaget.
- Eventuella överflödiga inledande eller avslutande blanksteg runt ett delnamn tas bort.
- Om det finns flera delar för XML MA alfabetiseras delarna.
- Om flera delar anges är den sammansatta unika namnsträngen sammanlänkningen av de enskilda strängarna avgränsade med plustecken (+).
- Ett fel genereras om indata sträng inte är en välformulerad namnsträng i LDAP-format.
-
Hierarkisk icke-LDAP-: Ett exempel på den här typen av MA är Microsoft Lotus Notes.
- Den här MA-typen stöder inte komponenter med flera delar.
- Om flera strängar skickas till
EscapeDNComponentgenereras ett ArgumentException-. - Om något av tecknen i indatasträngen är ogiltiga XML-tecken genereras ett ArgumentException-.
- Alla kommatecken (,) och omvänt snedstreck (/) i indata strängen är undantagna.
- Om det sista tecknet i strängen är ett blanksteg ( ), är det utrymmet undantaget.
-
Extrinsic: Exempel på den här MA-typen är databaser eller XML utan ett unikt LDAP-namn.
- Om någon del är binär eller innehåller ett ogiltigt XML-tecken lagras den delen som en hexadecimalkodad version av rådata med ett taltecken (#) prefix framför strängen. Om en del till exempel var
AxC (där x representerar ett ogiltigt XML-tecken, till exempel 0x10), kodas den delen som #410010004300. Annars är alla instanser av dessa tecken undantagna: omvänt snedstreck (), kommatecken (,), plus (+) och tal (#). - Om det sista tecknet i en viss delsträng är ett blanksteg ( ), är det utrymmet undantaget.
- Om flera delar anges är den sammansatta unika namnsträngen sammanlänkningen av alla enskilda strängar avgränsade med plustecken.
|
| Utdata |
En sträng som innehåller ett giltigt domännamn. |
Anmärkning
Valideringen av unika namn är mindre strikt än syntaxen som definieras i LDAP-specifikationerna.
EscapeDNComponent(String[]) tillåter att ett delnamn innehåller en kombination av ett eller flera av tecknen 'a'-'z', 'A'-'Z', '0'-'9', '-' och '.'.
Det går inte att ange en binär del med den här metoden. Det är dock möjligt att ha en binär del i CommitNewConnector- om det unika namnet konstrueras från fästpunktsattribut och ett av fästpunktsattributen är en binär typ.
| Noll |
Detalj |
| Beskrivning |
Null-funktionen används för att ange att MA inte har något attribut att bidra med, och att attributprioretensen ska fortsätta med nästa MA. |
| Funktionssignatur |
String Null |
| Ingångar |
Ingen. |
| Verksamhet |
En null returneras. Till exempel: IIF(Eq(domain), "unknown", Null()) returnerar Null. |
| Utdata |
Null är utdata. |
Logic Functions
Logikfunktioner används för att utföra en åtgärd baserat på villkor som utvärderas av systemet.
| IIF |
Detalj |
| Beskrivning |
Funktionen IIF returnerar ett av en uppsättning möjliga värden baserat på ett angivet villkor. |
| Funktionssignatur |
Object IIF(condition, valueIfTrue, valueIfFalse) |
| Ingångar |
-
villkor: Alla värden eller uttryck som kan utvärderas till sant eller falskt. Följande funktioner är tillgängliga för användning som uttryck i IIF-funktionen för det villkoret:
-
Eq: Den här funktionen jämför två argument för likhet.
-
NotEquals: Den här funktionen jämför två argument för ojämlikhet och returnerar sant om de inte är lika och falska om de är lika. Till exempel:
NotEquals(EmployeeType, "Contractor"). -
LessThan: Den här funktionen jämför två tal och returnerar sant om den första är mindre än den andra och annars falskt. Till exempel:
LessThan(Salary, 100000). -
GreaterThan: Den här funktionen jämför två tal och returnerar sant om det första är större än det andra och falskt annars. Till exempel:
GreaterThan(Salary, 100000). -
LessThanOrEquals: Den här funktionen jämför två tal och returnerar sant om det första är mindre än eller lika med det andra och annars falskt. Till exempel:
LessThanOrEquals(Salary, 100000). -
GreaterThanOrEquals: Den här funktionen jämför två tal och returnerar sant om den första är större än eller är lika med den andra och annars falskt. Till exempel:
GreaterThanOrEquals(Salary, 100000). -
IsPresent: Den här funktionen tar som indata ett attribut i ILM-schemat och returnerar sant om attributet inte är null och falskt om attributet är null.
-
valueIfTrue: Ett värde som returneras om villkoret utvärderas till true.
-
valueIfFalse: Ett värde som returneras om villkoret utvärderas till false.
|
| Verksamhet |
Om villkor utvärderas till sant returnerar funktionen valueIfTrue. Annars returnerar funktionen valueIfFalse. Exempel: IIF(Eq(EmployeeType,"Intern"),"t-" + Alias, Alias) returnerar aliaset för en användare med "t-" som läggs till i början av aliaset om användaren är en praktikant. Annars returnerar funktionen användarens alias as-is. |
| Utdata |
Utdata är valueIfTrue om villkoret är sant, eller valueIfFalse om villkoret är falskt. |