UI5 / OData:根据活跃用户提供功能和数据?

时间:2017-05-19 12:54:19

标签: odata sapui5

我是UI5框架的新手,我在公司有一个新的用例,我想用UI5和OData服务实现。

基本上,该应用程序具有两个不同利益相关者的功能:

  • 角色A能够创建新要求
  • 角色B能够检查要求并使用新的更新 信息

我如何以最佳方式实现这一目标?我之前的想法是:

可能性1:

我在后端有OData服务,由两个独立的应用程序使用,具体取决于角色。通过PCFG对象上的启动板控制访问。因此,特定用户只能使用他实际需要的应用程序。我认为这与Fiori应用程序的基本粒度相匹配。另一方面,它使DRY原则无效,因为我会像大多数视图一样拥有冗余代码。

可能性2:

我在UI5框架或OData服务中检查哪个用户当前正在使用该应用程序并在控制器类中启用/禁用所需的控件。我没有遇到过如何做到这一点。有没有办法检查哪个用户登录?或者我如何在OData服务中实现,只将特定信息传递给客户端?

实现此类用例的正确方法是什么?有没有更好的选择,我不知道?我很感激有关此问题的任何想法,谢谢:)。

祝你好运

2 个答案:

答案 0 :(得分:0)

建议的方法 如果两个角色不共享任何常见功能,那么我会选择两个单独的UI5应用程序,以便保持简单。在这种情况下,每个应用程序都拥有自己的OData服务。但是在后端,你可以随时拥有一个共同的课程来满足“要求”的要求。这是由OData服务实现调用的。 (以便最大化代码重用)。因此,您的大部分业务逻辑都应该在“要求”中。 class,OData实现充当调度程序。

检查登录的用户 这是大多数业务应用程序的常见要求,也可以在Gateway / ABAP中使用。在ABAP上下文中,总会有一个名为SY-UNAME的系统变量,它将为您提供当前登录用户的名称。您可以进一步使用它来获得用户的角色。

答案 1 :(得分:0)

这不是官方推荐,但如果您选中Fiori Apps library 您将看到,对于不同的用户(利益相关者,角色),将交付单独的应用程序。 因此,似乎选项1)是可行的方法。

关于裁员,您可能也希望参加教程