[Home] [Help]
PACKAGE BODY: APPS.DPP_ERROR_PVT
Source
1 PACKAGE BODY DPP_ERROR_PVT AS
2 /* $Header: dppverrb.pls 120.4.12010000.2 2010/04/21 13:36:28 kansari ship $ */
3
4 -- Package name : DPP_ERROR_PVT
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10 G_PKG_NAME CONSTANT VARCHAR2(30) := 'DPP_ERROR_PVT';
11 G_DEBUG BOOLEAN := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_high);
12 G_FILE_NAME CONSTANT VARCHAR2(14) := 'dpperrb.pls';
13
14 ---------------------------------------------------------------------
15 -- PROCEDURE
16 -- UUpdate_Error
17 --
18 -- PURPOSE
19 -- Update Error
20 --
21 -- PARAMETERS
22 --
23 -- NOTES
24 -- 1.
25 -- 2.
26 ----------------------------------------------------------------------
27
28 PROCEDURE Update_Error(
29 p_api_version IN NUMBER
30 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
31 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
32 ,p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL
33 ,x_return_status OUT NOCOPY VARCHAR2
34 ,x_msg_count OUT NOCOPY NUMBER
35 ,x_msg_data OUT NOCOPY VARCHAR2
36 ,p_exe_update_rec IN dpp_error_rec_type
37 ,p_lines_tbl IN dpp_lines_tbl_type
38 )
39 IS
40 l_api_name CONSTANT VARCHAR2(30) := 'Update_Error';
41 l_api_version CONSTANT NUMBER := 1.0;
42 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME ||'.'|| l_api_name;
43
44 l_return_status varchar2(30);
45 l_msg_count number;
46 l_msg_data varchar2(4000);
47
48 l_exe_update_rec DPP_ERROR_PVT.dpp_error_rec_type := p_exe_update_rec;
49 l_lines_tbl DPP_ERROR_PVT.dpp_lines_tbl_type := p_lines_tbl;
50 l_update_count NUMBER;
51 v_Output_XML CLOB;
52
53 l_x_exe_update_rec DPP_ExecutionDetails_PVT.DPP_EXE_UPDATE_REC_TYPE;
54 l_status_Update_tbl DPP_ExecutionDetails_PVT.dpp_status_Update_tbl_type;
55 l_module CONSTANT VARCHAR2(100) := 'dpp.plsql.DPP_ERROR_PVT.UPDATE_ERROR';
56
57 BEGIN
58
59 -- Standard begin of API savepoint
60 SAVEPOINT Update_Error_PVT;
61 -- Standard call to check for call compatibility.
62 IF NOT FND_API.Compatible_API_Call ( l_api_version,
63 p_api_version,
64 l_api_name,
65 G_PKG_NAME)
66 THEN
67 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
68 END IF;
69 -- Initialize message list if p_init_msg_list is set to TRUE.
70 IF FND_API.to_Boolean( p_init_msg_list )
71 THEN
72 FND_MSG_PUB.initialize;
73 END IF;
74
75 -- Debug Message
76
77 dpp_utility_pvt.debug_message(FND_LOG.LEVEL_STATEMENT, l_module, 'Private API: ' || l_api_name || 'start');
78
79 -- Initialize API return status to sucess
80 l_return_status := FND_API.G_RET_STS_SUCCESS;
81
82 --
83 -- API body
84 --
85
86 BEGIN
87
88 l_x_EXE_UPDATE_rec.Execution_Detail_ID := l_exe_update_rec.Execution_Detail_ID;
89 l_x_EXE_UPDATE_rec.Transaction_Header_ID := l_exe_update_rec.Transaction_Header_ID;
90
91 l_x_exe_update_rec.Execution_End_Date := sysdate;
92 l_x_exe_update_rec.execution_status := 'ERROR';
93 l_x_exe_update_rec.Last_Updated_By := l_exe_update_rec.Last_Updated_By;
94 l_x_exe_update_rec.Provider_Process_Id := l_exe_update_rec.Provider_Process_Id;
95 l_x_exe_update_rec.Provider_Process_Instance_id := l_exe_update_rec.Provider_Process_Instance_id;
96 l_x_exe_update_rec.Output_XML := l_exe_update_rec.Output_XML;
97
98 FOR i IN l_lines_tbl.FIRST..l_lines_tbl.LAST
99 LOOP
100
101 l_status_Update_tbl(i).update_status := 'N';
102 l_status_Update_tbl(i).transaction_line_id := l_lines_tbl(i);
103
104 END LOOP;
105
106 DPP_ExecutionDetails_PVT.Update_ExecutionDetails(
107 p_api_version => l_api_version
108 ,p_init_msg_list => FND_API.G_FALSE
109 ,p_commit => FND_API.G_FALSE
110 ,p_validation_level => FND_API.G_VALID_LEVEL_FULL
111 ,x_return_status => l_return_status
112 ,x_msg_count => l_msg_count
113 ,x_msg_data => l_msg_data
114 ,p_EXE_UPDATE_rec => l_x_exe_update_rec
115 ,p_status_Update_tbl => l_status_Update_tbl
116 );
117
118 END;
119
120 x_return_status := l_return_status;
121
122 -- Standard check for p_commit
123 IF FND_API.to_Boolean( p_commit )
124 THEN
125 COMMIT WORK;
126 END IF;
127 -- Debug Message
128
129 dpp_utility_pvt.debug_message(FND_LOG.LEVEL_STATEMENT, l_module, 'Private API: ' || l_api_name || 'end');
130
131 -- Standard call to get message count and if count is 1, get message info.
132 FND_MSG_PUB.Count_And_Get
133 (p_count => x_msg_count,
134 p_data => x_msg_data
135 );
136
137 IF x_msg_count > 1 THEN
138 FOR I IN 1..x_msg_count LOOP
139 x_msg_data := SUBSTR((x_msg_data||' '|| FND_MSG_PUB.GET(P_MSG_INDEX => I, P_ENCODED => 'F')), 1, 4000);
140 END LOOP;
141 END IF;
142
143 --Exception Handling
144 EXCEPTION
145
146 WHEN FND_API.G_EXC_ERROR THEN
147 ROLLBACK TO Update_Error_PVT;
148 x_return_status := FND_API.G_RET_STS_ERROR;
149 -- Standard call to get message count and if count=1, get the message
150 FND_MSG_PUB.Count_And_Get (
151 p_encoded => FND_API.G_FALSE,
152 p_count => x_msg_count,
153 p_data => x_msg_data
154 );
155 IF x_msg_count > 1 THEN
156 FOR I IN 1..x_msg_count LOOP
157 x_msg_data := SUBSTR((x_msg_data||' '|| FND_MSG_PUB.GET(P_MSG_INDEX => I, P_ENCODED => 'F')), 1, 4000);
158 END LOOP;
159 END IF;
160
161 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
162 ROLLBACK TO Update_Error_PVT;
163 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
164 -- Standard call to get message count and if count=1, get the message
165 FND_MSG_PUB.Count_And_Get (
166 p_encoded => FND_API.G_FALSE,
167 p_count => x_msg_count,
168 p_data => x_msg_data
169 );
170 IF x_msg_count > 1 THEN
171 FOR I IN 1..x_msg_count LOOP
172 x_msg_data := SUBSTR((x_msg_data||' '|| FND_MSG_PUB.GET(P_MSG_INDEX => I, P_ENCODED => 'F')), 1, 4000);
173 END LOOP;
174 END IF;
175
176 WHEN OTHERS THEN
177 ROLLBACK TO Update_Error_PVT;
178 fnd_message.set_name('FND', 'SQL_PLSQL_ERROR');
179 fnd_message.set_token('ROUTINE', 'DPP_ERROR_PVT.Update_Error');
180 fnd_message.set_token('ERRNO', sqlcode);
181 fnd_message.set_token('REASON', sqlerrm);
182 FND_MSG_PUB.add;
183 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
184
185 -- Standard call to get message count and if count=1, get the message
186 FND_MSG_PUB.Count_And_Get (
187 p_encoded => FND_API.G_FALSE,
188 p_count => x_msg_count,
189 p_data => x_msg_data
190 );
191 IF x_msg_count > 1 THEN
192 FOR I IN 1..x_msg_count LOOP
193 x_msg_data := SUBSTR((x_msg_data||' '|| FND_MSG_PUB.GET(P_MSG_INDEX => I, P_ENCODED => 'F')), 1, 4000);
194 END LOOP;
195 END IF;
196
197
198 END Update_Error;
199
200 END DPP_ERROR_PVT;