The following lines contain the word 'select', 'insert', 'update' or 'delete':
should be inserted.
*/
Procedure Check_for_Request( p_entity_code in Varchar2
,p_entity_id in Number
,p_request_type in Varchar2
,p_request_unique_key1 IN VARCHAR2
,p_request_unique_key2 IN VARCHAR2
,p_request_unique_key3 IN VARCHAR2
,p_request_unique_key4 IN VARCHAR2
,p_request_unique_key5 IN VARCHAR2
,x_request_ind OUT NOCOPY Number
,x_result OUT NOCOPY Varchar2
,x_return_status OUT NOCOPY Varchar2)
IS
l_ind pls_integer;
,p_delete IN Varchar2 default FND_API.G_FALSE
,x_return_status OUT NOCOPY VARCHAR2)
IS
l_request_rec QP_QUALIFIER_RULES_PUB.request_rec_type;
l_deleted_options_tbl QP_QUALIFIER_RULES_PUB.request_tbl_type;
l_updated_options_tbl QP_QUALIFIER_RULES_PUB.request_tbl_type;
IF l_request_type = QP_GLOBALS.G_UPDATE_LIST_QUAL_IND
THEN
--dbms_output.put_line('calling list qualification indicator');
QP_DELAYED_REQUESTS_UTIL.Update_List_Qualification_Ind
( p_List_header_ID => l_entity_id
,x_return_status => l_return_status);
IF l_request_type = QP_GLOBALS.G_UPDATE_LIMITS_COLUMNS
THEN
--dbms_output.put_line('calling UPDATE_LIMITS_COLUMNS');
QP_DELAYED_REQUESTS_UTIL.Update_Limits_Columns
( p_Limit_Id => l_entity_id
,x_return_status => l_return_status);
IF l_request_type = QP_GLOBALS.G_UPDATE_QUALIFIER_STATUS
THEN
--dbms_output.put_line('calling UPDATE_QUALIFIER_STATUS ');
QP_DELAYED_REQUESTS_UTIL.Update_Qualifier_Status
( p_list_header_id => l_entity_id
,p_active_flag => l_request_rec.param1
,x_return_status => l_return_status);
IF l_request_type = QP_GLOBALS.G_UPDATE_ATTRIBUTE_STATUS
THEN
--dbms_output.put_line('calling UPDATE_ATTRIBUTE_STATUS ');
QP_DELAYED_REQUESTS_UTIL.Update_Attribute_Status
( p_list_header_id => l_entity_id
,p_list_line_id => l_request_rec.param1
,p_context_type => l_request_rec.param2
,p_context_code => l_request_rec.param3
,p_segment_mapping_column => l_request_rec.param4
,x_return_status => l_return_status);
IF l_request_type = QP_GLOBALS.G_UPDATE_CHILD_BREAKS
THEN
QP_DELAYED_REQUESTS_UTIL.update_child_break_lines(
p_list_line_id => l_entity_id,
x_return_status => l_return_status);
IF l_request_type = QP_GLOBALS.G_UPDATE_CHILD_PRICING_ATTR
THEN
QP_DELAYED_REQUESTS_UTIL.update_child_pricing_attr(
x_return_status => l_return_status,
p_list_line_id => l_entity_id);
IF l_request_type = QP_GLOBALS.G_UPDATE_PRICING_ATTR_PHASE
THEN
BEGIN --[Bug 4457903] Call update_pricing_attr_phase only if
--the line id is present in the QP_LIST_LINES table
SELECT 1 into l_count from QP_LIST_LINES
WHERE LIST_LINE_ID = l_entity_id;
QP_DELAYED_REQUESTS_UTIL.update_pricing_attr_phase(
p_list_line_id => l_entity_id,
x_return_status => l_return_status);
IF l_request_type = QP_GLOBALS.G_UPDATE_LINE_QUAL_IND
THEN
--dbms_output.put_line('calling line qualification indicator');
QP_DELAYED_REQUESTS_UTIL.Update_Line_Qualification_Ind
( p_List_line_ID => l_entity_id
,x_return_status => l_return_status);
/*included by spgopal for pricing phase seeded data over-write problem to update the denormalised columns in QP_PRICING_PHASES*/
IF l_request_type = QP_GLOBALS.G_UPDATE_PRICING_PHASE
THEN
oe_debug_pub.add('processing req UPDATE_PRICING_PHASE');
QP_DELAYED_REQUESTS_UTIL.update_pricing_phase(
p_pricing_phase_id => l_request_rec.param1,
p_automatic_flag => l_request_rec.param2, --fix for bug 3756625
p_count => l_request_rec.param3,
p_call_from => l_request_rec.param4,
x_return_status => l_return_status);
IF l_request_type = QP_GLOBALS.G_UPDATE_MANUAL_MODIFIER_FLAG
THEN
oe_debug_pub.add('processing req UPDATE_MANUAL_MODIFIER_FLAG');
QP_DELAYED_REQUESTS_UTIL.Update_manual_modifier_flag(
p_pricing_phase_id => l_request_rec.param1,
p_automatic_flag => l_request_rec.param2,
x_return_status => l_return_status);
IF l_request_type = QP_GLOBALS.G_UPDATE_HVOP
THEN
oe_debug_pub.add('processing req UPDATE_HVOP');
if l_request_type = QP_GLOBALS.G_UPDATE_CHANGED_LINES_ADD then
oe_debug_pub.add('processing req G_UPDATE_CHANGED_LINES_ADD');
QP_DELAYED_REQUESTS_UTIL.update_changed_lines_add(
p_list_line_id => l_entity_id,
p_list_header_id => l_request_rec.param2,
p_pricing_phase_id => l_request_rec.param1,
x_return_status => l_return_status);
elsif l_request_type = QP_GLOBALS.G_UPDATE_CHANGED_LINES_DEL then
oe_debug_pub.add('processing req G_UPDATE_CHANGED_LINES_DEL');
QP_DELAYED_REQUESTS_UTIL.update_changed_lines_del(
p_list_line_id => l_entity_id,
p_list_header_id => l_request_rec.param2,
p_pricing_phase_id => l_request_rec.param1,
p_product_attribute => l_request_rec.param3,
p_product_attr_value => l_request_rec.param4,
x_return_status => l_return_status);
elsif l_request_type = QP_GLOBALS.G_UPDATE_CHANGED_LINES_PH then
oe_debug_pub.add('processing req G_UPDATE_CHANGED_LINES_PHASE');
QP_DELAYED_REQUESTS_UTIL.update_changed_lines_ph(
p_list_line_id => l_entity_id,
p_list_header_id => l_request_rec.param2,
p_pricing_phase_id => l_request_rec.param1,
p_old_pricing_phase_id => l_request_rec.param3,
x_return_status => l_return_status);
elsif l_request_type = QP_GLOBALS.G_UPDATE_CHANGED_LINES_ACT then
oe_debug_pub.add('processing req G_UPDATE_CHANGED_LINES_ACTIVE');
QP_DELAYED_REQUESTS_UTIL.update_changed_lines_act(
p_list_header_id => l_entity_id,
p_active_flag => l_request_rec.param1,
x_return_status => l_return_status);
oe_debug_pub.add('processing req G_UPDATE_HVOP')
;
IF (p_delete = FND_API.G_TRUE) then
G_Delayed_Requests.Delete(p_request_ind);
BUG 2502849- do not delete from req entities table
, delete table in the end when all requests are processed
This is to improve performance as this search loops through
the entire pl/sql table which becomes very large with
greater number of lines being processed
-- Delete all the records in the requesting entities table
-- that have this request.
l_req_entity_ind := G_Requesting_Entities.First;
G_Requesting_Entities.Delete(l_req_entity_ind);
ELSE -- insert the new request
OE_Debug_PUB.ADD('New request inserted');
Procedure Delete_Request(p_entity_code IN VARCHAR2
,p_entity_id IN NUMBER
,p_request_Type IN VARCHAR2
,p_request_unique_key1 IN VARCHAR2 := NULL
,p_request_unique_key2 IN VARCHAR2 := NULL
,p_request_unique_key3 IN VARCHAR2 := NULL
,p_request_unique_key4 IN VARCHAR2 := NULL
,p_request_unique_key5 IN VARCHAR2 := NULL
,x_return_status OUT NOCOPY VARCHAR2)
IS
l_request_search_rslt Varchar2(1);
oe_debug_pub.add('Entering Procedure Delete_Request in Package QP_Delayed_Requests_Pvt');
if l_request_search_rslt = FND_API.G_TRUE -- delete the request
then
G_Delayed_Requests.Delete(l_request_ind);
/* BUG 2502849- do not delete from req entities table
, delete table in the end when all requests are processed
This is to improve performance as this search loops through
the entire pl/sql table which becomes very large with
greater number of lines being processed
-- Delete all the records in the requesting entities table
-- that have this request.
l_req_entity_ind := G_Requesting_Entities.First;
G_Requesting_Entities.Delete(l_req_entity_ind);
,'DeleteRequest');
End Delete_Request;
G_Delayed_Requests.DELETE;
g_requesting_entities.DELETE;
,p_delete IN Varchar2 Default
FND_API.G_TRUE
,x_return_status OUT NOCOPY Varchar2)
IS
l_request_ind Number;
,p_delete => p_delete
,x_return_status => l_return_status
);
,p_delete in Varchar2 Default FND_API.G_TRUE
,x_return_status OUT NOCOPY Varchar2) IS
l_return_status Varchar2(30);
,p_delete => p_delete
,x_return_status => l_return_status
);
,p_delete in Varchar2 Default FND_API.G_TRUE
,x_return_status OUT NOCOPY Varchar2
) IS
l_return_status Varchar2(30);
,p_delete => p_delete
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_PRICING_ATTR_PHASE
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
/*included by spgopal for pricing phase seeded data over-write problem to update the denormalised columns in QP_PRICING_PHASES*/
Process_Request_for_ReqType
(p_request_type =>QP_GLOBALS.G_UPDATE_PRICING_PHASE
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_PRICING_PHASE
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_LIST_QUAL_IND
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_LIMITS_COLUMNS
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_QUALIFIER_STATUS
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_ATTRIBUTE_STATUS
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_CHANGED_LINES_ADD
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_CHANGED_LINES_DEL
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_CHANGED_LINES_ACT
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
(p_request_type =>QP_GLOBALS.G_UPDATE_CHANGED_LINES_PH
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
,p_delete => FND_API.G_TRUE
,x_return_status => l_return_status
);
Procedure Delete_Reqs_for_Deleted_Entity ( p_entity_code IN Varchar2
, p_entity_id in Number
, x_return_status OUT NOCOPY Varchar2)
IS
i number;
request_delete BOOLEAN;
-- delete records in requesting entity tables with this request
j := G_Requesting_Entities.first;
G_Requesting_Entities.Delete(j);
-- delete the delayed request
G_Delayed_Requests.Delete(i);
-- initialize request delete to TRUE
request_delete := TRUE;
-- set the delete to FALSE if there are other entities that
-- logged the same request but if the same entity has logged this
-- request, then delete in the requesting entities table
j := G_Requesting_Entities.first;
G_Requesting_Entities.Delete(j);
request_delete := FALSE;
IF request_delete
AND G_Delayed_Requests.Exists(req_ind) THEN
G_Delayed_Requests.Delete(req_ind);
,'Delete_Reqs_for_Deleted_Entity');
End Delete_Reqs_for_Deleted_Entity;