SharePoint列表用户

时间:2017-05-05 17:06:52

标签: sharepoint sharepoint-workflow

我希望在列中显示管理员名称(在AD中为用户定义),具体取决于另一列中的选择。例如。

第1列 - 员工姓名 第2栏 - 部门 第3栏 - 经理

第1列填充了员工姓名并保存。它是"用户或群组"类型列 第2列是"人或组"带有"显示字段"的列选项设置为部门。我有一个工作流,从一个新条目开始,该条目获取第1列数据并将其应用于第2列,从而显示用户部门。

我的问题出在"显示字段"选项没有经理选择。有没有办法将其显示为选择,还是有另一种方式让我根据员工的选择来填充用户经理?

我尝试过的另一个选择是为"查找"当前员工(输出到变量:manager)然后更新管理器列以使用变量管理器中的数据,但似乎没有显示任何内容。 enter image description here也许我在这里做错了..

任何帮助都将不胜感激。

更新了屏幕截图信息
enter image description here

2 个答案:

答案 0 :(得分:0)

Manager列的数据类型是什么?成为“人或团体”。 在工作流程中,选择返回字段为'登录名称'并尝试。以下是截图。enter image description here

答案 1 :(得分:0)

您可以在New Form上获取所有三个值,然后保存它。 使用SPServices jQuery。只需下载最新的一个。以下是剧本。

<script type="text/javascript" src="/your path to JS/SiteAssets/JS/jquery-3.1.1.js"></script>  
<script type="text/jscript" src="/your path to JS/SiteAssets/JS/jquery.SPServices.min.js"></script>  

<script type="text/javascript">

$(document).ready(function () {

        var managerName;
       

	var userName = $().SPServices.SPGetCurrentUser();
	

        $().SPServices({
            operation: "GetUserProfileByName",
            async: false,
            AccountName: userName,
            completefunc: function (xData, Status) 
		{

                managerName = $(xData.responseXML).text();
                var managerLength = managerName.length;
                var indexofManager = managerName.indexOf("ManagerPublic");
                managerName = managerName.substring(indexofManager+13, managerLength);		
                var indexOffalse = managerName.indexOf("false");		
                managerName = managerName.substring(0, indexOffalse);
		
            	}
        });	


	var UserDept = $().SPServices.SPGetCurrentUser({  
	fieldName: "Department",  	
	debug: false  
	});

	var CurrentUser = $().SPServices.SPGetCurrentUser({
	fieldName: "Title",	
	debug: false
	});

	$("input[title*='Employee Name']").val(CurrentUser); // For assigning to SharePoint column named 'Employee Name'	 

	$("input[title*='Department']").val(UserDept); // For assigning to SharePoint column named 'Department'  

	var Mgr =  $().SPServices.SPFindPeoplePicker({
	peoplePickerDisplayName: "Manager", // For assigning to SharePoint column named 'Manager'
	valueToSet: managerName,
  	checkNames: true
	}); 

});
</script>