DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_PRICE_REQUEST_CONTEXT

Source


1 PACKAGE BODY QP_Price_Request_Context AS
2 /* $Header: QPXVPREB.pls 120.1 2006/03/24 14:47:15 jhkuo noship $ */
3 
4 FUNCTION Request_Pricing_Lock return integer is
5 PRAGMA AUTONOMOUS_TRANSACTION;
6 lock_handle varchar2(128);
7 lock_result integer;
8 BEGIN
9   DBMS_LOCK.ALLOCATE_UNIQUE(QP_JAVA_ENGINE_UTIL_PUB.G_QP_INT_TABLES_LOCK, lock_handle);
10   lock_result := DBMS_LOCK.REQUEST(lock_handle, DBMS_LOCK.S_MODE, DBMS_LOCK.MAXWAIT, TRUE);
11 commit;
12   return lock_result;
13 END Request_Pricing_Lock;
14 
15 -- function to set request id
16 PROCEDURE Set_Request_Id  IS
17 
18 l_request_id NUMBER;
19 lock_result integer;
20 BEGIN
21 
22   IF(QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Running = 'N') THEN
23     -- changed for 5115618/5098611
24     l_request_id := nvl(SYS_CONTEXT('QP_CONTEXT','REQUEST_ID'),0) + 1;
25   ELSE
26     select QP_REQUEST_ID_S.nextval into l_request_id from dual;
27     --try to wait for S-Lock on Interface Tables before proceeding to request_price
28     lock_result := Request_Pricing_Lock;
29 
30     --clear the interface tables stat info
31     QP_PREQ_GRP.G_INT_LINES_NO := 0;
32     QP_PREQ_GRP.G_INT_LDETS_NO := 0;
33     QP_PREQ_GRP.G_INT_ATTRS_NO := 0;
34     QP_PREQ_GRP.G_INT_RELS_NO := 0;
35   END IF;
36   QP_PREQ_GRP.G_REQUEST_ID := l_request_id;
37 
38   -- set request_id attribute under namespace 'qp_context'
39   DBMS_SESSION.SET_CONTEXT('qp_context', 'request_id', l_request_id);
40 
41 END Set_Request_Id;
42 
43 FUNCTION Release_Pricing_Lock return integer is
44 lock_handle varchar2(128);
45 lock_result integer;
46 BEGIN
47   DBMS_LOCK.ALLOCATE_UNIQUE(QP_JAVA_ENGINE_UTIL_PUB.G_QP_INT_TABLES_LOCK, lock_handle);
48   lock_result := DBMS_LOCK.RELEASE(lock_handle);
49   return lock_result;
50 END Release_Pricing_Lock;
51 
52 
53 FUNCTION Get_Request_Id return number is
54 l_request_id number;
55 BEGIN
56   l_request_id := nvl(QP_PREQ_GRP.G_REQUEST_ID,fnd_api.g_miss_num);
57   return l_request_id;
58 END Get_Request_id;
59 
60 --needed for HTML Qualifiers UI
61 --return transaction_id attribute under namespace 'qp_context'
62 FUNCTION get_transaction_id RETURN NUMBER IS
63 BEGIN
64 RETURN nvl(SYS_CONTEXT('QP_CONTEXT','transaction_id'),-9999);
65 END get_transaction_id;
66 
67 -- set transaction_id attribute under namespace 'qp_context'
68 PROCEDURE set_transaction_id(p_transaction_id IN NUMBER) IS
69 BEGIN
70   DBMS_SESSION.SET_CONTEXT('qp_context', 'transaction_id', p_transaction_id);
71 END set_transaction_id;
72 --needed for HTML Qualifiers UI
73 
74 END QP_Price_Request_Context;