mo_global

这段代码展示了在Oracle环境中如何设置和管理Multi-Org访问模式,包括单OU(SingleOUMode)和多OU(MultipleOUMode)访问。通过mo_global包的函数初始化、检查和获取当前Org_id、访问模式以及OU相关信息。同时,也演示了如何在职责(R11)中设置Org上下文。

mo_global

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值