Мне нужен идентификатор сотрудника человека в SP2013 либо с помощью API-интерфейса отдыха или рабочего процесса - PullRequest
0 голосов
/ 14 апреля 2020

Я пытался использовать rest api для этого с остальным вызовом rest, но я не получаю свойство id сотрудника. и чтобы быть ясным, я не хочу идентификатор пользователя. url: _spPageContextInfo.webAbsoluteUrl + "/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v= '" + userID + "'",

1 Ответ

0 голосов
/ 15 апреля 2020

employeeID из AD по умолчанию отсутствует в свойстве профиля пользователя SharePoint. Создайте новое свойство пользователя и сопоставьте его с этим свойством, затем выполните полную синхронизацию c между SharePoint и AD:

enter image description here

enter image description here

enter image description here Подробные инструкции по настройке см. В статье ниже:

Sharepoint: как отобразить дополнительные поля на странице профиля пользователя

Затем используйте приведенный ниже фрагмент кода, чтобы получить идентификатор сотрудника для текущего пользователя:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>  

    <script type='text/javascript'>  


        var workEmail = "";  
        var EmployeeID = "";  
        var Division = "";  
        var userDisplayName = "";  
        var AccountName = "";  

        $.ajax({  

            url: _spPageContextInfo.webAbsoluteUrl + "/_api/SP.UserProfiles.PeopleManager/GetMyProperties",  
            headers: { Accept: "application/json;odata=verbose" },  
            success: function (data) {  
                try {  
                    //Get properties from user profile Json response  
                    userDisplayName = data.d.DisplayName;  
                    AccountName = data.d.AccountName;  
                    var properties = data.d.UserProfileProperties.results;
                    console.log(properties)  
                    for (var i = 0; i < properties.length; i++) {  

                        var property = properties[i];

                        if (property.Key == "WorkEmail") {  
                            workEmail = property.Value;  
                        }  

                        if (property.Key == "EmployeeId") {  
                            EmployeeID = property.Value;  
                        }    
                    }  
                    $('#AccountName').text(AccountName);  
                    $('#userDisplayName').text(userDisplayName);  
                    $('#EmployeeID').text(EmployeeID);  
                    $('#workEmail').text(workEmail);  



                } catch (err2) {  
                    //alert(JSON.stringify(err2));  
                }  
            },  
            error: function (jQxhr, errorCode, errorThrown) {  
                alert(errorThrown);  
            }  
        });  

    </script>  

    <h2><strong>Employee Details</strong></h2>  
    <br />  
    AccountName   <span id="AccountName"></span><br/> 
    DisplayName   <span id="userDisplayName"></span> <br/>  
    EmployeeID    <span id="EmployeeID"></span><br/>   
    Email Address <span id="workEmail"></span>  <br/> 

enter image description here

...