DBA Data[Home] [Help]

PACKAGE BODY: APPS.IES_TRANSACTION_UTIL_PKG

Source


1 PACKAGE BODY ies_transaction_util_pkg AS
2   /* $Header: iestrnb.pls 120.0 2005/06/03 07:34:55 appldev noship $ */
3   G_PKG_NAME CONSTANT VARCHAR2(30) := 'ies_transaction_util_pkg';
4 
5 
6   /* PRIVATE PROCEDURE */
7 
8   PROCEDURE delete_old_data(p_transaction_Id IN NUMBER) IS
9      panelDataStmt VARCHAR2(2000);
10      questionDataStmt VARCHAR2(2000);
11   BEGIN
12      questionDataStmt := 'delete from ies_question_data where transaction_id = :1';
13      execute immediate questionDataStmt using p_transaction_id;
14 
15      panelDataStmt := 'delete from ies_panel_data where transaction_id = :1';
16      execute immediate panelDataStmt using p_transaction_id;
17 
18   END;
19 
20   FUNCTION get_transaction_status(p_transaction_id IN NUMBER) return NUMBER IS
21     l_status NUMBER;
22 
23     TYPE transaction_status_type IS REF CURSOR;
24     trans_status transaction_status_type;
25   BEGIN
26     OPEN trans_status FOR
27     'SELECT nvl(status, 0)
28        FROM ies_transactions
29       WHERE transaction_id = :id for update' using p_transaction_id;
30 
31     FETCH trans_status INTO l_status;
32     CLOSE trans_status;
33     return l_status;
34   END;
35 
36 
37   /* PUBLIC PROCEDURES */
38 
39   PROCEDURE getTemporaryCLOB (x_clob OUT NOCOPY  CLOB) IS
40   BEGIN
41     DBMS_LOB.CreateTemporary(x_clob, TRUE, DBMS_LOB.CALL);
42   END;
43 
44 
45   FUNCTION  getRestartXMLData(p_transaction_Id IN NUMBER) RETURN CLOB IS
46     TYPE  restartXML_Type IS REF CURSOR;
47     restart   restartXML_Type;
48 
49     x_clob    CLOB;
50     l_status  NUMBER;
51   BEGIN
52     l_status := get_transaction_status(p_transaction_id);
53     if (l_status = 2) then
54        raise_application_error(-20001, 'Error in restart');
55     end if;
56 
57     OPEN restart FOR
58     'SELECT restart_data
59        FROM ies_transactions
60       WHERE transaction_id = :id' using p_transaction_Id;
61 
62     FETCH restart INTO x_clob;
63     CLOSE restart;
64     return x_clob;
65   END;
66 
67   PROCEDURE Update_Transaction(p_transaction_Id in number) IS
68     sqlstmt   VARCHAR2(2000);
69   BEGIN
70     sqlStmt := 'update ies_transactions set status = null where transaction_id = :id';
71     execute immediate sqlStmt using p_transaction_id;
72   END;
73 
74   PROCEDURE Update_Transaction(p_transaction_Id in number,
75                                p_status IN NUMBER,
76                                p_restart_clob IN CLOB,
77                                p_user_id IN NUMBER) IS
78     sqlstmt   VARCHAR2(2000);
79   BEGIN
80     delete_Old_Data(p_transaction_Id);
81     sqlStmt := 'update ies_transactions set status = :1,
82                                       restart_data = :2,
83                                   last_update_date = sysdate,
84                                   end_time = sysdate,
85                                   last_updated_by = :3 where transaction_id = :id';
86     execute immediate sqlStmt using p_status, p_restart_clob, p_user_id, p_transaction_id;
87   END;
88 
89   FUNCTION insert_transaction(p_user_Id IN NUMBER,
90                                p_dscript_Id IN NUMBER) RETURN NUMBER IS
91     transactionId NUMBER;
92     sqlstmt VARCHAR2(2000);
93   BEGIN
94     SELECT ies_transactions_s.nextval INTO transactionId FROM dual;
95 
96     sqlstmt := 'insert into ies_transactions(transaction_id, created_by, creation_date, agent_id, dscript_id, start_time)
97                          values(:1, :2, sysdate, :3, :4, sysdate)';
98     execute immediate sqlstmt using transactionId, p_user_id, p_user_id, p_dscript_id;
99     return transactionId;
100   END;
101 
102 
103 
104 
105 END ies_transaction_util_pkg;