nc uap后台获取前台数据的方法

以向某张单据在新增保存之前增加一个限制条件为例子:

步骤如下:

主要代码如下:

public class MaterrialOutSaveBeforeListener implements IBusinessListener {  //实现IBusinessListener接口,可以配置连接到相应事件
    
    public MaterrialOutSaveBeforeListener(){ //空构造函数
        
    }

    @Override
    public void doAction(IBusinessEvent event) throws BusinessException {

      AggregatedValueObject[] aggVOs = getVOs(event);  //获取单据条数,最原始的VO对象 聚合VO AggregatedValueObject也是原始VO,不过比CircularlyAccessibleValueObject高一

//个级别
        Boolean isProject=null;   //判断

<think>好的,用户的问题是关于NC65如何获取数据权限的方法或者相关的API。我需要先理解用户的需求,他们可能在使用用友NC65系统时遇到了数据权限控制的问题,想要知道如何通过编程方式获取或设置数据权限。 首先,我应该回忆一下NC65的相关文档和常见的开发方法。根据用户提供的引用内容,引用[1]提到了NC65的编程语言和API,引用[2]涉及到配置文件和数据查询限制。这可能意味着数据权限的配置可能涉及到XML文件或者特定的API。 接下来,我需要确认NC65中数据权限的常见实现方式。通常,企业级应用如用友NC会通过数据权限规则来控制用户对数据的访问,这些规则可能基于组织、角色、用户组等。数据权限的实现可能包括前端配置和后端API调用。 根据我的知识,NC65可能使用元数据配置或权限服务接口来处理数据权限。用户可能需要通过特定的API来获取当前用户的数据权限,或者在查询时自动应用这些权限。例如,使用数据权限过滤器或调用权限服务类的方法。 然后,我需要考虑用户可能需要具体的代码示例或API名称。例如,权限相关的Service类可能包含如getDataAuth方法,或者在HQL中注入权限条件。此外,配置文件如customerconfig.xml可能涉及数据查询的限制,但数据权限更可能通过后端逻辑处理。 还需要提醒用户检查系统文档或咨询实施团队,因为数据权限的实现可能因项目定制而异。同时,注意用户提到的XML配置文件可能与显示条数限制有关,但数据权限更多涉及访问控制,而不是数量限制。 最后,生成相关问题时要围绕数据权限的扩展,比如如何自定义规则、调试方法、与其他模块的集成,以及前后端的协作方式。</think>### NC65 数据权限获取方法NC65系统中,数据权限的获取通常通过**元数据配置**和**权限服务接口**实现,具体方法如下: --- #### 1. **元数据配置实现数据权限** - **权限规则定义**:在元数据模型中通过`<auth-filter>`标签定义数据权限规则,系统会自动在SQL查询中注入权限条件。例如: ```xml <entity name="psndoc" table="hr_psndoc"> <auth-filter expression="exists(select 1 from pub_auth_data a where a.pk_obj = psndoc.pk_org and a.roleid = :currentRoleid)"/> </entity> ``` 该配置会限制用户只能访问有权限的组织(`pk_org`)数据[^1]。 - **动态参数绑定**:通过`:currentRoleid`等预定义参数自动注入当前用户角色信息。 --- #### 2. **通过API获取数据权限** - **权限服务接口**:使用`nc.itf.uap.security.IAuthDataService`接口的`getAuthDataInfo`方法获取用户的数据权限集合。 ```java // 获取权限服务实例 IAuthDataService authService = NCLocator.getInstance().lookup(IAuthDataService.class); // 查询当前用户对"采购订单"单据类型的权限 List<AuthDataVO> authList = authService.getAuthDataInfo(userid, "POOrder"); ``` 返回的`AuthDataVO`包含权限类型(如组织、供应商)和具体权限值[^1]。 - **HQL注入权限**:在查询时使用`AuthFilterHelper`工具类自动注入权限条件: ```java HQLBuilder hql = new HQLBuilder("from PurchaseOrder po where po.status='APPROVED'"); AuthFilterHelper.addAuthFilter(hql, "po.pk_org", AuthDataType.ORG); ``` --- #### 3. **扩展开发注意事项** - 自定义权限提供类需实现`nc.itf.uap.security.IAuthDataProvider` - 复杂场景可通过覆盖`DefaultAuthEngine`实现精细化控制 - 权限缓存机制默认开启,可通过`nocache`参数强制刷新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值