支持MOAC功能的Form开发步骤

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

功能展示如下图:

这样在Form的开发过程中需要如下的开发步骤:
1,PRE-FORM 触发器初始化MOAC配置环境
  添加如下代码:

DECLARE
 l_default_org_id NUMBER;
 l_default_ou_name VARCHAR2(30);
 l_ou_count    NUMBER;
BEGIN
   mo_global.init ('SQLAP');
   mo_utils.get_default_ou (l_default_org_id, l_default_ou_name, l_ou_count);
   :parameter.mo_default_org_id := l_default_org_id;
   :parameter.mo_default_ou_name := l_default_ou_name;
   :parameter.mo_ou_count := l_ou_count;
 
  fnd_message.debug('OU Count '||l_ou_count);
  
   IF L_OU_COUNT = 1 THEN
    MO_GLOBAL.SET_POLICY_CONTEXT('S',l_default_org_id);
   ELSE
     MO_GLOBAL.SET_POLICY_CONTEXT('M',null);
   END IF;
END; 

 这段代码的作用是根据预制文件的设置,初始化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,创建OULOV
  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

其它没有特殊的步骤。

本文转自以下Link, 并做些小小的修改...

http://bbs.erp100.com/thread-103395-1-1.html

 

转载于:https://www.cnblogs.com/ben-blogs/archive/2013/05/13/3075955.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值