[Home] [Help]
PACKAGE BODY: APPS.IES_TRANSACTION_UTIL_PUB
Source
1 PACKAGE BODY IES_TRANSACTION_UTIL_PUB AS
2 /* $Header: iestutlb.pls 115.0.1159.1 2003/05/23 22:12:47 prkotha noship $ */
3
4 /*-------------------------------------------------------------------------*
5 | PRIVATE CONSTANTS
6 *-------------------------------------------------------------------------*/
7
8 G_PKG_NAME CONSTANT VARCHAR2(30) := 'IES_TRANSACTION_UTIL_PUB';
9 G_FILE_NAME CONSTANT VARCHAR2(12) := 'iestutlb.pls';
10
11
12 /* private functions */
13
14 FUNCTION getTransactionStatus(p_transaction_id IN NUMBER) RETURN NUMBER IS
15 l_status NUMBER;
16 TYPE transaction_status_type IS REF CURSOR;
17 trx_status transaction_status_type ;
18 BEGIN
19 OPEN trx_status FOR '
20 SELECT status
21 FROM ies_transactions
22 WHERE transaction_id = :1' using p_transaction_id;
23 LOOP
24 FETCH trx_status INTO l_status;
25 EXIT WHEN trx_status%NOTFOUND;
26 END LOOP;
27 return l_status;
28 END;
29
30 PROCEDURE update_status_to_completed
31 (
32 p_api_version IN NUMBER,
33 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
34 p_commit IN VARCHAR2 := FND_API.G_TRUE,
35 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
36 p_transaction_id IN NUMBER,
37 x_return_status OUT NOCOPY VARCHAR2,
38 x_msg_count OUT NOCOPY NUMBER,
39 x_msg_data OUT NOCOPY VARCHAR2
40 ) IS
41 l_api_name CONSTANT VARCHAR2(30) := 'update_status_to_completed';
42 l_api_version CONSTANT NUMBER := 1.0;
43 l_encoded VARCHAR2(1) := FND_API.G_FALSE;
44 l_status NUMBER;
45 BEGIN
46 -- Standard Start of API savepoint
47 SAVEPOINT update_status_to_completed_sp;
48 -- Standard call to check for call compatibility
49 IF NOT FND_API.Compatible_API_Call ( l_api_version,
50 p_api_version,
51 l_api_name,
52 G_PKG_NAME)
53 THEN
54 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
55 END IF;
56 -- initialize message list if p_init_msg_list is set to TRUE
57 IF FND_API.To_Boolean( p_init_msg_list ) THEN
58 FND_MSG_PUB.initialize;
59 END IF;
60
61 -- Initialize the API return status to success
62 x_return_status := FND_API.G_RET_STS_SUCCESS;
63 BEGIN
64 -- API body
65 l_status := getTransactionStatus(p_transaction_id);
66 if (l_status = 1) then
67 EXECUTE IMMEDIATE 'UPDATE ies_transactions SET status = 0 '||
68 'WHERE transaction_id = :1' USING p_transaction_id;
69 else
70 FND_MESSAGE.SET_NAME('IES', 'IES_STATUS_UPDATE_ERROR');
71 FND_MSG_PUB.Add;
72
73 RAISE FND_API.G_EXC_ERROR;
74 end if;
75 END;
76
77 -- Signify Success
78 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
79 THEN
80 FND_MESSAGE.SET_NAME('IES', 'IES_STATUS_UPDATE_SUCCESS');
81 FND_MSG_PUB.Add;
82 END IF;
83
84 -- End of API body
85
86 -- Standard check of p_commit
87 IF FND_API.To_Boolean( p_commit ) THEN
88 COMMIT WORK;
89 END IF;
90
91 -- Standard call to get message count and if count is 1, get message info
92 FND_MSG_PUB.Count_And_Get
93 ( p_encoded => l_encoded,
94 p_count => x_msg_count,
95 p_data => x_msg_data
96 );
97
98 EXCEPTION
99 WHEN FND_API.G_EXC_ERROR THEN
100 ROLLBACK TO update_status_to_completed_sp;
101 x_return_status := FND_API.G_RET_STS_ERROR;
102
103 FND_MSG_PUB.Count_And_Get
104 ( p_encoded => l_encoded,
105 p_count => x_msg_count,
106 p_data => x_msg_data
107 );
108
109 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
110 ROLLBACK TO update_status_to_completed_sp;
111 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
112
113 FND_MSG_PUB.Count_And_Get
114 ( p_encoded => l_encoded,
115 p_count => x_msg_count,
116 p_data => x_msg_data
117 );
118
119 WHEN OTHERS THEN
120 ROLLBACK TO update_status_to_completed_sp;
121 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
122
123 IF FND_MSG_PUB.Check_Msg_Level
124 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
125 THEN
126 FND_MSG_PUB.Add_Exc_Msg
127 ( p_pkg_name => G_PKG_NAME,
128 p_procedure_name => l_api_name,
129 p_error_text => 'G_MSG_LVL_UNEXP_ERROR'
130 );
131 END IF;
132 FND_MSG_PUB.Count_And_Get
133 ( p_encoded => l_encoded,
134 p_count => x_msg_count,
135 p_data => x_msg_data
136 );
137
138 END update_status_to_completed;
139
140 END ies_transaction_util_pub;