Share via


Example: Checking for Necessary Attributes

During the provisioning step, we recommend that you verify that on a metaverse object, certain attribute values exist prior to continuing with the provisioning logic.

The following example shows you how to verify that an object has the attribute and attribute values that are required before provisioning logic creates new connectors. This specific example will verify that the employeeStatus attribute is present and contains either "active" or "inactive".

If the employeeStatus attribute is not present or contains a value other than "active" or "inactive", the example will throw an UnexpectedDataException exception. The UnexpectedDataException exception will cause the "extension-unexpected-attribute-value" error to be displayed in the Identity Manager for the management agent.

    Public Sub Provision(ByVal mventry As MVEntry) Implements IMVSynchronization.Provision
        If (Not mventry("employeeStatus").IsPresent) Then
            Throw New UnexpectedDataException("employeeStatus is not present.")
        End If
    
        ' Employee Status can be either "active" or "inactive". Throw an 
        ' exception for a value other than active or inactive.
    
        Dim strEmployeeStatus As String
        strEmployeeStatus = mventry("employeeStatus").Value.ToLower
        Select Case (strEmployeeStatus)
            Case "active", "inactive"
                System.Diagnostics.Trace.WriteLine("Valid employeeStatus value: " + strEmployeeStatus)
    
            Case Else
                Throw New UnexpectedDataException("Invalid employeeStatus value: " + strEmployeeStatus)
        End Select
    End Sub
    void IMVSynchronization.Provision(MVEntry mventry)
    {
        if(!mventry["employeeStatus"].IsPresent)
        {
            throw new UnexpectedDataException("employeeStatus not present.");
        }
    
        // Employee Status can be either "active" or "inactive". Throw an 
        // exception for a value other than active or inactive.
    
        string strEmployeeStatus = mventry["employeeStatus"].Value.ToLower();
        switch(strEmployeeStatus)
        {
            case "active":
            case "inactive":
                System.Diagnostics.Trace.WriteLine("Valid employeeStatus value: " + strEmployeeStatus);
                break;
    
            default:
                throw new UnexpectedDataException("Invalid employeeStatus value: " + strEmployeeStatus);
        }
    }

Send comments about this topic to Microsoft

Build date: 2/16/2009