[Home] [Help]
PACKAGE BODY: APPS.HZ_MERGE_BATCH_PUB
Source
1 PACKAGE BODY HZ_MERGE_BATCH_PUB AS
2 /*$Header: ARHMGBTB.pls 115.2 2002/11/21 19:56:22 sponnamb noship $ */
3
4 ----------------------------------
5 -- declaration of global variables
6 ----------------------------------
7
8 G_PKG_NAME CONSTANT VARCHAR2(30) := 'HZ_MERGE_BATCH_PUB';
9
10 ------------------------------------
11 -- declaration of private procedures
12 ------------------------------------
13
14 PROCEDURE do_create_merge_batch(
15 p_batch_name IN VARCHAR2,
16 p_batch_commit IN VARCHAR2,
17 p_batch_delete IN VARCHAR2,
18 p_merge_reason_code IN VARCHAR2,
19 x_batch_id OUT NOCOPY NUMBER,
20 x_return_status IN OUT NOCOPY VARCHAR2
21 );
22
23 PROCEDURE validate_merge_batch (
24 p_create_update_flag IN VARCHAR2,
25 p_batch_name IN VARCHAR2,
26 p_batch_commit IN VARCHAR2,
27 p_batch_delete IN VARCHAR2,
28 p_merge_reason_code IN VARCHAR2,
29 x_return_status IN OUT NOCOPY VARCHAR2);
30
31
32
33 -----------------------------
34 -- body of private procedures
35 -----------------------------
36
37 /**==========================================================================+
38 | PROCEDURE
39 | do_create_batch
40 |
41 | DESCRIPTION
42 | Creates batch.
43 |
44 | SCOPE - PRIVATE
45 |
46 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
47 |
48 | ARGUMENTS : IN:
49 | OUT:
50 | x_batch_id
51 | IN/ OUT:
52 | p_batch_name,
53 | p_batch_commit,
54 | p_batch_delete,
55 | p_merge_reason_code,
56 | x_return_status
57 |
58 | RETURNS : NONE
59 |
60 | NOTES
61 |
62 | MODIFICATION HISTORY
63 |
64 +===========================================================================**/
65 PROCEDURE do_create_merge_batch(
66 p_batch_name IN VARCHAR2,
67 p_batch_commit IN VARCHAR2,
68 p_batch_delete IN VARCHAR2,
69 p_merge_reason_code IN VARCHAR2,
70 x_batch_id OUT NOCOPY NUMBER,
71 x_return_status IN OUT NOCOPY VARCHAR2
72 ) IS
73
74
75 BEGIN
76
77 x_batch_id := NULL;
78
79 -- validate the merge_batch _rec record
80 HZ_MERGE_BATCH_PUB.validate_merge_batch(
81 'C' ,
82 p_batch_name,
83 p_batch_commit,
84 p_batch_delete,
85 p_merge_reason_code,
86 x_return_status);
87
88 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
89 RAISE FND_API.G_EXC_ERROR;
90 END IF;
91
92 -- call table-handler to insert the record
93 HZ_MERGE_BATCH_PKG.INSERT_ROW(
94 px_BATCH_ID => x_batch_id,
95 p_RULE_SET_NAME => 'DEFAULT',
96 p_BATCH_NAME => p_BATCH_NAME,
97 p_REQUEST_ID => HZ_UTILITY_PUB.REQUEST_ID,
98 p_BATCH_STATUS => 'PENDING',
99 p_BATCH_COMMIT => p_BATCH_COMMIT,
100 p_BATCH_DELETE => p_BATCH_DELETE,
101 p_MERGE_REASON_CODE => p_MERGE_REASON_CODE,
102 p_CREATED_BY => HZ_UTILITY_PUB.CREATED_BY,
103 p_CREATION_DATE => HZ_UTILITY_PUB.CREATION_DATE,
104 p_LAST_UPDATE_LOGIN => HZ_UTILITY_PUB.LAST_UPDATE_LOGIN,
105 p_LAST_UPDATE_DATE =>HZ_UTILITY_PUB.LAST_UPDATE_DATE,
106 p_LAST_UPDATED_BY => HZ_UTILITY_PUB.LAST_UPDATED_BY);
107
108
109 END do_create_merge_batch;
110
111
112 PROCEDURE validate_merge_batch (
113 p_create_update_flag IN VARCHAR2,
114 p_batch_name IN VARCHAR2,
115 p_batch_commit IN VARCHAR2,
116 p_batch_delete IN VARCHAR2,
117 p_merge_reason_code IN VARCHAR2,
118 x_return_status IN OUT NOCOPY VARCHAR2
119
120 ) IS
121
122 l_dummy VARCHAR2(1);
123
124 BEGIN
125
126 ---------- Validations for Lookup MERGE_REASON_CODE
127 IF p_create_update_flag = 'C' AND p_merge_reason_code is NOT NULL
128 THEN
129 HZ_UTILITY_V2PUB.validate_lookup (
130 p_column => 'merge_reason_code',
131 p_lookup_type => 'MERGE_REASON_CODE',
132 p_column_value => p_merge_reason_code,
133 x_return_status => x_return_status );
134 END IF;
135
136
137 END validate_merge_batch;
138
139
140
141 -----------------------------
142 -- body of public procedures
143 -----------------------------
144
145
146
147 /**==========================================================================+
148 | PROCEDURE
149 | create_merge_batch
150 |
151 | DESCRIPTION
152 | Creates merge_batch.
153 |
154 | SCOPE - PUBLIC
155 |
156 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
157 |
158 | ARGUMENTS : IN:
159 | p_api_version
160 | p_init_msg_list
161 | p_commit
162 | p_merge_batch
163 | p_validation_level
164 | OUT:
165 | x_return_status
166 | x_msg_count
167 | x_msg_data
168 | x_location_id
169 | IN/ OUT:
170 |
171 | RETURNS : NONE
172 |
173 | NOTES
174 |
175 | MODIFICATION HISTORY
176 |
177 +===========================================================================**/
178
179 procedure create_merge_batch (
180 p_api_version IN NUMBER,
181 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
182 p_commit IN VARCHAR2:= FND_API.G_FALSE,
183 p_batch_name IN VARCHAR2,
184 p_batch_commit IN VARCHAR2,
185 p_batch_delete IN VARCHAR2,
186 p_merge_reason_code IN VARCHAR2,
187 x_return_status OUT NOCOPY VARCHAR2,
188 x_msg_count OUT NOCOPY NUMBER,
189 x_msg_data OUT NOCOPY VARCHAR2,
190 x_batch_id OUT NOCOPY NUMBER,
191 p_validation_level IN NUMBER:= FND_API.G_VALID_LEVEL_FULL
192 ) IS
193
194 l_api_name CONSTANT VARCHAR2(30) := 'create_merge_batch';
195 l_api_version CONSTANT NUMBER := 1.0;
196
197 l_batch_name VARCHAR2(30) := p_batch_name;
198 l_batch_commit VARCHAR2(1) := p_batch_commit;
199 l_batch_delete VARCHAR2(1) := p_batch_delete;
200 l_merge_reason_code VARCHAR2(30) := p_merge_reason_code;
201
202 BEGIN
203
204 -- standard start of API savepoint
205 SAVEPOINT create_merge_batch;
206
207
208 -- standard call to check for call compatibility.
209 IF NOT FND_API.Compatible_API_Call(
210 l_api_version,
211 p_api_version,
212 l_api_name,
213 G_PKG_NAME)
214 THEN
215 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
216 END IF;
217
218 -- initialize message list if p_init_msg_list is set to TRUE.
219 IF FND_API.to_Boolean(p_init_msg_list) THEN
220 FND_MSG_PUB.initialize;
221 END IF;
222
223 -- initialize API return status to success.
224 x_return_status := FND_API.G_RET_STS_SUCCESS;
225
226 -- call to business logic.
227 do_create_merge_batch(
228 l_batch_name,
229 l_batch_commit,
230 l_batch_delete,
231 l_merge_reason_code,
232 x_batch_id,
233 x_return_status);
234
235 -- standard check of p_commit.
236 IF FND_API.to_Boolean(p_commit) THEN
237 COMMIT;
238 END IF;
239
240 -- standard call to get message count and if count is 1, get message info.
241 FND_MSG_PUB.Count_And_Get(
242 p_encoded => FND_API.G_FALSE,
243 p_count => x_msg_count,
244 p_data => x_msg_data);
245
246 EXCEPTION
247 WHEN FND_API.G_EXC_ERROR THEN
248 ROLLBACK TO create_merge_batch;
249 x_return_status := FND_API.G_RET_STS_ERROR;
250 FND_MSG_PUB.Count_And_Get(
251 p_encoded => FND_API.G_FALSE,
252 p_count => x_msg_count,
253 p_data => x_msg_data);
254
255 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
256 ROLLBACK TO create_merge_batch;
257 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
258 FND_MSG_PUB.Count_And_Get(
259 p_encoded => FND_API.G_FALSE,
260 p_count => x_msg_count,
261 p_data => x_msg_data);
262
263 WHEN OTHERS THEN
264
265 ROLLBACK TO create_merge_batch;
266 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
267
268 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
269 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
270 FND_MSG_PUB.ADD;
271
272 FND_MSG_PUB.Count_And_Get(
273 p_encoded => FND_API.G_FALSE,
274 p_count => x_msg_count,
275 p_data => x_msg_data);
276
277 END create_merge_batch;
278 END HZ_MERGE_BATCH_PUB;