DECLARE
v_current_org_id NUMBER;
v_access_mode VARCHAR2(2);
v_ou_count NUMBER;
v_org_id NUMBER;
v_mo_init_done VARCHAR2(2);
v_check_access VARCHAR2(2);
v_ou_name VARCHAR2(240);
BEGIN
--设置Org访问模式,S为单OU访问,M为多OU访问,A为所有OU访问
--Single OU Mode
mo_global.set_policy_context(p_access_mode => 'S', p_org_id => 93);
--重置以上设置
arp_standard.sysparm.org_id := 93;
--或者使用如下API
ar_mo_cache_utils.set_org_context_in_api
--Multiple OU Mode(simulate login to a specific responsibility)
--初始化Multi Org,临时表 mo_glob_org_access_tmp 有数
--This will read the MO profile option values for your responsibility/user, and will initialize the Multi Org Access.
fnd_global.apps_initialize(userid,resp_id,resp_appl_id);--匿名块测试时,需要模拟登陆
mo_global.init('AR');
--检查Org_id是否存在临时表 mo_glob_org_access_tmp;
--check_valid_org 与 check_access 类似,check_valid_org可以跑出错误信息
SELECT mo_global.check_access(101)
INTO v_check_access
FROM dual;
--获取当前Org_id;若没有init,访问模式为S或A,则返回当前Org_id,若有init,且访问模式为S,则返回init的org_id
SELECT mo_global.get_current_org_id
INTO v_current_org_id
FROM dual;
--获取当前Org访问模式
SELECT mo_global.get_access_mode
INTO v_access_mode
FROM dual;
--获取当前多组织访问可访问的OU数;若没有init,则为空
SELECT mo_global.get_ou_count
INTO v_ou_count
FROM dual;
--验证并返回Org_id;若没有init,且访问模式为S;或者有init,则返回Org_id
SELECT mo_global.get_valid_org(101)
INTO v_org_id
FROM dual;
--验证MO是否已初始化,Y/N;若有init或者没有init但访问模式为S,则返回Y
SELECT mo_global.is_mo_init_done
INTO v_mo_init_done
FROM dual;
--获取临时表 mo_glob_org_access_tmp中Org名称
SELECT mo_global.get_ou_name(101)
INTO v_ou_name
FROM dual;
END;
R11初始化职责:
BEGIN
fnd_client_info.set_org_context(236);
END