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