Wie importiere ich Kontakte aus der ActiveDirectory

1. People-Picker

Um den AD-Import erfolgreich ausführen zu können müssen sie zunächst in der gewünschten Liste ein Personenauswahlfeld hinzufügen. Gehen Sie dafür in die Listeneinstellungen und wählen „Spalte erstellen“ aus. Danach erscheinen die zur Verfügung stehenden Spaltentypen. Dort wählen Sie bitte das Personenauswahlfeld aus. Dieses können Sie nach belieben benennen. Um das Personenfeld anschließend zu Beginn des Forms zu sehen, gehen Sie bitte in den Reiter „Spaltensortierung“ und sortieren Sie anschließend das Personenfeld auf die von Ihnen gewünschte Position ein.

Spalte erstellen


2. JavaScript Spalte erstellen

Erstellen Sie bitte zunächst eine neue JavaScript Spalte. Dazu gehen Sie in die Listeneinstellung und erstellen eine neue JavaScript Spalte. Diese finden Sie unter dem Kategorie: "Spalte erstellen (koellisch-tk)"

JavaScript Spalte erstellen


3. JavaScript-SourceCode

Erstellen Sie ein weiteres JavaScriptfeld in dieses kopieren Sie den folgenden Source-Code.

if (!$t().IsDispForm()) {
    setTimeout(function ()
    {
        buildImportButton();
    }, 500);
}
function buildImportButton()
{
    var html = "<br/><input style='margin-left: 0px;' type='button' style='' value='User-Daten aus dem User-Profil importieren' onclick='importUserDatafromAD()'>";
    $t($t().GetTableRowOfLabel("Person").find("td")[1]).append(html);
}
function importUserDatafromAD()
{
    if (confirm('Wollen Sie wirklich alle Daten mit den User-Daten aus dem User-Profil ersetzen?')) {
        var key = JSON.parse($t().GetSPFieldRowByInternalName("Person").find("input[id$='HiddenInput']").val())[0].Key;
        var userProfile = get_user_profile_by_login(key);
        var userId = 0;
        if (userProfile.Manager != "") {
            $t.ajax({
                type: "GET",
                async: false,
                url: $t().SPServices.SPGetCurrentSite() + "/_layouts/15/Ihr_SharePoint_Template_Produkt/GetUserIdByLoginName.ashx",
                data: {
                    loginName: userProfile.Manager
                },
                success: function (data)
                {
                    userId = data;
                }
            });
        }
        var superiorId = 0;
        if (userId != 0) {
            $t().SPServices({
                operation: "GetListItems",
                async: false,
                RowLimit: 1,
                listName: "Teamkontakte",
                CAMLQuery: "<Query><Where><Eq><FieldRef Name='Person' LookupId='True' /><Value Type='UserID'>" + userId + "</Value></Eq></Where></Query>",
                CAMLViewFields: "<ViewFields><FieldRef Name='ID' /></ViewFields>",
                completefunc: function (xData, Status)
                {
                    $t(xData.responseXML).SPFilterNode("z:row").each(function ()
                    {
                        superiorId = $t(this).attr("ows_ID");
                    });
                }
            });
        }
        var abteilungsId = 0;
        $t().SPServices({
            operation: "GetListItems",
            async: false,
            RowLimit: 1,
            listName: "Teams",
            CAMLQuery: "<Query><Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + userProfile.Department + "</Value></Eq></Where></Query>",
            CAMLViewFields: "<ViewFields><FieldRef Name='Person' /></ViewFields>",
            completefunc: function (xData, Status)
            {
                $t(xData.responseXML).SPFilterNode("z:row").each(function ()
                {
                    abteilungsId = $t(this).attr("ows_ID");
                });
            }
        });
        //Werte setzen
        $t().GetTableRowOfLabel("Vorname").find('input').val(userProfile.FirstName);
        $t().GetTableRowOfLabel("Nachname").find('input').val(userProfile.LastName);
        $t().GetTableRowOfLabel("Vollständiger Name").find("input").val($t().GetTableRowOfLabel("Vorname").find("input").val() + " " + $t().GetTableRowOfLabel("Nachname").find("input").val());
        $t().GetTableRowOfLabel("Telefon (geschäftlich)").find('input').val(userProfile.WorkPhone);
        $t().GetTableRowOfLabel("Telefon (privat)").find('input').val(userProfile.HomePhone);
        $t().GetTableRowOfLabel("Mobiltelefonnummer").find('input').val(userProfile.CellPhone);
        $t().GetTableRowOfLabel("Faxnummer").find('input').val(userProfile.Fax);
        $t().GetTableRowOfLabel("E-Mail").find('input').val(userProfile.WorkEmail);
    }
}
function get_user_profile_by_login(login)
{
    var user = {};
    var params = {
        operation: 'GetUserProfileByName',
        async: false,
        completefunc: function (xData, Status)
        {
            $t(xData.responseXML).SPFilterNode("PropertyData").each(function ()
            {
                user[$t(this).find("Name").text()] = $t(this).find("Value").text();
            });
        }
    };
    if (login != null) {
        params.accountName = login;
    } else {
        params.accountName = $t().SPServices.SPGetCurrentUser({
            fieldName: "Name"
        });
    }
    $t().SPServices(params);
    return user;
}

Ist dieser Artikel hilfreich?