1: PACKAGE BODY mo_global AS
2: /* $Header: AFMOGBLB.pls 120.37.12010000.2 2008/10/29 19:54:56 shnaraya ship $ */
3:
4: g_multi_org_flag fnd_product_groups.multi_org_flag%TYPE;
5: g_access_mode varchar2(1);
126: BEGIN
127:
128: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
129: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
130: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.begin',
131: 'Calling PL/SQL procedure '||
132: 'MO_GLOBAL.POPULATE_ORGS');
133: END IF;
134:
128: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
129: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
130: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.begin',
131: 'Calling PL/SQL procedure '||
132: 'MO_GLOBAL.POPULATE_ORGS');
133: END IF;
134:
135: --
136: -- Initialize the count of the accessible operating units.
138: g_ou_count := 0;
139:
140: IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
141: FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,
142: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.input_parameters',
143: 'p_org_id='||p_org_id_char||
144: ', p_sp_id='||p_sp_id_char);
145: END IF;
146:
166:
167: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
168: FND_LOG.STRING(
169: FND_LOG.LEVEL_EVENT,
170: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.config',
171: 'per_security_profiles.security_profile_name=>'||l_sp_name||
172: ', per_security_profiles.business_group_id=>'||l_bg_id||
173: ', per_security_profiles.view_all_organizations_flag=>'||is_view_all_org);
174: END IF;
178:
179: -- View all Within the Business Group Case
180: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
181: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
182: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.retrieve_orgs_c3_cursor',
183: 'Retrieving operating units using cursor c3 with arguments:'||
184: ' l_sp_name='||l_sp_name||
185: ', l_bg_id='||l_bg_id);
186: END IF;
198:
199: -- Global View all Case
200: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
201: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
202: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.retrieve_orgs_c4_cursor',
203: 'Retrieving operating units using cursor c4');
204: END IF;
205:
206: OPEN c4;
218:
219: -- Security Profile based on list or hierarchy Case
220: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
221: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
222: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.retrieve_orgs_c1_cursor',
223: 'Retrieving operating units using cursor c1');
224: END IF;
225:
226: OPEN c1;
240: ELSE
241: IF (p_org_id_char is NOT NULL) THEN
242: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
243: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
244: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.retrieve_orgs_c2_cursor',
245: 'Retrieving operating units using cursor c2');
246: END IF;
247:
248: OPEN c2;
367: END IF;
368:
369: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
370: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
371: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.temp_table_insert',
372: 'Inserted '||g_ou_count||' record(s) into MO_GLOB_ORG_ACCESS_TMP');
373: END IF;
374:
375: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
373: END IF;
374:
375: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
376: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
377: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.end',
378: 'Returning from PL/SQL procedure '||
379: 'MO_GLOBAL.POPULATE_ORGS: '||
380: 'l_bg_id='||l_bg_id||
381: ', p_sp_id_char='||p_sp_id_char||
375: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
376: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
377: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.end',
378: 'Returning from PL/SQL procedure '||
379: 'MO_GLOBAL.POPULATE_ORGS: '||
380: 'l_bg_id='||l_bg_id||
381: ', p_sp_id_char='||p_sp_id_char||
382: ', l_sp_name='||l_sp_name||
383: ', p_org_id_char='||p_org_id_char||
387: EXCEPTION
388: WHEN OTHERS THEN
389: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
390: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
391: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.temp_table',
392: 'temporary table other exception raised sqlerrm'||
393: '=>'||sqlerrm);
394: END IF;
395: generic_error('MO_GLOBAL.POPULATE_ORGS', sqlcode, sqlerrm);
391: 'fnd.plsql.MO_GLOBAL.POPULATE_ORGS.temp_table',
392: 'temporary table other exception raised sqlerrm'||
393: '=>'||sqlerrm);
394: END IF;
395: generic_error('MO_GLOBAL.POPULATE_ORGS', sqlcode, sqlerrm);
396:
397: END populate_orgs;
398:
399:
411: --
412:
413: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
414: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
415: 'fnd.plsql.MO_GLOBAL.DELETE_ORGS.begin',
416: 'Before flushing MO_GLOB_ORG_ACCESS_TMP');
417: END IF;
418:
419: DELETE FROM mo_glob_org_access_tmp;
419: DELETE FROM mo_glob_org_access_tmp;
420:
421: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
422: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
423: 'fnd.plsql.MO_GLOBAL.DELETE_ORGS.end',
424: 'MO_GLOB_ORG_ACCESS_TMP was flushed');
425: END IF;
426:
427: EXCEPTION
425: END IF;
426:
427: EXCEPTION
428: WHEN OTHERS THEN
429: generic_error('MO_GLOBAL.DELETE_ORGS', sqlcode, sqlerrm);
430:
431: END delete_orgs;
432:
433: --
454: RETURN g_multi_org_flag;
455:
456: EXCEPTION
457: WHEN OTHERS THEN
458: generic_error('MO_GLOBAL.IS_ACCESS_CONTROL_ENABLED', sqlcode, sqlerrm);
459: END;
460:
461: --
462: -- Name
464: --
465: -- Purpose
466: -- This procedure determines which operating units can be accessed
467: -- from the current database session. It is called by
468: -- mo_global.init when an Oracle Applications session is started.
469: -- The parameters passed to set_org_access() are the values of the
470: -- MO: Operating Unit, MO: Security Profile profile options and
471: -- Application Owner.
472: --
514:
515: BEGIN
516: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
517: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
518: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.begin',
519: 'Calling PL/SQL procedure MO_GLOBAL.SET_ORG_ACCESS:'||
520: ' p_org_id_char=>'||p_org_id_char||
521: ', p_sp_id_char=>'||p_sp_id_char||
522: ', p_appl_short_name=>'||p_appl_short_name);
515: BEGIN
516: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
517: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
518: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.begin',
519: 'Calling PL/SQL procedure MO_GLOBAL.SET_ORG_ACCESS:'||
520: ' p_org_id_char=>'||p_org_id_char||
521: ', p_sp_id_char=>'||p_sp_id_char||
522: ', p_appl_short_name=>'||p_appl_short_name);
523: END IF;
543: WHEN NO_DATA_FOUND THEN
544: fnd_message.set_name('FND','FND_MO_NO_APPL_NAME_FOUND'); -- raise error to
545: app_exception.raise_exception; -- enforce MO registration
546: WHEN OTHERS THEN
547: generic_error('MO_GLOBAL.SET_ORG_ACCESS', sqlcode, sqlerrm);
548: END;
549:
550: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
551: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
548: END;
549:
550: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
551: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
552: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.access_status',
553: 'Checking access status within PL/SQL procedure '||
554: 'MO_GLOBAL.SET_ORG_ACCESS: '||
555: 'l_access_ctrl_enabled=>'||l_access_ctrl_enabled);
556: END IF;
550: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
551: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
552: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.access_status',
553: 'Checking access status within PL/SQL procedure '||
554: 'MO_GLOBAL.SET_ORG_ACCESS: '||
555: 'l_access_ctrl_enabled=>'||l_access_ctrl_enabled);
556: END IF;
557:
558: --
560: --
561: delete_orgs;
562: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
563: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
564: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.after_delete',
565: 'Returning from PL/SQL procedure '||
566: 'MO_GLOBAL.DELETE_ORGS ');
567: END IF;
568: --
562: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
563: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
564: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.after_delete',
565: 'Returning from PL/SQL procedure '||
566: 'MO_GLOBAL.DELETE_ORGS ');
567: END IF;
568: --
569: -- For all products, when the access control feature is enabled,
570: -- 1. Use the MO: Security Profile if it is set.
582: l_current_org_id,
583: l_view_all_orgs);
584: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
585: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
586: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.After_Populate',
587: 'Returning from PL/SQL procedure '||
588: 'MO_GLOBAL.POPULATE_ORGS ');
589: END IF;
590: --
584: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
585: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
586: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.After_Populate',
587: 'Returning from PL/SQL procedure '||
588: 'MO_GLOBAL.POPULATE_ORGS ');
589: END IF;
590: --
591: -- Check if you have access to at least one operating unit.
592: --
622:
623: commit;
624: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
625: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
626: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.end',
627: 'Calling PL/SQL procedure MO_GLOBAL.SET_ORG_ACCESS:'||
628: ' p_org_id_char=>'||p_org_id_char||
629: ',p_sp_id_char=>'||p_sp_id_char||
630: ',p_appl_short_name=>'||p_appl_short_name||
623: commit;
624: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
625: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
626: 'fnd.plsql.MO_GLOBAL.SET_ORG_ACCESS.end',
627: 'Calling PL/SQL procedure MO_GLOBAL.SET_ORG_ACCESS:'||
628: ' p_org_id_char=>'||p_org_id_char||
629: ',p_sp_id_char=>'||p_sp_id_char||
630: ',p_appl_short_name=>'||p_appl_short_name||
631: ',l_view_all_orgs=>'||l_view_all_orgs||
641: app_exception.raise_exception;
642: WHEN NO_APPL_NAME THEN
643: app_exception.raise_exception;
644: WHEN OTHERS THEN
645: generic_error('MO_GLOBAL.SET_ORG_ACCESS', sqlcode, sqlerrm);
646:
647: END set_org_access;
648:
649:
711: -- Check if multi-org is enabled
712: --
713: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
714: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
715: 'fnd.plsql.MO_GLOBAL.INIT.begin',
716: 'Calling PL/SQL procedure MO_GLOBAL.INIT');
717: END IF;
718: IF is_multi_org_enabled = 'Y' THEN
719: --
712: --
713: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
714: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
715: 'fnd.plsql.MO_GLOBAL.INIT.begin',
716: 'Calling PL/SQL procedure MO_GLOBAL.INIT');
717: END IF;
718: IF is_multi_org_enabled = 'Y' THEN
719: --
720: -- Get the profile values and call set_org_access API
723: fnd_profile.get('ORG_ID', l_org_id);
724:
725: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
726: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
727: 'fnd.plsql.MO_GLOBAL.INIT.config',
728: 'MO: Operating Unit=>'||l_org_id||
729: ', MO: Security Profile=>'||l_security_profile_id||
730: ', p_appl_short_name=>'||p_appl_short_name);
731: END IF;
748:
749: END IF; -- multi org is enabled
750: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
751: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
752: 'fnd.plsql.MO_GLOBAL.INIT.end',
753: 'Exiting PL/SQL procedure MO_GLOBAL.INIT');
754: END IF;
755: EXCEPTION
756: WHEN others THEN
749: END IF; -- multi org is enabled
750: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
751: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
752: 'fnd.plsql.MO_GLOBAL.INIT.end',
753: 'Exiting PL/SQL procedure MO_GLOBAL.INIT');
754: END IF;
755: EXCEPTION
756: WHEN others THEN
757: generic_error('MO_GLOBAL.INIT', sqlcode, sqlerrm);
753: 'Exiting PL/SQL procedure MO_GLOBAL.INIT');
754: END IF;
755: EXCEPTION
756: WHEN others THEN
757: generic_error('MO_GLOBAL.INIT', sqlcode, sqlerrm);
758: END init;
759:
760:
761: --
849:
850: BEGIN
851: IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
852: FND_LOG.STRING(FND_LOG.LEVEL_EVENT,
853: 'fnd.plsql.MO_GLOBAL.INIT.config',
854: 'MO: Operating Unit=>'||p_org_id_char||
855: ',MO: Security Profile=>'||p_sp_id_char||
856: ',p_appl_short_name=>'||p_appl_short_name);
857: END IF;
866: set_org_access(p_org_id_char,p_sp_id_char, p_appl_short_name);
867:
868: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
869: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
870: 'fnd.plsql.MO_GLOBAL.SET_ORG_CONTEXT.end',
871: 'Returning from PL/SQL procedure MO_GLOBAL.SET_ORG_CONTEXT');
872: END IF;
873:
874: END set_org_context;
867:
868: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
869: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
870: 'fnd.plsql.MO_GLOBAL.SET_ORG_CONTEXT.end',
871: 'Returning from PL/SQL procedure MO_GLOBAL.SET_ORG_CONTEXT');
872: END IF;
873:
874: END set_org_context;
875:
1010:
1011: BEGIN
1012: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1013: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1014: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT.begin',
1015: 'Calling PL/SQL procedure MO_GLOBAL.SET_POLICY_CONTEXT:'||
1016: ' p_access_mode=>'||p_access_mode||
1017: ',p_org_id=>'||p_org_id);
1018: END IF;
1011: BEGIN
1012: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1013: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1014: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT.begin',
1015: 'Calling PL/SQL procedure MO_GLOBAL.SET_POLICY_CONTEXT:'||
1016: ' p_access_mode=>'||p_access_mode||
1017: ',p_org_id=>'||p_org_id);
1018: END IF;
1019: --
1121: g_old_resp_id:=sys_context('FND','RESP_ID');
1122:
1123: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1124: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1125: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT.end',
1126: 'Returning from PL/SQL prcedure MO_GLOBAL.SET_POLICY_CONTEXT');
1127: END IF;
1128:
1129: END set_policy_context;
1122:
1123: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1124: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1125: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT.end',
1126: 'Returning from PL/SQL prcedure MO_GLOBAL.SET_POLICY_CONTEXT');
1127: END IF;
1128:
1129: END set_policy_context;
1130:
1203: -- Debug information
1204: --
1205: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1206: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1207: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.begin',
1208: 'Calling PL/SQL function '||
1209: 'MO_GLOBAL.GET_VALID_ORG'||
1210: ' p_org_id=>'||p_org_id);
1211: END IF;
1205: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1206: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1207: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.begin',
1208: 'Calling PL/SQL function '||
1209: 'MO_GLOBAL.GET_VALID_ORG'||
1210: ' p_org_id=>'||p_org_id);
1211: END IF;
1212:
1213: --
1221: -- If p_org_id is G_MISS_NUM (org id is not passed in), then get the org_id
1222: -- from current org_id. If that is also not available, get the default
1223: -- org_id
1224: --
1225: l_org_id := NVL(mo_global.get_current_org_id,
1226: mo_utils.get_default_org_id);
1227: ELSE
1228: --
1229: -- If p_org_id is null or different from G_MISS_NUM
1245: -- Debug information
1246: --
1247: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1248: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1249: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.end',
1250: 'Returning from PL/SQL function '||
1251: 'MO_GLOBAL.GET_VALID_ORG:'||
1252: ' Returns NULL');
1253: END IF;
1247: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1248: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1249: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.end',
1250: 'Returning from PL/SQL function '||
1251: 'MO_GLOBAL.GET_VALID_ORG:'||
1252: ' Returns NULL');
1253: END IF;
1254:
1255: --
1262: -- Debug information
1263: --
1264: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1265: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1266: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.end',
1267: 'Returning from PL/SQL function '||
1268: 'MO_GLOBAL.GET_VALID_ORG:'||
1269: ' Returns '||l_org_id);
1270: END IF;
1264: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1265: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1266: 'fnd.plsql.MO_GLOBAL.GET_VALID_ORG.end',
1267: 'Returning from PL/SQL function '||
1268: 'MO_GLOBAL.GET_VALID_ORG:'||
1269: ' Returns '||l_org_id);
1270: END IF;
1271:
1272: --
1277: END IF;
1278:
1279: EXCEPTION
1280: WHEN OTHERS THEN
1281: generic_error('MO_GLOBAL.Get_Valid_Org', sqlcode, sqlerrm);
1282:
1283: END get_valid_org;
1284:
1285: -- validate_orgid_pub_api
1315: /* May consider the following logic to execute MO init w/in the proc in future.
1316:
1317: IF g_ou_count = 0 AND
1318: FND_PROFILE.VALUE('XLA_MO_SECURITY_PROFILE_LEVEL') is NOT NULL THEN
1319: mo_global.init('M');
1320:
1321: ELSIF g_ou_count = 0 AND
1322: FND_PROFILE.VALUE('XLA_MO_SECURITY_PROFILE_LEVEL') is NULL AND
1323: FND_PROFILE.VALUE('ORG_ID') is NOT NULL THEN
1320:
1321: ELSIF g_ou_count = 0 AND
1322: FND_PROFILE.VALUE('XLA_MO_SECURITY_PROFILE_LEVEL') is NULL AND
1323: FND_PROFILE.VALUE('ORG_ID') is NOT NULL THEN
1324: mo_global.init('S');
1325: END IF;
1326: */
1327:
1328: STATUS := 'F'; -- initialize the variable to F
1379: STATUS:='F';
1380: -- looking here for current org id otherwise default OU
1381: -- if initialization is done
1382: IF g_ou_count >= 1 THEN
1383: ORG_ID := mo_global.get_current_org_id;
1384: IF ORG_ID is NOT NULL THEN
1385: STATUS := 'C';
1386: ELSE
1387: ORG_ID := GET_VALID_ORG(FND_API.G_MISS_NUM);
1413: FND_MESSAGE.SET_NAME('FND','FND_MO_INVALID_OU_PUB_API');
1414: APP_EXCEPTION.RAISE_EXCEPTION;
1415: WHEN others THEN
1416: STATUS:='F';
1417: generic_error('MO_GLOBAL.VALIDATE_ORGID_PUB_API', sqlcode, sqlerrm);
1418:
1419: END validate_orgid_pub_api;
1420:
1421: -- Name: is_mo_init_done
1464: return 'N';
1465:
1466: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1467: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1468: 'fnd.plsql.MO_GLOBAL.is_mo_init_done.begin',
1469: 'g_ou_count=>'||g_ou_count||
1470: ', g_access_mode=>'||g_access_mode||
1471: ', g_current_org_id=>'||g_current_org_id||
1472: ', g_init_access_mode=>'||g_init_access_mode);
1477:
1478:
1479: EXCEPTION
1480: WHEN OTHERS THEN
1481: generic_error('MO_GLOBAL.IS_MO_INIT_DONE', sqlcode, sqlerrm);
1482: END is_mo_init_done;
1483:
1484: -- Name
1485: -- org_security_global function
1562: BEGIN
1563:
1564: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1565: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1566: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT_SERVER.begin',
1567: 'Calling PL/SQL procedure MO_GLOBAL.SET_POLICY_CONTEXT_SERVER:'||
1568: ' p_access_mode=>'||p_access_mode||
1569: ',p_org_id=>'||p_org_id);
1570: END IF;
1563:
1564: IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1565: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,
1566: 'fnd.plsql.MO_GLOBAL.SET_POLICY_CONTEXT_SERVER.begin',
1567: 'Calling PL/SQL procedure MO_GLOBAL.SET_POLICY_CONTEXT_SERVER:'||
1568: ' p_access_mode=>'||p_access_mode||
1569: ',p_org_id=>'||p_org_id);
1570: END IF;
1571:
1568: ' p_access_mode=>'||p_access_mode||
1569: ',p_org_id=>'||p_org_id);
1570: END IF;
1571:
1572: MO_GLOBAL.set_policy_context(p_access_mode, p_org_id); -- Force server-side to sync
1573:
1574: END set_policy_context_server;
1575:
1576: --
1613:
1614: END delete_organizations;
1615:
1616:
1617: END mo_global;