[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;