【问题标题】:UI5/OData: Providing Functionalites and Data depending on active User?UI5/OData:根据活跃用户提供功能和数据?
【发布时间】:2017-10-19 14:56:28
【问题描述】:

我对 UI5 框架比较陌生,我的公司有一个新用例,我想用 UI5 和 OData 服务来实现。

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

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

我怎样才能以最好的方式实现这一点?我之前的想法:

可能性一:

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

可能性2:

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

实现这种用例的正确方法是什么?有没有更好的选择,我不知道?我将不胜感激有关此事的任何想法,谢谢:)

最好的问候

【问题讨论】:

    标签: odata sapui5


    【解决方案1】:

    建议的方法 如果两个角色不共享任何共同的功能,那么我会选择两个独立的 UI5 应用程序,以使它们保持简单。在这种情况下,每个应用程序都有自己的 OData 服务。但在后端,您始终可以拥有一个由两个 OData 服务实现调用的“需求”公共类。 (从而最大化代码重用)。因此,您的大部分业务逻辑都应该在“Requirement”类中,并且 OData 实现充当调度程序。

    检查哪个用户已登录 这是大多数业务应用程序的共同要求,在 Gateway/ABAP 中也是可能的。在 ABAP 上下文中,始终有一个名为 SY-UNAME 的系统变量可用,它将为您提供当前登录用户的名称。您可以进一步使用它来派生用户的角色。

    【讨论】:

    • 我同意逻辑必须主要在后端,谢谢。使用 SY-UNAME 检查用户名并根据用户返回某种“角色”对象是否有意义? Fiori 应用可以根据 OData 服务的返回对象显示特定字段。
    • 是的,您可以这样做。同样,由于可以轻松修改 javascript 验证,因此您需要在后端进行进一步验证,以确保用户没有做他不应该做的事情。
    猜你喜欢
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多