• 支持MOAC功能的Form开发步骤


    支持MOAC功能的Form开发步骤

    注意:设置好安全性配置文件后,一定要跑一个请求:维护安全性清单(在hr管理)

    在R12版本中,OU的控制采取了MOAC的方式,使用户的操作得到了改善。
    而如果客户化的Form能够支持MOAC的功能,需要在界面上提供当前用户可以选择的OU字段供用户选择。

    这样在Form的开发过程中需要如下的开发步骤:
    1,PRE-FORM 触发器初始化MOAC配置环境
      添加如下代码:
      MO_GLOBAL.init(‘ONT’);
      — global.mo_ou_count
      — global.mo_default_org_id
      — global.mo_default_ou_name
      IF l_default_org_id IS NOT NULL THEN — default org id not null
        MO_GLOBAL.SET_POLICY_CONTEXT(‘S’,l_default_org_id);
      ELSE
        MO_GLOBAL.SET_POLICY_CONTEXT(‘M’,null);
      END IF; — default org id not null  
      这段代码的作用是根据预制文件的设置,初始化OU的信息,将用户可以访问的OU信息插入到mo_glob_org_access_tmp表中,
      同时将默认的OU ID、OU Name和OU Count分别写到global.mo_default_org_id, global.mo_default_org_id, global.mo_default_ou_name
      具体细节可以查看数据库包:mo_global

    2,WHEN-CREATE-RECORD触发器中拷贝OU默认值
      在此触发器中将默认的OU ID和OU Name拷贝给Form界面上对应的自动,实现创建记录的时候默认带出默认OU信息。
      copy(name_in(‘global.mo_default_org_id’),’’);
      copy(name_in(‘global.mo_default_ou_name’),’’);

    3,创建OU的LOV
      Form界面上的OU 名称字段创建一个LOV,LOV对应记录组的SQL语句如下:
      SELECT hr.organization_id organization_id, hr.NAME organization_name
        FROM hr_operating_units hr
       WHERE mo_global.check_access(hr.organization_id) = ‘Y’
       ORDER BY organization_name

    其它没有特殊的步骤。

    当前职责可访问的OU(MO:安全性配置文件)

    --初始化环境
    BEGIN
      fnd_global.apps_initialize(user_id      => 0,
                                 resp_id      => 50658,
                                 resp_appl_id => 20003);
      mo_global.set_policy_context(p_access_mode => 'S', p_org_id => 82);
      mo_global.init('SQLAP');
    END;

    mo_global.init(<MO>);MO取值 为 FND_MO_PRODUCT_INIT表中

    --以下SQL查询当前配置的MO:安全性配置文件
    SELECT *
      FROM per_security_profiles psp
     WHERE psp.security_profile_id =
           to_number(fnd_profile.value('XLA_MO_SECURITY_PROFILE_LEVEL'));

    --以下SQL用来获取当前安全性配置文件和当前用户可访问的OU
    SELECT per.organization_id, hou.name
      FROM per_organization_list per, hr_operating_units hou
     WHERE per.security_profile_id =
           to_number(fnd_profile.value('XLA_MO_SECURITY_PROFILE_LEVEL'))
       AND per.organization_id = hou.organization_id
       AND hou.usable_flag IS NULL;

  • 相关阅读:
    大内密探HMM(转)
    广义线性模型(logistic和softmax)
    百度首席科学家 Andrew Ng谈深度学习的挑战和未来(转载)
    推荐系统中的SVD
    Leveldb源码解析之Bloom Filter
    redis源码解析之事件驱动
    I/O多路复用机制:epoll
    redis源码解析之内存管理
    Redis源码解析之ziplist
    redis源码解析之dict数据结构
  • 原文地址:https://www.cnblogs.com/shuihaya/p/14377507.html
Copyright © 2020-2023  润新知