1: PACKAGE BODY mo_global AS
2: /* $Header: AFMOGBLB.pls 120.40.12020000.2 2012/08/13 22:00:01 shnaraya ship $ */
3:
4: g_multi_org_flag fnd_product_groups.multi_org_flag%TYPE;
5: g_access_mode varchar2(1);
130: BEGIN
131:
132: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
133: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
134: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.begin',
135: 'Calling PL/SQL procedure '||
136: 'MO_GLOBAL.POPULATE_ORGS');
137: END IF;
138:
132: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
133: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
134: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.begin',
135: 'Calling PL/SQL procedure '||
136: 'MO_GLOBAL.POPULATE_ORGS');
137: END IF;
138:
139: --
140: -- Initialize the count of the accessible operating units.
142: g_ou_count := 0;
143:
144: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
145: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,
146: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.input_parameters',
147: 'p_org_id='||p_org_id_char||
148: ', p_sp_id='||p_sp_id_char);
149: END IF;
150:
170:
171: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
172: FND_LOG.STRING(
173: FND_LOG.LEVEL_EVENT,
174: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.config',
175: 'per_security_profiles.security_profile_name=>'||l_sp_name||
176: ', per_security_profiles.business_group_id=>'||l_bg_id||
177: ', per_security_profiles.view_all_organizations_flag=>'||is_view_all_org);
178: END IF;
182:
183: -- View all Within the Business Group Case
184: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
185: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
186: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.retrieve_orgs_c3_cursor',
187: 'Retrieving operating units using cursor c3 with arguments:'||
188: ' l_sp_name='||l_sp_name||
189: ', l_bg_id='||l_bg_id);
190: END IF;
202:
203: -- Global View all Case
204: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
205: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
206: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.retrieve_orgs_c4_cursor',
207: 'Retrieving operating units using cursor c4');
208: END IF;
209:
210: OPEN c4;
222:
223: -- Security Profile based on list or hierarchy Case
224: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
225: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
226: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.retrieve_orgs_c1_cursor',
227: 'Retrieving operating units using cursor c1');
228: END IF;
229:
230: OPEN c1;
244: ELSE
245: IF (p_org_id_char is NOT NULL) THEN
246: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
247: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
248: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.retrieve_orgs_c2_cursor',
249: 'Retrieving operating units using cursor c2');
250: END IF;
251:
252: OPEN c2;
430: END IF;
431:
432: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
433: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
434: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.temp_table_insert',
435: 'Inserted '||g_ou_count||' record(s) into MO_GLOB_ORG_ACCESS_TMP');
436: END IF;
437:
438: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
436: END IF;
437:
438: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
439: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
440: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.end',
441: 'Returning from PL/SQL procedure '||
442: 'MO_GLOBAL.POPULATE_ORGS: '||
443: 'l_bg_id='||l_bg_id||
444: ', p_sp_id_char='||p_sp_id_char||
438: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
439: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
440: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.end',
441: 'Returning from PL/SQL procedure '||
442: 'MO_GLOBAL.POPULATE_ORGS: '||
443: 'l_bg_id='||l_bg_id||
444: ', p_sp_id_char='||p_sp_id_char||
445: ', l_sp_name='||l_sp_name||
446: ', p_org_id_char='||p_org_id_char||
450: EXCEPTION
451: WHEN OTHERS THEN
452: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
453: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
454: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.temp_table',
455: 'temporary table other exception raised sqlerrm'||
456: '=>'||sqlerrm);
457: END IF;
458: generic_error('MO_GLOBAL.POPULATE_ORGS', sqlcode, sqlerrm);
454: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.temp_table',
455: 'temporary table other exception raised sqlerrm'||
456: '=>'||sqlerrm);
457: END IF;
458: generic_error('MO_GLOBAL.POPULATE_ORGS', sqlcode, sqlerrm);
459:
460: END populate_orgs;
461:
462:
474: --
475:
476: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
477: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
478: 'fnd.plsql.MO_GLOBAL.DELETE_ORGS.begin',
479: 'Before flushing MO_GLOB_ORG_ACCESS_TMP');
480: END IF;
481:
482: if ( fnd_adg_support.is_standby )
492: end if;
493:
494: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
495: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
496: 'fnd.plsql.MO_GLOBAL.DELETE_ORGS.end',
497: 'MO_GLOB_ORG_ACCESS_TMP was flushed');
498: END IF;
499:
500: EXCEPTION
498: END IF;
499:
500: EXCEPTION
501: WHEN OTHERS THEN
502: generic_error('MO_GLOBAL.DELETE_ORGS', sqlcode, sqlerrm);
503:
504: END delete_orgs;
505:
506: --
527: RETURN g_multi_org_flag;
528:
529: EXCEPTION
530: WHEN OTHERS THEN
531: generic_error('MO_GLOBAL.IS_ACCESS_CONTROL_ENABLED', sqlcode, sqlerrm);
532: END;
533:
534: --
535: -- Name
537: --
538: -- Purpose
539: -- This procedure determines which operating units can be accessed
540: -- from the current database session. It is called by
541: -- mo_global.init when an Oracle Applications session is started.
542: -- The parameters passed to set_org_access() are the values of the
543: -- MO: Operating Unit, MO: Security Profile profile options and
544: -- Application Owner.
545: --
586:
587: BEGIN
588: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
589: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
590: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.begin',
591: 'Calling PL/SQL procedure MO_GLOBAL.SET_ORG_ACCESS:'||
592: ' p_org_id_char=>'||p_org_id_char||
593: ', p_sp_id_char=>'||p_sp_id_char||
594: ', p_appl_short_name=>'||p_appl_short_name);
587: BEGIN
588: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
589: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
590: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.begin',
591: 'Calling PL/SQL procedure MO_GLOBAL.SET_ORG_ACCESS:'||
592: ' p_org_id_char=>'||p_org_id_char||
593: ', p_sp_id_char=>'||p_sp_id_char||
594: ', p_appl_short_name=>'||p_appl_short_name);
595: END IF;
615: WHEN NO_DATA_FOUND THEN
616: fnd_message.set_name('FND','FND_MO_NO_APPL_NAME_FOUND'); -- raise error to
617: app_exception.raise_exception; -- enforce MO registration
618: WHEN OTHERS THEN
619: generic_error('MO_GLOBAL.SET_ORG_ACCESS', sqlcode, sqlerrm);
620: END;
621:
622: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
623: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
620: END;
621:
622: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
623: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
624: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.access_status',
625: 'Checking access status within PL/SQL procedure '||
626: 'MO_GLOBAL.SET_ORG_ACCESS: '||
627: 'l_access_ctrl_enabled=>'||l_access_ctrl_enabled);
628: END IF;
622: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
623: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
624: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.access_status',
625: 'Checking access status within PL/SQL procedure '||
626: 'MO_GLOBAL.SET_ORG_ACCESS: '||
627: 'l_access_ctrl_enabled=>'||l_access_ctrl_enabled);
628: END IF;
629:
630: --
632: --
633: delete_orgs;
634: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
635: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
636: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.after_delete',
637: 'Returning from PL/SQL procedure '||
638: 'MO_GLOBAL.DELETE_ORGS ');
639: END IF;
640: --
634: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
635: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
636: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.after_delete',
637: 'Returning from PL/SQL procedure '||
638: 'MO_GLOBAL.DELETE_ORGS ');
639: END IF;
640: --
641: -- For all products, when the access control feature is enabled,
642: -- 1. Use the MO: Security Profile if it is set.
654: l_current_org_id,
655: l_view_all_orgs);
656: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
657: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
658: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.After_Populate',
659: 'Returning from PL/SQL procedure '||
660: 'MO_GLOBAL.POPULATE_ORGS ');
661: END IF;
662: --
656: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
657: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
658: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.After_Populate',
659: 'Returning from PL/SQL procedure '||
660: 'MO_GLOBAL.POPULATE_ORGS ');
661: END IF;
662: --
663: -- Check if you have access to at least one operating unit.
664: --
694:
695: commit;
696: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
697: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
698: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.end',
699: 'Calling PL/SQL procedure MO_GLOBAL.SET_ORG_ACCESS:'||
700: ' p_org_id_char=>'||p_org_id_char||
701: ',p_sp_id_char=>'||p_sp_id_char||
702: ',p_appl_short_name=>'||p_appl_short_name||
695: commit;
696: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
697: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
698: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.end',
699: 'Calling PL/SQL procedure MO_GLOBAL.SET_ORG_ACCESS:'||
700: ' p_org_id_char=>'||p_org_id_char||
701: ',p_sp_id_char=>'||p_sp_id_char||
702: ',p_appl_short_name=>'||p_appl_short_name||
703: ',l_view_all_orgs=>'||l_view_all_orgs||
713: app_exception.raise_exception;
714: WHEN NO_APPL_NAME THEN
715: app_exception.raise_exception;
716: WHEN OTHERS THEN
717: generic_error('MO_GLOBAL.SET_ORG_ACCESS', sqlcode, sqlerrm);
718:
719: END do_set_org_access;
720:
721: PROCEDURE do_auto_set_org_access(p_org_id_char VARCHAR2,
806: -- Check if multi-org is enabled
807: --
808: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
809: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
810: 'fnd.plsql.MO_GLOBAL.INIT.begin',
811: 'Calling PL/SQL procedure MO_GLOBAL.INIT');
812: END IF;
813: IF is_multi_org_enabled = 'Y' THEN
814: --
807: --
808: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
809: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
810: 'fnd.plsql.MO_GLOBAL.INIT.begin',
811: 'Calling PL/SQL procedure MO_GLOBAL.INIT');
812: END IF;
813: IF is_multi_org_enabled = 'Y' THEN
814: --
815: -- Get the profile values and call set_org_access API
818: fnd_profile.get('ORG_ID', l_org_id);
819:
820: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
821: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
822: 'fnd.plsql.MO_GLOBAL.INIT.config',
823: 'MO: Operating Unit=>'||l_org_id||
824: ', MO: Security Profile=>'||l_security_profile_id||
825: ', p_appl_short_name=>'||p_appl_short_name);
826: END IF;
843:
844: END IF; -- multi org is enabled
845: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
846: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
847: 'fnd.plsql.MO_GLOBAL.INIT.end',
848: 'Exiting PL/SQL procedure MO_GLOBAL.INIT');
849: END IF;
850: EXCEPTION
851: WHEN others THEN
844: END IF; -- multi org is enabled
845: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
846: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
847: 'fnd.plsql.MO_GLOBAL.INIT.end',
848: 'Exiting PL/SQL procedure MO_GLOBAL.INIT');
849: END IF;
850: EXCEPTION
851: WHEN others THEN
852: generic_error('MO_GLOBAL.INIT', sqlcode, sqlerrm);
848: 'Exiting PL/SQL procedure MO_GLOBAL.INIT');
849: END IF;
850: EXCEPTION
851: WHEN others THEN
852: generic_error('MO_GLOBAL.INIT', sqlcode, sqlerrm);
853: END init;
854:
855:
856: --
956:
957: BEGIN
958: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
959: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
960: 'fnd.plsql.MO_GLOBAL.INIT.config',
961: 'MO: Operating Unit=>'||p_org_id_char||
962: ',MO: Security Profile=>'||p_sp_id_char||
963: ',p_appl_short_name=>'||p_appl_short_name);
964: END IF;
973: set_org_access(p_org_id_char,p_sp_id_char, p_appl_short_name);
974:
975: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
976: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
977: 'fnd.plsql.MO_GLOBAL.SET_ORG_CONTEXT.end',
978: 'Returning from PL/SQL procedure MO_GLOBAL.SET_ORG_CONTEXT');
979: END IF;
980:
981: END set_org_context;
974:
975: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
976: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
977: 'fnd.plsql.MO_GLOBAL.SET_ORG_CONTEXT.end',
978: 'Returning from PL/SQL procedure MO_GLOBAL.SET_ORG_CONTEXT');
979: END IF;
980:
981: END set_org_context;
982:
1145:
1146: BEGIN
1147: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1148: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1149: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT.begin',
1150: 'Calling PL/SQL procedure MO_GLOBAL.SET_POLICY_CONTEXT:'||
1151: ' p_access_mode=>'||p_access_mode||
1152: ',p_org_id=>'||p_org_id);
1153: END IF;
1146: BEGIN
1147: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1148: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1149: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT.begin',
1150: 'Calling PL/SQL procedure MO_GLOBAL.SET_POLICY_CONTEXT:'||
1151: ' p_access_mode=>'||p_access_mode||
1152: ',p_org_id=>'||p_org_id);
1153: END IF;
1154: --
1256: g_old_resp_id:=sys_context('FND','RESP_ID');
1257:
1258: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1259: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1260: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT.end',
1261: 'Returning from PL/SQL prcedure MO_GLOBAL.SET_POLICY_CONTEXT');
1262: END IF;
1263:
1264: END set_policy_context;
1257:
1258: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1259: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1260: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT.end',
1261: 'Returning from PL/SQL prcedure MO_GLOBAL.SET_POLICY_CONTEXT');
1262: END IF;
1263:
1264: END set_policy_context;
1265:
1338: -- Debug information
1339: --
1340: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1341: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1342: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.begin',
1343: 'Calling PL/SQL function '||
1344: 'MO_GLOBAL.GET_VALID_ORG'||
1345: ' p_org_id=>'||p_org_id);
1346: END IF;
1340: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1341: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1342: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.begin',
1343: 'Calling PL/SQL function '||
1344: 'MO_GLOBAL.GET_VALID_ORG'||
1345: ' p_org_id=>'||p_org_id);
1346: END IF;
1347:
1348: --
1356: -- If p_org_id is G_MISS_NUM (org id is not passed in), then get the org_id
1357: -- from current org_id. If that is also not available, get the default
1358: -- org_id
1359: --
1360: l_org_id := NVL(mo_global.get_current_org_id,
1361: mo_utils.get_default_org_id);
1362: ELSE
1363: --
1364: -- If p_org_id is null or different from G_MISS_NUM
1380: -- Debug information
1381: --
1382: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1383: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1384: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.end',
1385: 'Returning from PL/SQL function '||
1386: 'MO_GLOBAL.GET_VALID_ORG:'||
1387: ' Returns NULL');
1388: END IF;
1382: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1383: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1384: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.end',
1385: 'Returning from PL/SQL function '||
1386: 'MO_GLOBAL.GET_VALID_ORG:'||
1387: ' Returns NULL');
1388: END IF;
1389:
1390: --
1397: -- Debug information
1398: --
1399: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1400: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1401: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.end',
1402: 'Returning from PL/SQL function '||
1403: 'MO_GLOBAL.GET_VALID_ORG:'||
1404: ' Returns '||l_org_id);
1405: END IF;
1399: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1400: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1401: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.end',
1402: 'Returning from PL/SQL function '||
1403: 'MO_GLOBAL.GET_VALID_ORG:'||
1404: ' Returns '||l_org_id);
1405: END IF;
1406:
1407: --
1412: END IF;
1413:
1414: EXCEPTION
1415: WHEN OTHERS THEN
1416: generic_error('MO_GLOBAL.Get_Valid_Org', sqlcode, sqlerrm);
1417:
1418: END get_valid_org;
1419:
1420: -- validate_orgid_pub_api
1450: /* May consider the following logic to execute MO init w/in the proc in future.
1451:
1452: IF g_ou_count = 0 AND
1453: FND_PROFILE.VALUE('XLA_MO_SECURITY_PROFILE_LEVEL') is NOT NULL THEN
1454: mo_global.init('M');
1455:
1456: ELSIF g_ou_count = 0 AND
1457: FND_PROFILE.VALUE('XLA_MO_SECURITY_PROFILE_LEVEL') is NULL AND
1458: FND_PROFILE.VALUE('ORG_ID') is NOT NULL THEN
1455:
1456: ELSIF g_ou_count = 0 AND
1457: FND_PROFILE.VALUE('XLA_MO_SECURITY_PROFILE_LEVEL') is NULL AND
1458: FND_PROFILE.VALUE('ORG_ID') is NOT NULL THEN
1459: mo_global.init('S');
1460: END IF;
1461: */
1462:
1463: STATUS := 'F'; -- initialize the variable to F
1514: STATUS:='F';
1515: -- looking here for current org id otherwise default OU
1516: -- if initialization is done
1517: IF g_ou_count >= 1 THEN
1518: ORG_ID := mo_global.get_current_org_id;
1519: IF ORG_ID is NOT NULL THEN
1520: STATUS := 'C';
1521: ELSE
1522: ORG_ID := GET_VALID_ORG(FND_API.G_MISS_NUM);
1548: FND_MESSAGE.SET_NAME('FND','FND_MO_INVALID_OU_PUB_API');
1549: APP_EXCEPTION.RAISE_EXCEPTION;
1550: WHEN others THEN
1551: STATUS:='F';
1552: generic_error('MO_GLOBAL.VALIDATE_ORGID_PUB_API', sqlcode, sqlerrm);
1553:
1554: END validate_orgid_pub_api;
1555:
1556: -- Name: is_mo_init_done
1599: return 'N';
1600:
1601: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1602: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1603: 'fnd.plsql.MO_GLOBAL.is_mo_init_done.begin',
1604: 'g_ou_count=>'||g_ou_count||
1605: ', g_access_mode=>'||g_access_mode||
1606: ', g_current_org_id=>'||g_current_org_id||
1607: ', g_init_access_mode=>'||g_init_access_mode);
1612:
1613:
1614: EXCEPTION
1615: WHEN OTHERS THEN
1616: generic_error('MO_GLOBAL.IS_MO_INIT_DONE', sqlcode, sqlerrm);
1617: END is_mo_init_done;
1618:
1619: -- Name
1620: -- org_security_global function
1708: BEGIN
1709:
1710: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1711: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1712: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT_SERVER.begin',
1713: 'Calling PL/SQL procedure MO_GLOBAL.SET_POLICY_CONTEXT_SERVER:'||
1714: ' p_access_mode=>'||p_access_mode||
1715: ',p_org_id=>'||p_org_id);
1716: END IF;
1709:
1710: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1711: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1712: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT_SERVER.begin',
1713: 'Calling PL/SQL procedure MO_GLOBAL.SET_POLICY_CONTEXT_SERVER:'||
1714: ' p_access_mode=>'||p_access_mode||
1715: ',p_org_id=>'||p_org_id);
1716: END IF;
1717:
1714: ' p_access_mode=>'||p_access_mode||
1715: ',p_org_id=>'||p_org_id);
1716: END IF;
1717:
1718: MO_GLOBAL.set_policy_context(p_access_mode, p_org_id); -- Force server-side to sync
1719:
1720: END set_policy_context_server;
1721:
1722: --
1759:
1760: END delete_organizations;
1761:
1762:
1763: END mo_global;