在HTML客户端中将相关实体设置为当前用户

时间:2013-08-12 22:20:25

标签: visual-studio-lightswitch lightswitch-2012

我正在Lightswitch中构建一个帮助台票务程序,并且在使用一个请求的功能时遇到了问题。 我被要求为最终用户构建一个适合移动设备的应用程序版本,以便从他们的移动设备提交门票。我用几个屏幕构建了应用程序,并在PreProcess查询中添加了代码,以限制他们只能看到自己的票证。这非常有效。 我遇到的问题是将当前登录的用户指定为新票证的提交者。 我在网上查看了多个指南,所有这些都指向我正在尝试做的事情。 我发现最有希望的是http://social.msdn.microsoft.com/Forums/vstudio/en-US/47832659-4ed3-4a8c-9a62-b3ad46c8e8b4/get-logged-in-employee 通过这种技术,我可以在屏幕上成功显示当前用户。

挑战在于,将Ticket.EndUser字段设置为CurrentUserName字段。我已经在AddEditNewTicket屏幕的创建方法和beforeApplyChanges方法中尝试过它。

我已经在这墙上砸了几天了,有没有人在那里完成过这个?


更新

所以,我想我可能已经找到了问题,只是不确定如何绕过它。在新故障单按钮的执行代码中,我创建了故障单,并使用newTicket.setEndUser()。此函数将EndUser实体作为参数,因此我使用返回null的myapp.activeDataWorkspace.MyDataBase.Techs_SingleOrDefault(CurrentUserName)检索它。 UserName是我的Techs表的主键。

即使我为UserName使用文字字符串,它仍然会返回null。

1 个答案:

答案 0 :(得分:0)

发现它!

这个论坛帖子有答案。 http://social.msdn.microsoft.com/Forums/vstudio/en-US/dffe99ea-f12f-42e4-be14-7d5d04c2621f/entitytype-dataworkspaceapplicationdatatypessingleordefaultpr-in-javascript

我必须将调用包含在我的技术或最终用户的Promise对象中,这给了我一个我正在寻找的技术/最终用户的数组,所以我必须得到数组的第一个元素。

myapp.activeDataWorkspace.MyDatabase.Techs_SingleOrDefault(CurrentUserName).execute().then(function (result) {
 entity.setTech(result.results[0]);
});

希望这可以为将来尝试这个的人留下一些挫折感。