Identitymanager_New.psm1

Function New-OIMPerson {
    Param(
        $ApprovalState,$AuthentifierLogins,$BadPwdAnswerAttempts,$BirthDate,$Building,$CanonicalName,$CCC_BusinessCard,$CCC_Date_Block,$CCC_DisplayNamePreference,$CCC_FunctionCode,$CCC_JumboMailAddress,$CCC_LastFunctionUpdate,$CCC_OnPremImmutableID,$CCC_Origin,$CCC_PartnerSurname,$CCC_PartnerSurnamePrx,$CCC_RetainAccount,$CCC_Surname,$CCC_SurnamePrx,
            [Alias("CCC_Ident_MainJob")]
            $CCC_UID_MainJob
            ,
            [Alias("CCC_Ident_PersonHeadFromPerson")]
            $CCC_UID_PersonHeadFromPerson
            ,
            [Alias("CCC_Ident_stg_Person")]
            $CCC_UID_stg_Person
            ,$CentralAccount,$CentralSAPAccount,$City,$CompanyMember,$ContactEmail,$CustomProperty01,$CustomProperty02,$CustomProperty03,$CustomProperty04,$CustomProperty05,$CustomProperty06,$CustomProperty07,$CustomProperty08,$CustomProperty09,$CustomProperty10,$DateLastWorked,$DeactivationEnd,$DeactivationStart,$DefaultEmailAddress,$Description,$DialogUserPassword,$DialogUserSalt,$DisplayTelephoneBook,$DistinguishedName,$EmployeeType,$EntryDate,$ExitDate,$Fax,$FaxExtension,$FirstName,$Floor,$FormerName,$Gender,$GenerationalQualifier,$IdentityType,$ImportSource,$Initials,$InternalName,$IsCar,$IsDummyPerson,$IsDuplicateName,$IsExternal,$IsInActive,$IsLockedOut,$IsLockedPwdAnswer,$IsNoInherite,$IsNoteBookUser,$IsRemoteAccessAllowed,$IsSecurityIncident,$IsTemporaryDeactivated,$IsTerminalServerAllowed,$IsVIP,$IsX500Dummy,$JPegPhoto,$LastName,$MfaUserId,$MiddleName,$NameAddOn,$Passcode,$PasscodeExpires,$PasswordLastSet,$PersonalTitle,$PersonnelNumber,$Phone,$PhoneExtension,$PhoneMobile,$PostalOfficeBox,$PreferredName,$Remarks,$RiskIndexCalculated,$Room,$Salutation,$SecurityIdent,$Sponsor,$Street,$SubCompany,$TechnicalEntryDate,$Title,
            [Alias("Ident_Department")]
            $UID_Department
            ,
            [Alias("Ident_DialogCountry")]
            $UID_DialogCountry
            ,
            [Alias("Ident_DialogCulture")]
            $UID_DialogCulture
            ,
            [Alias("Ident_DialogCultureFormat")]
            $UID_DialogCultureFormat
            ,
            [Alias("Ident_DialogState")]
            $UID_DialogState
            ,
            [Alias("Ident_DialogUser")]
            $UID_DialogUser
            ,
            [Alias("Ident_FirmPartner")]
            $UID_FirmPartner
            ,
            [Alias("Ident_Locality")]
            $UID_Locality
            ,
            [Alias("Ident_Org")]
            $UID_Org
            ,$UID_Person,
            [Alias("Ident_PersonHead")]
            $UID_PersonHead
            ,
            [Alias("Ident_PersonMasterIdentity")]
            $UID_PersonMasterIdentity
            ,
            [Alias("Ident_ProfitCenter")]
            $UID_ProfitCenter
            ,
            [Alias("Ident_RealPerson")]
            $UID_RealPerson
            ,
            [Alias("Ident_WorkDesk")]
            $UID_WorkDesk
            ,
            [Alias("Ident_X500Person")]
            $UID_X500Person
            ,$UserIDTSO,$XDateInserted,$XDateUpdated,$XMarkedForDeletion,$XObjectKey,$XTouched,$XUserInserted,$XUserUpdated,$ZIPCode,$session=$Global:OIM_Session)
        $properties =  @{}
        foreach ($key in $MyInvocation.BoundParameters.keys){
           
            $ParameterVar = Get-Variable -Name $key               
            $ParamaterValue    = $ParameterVar.Value
 
            if($key.StartsWith("UID")){  
                
                $FKType     = $ParameterVar.Name.Split("_")[1] 
                $FKIdent    = "Ident_$FKType"
                $FKIdent    = $FKIdent.Replace("Ident_UNSRootB","Ident_UNSRoot")
                $FKIdent    = $FKIdent.Replace("Ident_Person","uid_Person")
                $FKObject   = Get-OIMObject -objectname $FKType -where "$FKIdent = '$ParamaterValue'"
                $properties.Add($Key,$FKObject.$key)
            }else{               
                $properties.Add($Key,$ParamaterValue)
               
            }
 
        }
        $body = @{values = $Properties } | ConvertTo-Json    
        Invoke-RestMethod -Uri "$Global:OIM_BaseURL/api/entity/person" -Method Post -WebSession $session -ContentType application/json  -Body $body
            
    
}
 
 
Function New-OIMPersonHasESet {
    Param(
       
            [Alias("Ident_ESet")]
            $UID_ESet
            ,
            [Alias("Ident_Person")]
            $UID_Person
            ,$XDateInserted,$XDateUpdated,$XIsInEffect,$XMarkedForDeletion,$XObjectKey,$XOrigin,$XTouched,$XUserInserted,$XUserUpdated,$session=$Global:OIM_Session)
    $properties =  @{}
        foreach ($key in $MyInvocation.BoundParameters.keys){
           
             
            $ParameterVar = Get-Variable -Name $key               
            $ParamaterValue    = $ParameterVar.Value
 
            if($key.StartsWith("UID")){  
                
                $FKType     = $ParameterVar.Name.Split("_")[1] 
                $FKIdent    = "Ident_$FKType"
                $FKIdent    = $FKIdent.Replace("Ident_UNSRootB","Ident_UNSRoot")
                $FKIdent    = $FKIdent.Replace("Ident_Person","uid_Person")
                Write-Warning "$FKType $FKIdent = '$ParamaterValue'"
                $FKObject   = Get-OIMObject -objectname $FKType -where "$FKIdent = '$ParamaterValue'"
                $properties.Add($Key,$FKObject.$key)
            }else{               
                $properties.Add($Key,$ParamaterValue)
               
            }
 
        }
        $body = @{values = $Properties } | ConvertTo-Json    
        Invoke-RestMethod -Uri "$Global:OIM_BaseURL/api/entity/personhaseset" -Method Post -WebSession $session -ContentType application/json  -Body $body
            
    
}