91: -- Pre-reqs : None.
92: -- Parameters :
93: -- IN : p_api_version IN NUMBER Required
94: -- p_init_msg_list IN VARCHAR2 Optional
95: -- Default = FND_API.G_FALSE
96: -- p_msite_id IN NUMBER
97: -- p_preview_flag IN VARCHAR2
98: -- p_item_id IN NUMBER
99: -- p_rel_type_code IN VARCHAR2
103: -- Default = NULL (No order)
104: -- p_order_by_order IN VARCHAR2
105: -- Default = G_ASCEND_ORDER (Ascending order)
106: -- p_include_self_ref IN VARCHAR2
107: -- Default = FND_API.G_FALSE (Don't include self-referrals)
108: -- p_bind_varN IN VARCHAR2
109: -- Default = NULL (Bind variables for relationship rule defined by manual SQL)
110: -- OUT : x_return_status OUT VARCHAR2(1)
111: -- x_msg_count OUT NUMBER
169:
170: BEGIN
171: l_debug := NVL(FND_PROFILE.VALUE('IBE_DEBUG'),'N');
172: -- Standard call to check for call compatibility.
173: IF NOT FND_API.Compatible_API_Call( l_api_version,
174: p_api_version,
175: l_api_name,
176: G_PKG_NAME )
177: THEN
174: p_api_version,
175: l_api_name,
176: G_PKG_NAME )
177: THEN
178: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
179: END IF;
180:
181: IF p_init_msg_list IS NULL THEN
182: l_init_msg_list := FND_API.G_FALSE;
178: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
179: END IF;
180:
181: IF p_init_msg_list IS NULL THEN
182: l_init_msg_list := FND_API.G_FALSE;
183: END IF;
184:
185: IF p_preview_flag IS NULL THEN
186: l_preview_flag := FND_API.G_FALSE;
182: l_init_msg_list := FND_API.G_FALSE;
183: END IF;
184:
185: IF p_preview_flag IS NULL THEN
186: l_preview_flag := FND_API.G_FALSE;
187: END IF;
188:
189: IF p_include_self_ref IS NULL THEN
190: l_include_self_ref := FND_API.G_FALSE;
186: l_preview_flag := FND_API.G_FALSE;
187: END IF;
188:
189: IF p_include_self_ref IS NULL THEN
190: l_include_self_ref := FND_API.G_FALSE;
191: END IF;
192:
193: IF p_rule_type IS NULL THEN
194: l_rule_type := 'MAPPING';
194: l_rule_type := 'MAPPING';
195: END IF;
196:
197: -- Initialize message list if l_init_msg_list is set to TRUE.
198: IF FND_API.to_Boolean( l_init_msg_list ) THEN
199: FND_MSG_PUB.initialize;
200: END IF;
201: -- Initialize API return status to success
202: x_return_status := FND_API.G_RET_STS_SUCCESS;
198: IF FND_API.to_Boolean( l_init_msg_list ) THEN
199: FND_MSG_PUB.initialize;
200: END IF;
201: -- Initialize API return status to success
202: x_return_status := FND_API.G_RET_STS_SUCCESS;
203: -- Initialize the return value table
204: x_items_tbl := JTF_Number_Table();
205: l_items_tbl.extend();
206: l_items_tbl(1) := p_item_id;
221: IF (l_debug = 'Y') THEN
222: IBE_UTIL.debug('IBE_Prod_Relation_GRP.Get_Related_Items(-)');
223: END IF;
224: -- Standard call to get message count and if count is 1, get message info.
225: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
226: p_count => x_msg_count ,
227: p_data => x_msg_data );
228: EXCEPTION
229: WHEN FND_API.G_EXC_ERROR THEN
225: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
226: p_count => x_msg_count ,
227: p_data => x_msg_data );
228: EXCEPTION
229: WHEN FND_API.G_EXC_ERROR THEN
230: x_return_status := FND_API.G_RET_STS_ERROR;
231: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
232: p_count => x_msg_count ,
233: p_data => x_msg_data );
226: p_count => x_msg_count ,
227: p_data => x_msg_data );
228: EXCEPTION
229: WHEN FND_API.G_EXC_ERROR THEN
230: x_return_status := FND_API.G_RET_STS_ERROR;
231: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
232: p_count => x_msg_count ,
233: p_data => x_msg_data );
234: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
227: p_data => x_msg_data );
228: EXCEPTION
229: WHEN FND_API.G_EXC_ERROR THEN
230: x_return_status := FND_API.G_RET_STS_ERROR;
231: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
232: p_count => x_msg_count ,
233: p_data => x_msg_data );
234: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
235: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
230: x_return_status := FND_API.G_RET_STS_ERROR;
231: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
232: p_count => x_msg_count ,
233: p_data => x_msg_data );
234: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
235: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
236: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
237: p_count => x_msg_count ,
238: p_data => x_msg_data );
231: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
232: p_count => x_msg_count ,
233: p_data => x_msg_data );
234: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
235: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
236: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
237: p_count => x_msg_count ,
238: p_data => x_msg_data );
239: WHEN OTHERS THEN
232: p_count => x_msg_count ,
233: p_data => x_msg_data );
234: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
235: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
236: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
237: p_count => x_msg_count ,
238: p_data => x_msg_data );
239: WHEN OTHERS THEN
240: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
236: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
237: p_count => x_msg_count ,
238: p_data => x_msg_data );
239: WHEN OTHERS THEN
240: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
241: IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
242: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,
243: l_api_name );
244: END IF;
241: IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
242: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,
243: l_api_name );
244: END IF;
245: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
246: p_count => x_msg_count ,
247: p_data => x_msg_data );
248: END Get_Related_Items;
249: -- Start of comments
253: -- Pre-reqs : None.
254: -- Parameters :
255: -- IN : p_api_version IN NUMBER Required
256: -- p_init_msg_list IN VARCHAR2 Optional
257: -- Default = FND_API.G_FALSE
258: -- p_item_id IN NUMBER
259: -- p_rel_type_code IN VARCHAR2
260: -- p_max_ret_num IN NUMBER
261: -- Default = NULL (Return all)
261: -- Default = NULL (Return all)
262: -- p_order_by_clause IN VARCHAR2
263: -- Default = NULL (No order)
264: -- l_include_self_ref IN VARCHAR2
265: -- Default = FND_API.G_FALSE (Don't include self-referrals)
266: -- p_bind_argN IN VARCHAR2
267: -- Default = NULL (Bind arguments for relationship rule defined by manual SQL)
268: -- OUT : x_return_status OUT VARCHAR2(1)
269: -- x_msg_count OUT NUMBER
412:
413: BEGIN
414: l_debug := NVL(FND_PROFILE.VALUE('IBE_DEBUG'),'N');
415: -- Standard call to check for call compatibility.
416: IF NOT FND_API.Compatible_API_Call( l_api_version,
417: p_api_version,
418: l_api_name,
419: G_PKG_NAME )
420: THEN
417: p_api_version,
418: l_api_name,
419: G_PKG_NAME )
420: THEN
421: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
422: END IF;
423:
424: IF p_init_msg_list IS NULL THEN
425: l_init_msg_list := FND_API.G_FALSE;
421: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
422: END IF;
423:
424: IF p_init_msg_list IS NULL THEN
425: l_init_msg_list := FND_API.G_FALSE;
426: END IF;
427:
428: IF p_include_self_ref IS NULL THEN
429: l_include_self_ref := FND_API.G_FALSE;
425: l_init_msg_list := FND_API.G_FALSE;
426: END IF;
427:
428: IF p_include_self_ref IS NULL THEN
429: l_include_self_ref := FND_API.G_FALSE;
430: END IF;
431:
432: IF p_rule_type IS NULL THEN
433: l_rule_type := 'MAPPING';
433: l_rule_type := 'MAPPING';
434: END IF;
435:
436: -- Initialize message list if p_init_msg_list is set to TRUE.
437: IF FND_API.to_Boolean( p_init_msg_list ) THEN
438: FND_MSG_PUB.initialize;
439: END IF;
440: -- Initialize API return status to success
441: x_return_status := FND_API.G_RET_STS_SUCCESS;
437: IF FND_API.to_Boolean( p_init_msg_list ) THEN
438: FND_MSG_PUB.initialize;
439: END IF;
440: -- Initialize API return status to success
441: x_return_status := FND_API.G_RET_STS_SUCCESS;
442: -- Initialize the return value table
443: x_items_tbl := JTF_Number_Table();
444: IF (l_debug = 'Y') THEN
445: IBE_UTIL.debug('IBE_Prod_Relation_GRP.Get_Related_Items(+)');
455: END IF;
456: FND_MESSAGE.Set_Name('IBE', 'IBE_CT_REL_NOT_VALID');
457: FND_MESSAGE.Set_Token('RELATIONSHIP', p_rel_type_code);
458: FND_MSG_PUB.Add;
459: RAISE FND_API.G_EXC_ERROR;
460: END IF;
461: IF l_rule_type = 'SQL' THEN
462: -- 2. Get the related items using the manual SQL.
463: BEGIN -- begin sub-block to handle the SELECT statement's exception
561: END IF;
562: FND_MESSAGE.Set_Name('IBE', 'IBE_CT_SQL_RULE_ERROR');
563: FND_MESSAGE.Set_Token('RELATIONSHIP', p_rel_type_code);
564: FND_MSG_PUB.Add;
565: RAISE FND_API.G_EXC_ERROR;
566: END; -- end sub-block to handle the SELECT statement's exception
567: ELSE -- l_rule_type = 'MAPPING'
568: -- 3. Get the related items from ibe_ct_related_items table
569: include_mtl := Exists_In_MTL(p_rel_type_code);
567: ELSE -- l_rule_type = 'MAPPING'
568: -- 3. Get the related items from ibe_ct_related_items table
569: include_mtl := Exists_In_MTL(p_rel_type_code);
570: IF (p_max_ret_num IS NULL) AND (NOT include_mtl) THEN -- Can use bulk fetching
571: IF FND_API.to_Boolean( l_include_self_ref ) THEN -- include self referral
572: IF (l_debug = 'Y') THEN
573: IBE_UTIL.debug('Mapping rule: p_max_ret_num is NULL: relationship NOT in MTL: l_include_self_ref is TRUE.');
574: END IF;
575: EXECUTE IMMEDIATE l_without_mtl_bulk_stmt ||
585: USING OUT x_items_tbl, p_rel_type_code, p_item_id, p_org_id, p_item_id;
586: END IF;
587: ELSE -- Cannot use bulk fetching
588: IF include_mtl THEN -- must do union with mtl_related_items
589: IF FND_API.to_Boolean( l_include_self_ref ) THEN -- include self referral
590: IF (l_debug = 'Y') THEN
591: IBE_UTIL.debug('Mapping rule: relationship in MTL: l_include_self_ref is TRUE.');
592: END IF;
593: OPEN l_rel_items_csr FOR l_with_mtl_stmt1 ||
614: p_rel_type_code, p_item_id, p_org_id, p_item_id,
615: p_rel_type_code, p_item_id, p_org_id; --Bug 2922902
616: END IF;
617: ELSE -- don't need to do union with mtl_related_items
618: IF FND_API.to_Boolean( l_include_self_ref ) THEN -- include self referral
619: IF (l_debug = 'Y') THEN
620: IBE_UTIL.debug('Mapping rule: p_max_ret_num is NOT NULL: relationship NOT in MTL: l_include_self_ref is TRUE.');
621: END IF;
622: OPEN l_rel_items_csr FOR l_without_mtl_stmt
657: IF (l_debug = 'Y') THEN
658: IBE_UTIL.debug('IBE_Prod_Relation_GRP.Get_Related_Items(-)');
659: END IF;
660: -- Standard call to get message count and if count is 1, get message info.
661: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
662: p_count => x_msg_count ,
663: p_data => x_msg_data );
664: EXCEPTION
665: WHEN FND_API.G_EXC_ERROR THEN
661: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
662: p_count => x_msg_count ,
663: p_data => x_msg_data );
664: EXCEPTION
665: WHEN FND_API.G_EXC_ERROR THEN
666: x_return_status := FND_API.G_RET_STS_ERROR;
667: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
668: p_count => x_msg_count ,
669: p_data => x_msg_data );
662: p_count => x_msg_count ,
663: p_data => x_msg_data );
664: EXCEPTION
665: WHEN FND_API.G_EXC_ERROR THEN
666: x_return_status := FND_API.G_RET_STS_ERROR;
667: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
668: p_count => x_msg_count ,
669: p_data => x_msg_data );
670: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
663: p_data => x_msg_data );
664: EXCEPTION
665: WHEN FND_API.G_EXC_ERROR THEN
666: x_return_status := FND_API.G_RET_STS_ERROR;
667: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
668: p_count => x_msg_count ,
669: p_data => x_msg_data );
670: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
671: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
666: x_return_status := FND_API.G_RET_STS_ERROR;
667: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
668: p_count => x_msg_count ,
669: p_data => x_msg_data );
670: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
671: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
672: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
673: p_count => x_msg_count ,
674: p_data => x_msg_data );
667: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
668: p_count => x_msg_count ,
669: p_data => x_msg_data );
670: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
671: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
672: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
673: p_count => x_msg_count ,
674: p_data => x_msg_data );
675: WHEN OTHERS THEN
668: p_count => x_msg_count ,
669: p_data => x_msg_data );
670: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
671: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
672: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
673: p_count => x_msg_count ,
674: p_data => x_msg_data );
675: WHEN OTHERS THEN
676: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
672: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
673: p_count => x_msg_count ,
674: p_data => x_msg_data );
675: WHEN OTHERS THEN
676: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
677: IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
678: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,
679: l_api_name );
680: END IF;
677: IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
678: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,
679: l_api_name );
680: END IF;
681: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
682: p_count => x_msg_count ,
683: p_data => x_msg_data );
684: END Get_Related_Items;
685: PROCEDURE Get_Related_Items
1110: l_debug := NVL(FND_PROFILE.VALUE('IBE_DEBUG'),'N');
1111: l_item_ids := ' ';
1112:
1113: -- Standard call to check for call compatibility.
1114: IF NOT FND_API.Compatible_API_Call( l_api_version,
1115: p_api_version,
1116: l_api_name,
1117: G_PKG_NAME )
1118: THEN
1115: p_api_version,
1116: l_api_name,
1117: G_PKG_NAME )
1118: THEN
1119: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1120: END IF;
1121:
1122: IF p_init_msg_list IS NULL THEN
1123: l_init_msg_list := FND_API.G_FALSE;
1119: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1120: END IF;
1121:
1122: IF p_init_msg_list IS NULL THEN
1123: l_init_msg_list := FND_API.G_FALSE;
1124: END IF;
1125:
1126: IF p_preview_flag IS NULL THEN
1127: l_preview_flag := FND_API.G_FALSE;
1123: l_init_msg_list := FND_API.G_FALSE;
1124: END IF;
1125:
1126: IF p_preview_flag IS NULL THEN
1127: l_preview_flag := FND_API.G_FALSE;
1128: END IF;
1129:
1130: IF p_include_self_ref IS NULL THEN
1131: l_include_self_ref := FND_API.G_FALSE;
1127: l_preview_flag := FND_API.G_FALSE;
1128: END IF;
1129:
1130: IF p_include_self_ref IS NULL THEN
1131: l_include_self_ref := FND_API.G_FALSE;
1132: END IF;
1133:
1134: IF p_rule_type IS NULL THEN
1135: l_rule_type := 'MAPPING';
1135: l_rule_type := 'MAPPING';
1136: END IF;
1137:
1138: -- Initialize message list if p_init_msg_list is set to TRUE.
1139: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1140: FND_MSG_PUB.initialize;
1141: END IF;
1142:
1143: -- Initialize API return status to success
1140: FND_MSG_PUB.initialize;
1141: END IF;
1142:
1143: -- Initialize API return status to success
1144: x_return_status := FND_API.G_RET_STS_SUCCESS;
1145: -- Initialize the return value table
1146: x_items_tbl := JTF_Number_Table();
1147:
1148: IF (l_debug = 'Y') THEN
1160: END IF;
1161: FND_MESSAGE.Set_Name('IBE', 'IBE_CT_REL_NOT_VALID');
1162: FND_MESSAGE.Set_Token('RELATIONSHIP', p_rel_type_code);
1163: FND_MSG_PUB.Add;
1164: RAISE FND_API.G_EXC_ERROR;
1165: END IF;
1166:
1167: -- Populate the itemIds into a temporary table.
1168: IF (l_debug = 'Y') THEN
1285: END IF;
1286: FND_MESSAGE.Set_Name('IBE', 'IBE_CT_SQL_RULE_ERROR');
1287: FND_MESSAGE.Set_Token('RELATIONSHIP', p_rel_type_code);
1288: FND_MSG_PUB.Add;
1289: RAISE FND_API.G_EXC_ERROR;
1290: END; -- end sub-block to handle the SELECT statement's exception
1291: ELSE -- l_rule_type = 'MAPPING'
1292: -- 3. Get the related items from ibe_ct_related_items table
1293: include_mtl := Exists_In_MTL(p_rel_type_code);
1293: include_mtl := Exists_In_MTL(p_rel_type_code);
1294:
1295: IF (p_max_ret_num IS NULL) AND (NOT include_mtl) THEN -- Can use bulk fetching
1296:
1297: IF FND_API.to_Boolean( l_include_self_ref ) THEN -- include self referral
1298: IF (l_debug = 'Y') THEN
1299: IBE_UTIL.debug('Mapping rule: p_max_ret_num is NULL: relationship NOT in MTL: l_include_self_ref is TRUE.');
1300: END IF;
1301: IF FND_API.to_Boolean(l_preview_flag) THEN --preview mode
1297: IF FND_API.to_Boolean( l_include_self_ref ) THEN -- include self referral
1298: IF (l_debug = 'Y') THEN
1299: IBE_UTIL.debug('Mapping rule: p_max_ret_num is NULL: relationship NOT in MTL: l_include_self_ref is TRUE.');
1300: END IF;
1301: IF FND_API.to_Boolean(l_preview_flag) THEN --preview mode
1302: IF (p_item_ids.LAST > 1) THEN -- multiple items as input
1303: EXECUTE IMMEDIATE l_pv_wout_mtl_bulk_mult_stmt || l_minisite_stmt || '; END;'
1304: USING OUT x_items_tbl, p_rel_type_code, l_temp_key, p_org_id, p_msite_id;
1305: ELSE
1318: ELSE -- exclude self referral
1319: IF (l_debug = 'Y') THEN
1320: IBE_UTIL.debug('Mapping rule: p_max_ret_num is NULL: relationship NOT in MTL: l_include_self_ref is FALSE.');
1321: END IF;
1322: IF FND_API.to_Boolean(l_preview_flag) THEN --preview mode
1323: IF (p_item_ids.LAST > 1) THEN -- multiple items
1324: EXECUTE IMMEDIATE l_pv_wout_mtl_bulk_mult_stmt || l_minisite_stmt ||
1325: ' AND ICRI.related_item_id NOT ' || l_temp_itemids_query ||
1326: '; END;'
1350: ELSE -- Cannot use bulk fetching
1351:
1352: IF include_mtl THEN -- must do union with mtl_related_items
1353:
1354: IF FND_API.to_Boolean( l_include_self_ref ) THEN -- include self referral
1355:
1356: IF (l_debug = 'Y') THEN
1357: IBE_UTIL.debug('Mapping rule: relationship in MTL: l_include_self_ref is TRUE.');
1358:
1356: IF (l_debug = 'Y') THEN
1357: IBE_UTIL.debug('Mapping rule: relationship in MTL: l_include_self_ref is TRUE.');
1358:
1359: END IF;
1360: IF FND_API.to_Boolean(l_preview_flag) THEN -- preview mode
1361: IF (p_item_ids.LAST > 1) THEN --multiple items
1362: OPEN l_rel_items_csr FOR l_pv_with_mtl_mult_stmt1 ||
1363: l_minisite_stmt ||
1364: l_pv_with_mtl_mult_stmt2 ||
1412: IF (l_debug = 'Y') THEN
1413: IBE_UTIL.debug('Mapping rule: relationship in MTL: l_include_self_ref is FALSE.');
1414: END IF;
1415:
1416: IF FND_API.to_Boolean(l_preview_flag) THEN -- preview mode
1417: IF (p_item_ids.LAST > 1) THEN --multiple items
1418: OPEN l_rel_items_csr FOR l_pv_with_mtl_mult_stmt1 ||
1419: ' AND ICRI.related_item_id NOT ' || l_temp_itemids_query ||
1420: l_minisite_stmt ||
1484: END IF;
1485: END IF;
1486: END IF; --exclude self- referral
1487: ELSE -- don't need to do union with mtl_related_items
1488: IF FND_API.to_Boolean( l_include_self_ref ) THEN -- include self referral
1489: IF (l_debug = 'Y') THEN
1490: IBE_UTIL.debug('Mapping rule: p_max_ret_num is NOT NULL: relationship NOT in MTL: l_include_self_ref is TRUE.');
1491: END IF;
1492:
1489: IF (l_debug = 'Y') THEN
1490: IBE_UTIL.debug('Mapping rule: p_max_ret_num is NOT NULL: relationship NOT in MTL: l_include_self_ref is TRUE.');
1491: END IF;
1492:
1493: IF FND_API.to_Boolean(l_preview_flag) THEN -- preview mode
1494: IF (p_item_ids.LAST > 1) THEN --multiple items
1495: OPEN l_rel_items_csr FOR l_pv_wout_mtl_mult_stmt || l_minisite_stmt
1496: USING p_rel_type_code, p_item_ids, p_org_id, p_msite_id;
1497: ELSE --single item
1511: IF (l_debug = 'Y') THEN
1512: IBE_UTIL.debug('Mapping rule: p_max_ret_num is NOT NULL: relationship NOT in MTL: l_include_self_ref is FALSE.');
1513: END IF;
1514:
1515: IF FND_API.to_Boolean(l_preview_flag) THEN -- preview mode
1516: IF (p_item_ids.LAST > 1) THEN --multiple items
1517: OPEN l_rel_items_csr FOR l_pv_wout_mtl_mult_stmt ||
1518: ' AND ICRI.related_item_id <> :item_id4 ' || l_minisite_stmt
1519: USING p_rel_type_code, p_item_ids, p_org_id, p_item_ids, p_msite_id;
1566: IF (l_debug = 'Y') THEN
1567: IBE_UTIL.debug('IBE_Prod_Relation_GRP.Get_Related_Items(-)');
1568: END IF;
1569: -- Standard call to get message count and if count is 1, get message info.
1570: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1571: p_count => x_msg_count ,
1572: p_data => x_msg_data );
1573: EXCEPTION
1574: WHEN FND_API.G_EXC_ERROR THEN
1570: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1571: p_count => x_msg_count ,
1572: p_data => x_msg_data );
1573: EXCEPTION
1574: WHEN FND_API.G_EXC_ERROR THEN
1575: x_return_status := FND_API.G_RET_STS_ERROR;
1576: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1577: p_count => x_msg_count ,
1578: p_data => x_msg_data );
1571: p_count => x_msg_count ,
1572: p_data => x_msg_data );
1573: EXCEPTION
1574: WHEN FND_API.G_EXC_ERROR THEN
1575: x_return_status := FND_API.G_RET_STS_ERROR;
1576: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1577: p_count => x_msg_count ,
1578: p_data => x_msg_data );
1579: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1572: p_data => x_msg_data );
1573: EXCEPTION
1574: WHEN FND_API.G_EXC_ERROR THEN
1575: x_return_status := FND_API.G_RET_STS_ERROR;
1576: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1577: p_count => x_msg_count ,
1578: p_data => x_msg_data );
1579: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1580: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1575: x_return_status := FND_API.G_RET_STS_ERROR;
1576: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1577: p_count => x_msg_count ,
1578: p_data => x_msg_data );
1579: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1580: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1581: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1582: p_count => x_msg_count ,
1583: p_data => x_msg_data );
1576: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1577: p_count => x_msg_count ,
1578: p_data => x_msg_data );
1579: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1580: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1581: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1582: p_count => x_msg_count ,
1583: p_data => x_msg_data );
1584: WHEN OTHERS THEN
1577: p_count => x_msg_count ,
1578: p_data => x_msg_data );
1579: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1580: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1581: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1582: p_count => x_msg_count ,
1583: p_data => x_msg_data );
1584: WHEN OTHERS THEN
1585: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1581: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1582: p_count => x_msg_count ,
1583: p_data => x_msg_data );
1584: WHEN OTHERS THEN
1585: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1586: IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1587: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,
1588: l_api_name );
1589: END IF;
1586: IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1587: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,
1588: l_api_name );
1589: END IF;
1590: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1591: p_count => x_msg_count ,
1592: p_data => x_msg_data );
1593: END Get_Related_Items;
1594: END IBE_Prod_Relation_GRP;