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