DBA Data[Home] [Help]

PACKAGE BODY: APPS.HZ_CUST_ACCOUNT_ROLE_V2PUB

Source


1 PACKAGE BODY HZ_CUST_ACCOUNT_ROLE_V2PUB AS
2 /*$Header: ARH2CRSB.pls 120.13 2005/12/07 19:30:14 acng ship $ */
3 
4 --------------------------------------
5 -- declaration of private global varibles
6 --------------------------------------
7 
8 G_DEBUG_COUNT             NUMBER := 0;
9 --G_DEBUG                   BOOLEAN := FALSE;
10 
11 --------------------------------------
12 -- declaration of private procedures and functions
13 --------------------------------------
14 
15 /*PROCEDURE enable_debug;
16 
17 PROCEDURE disable_debug;
18 */
19 
20 
21 PROCEDURE do_create_cust_account_role (
22     p_cust_account_role_rec                 IN OUT NOCOPY CUST_ACCOUNT_ROLE_REC_TYPE,
23     x_cust_account_role_id                  OUT NOCOPY    NUMBER,
24     x_return_status                         IN OUT NOCOPY VARCHAR2
25 );
26 
27 PROCEDURE do_update_cust_account_role (
28     p_cust_account_role_rec                 IN OUT NOCOPY CUST_ACCOUNT_ROLE_REC_TYPE,
29     p_object_version_number                 IN OUT NOCOPY NUMBER,
30     x_return_status                         IN OUT NOCOPY VARCHAR2
31 );
32 
33 PROCEDURE do_create_role_responsibility (
34     p_role_responsibility_rec               IN OUT NOCOPY ROLE_RESPONSIBILITY_REC_TYPE,
35     x_responsibility_id                     OUT NOCOPY    NUMBER,
36     x_return_status                         IN OUT NOCOPY VARCHAR2
37 );
38 
39 PROCEDURE do_update_role_responsibility (
40     p_role_responsibility_rec               IN OUT NOCOPY ROLE_RESPONSIBILITY_REC_TYPE,
41     p_object_version_number                 IN OUT NOCOPY NUMBER,
42     x_return_status                         IN OUT NOCOPY VARCHAR2
43 );
44 
45 --------------------------------------
46 -- private procedures and functions
47 --------------------------------------
48 
49 /**
50  * PRIVATE PROCEDURE enable_debug
51  *
52  * DESCRIPTION
53  *     Turn on debug mode.
54  *
55  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
56  *     HZ_UTILITY_V2PUB.enable_debug
57  *
58  * MODIFICATION HISTORY
59  *
60  *   07-23-2001    Jianying Huang      o Created.
61  *
62  */
63 
64 /*PROCEDURE enable_debug IS
65 
66 BEGIN
67 
68     G_DEBUG_COUNT := G_DEBUG_COUNT + 1;
69 
70     IF G_DEBUG_COUNT = 1 THEN
71         IF FND_PROFILE.value( 'HZ_API_FILE_DEBUG_ON' ) = 'Y' OR
72            FND_PROFILE.value( 'HZ_API_DBMS_DEBUG_ON' ) = 'Y'
73         THEN
74            HZ_UTILITY_V2PUB.enable_debug;
75            G_DEBUG := TRUE;
76         END IF;
77     END IF;
78 
79 END enable_debug;
80 */
81 
82 
83 /**
84  * PRIVATE PROCEDURE disable_debug
85  *
86  * DESCRIPTION
87  *     Turn off debug mode.
88  *
89  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
90  *     HZ_UTILITY_V2PUB.disable_debug
91  *
92  * MODIFICATION HISTORY
93  *
94  *   07-23-2001    Jianying Huang      o Created.
95  *
96  */
97 
98 /*PROCEDURE disable_debug IS
99 
100 BEGIN
101 
102     IF G_DEBUG THEN
103         G_DEBUG_COUNT := G_DEBUG_COUNT - 1;
104 
105         IF G_DEBUG_COUNT = 0 THEN
106             HZ_UTILITY_V2PUB.disable_debug;
107             G_DEBUG := FALSE;
108         END IF;
109     END IF;
110 
111 END disable_debug;
112 */
113 
114 /**
115  * PRIVATE PROCEDURE do_create_cust_account_role
116  *
117  * DESCRIPTION
118  *     Private procedure to create customer account role.
119  *
120  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
121  *     HZ_ACCOUNT_VALIDATE_V2PUB.validate_cust_account_role
122  *     HZ_CUST_ACCOUNT_ROLES_PKG.Insert_Row
123  *     HZ_PARTY_SITE_V2PUB.create_party_site
124  *
125  * ARGUMENTS
126  *   IN/OUT:
127  *     p_cust_account_role_rec        Customer account role record.
128  *     x_return_status                Return status after the call. The status can
129  *                                    be FND_API.G_RET_STS_SUCCESS (success),
130  *                                    FND_API.G_RET_STS_ERROR (error),
131  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
132  *   OUT:
133  *     x_cust_account_role_id         Customer account role ID.
134  *
135  * NOTES
136  *
137  * MODIFICATION HISTORY
138  *
139  *   07-23-2001    Jianying Huang      o Created.
140  *   06-28-2002    P.Suresh            o Bug No : 2263151. Commented the logic of
141  *                                       creating a party site while creating an account
142  *                                       role .
143  *
144  */
145 
146 PROCEDURE do_create_cust_account_role (
147     p_cust_account_role_rec                 IN OUT NOCOPY CUST_ACCOUNT_ROLE_REC_TYPE,
148     x_cust_account_role_id                  OUT NOCOPY    NUMBER,
149     x_return_status                         IN OUT NOCOPY VARCHAR2
150 ) IS
151 
152     l_debug_prefix                          VARCHAR2(30) := ''; --'do_create_cust_account_role'
153 
154     l_dummy                                 VARCHAR2(1);
155     l_msg_count                             NUMBER;
156     l_msg_data                              VARCHAR2(2000);
157     l_profile                               VARCHAR2(1) := 'Y';
158 
159     l_party_site_rec                        HZ_PARTY_SITE_V2PUB.PARTY_SITE_REC_TYPE;
160     l_location_id                           NUMBER;
161     l_party_site_id                         NUMBER;
162     l_party_site_number                     HZ_PARTY_SITES.party_site_number%TYPE;
163     l_orig_sys_reference_rec                HZ_ORIG_SYSTEM_REF_PUB.ORIG_SYS_REFERENCE_REC_TYPE;
164 
165 BEGIN
166 
167     -- Debug info.
168     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
169 	hz_utility_v2pub.debug(p_message=>'do_create_cust_account_role (+)',
170 	                       p_prefix=>l_debug_prefix,
171 			       p_msg_level=>fnd_log.level_procedure);
172     END IF;
173 
174     -- Validate cust account role record
175     HZ_ACCOUNT_VALIDATE_V2PUB.validate_cust_account_role (
176         p_create_update_flag                    => 'C',
177         p_cust_account_role_rec                 => p_cust_account_role_rec,
178         p_rowid                                 => NULL,
179         x_return_status                         => x_return_status );
180 
181     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
182         RAISE FND_API.G_EXC_ERROR;
183     END IF;
184   /* Bug No : 2263151.
185     -- Removed the logic to create a party site while creating the
186     -- account role.
187 
188     -- Create new party site for parties in account roles when
189     -- create account role in site level.
190 
191     IF p_cust_account_role_rec.cust_acct_site_id IS NOT NULL AND
192        p_cust_account_role_rec.cust_acct_site_id <> FND_API.G_MISS_NUM
193     THEN
194         -- select location id
195         SELECT LOCATION_ID INTO l_location_id
196         FROM HZ_PARTY_SITES
197         WHERE PARTY_SITE_ID = (
198             SELECT PARTY_SITE_ID
199             FROM HZ_CUST_ACCT_SITES
200             WHERE CUST_ACCT_SITE_ID = p_cust_account_role_rec.cust_acct_site_id );
201 
202         -- check if the address has been used by the party
203         BEGIN
204             SELECT 'Y' INTO l_dummy
205             FROM HZ_PARTY_SITES
206             WHERE PARTY_ID = p_cust_account_role_rec.party_id
207             AND LOCATION_ID = l_location_id;
208         EXCEPTION
209             WHEN NO_DATA_FOUND THEN
210                 -- create new party site for the contact if no
211                 -- party site has been created in the same address
212                 -- as customer account address.
213 
214                 -- Debug info.
215 		IF fnd_log.level_statement>=fnd_log.g_current_runtime_level THEN
216 			 hz_utility_v2pub.debug(p_message=>'Need to create party site for account role party id ',
217 			          p_prefix =>l_debug_prefix,
218 			          p_msg_level=>fnd_log.level_statement);
219 		END IF;
220 
221                 l_party_site_rec.party_id := p_cust_account_role_rec.party_id;
222                 l_party_site_rec.location_id := l_location_id;
223                 l_party_site_rec.created_by_module := p_cust_account_role_rec.created_by_module;
224                 l_party_site_rec.application_id := p_cust_account_role_rec.application_id;
225 
226                 --force profile option to 'Y' to generate party site number
227                 --through table sequence.
228 
229                 IF FND_PROFILE.VALUE( 'HZ_GENERATE_PARTY_SITE_NUMBER' ) = 'N' THEN
230                     l_profile := 'N';
231                     FND_PROFILE.PUT( 'HZ_GENERATE_PARTY_SITE_NUMBER', 'Y' );
232                 END IF;
233 
234                 HZ_PARTY_SITE_V2PUB.create_party_site (
235                     p_party_site_rec              => l_party_site_rec,
236                     x_party_site_id               => l_party_site_id,
237                     x_party_site_number           => l_party_site_number,
238                     x_return_status               => x_return_status,
239                     x_msg_count                   => l_msg_count,
240                     x_msg_data                    => l_msg_data );
241 
242                 -- change back the profile option.
243                 IF l_profile = 'N' THEN
244                     FND_PROFILE.PUT( 'HZ_GENERATE_PARTY_SITE_NUMBER', 'N' );
245                 END IF;
246 
247                 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
248                     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
249                         RAISE FND_API.G_EXC_ERROR;
250                     ELSE
251                         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
252                     END IF;
253                 END IF;
254         END;
255     END IF;
256  */
257     -- Debug info.
258     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
259 	hz_utility_v2pub.debug(p_message=>'HZ_CUST_ACCOUNT_ROLES_PKG.Insert_Row (+)',
260 	                       p_prefix=>l_debug_prefix,
261 			       p_msg_level=>fnd_log.level_procedure);
262     END IF;
263 
264     -- Call table-handler.
265     HZ_CUST_ACCOUNT_ROLES_PKG.Insert_Row (
266         X_CUST_ACCOUNT_ROLE_ID                  => p_cust_account_role_rec.cust_account_role_id,
267         X_PARTY_ID                              => p_cust_account_role_rec.party_id,
268         X_CUST_ACCOUNT_ID                       => p_cust_account_role_rec.cust_account_id,
269         X_CUST_ACCT_SITE_ID                     => p_cust_account_role_rec.cust_acct_site_id,
270         X_PRIMARY_FLAG                          => p_cust_account_role_rec.primary_flag,
271         X_ROLE_TYPE                             => p_cust_account_role_rec.role_type,
272         X_SOURCE_CODE                           => p_cust_account_role_rec.source_code,
273         X_ATTRIBUTE_CATEGORY                    => p_cust_account_role_rec.attribute_category,
274         X_ATTRIBUTE1                            => p_cust_account_role_rec.attribute1,
275         X_ATTRIBUTE2                            => p_cust_account_role_rec.attribute2,
276         X_ATTRIBUTE3                            => p_cust_account_role_rec.attribute3,
277         X_ATTRIBUTE4                            => p_cust_account_role_rec.attribute4,
278         X_ATTRIBUTE5                            => p_cust_account_role_rec.attribute5,
279         X_ATTRIBUTE6                            => p_cust_account_role_rec.attribute6,
280         X_ATTRIBUTE7                            => p_cust_account_role_rec.attribute7,
281         X_ATTRIBUTE8                            => p_cust_account_role_rec.attribute8,
282         X_ATTRIBUTE9                            => p_cust_account_role_rec.attribute9,
283         X_ATTRIBUTE10                           => p_cust_account_role_rec.attribute10,
284         X_ATTRIBUTE11                           => p_cust_account_role_rec.attribute11,
285         X_ATTRIBUTE12                           => p_cust_account_role_rec.attribute12,
286         X_ATTRIBUTE13                           => p_cust_account_role_rec.attribute13,
287         X_ATTRIBUTE14                           => p_cust_account_role_rec.attribute14,
288         X_ATTRIBUTE15                           => p_cust_account_role_rec.attribute15,
289         X_ATTRIBUTE16                           => p_cust_account_role_rec.attribute16,
290         X_ATTRIBUTE17                           => p_cust_account_role_rec.attribute17,
291         X_ATTRIBUTE18                           => p_cust_account_role_rec.attribute18,
292         X_ATTRIBUTE19                           => p_cust_account_role_rec.attribute19,
293         X_ATTRIBUTE20                           => p_cust_account_role_rec.attribute20,
294         X_ATTRIBUTE21                           => p_cust_account_role_rec.attribute21,
295         X_ATTRIBUTE22                           => p_cust_account_role_rec.attribute22,
296         X_ATTRIBUTE23                           => p_cust_account_role_rec.attribute23,
297         X_ATTRIBUTE24                           => p_cust_account_role_rec.attribute24,
298         X_ORIG_SYSTEM_REFERENCE                 => p_cust_account_role_rec.orig_system_reference,
299         X_ATTRIBUTE25                           => p_cust_account_role_rec.attribute25,
300         X_STATUS                                => p_cust_account_role_rec.status,
301         X_OBJECT_VERSION_NUMBER                 => 1,
302         X_CREATED_BY_MODULE                     => p_cust_account_role_rec.created_by_module,
303         X_APPLICATION_ID                        => p_cust_account_role_rec.application_id
304     );
305 
306 
307     -- Debug info.
308     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
309 	hz_utility_v2pub.debug(p_message=>'HZ_CUST_ACCOUNT_ROLES_PKG.Insert_Row (-) ' ||
310             'x_cust_account_role_id = ' || p_cust_account_role_rec.cust_account_role_id,
311 	                       p_prefix=>l_debug_prefix,
312 			       p_msg_level=>fnd_log.level_procedure);
313     END IF;
314 
315 if (p_cust_account_role_rec.orig_system_reference is not null and p_cust_account_role_rec.orig_system_reference<>fnd_api.g_miss_char ) then
316  if (p_cust_account_role_rec.orig_system is null OR p_cust_account_role_rec.orig_system = fnd_api.g_miss_char) then
317       p_cust_account_role_rec.orig_system := 'UNKNOWN';
318  end if;
319 end if;
320 
321 
322 if (p_cust_account_role_rec.orig_system is not null and p_cust_account_role_rec.orig_system<>fnd_api.g_miss_char ) then
323   l_orig_sys_reference_rec.orig_system := p_cust_account_role_rec.orig_system;
324   l_orig_sys_reference_rec.orig_system_reference := p_cust_account_role_rec.orig_system_reference;
325   l_orig_sys_reference_rec.owner_table_name := 'HZ_CUST_ACCOUNT_ROLES';
326   l_orig_sys_reference_rec.owner_table_id := p_cust_account_role_rec.cust_account_role_id;
327   l_orig_sys_reference_rec.created_by_module := p_cust_account_role_rec.created_by_module;
328 
329   hz_orig_system_ref_pub.create_orig_system_reference(
330    FND_API.G_FALSE,
331    l_orig_sys_reference_rec,
332    x_return_status,
333           l_msg_count,
334           l_msg_data);
335    IF x_return_status <> fnd_api.g_ret_sts_success THEN
336    RAISE FND_API.G_EXC_ERROR;
337   END IF;
338 end if;
339 x_cust_account_role_id := p_cust_account_role_rec.cust_account_role_id;
340     -- Debug info.
341 
342     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
343 	hz_utility_v2pub.debug(p_message=>'do_create_cust_account_role (-)',
344 	                       p_prefix=>l_debug_prefix,
345 			       p_msg_level=>fnd_log.level_procedure);
346     END IF;
347 
348 END do_create_cust_account_role;
349 
350 /**
351  * PRIVATE PROCEDURE do_update_cust_account_role
352  *
353  * DESCRIPTION
354  *     Private procedure to update customer account role.
355  *
356  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
357  *     HZ_ACCOUNT_VALIDATE_V2PUB.validate_cust_account_role
358  *     HZ_CUST_ACCOUNT_ROLES_PKG.Update_Row
359  *
360  * ARGUMENTS
361  *   IN/OUT:
362  *     p_cust_account_role_rec        Customer account role record.
363  *     p_object_version_number        Used for locking the being updated record.
364  *     x_return_status                Return status after the call. The status can
365  *                                    be FND_API.G_RET_STS_SUCCESS (success),
366  *                                    FND_API.G_RET_STS_ERROR (error),
367  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
368  *
369  * NOTES
370  *
371  * MODIFICATION HISTORY
372  *
373  *   07-23-2001    Jianying Huang      o Created.
374  *
375  */
376 
377 PROCEDURE do_update_cust_account_role (
378     p_cust_account_role_rec                 IN OUT NOCOPY CUST_ACCOUNT_ROLE_REC_TYPE,
379     p_object_version_number                 IN OUT NOCOPY NUMBER,
380     x_return_status                         IN OUT NOCOPY VARCHAR2
381 ) IS
382 
383     l_debug_prefix                          VARCHAR2(30) := ''; --'do_update_cust_account_role'
384 
385     l_rowid                                 ROWID := NULL;
386     l_object_version_number                 NUMBER;
387     l_orig_sys_reference_rec                HZ_ORIG_SYSTEM_REF_PUB.ORIG_SYS_REFERENCE_REC_TYPE;
388 
389 
390 BEGIN
391 
392     -- Debug info.
393     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
394 	hz_utility_v2pub.debug(p_message=>'do_update_cust_account_role (+)',
395 	                       p_prefix=>l_debug_prefix,
396 			       p_msg_level=>fnd_log.level_procedure);
397     END IF;
398 
399     -- Lock record.
400     BEGIN
401         SELECT ROWID, OBJECT_VERSION_NUMBER
402         INTO l_rowid, l_object_version_number
403         FROM HZ_CUST_ACCOUNT_ROLES
404         WHERE CUST_ACCOUNT_ROLE_ID = p_cust_account_role_rec.cust_account_role_id
405         FOR UPDATE NOWAIT;
406 
407         IF NOT (
408             ( p_object_version_number IS NULL AND l_object_version_number IS NULL ) OR
409             ( p_object_version_number IS NOT NULL AND
410               l_object_version_number IS NOT NULL AND
411               p_object_version_number = l_object_version_number ) )
412         THEN
413             FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_RECORD_CHANGED' );
414             FND_MESSAGE.SET_TOKEN( 'TABLE', 'hz_cust_account_roles' );
415             FND_MSG_PUB.ADD;
416             RAISE FND_API.G_EXC_ERROR;
417         END IF;
418 
419         p_object_version_number := NVL( l_object_version_number, 1 ) + 1;
420 
421     EXCEPTION
422         WHEN NO_DATA_FOUND THEN
423             FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_NO_RECORD' );
424             FND_MESSAGE.SET_TOKEN( 'RECORD', 'customer account role' );
425             FND_MESSAGE.SET_TOKEN( 'VALUE',
426                 NVL( TO_CHAR( p_cust_account_role_rec.cust_account_role_id ), 'null' ) );
427             FND_MSG_PUB.ADD;
428             RAISE FND_API.G_EXC_ERROR;
429     END;
430 
431     -- Validate cust account role record
432     HZ_ACCOUNT_VALIDATE_V2PUB.validate_cust_account_role (
433         p_create_update_flag                    => 'U',
434         p_cust_account_role_rec                 => p_cust_account_role_rec,
435         p_rowid                                 => l_rowid,
436         x_return_status                         => x_return_status );
437 
438     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
439         RAISE FND_API.G_EXC_ERROR;
440     END IF;
441 
442     if (p_cust_account_role_rec.orig_system is not null
443 	 and p_cust_account_role_rec.orig_system <>fnd_api.g_miss_char)
444 	and (p_cust_account_role_rec.orig_system_reference is not null
445 	 and p_cust_account_role_rec.orig_system_reference <>fnd_api.g_miss_char)
446     then
447 		p_cust_account_role_rec.orig_system_reference := null;
448 		-- In mosr, we have bypassed osr nonupdateable validation
449                 -- but we should not update existing osr, set it to null
450     end if;
451 
452     -- Debug info.
453     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
454 	hz_utility_v2pub.debug(p_message=>'HZ_CUST_ACCOUNT_ROLES_PKG.Update_Row (+)',
455 	                       p_prefix=>l_debug_prefix,
456 			       p_msg_level=>fnd_log.level_procedure);
457     END IF;
458 
459     -- Call table-handler.
460     HZ_CUST_ACCOUNT_ROLES_PKG.Update_Row (
461         X_Rowid                                 => l_rowid,
462         X_CUST_ACCOUNT_ROLE_ID                  => p_cust_account_role_rec.cust_account_role_id,
463         X_PARTY_ID                              => p_cust_account_role_rec.party_id,
464         X_CUST_ACCOUNT_ID                       => p_cust_account_role_rec.cust_account_id,
465         X_CUST_ACCT_SITE_ID                     => p_cust_account_role_rec.cust_acct_site_id,
466         X_PRIMARY_FLAG                          => p_cust_account_role_rec.primary_flag,
467         X_ROLE_TYPE                             => p_cust_account_role_rec.role_type,
468         X_SOURCE_CODE                           => p_cust_account_role_rec.source_code,
469         X_ATTRIBUTE_CATEGORY                    => p_cust_account_role_rec.attribute_category,
470         X_ATTRIBUTE1                            => p_cust_account_role_rec.attribute1,
471         X_ATTRIBUTE2                            => p_cust_account_role_rec.attribute2,
472         X_ATTRIBUTE3                            => p_cust_account_role_rec.attribute3,
473         X_ATTRIBUTE4                            => p_cust_account_role_rec.attribute4,
474         X_ATTRIBUTE5                            => p_cust_account_role_rec.attribute5,
475         X_ATTRIBUTE6                            => p_cust_account_role_rec.attribute6,
476         X_ATTRIBUTE7                            => p_cust_account_role_rec.attribute7,
477         X_ATTRIBUTE8                            => p_cust_account_role_rec.attribute8,
478         X_ATTRIBUTE9                            => p_cust_account_role_rec.attribute9,
479         X_ATTRIBUTE10                           => p_cust_account_role_rec.attribute10,
480         X_ATTRIBUTE11                           => p_cust_account_role_rec.attribute11,
481         X_ATTRIBUTE12                           => p_cust_account_role_rec.attribute12,
482         X_ATTRIBUTE13                           => p_cust_account_role_rec.attribute13,
483         X_ATTRIBUTE14                           => p_cust_account_role_rec.attribute14,
484         X_ATTRIBUTE15                           => p_cust_account_role_rec.attribute15,
485         X_ATTRIBUTE16                           => p_cust_account_role_rec.attribute16,
486         X_ATTRIBUTE17                           => p_cust_account_role_rec.attribute17,
487         X_ATTRIBUTE18                           => p_cust_account_role_rec.attribute18,
488         X_ATTRIBUTE19                           => p_cust_account_role_rec.attribute19,
489         X_ATTRIBUTE20                           => p_cust_account_role_rec.attribute20,
490         X_ATTRIBUTE21                           => p_cust_account_role_rec.attribute21,
491         X_ATTRIBUTE22                           => p_cust_account_role_rec.attribute22,
492         X_ATTRIBUTE23                           => p_cust_account_role_rec.attribute23,
493         X_ATTRIBUTE24                           => p_cust_account_role_rec.attribute24,
494         X_ORIG_SYSTEM_REFERENCE                 => p_cust_account_role_rec.orig_system_reference,
495         X_ATTRIBUTE25                           => p_cust_account_role_rec.attribute25,
496         X_STATUS                                => p_cust_account_role_rec.status,
497         X_OBJECT_VERSION_NUMBER                 => p_object_version_number,
498         X_CREATED_BY_MODULE                     => p_cust_account_role_rec.created_by_module,
499         X_APPLICATION_ID                        => p_cust_account_role_rec.application_id
500     );
501 
502     -- Debug info.
503     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
504 	hz_utility_v2pub.debug(p_message=>'HZ_CUST_ACCOUNT_ROLES_PKG.Update_Row (-)',
505 	                       p_prefix=>l_debug_prefix,
506 			       p_msg_level=>fnd_log.level_procedure);
507     END IF;
508 
509 END do_update_cust_account_role;
510 
511 /**
512  * PRIVATE PROCEDURE do_create_role_responsibility
513  *
514  * DESCRIPTION
515  *     Private procedure to create customer account role responsibility.
516  *
517  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
518  *     HZ_ACCOUNT_VALIDATE_V2PUB.validate_role_responsibility
519  *     HZ_ROLE_RESPONSIBILITY_PKG.Insert_Row
520  *
521  * ARGUMENTS
522  *   IN/OUT:
523  *     p_role_responsibility_rec      Customer account role responsibility record.
524  *     x_return_status                Return status after the call. The status can
525  *                                    be FND_API.G_RET_STS_SUCCESS (success),
526  *                                    FND_API.G_RET_STS_ERROR (error),
527  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
528  *   OUT:
529  *     x_responsibility_id            Role responsibility ID.
530  *
531  * NOTES
532  *
533  * MODIFICATION HISTORY
534  *
535  *   07-23-2001    Jianying Huang      o Created.
536  *
537  */
538 
539 PROCEDURE do_create_role_responsibility (
540     p_role_responsibility_rec               IN OUT NOCOPY ROLE_RESPONSIBILITY_REC_TYPE,
541     x_responsibility_id                     OUT NOCOPY    NUMBER,
542     x_return_status                         IN OUT NOCOPY VARCHAR2
543 ) IS
544 
545     l_debug_prefix                          VARCHAR2(30) := ''; --'do_create_role_responsibility'
546 
547 BEGIN
548 
549     -- Debug info.
550     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
551 	hz_utility_v2pub.debug(p_message=>'do_create_role_responsibility (+)',
552 	                       p_prefix=>l_debug_prefix,
553 			       p_msg_level=>fnd_log.level_procedure);
554     END IF;
555 
556     -- Validate role responsibility record
557     HZ_ACCOUNT_VALIDATE_V2PUB.validate_role_responsibility (
558         p_create_update_flag                    => 'C',
559         p_role_responsibility_rec               => p_role_responsibility_rec,
560         p_rowid                                 => NULL,
561         x_return_status                         => x_return_status );
562 
563     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
564         RAISE FND_API.G_EXC_ERROR;
565     END IF;
566 
567     -- Debug info.
568     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
569 	hz_utility_v2pub.debug(p_message=>'HZ_ROLE_RESPONSIBILITY_PKG.Insert_Row (+)',
570 	                       p_prefix=>l_debug_prefix,
571 			       p_msg_level=>fnd_log.level_procedure);
572     END IF;
573 
574     -- Call table-handler.
575     HZ_ROLE_RESPONSIBILITY_PKG.Insert_Row (
576         X_RESPONSIBILITY_ID                     => p_role_responsibility_rec.responsibility_id,
577         X_CUST_ACCOUNT_ROLE_ID                  => p_role_responsibility_rec.cust_account_role_id,
578         X_RESPONSIBILITY_TYPE                   => p_role_responsibility_rec.responsibility_type,
579         X_PRIMARY_FLAG                          => p_role_responsibility_rec.primary_flag,
580         X_ATTRIBUTE_CATEGORY                    => p_role_responsibility_rec.attribute_category,
581         X_ATTRIBUTE1                            => p_role_responsibility_rec.attribute1,
582         X_ATTRIBUTE2                            => p_role_responsibility_rec.attribute2,
583         X_ATTRIBUTE3                            => p_role_responsibility_rec.attribute3,
584         X_ATTRIBUTE4                            => p_role_responsibility_rec.attribute4,
585         X_ATTRIBUTE5                            => p_role_responsibility_rec.attribute5,
586         X_ATTRIBUTE6                            => p_role_responsibility_rec.attribute6,
587         X_ATTRIBUTE7                            => p_role_responsibility_rec.attribute7,
588         X_ATTRIBUTE8                            => p_role_responsibility_rec.attribute8,
589         X_ATTRIBUTE9                            => p_role_responsibility_rec.attribute9,
590         X_ATTRIBUTE10                           => p_role_responsibility_rec.attribute10,
591         X_ATTRIBUTE11                           => p_role_responsibility_rec.attribute11,
592         X_ATTRIBUTE12                           => p_role_responsibility_rec.attribute12,
593         X_ATTRIBUTE13                           => p_role_responsibility_rec.attribute13,
594         X_ATTRIBUTE14                           => p_role_responsibility_rec.attribute14,
595         X_ATTRIBUTE15                           => p_role_responsibility_rec.attribute15,
596         X_ORIG_SYSTEM_REFERENCE                 => p_role_responsibility_rec.orig_system_reference,
597         X_OBJECT_VERSION_NUMBER                 => 1,
598         X_CREATED_BY_MODULE                     => p_role_responsibility_rec.created_by_module,
599         X_APPLICATION_ID                        => p_role_responsibility_rec.application_id
600     );
601 
602     x_responsibility_id := p_role_responsibility_rec.responsibility_id;
603 
604     -- Debug info.
605     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
606 	hz_utility_v2pub.debug(p_message=>'HZ_ROLE_RESPONSIBILITY_PKG.Insert_Row (-) ' ||
607             'x_responsibility_id = ' || x_responsibility_id,
608 	                       p_prefix=>l_debug_prefix,
609 			       p_msg_level=>fnd_log.level_procedure);
610     END IF;
611 
612     -- Debug info.
613     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
614 	hz_utility_v2pub.debug(p_message=>'do_create_role_responsibility (-)',
615 	                       p_prefix=>l_debug_prefix,
616 			       p_msg_level=>fnd_log.level_procedure);
617     END IF;
618 
619 END do_create_role_responsibility;
620 
621 /**
622  * PRIVATE PROCEDURE do_update_role_responsibility
623  *
624  * DESCRIPTION
625  *     Private procedure to update customer account role responsibility.
626  *
627  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
628  *     HZ_ACCOUNT_VALIDATE_V2PUB.validate_role_responsibility
629  *     HZ_ROLE_RESPONSIBILITY_PKG.Update_Row
630  *
631  * ARGUMENTS
632  *   IN/OUT:
633  *     p_role_responsibility_rec      Customer account role responsibility record.
634  *     p_object_version_number        Used for locking the being updated record.
635  *     x_return_status                Return status after the call. The status can
636  *                                    be FND_API.G_RET_STS_SUCCESS (success),
637  *                                    FND_API.G_RET_STS_ERROR (error),
638  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
639  *
640  * NOTES
641  *
642  * MODIFICATION HISTORY
643  *
644  *   07-23-2001    Jianying Huang      o Created.
645  *
646  */
647 
648 PROCEDURE do_update_role_responsibility (
649     p_role_responsibility_rec               IN OUT NOCOPY ROLE_RESPONSIBILITY_REC_TYPE,
650     p_object_version_number                 IN OUT NOCOPY NUMBER,
651     x_return_status                         IN OUT NOCOPY VARCHAR2
652 ) IS
653 
654     l_debug_prefix                          VARCHAR2(30) := ''; --'do_update_role_responsibility'
655 
656     l_rowid                                 ROWID := NULL;
657     l_object_version_number                 NUMBER;
658 
659 BEGIN
660 
661     -- Debug info.
662     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
663 	hz_utility_v2pub.debug(p_message=>'do_update_role_responsibility (+)',
664 	                       p_prefix=>l_debug_prefix,
665 			       p_msg_level=>fnd_log.level_procedure);
666     END IF;
667 
668     -- Lock record.
669     BEGIN
670         SELECT ROWID, OBJECT_VERSION_NUMBER
671         INTO l_rowid, l_object_version_number
672         FROM HZ_ROLE_RESPONSIBILITY
673         WHERE RESPONSIBILITY_ID = p_role_responsibility_rec.responsibility_id
674         FOR UPDATE NOWAIT;
675 
676         IF NOT (
677             ( p_object_version_number IS NULL AND l_object_version_number IS NULL ) OR
678             ( p_object_version_number IS NOT NULL AND
679               l_object_version_number IS NOT NULL AND
680               p_object_version_number = l_object_version_number ) )
681         THEN
682             FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_RECORD_CHANGED' );
683             FND_MESSAGE.SET_TOKEN( 'TABLE', 'hz_role_responsibility' );
684             FND_MSG_PUB.ADD;
685             RAISE FND_API.G_EXC_ERROR;
686         END IF;
687 
688         p_object_version_number := NVL( l_object_version_number, 1 ) + 1;
689 
690     EXCEPTION
691         WHEN NO_DATA_FOUND THEN
692             FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_NO_RECORD' );
693             FND_MESSAGE.SET_TOKEN( 'RECORD', 'customer account role responsibility' );
694             FND_MESSAGE.SET_TOKEN( 'VALUE',
695                 NVL( TO_CHAR( p_role_responsibility_rec.responsibility_id ), 'null' ) );
696             FND_MSG_PUB.ADD;
697             RAISE FND_API.G_EXC_ERROR;
698     END;
699 
700     -- Validate role responsibility record
701     HZ_ACCOUNT_VALIDATE_V2PUB.validate_role_responsibility (
702         p_create_update_flag                    => 'U',
703         p_role_responsibility_rec                 => p_role_responsibility_rec,
704         p_rowid                                 => l_rowid,
705         x_return_status                         => x_return_status );
706 
707     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
708         RAISE FND_API.G_EXC_ERROR;
709     END IF;
710 
711     -- Debug info.
712     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
713 	hz_utility_v2pub.debug(p_message=>'HZ_ROLE_RESPONSIBILITY_PKG.Update_Row (+)',
714 	                       p_prefix=>l_debug_prefix,
715 			       p_msg_level=>fnd_log.level_procedure);
716     END IF;
717 
718     -- Call table-handler.
719     HZ_ROLE_RESPONSIBILITY_PKG.Update_Row (
720         X_Rowid                                 => l_rowid,
721         X_RESPONSIBILITY_ID                     => p_role_responsibility_rec.responsibility_id,
722         X_CUST_ACCOUNT_ROLE_ID                  => p_role_responsibility_rec.cust_account_role_id,
723         X_RESPONSIBILITY_TYPE                   => p_role_responsibility_rec.responsibility_type,
724         X_PRIMARY_FLAG                          => p_role_responsibility_rec.primary_flag,
725         X_ATTRIBUTE_CATEGORY                    => p_role_responsibility_rec.attribute_category,
726         X_ATTRIBUTE1                            => p_role_responsibility_rec.attribute1,
727         X_ATTRIBUTE2                            => p_role_responsibility_rec.attribute2,
728         X_ATTRIBUTE3                            => p_role_responsibility_rec.attribute3,
729         X_ATTRIBUTE4                            => p_role_responsibility_rec.attribute4,
730         X_ATTRIBUTE5                            => p_role_responsibility_rec.attribute5,
731         X_ATTRIBUTE6                            => p_role_responsibility_rec.attribute6,
732         X_ATTRIBUTE7                            => p_role_responsibility_rec.attribute7,
733         X_ATTRIBUTE8                            => p_role_responsibility_rec.attribute8,
734         X_ATTRIBUTE9                            => p_role_responsibility_rec.attribute9,
735         X_ATTRIBUTE10                           => p_role_responsibility_rec.attribute10,
736         X_ATTRIBUTE11                           => p_role_responsibility_rec.attribute11,
737         X_ATTRIBUTE12                           => p_role_responsibility_rec.attribute12,
738         X_ATTRIBUTE13                           => p_role_responsibility_rec.attribute13,
739         X_ATTRIBUTE14                           => p_role_responsibility_rec.attribute14,
740         X_ATTRIBUTE15                           => p_role_responsibility_rec.attribute15,
741         X_ORIG_SYSTEM_REFERENCE                 => p_role_responsibility_rec.orig_system_reference,
742         X_OBJECT_VERSION_NUMBER                 => p_object_version_number,
743         X_CREATED_BY_MODULE                     => p_role_responsibility_rec.created_by_module,
744         X_APPLICATION_ID                        => p_role_responsibility_rec.application_id
745     );
746 
747     -- Debug info.
748     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
749 	hz_utility_v2pub.debug(p_message=>'HZ_ROLE_RESPONSIBILITY_PKG.Update_Row (-)',
750 	                       p_prefix=>l_debug_prefix,
751 			       p_msg_level=>fnd_log.level_procedure);
752     END IF;
753 
754     -- Debug info.
755     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
756 	hz_utility_v2pub.debug(p_message=>'do_update_role_responsibility (-)',
757 	                       p_prefix=>l_debug_prefix,
758 			       p_msg_level=>fnd_log.level_procedure);
759     END IF;
760 
761 END do_update_role_responsibility;
762 
763 --------------------------------------
764 -- public procedures and functions
765 --------------------------------------
766 
767 /**
768  * PROCEDURE create_cust_account_role
769  *
770  * DESCRIPTION
771  *     Creates customer account role.
772  *
773  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
774  *     HZ_BUSINESS_EVENT_V2PVT.create_cust_account_role_event
775  *
776  * ARGUMENTS
777  *   IN:
778  *     p_init_msg_list                Initialize message stack if it is set to
779  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
780  *     p_cust_account_role_rec        Customer account role record.
781  *   IN/OUT:
782  *   OUT:
783  *     x_cust_account_role_id         Customer account role ID.
784  *     x_return_status                Return status after the call. The status can
785  *                                    be FND_API.G_RET_STS_SUCCESS (success),
786  *                                    FND_API.G_RET_STS_ERROR (error),
787  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
788  *     x_msg_count                    Number of messages in message stack.
789  *     x_msg_data                     Message text if x_msg_count is 1.
790  *
791  * NOTES
792  *
793  * MODIFICATION HISTORY
794  *
795  *   07-23-2001    Jianying Huang      o Created.
796  *
797  */
798 
799 PROCEDURE create_cust_account_role (
800     p_init_msg_list                         IN     VARCHAR2 := FND_API.G_FALSE,
801     p_cust_account_role_rec                 IN     CUST_ACCOUNT_ROLE_REC_TYPE,
802     x_cust_account_role_id                  OUT NOCOPY    NUMBER,
803     x_return_status                         OUT NOCOPY    VARCHAR2,
804     x_msg_count                             OUT NOCOPY    NUMBER,
805     x_msg_data                              OUT NOCOPY    VARCHAR2
806 ) IS
807 
808     l_cust_account_role_rec                 CUST_ACCOUNT_ROLE_REC_TYPE := p_cust_account_role_rec;
809     l_debug_prefix		            VARCHAR2(30) := '';
810 
811 
812 BEGIN
813 
814     -- Standard start of API savepoint
815     SAVEPOINT create_cust_account_role;
816 
817     -- Check if API is called in debug mode. If yes, enable debug.
818     --enable_debug;
819 
820     -- Debug info.
821     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
822 	hz_utility_v2pub.debug(p_message=>'create_cust_account_role (+)',
823 	                       p_prefix=>l_debug_prefix,
824 			       p_msg_level=>fnd_log.level_procedure);
825     END IF;
826 
827     -- Initialize message list if p_init_msg_list is set to TRUE.
828     IF FND_API.to_Boolean(p_init_msg_list) THEN
829         FND_MSG_PUB.initialize;
830     END IF;
831 
832     -- Initialize API return status to success.
833     x_return_status := FND_API.G_RET_STS_SUCCESS;
834 
835     -- Call to business logic.
836     do_create_cust_account_role (
837         l_cust_account_role_rec,
838         x_cust_account_role_id,
839         x_return_status );
840 
841 
842    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
843      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
844        -- Invoke business event system.
845        HZ_BUSINESS_EVENT_V2PVT.create_cust_account_role_event (
846          l_cust_account_role_rec );
847      END IF;
848 
849      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
850        HZ_POPULATE_BOT_PKG.pop_hz_cust_account_roles(
851          p_operation            => 'I',
852          p_cust_account_role_id => x_cust_account_role_id);
853      END IF;
854    END IF;
855 
856     -- Standard call to get message count and if count is 1, get message info.
857     FND_MSG_PUB.Count_And_Get(
858         p_encoded => FND_API.G_FALSE,
859         p_count => x_msg_count,
860         p_data  => x_msg_data );
861 
862     -- Debug info.
863     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
864 	 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
865 	                       p_msg_data=>x_msg_data,
866 			       p_msg_type=>'WARNING',
867 			       p_msg_level=>fnd_log.level_exception);
868     END IF;
869     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
870 	hz_utility_v2pub.debug(p_message=>'create_cust_account_role (-)',
871 	                       p_prefix=>l_debug_prefix,
872 			       p_msg_level=>fnd_log.level_procedure);
873     END IF;
874 
875     -- Check if API is called in debug mode. If yes, disable debug.
876     --disable_debug;
877 
878 EXCEPTION
879     WHEN FND_API.G_EXC_ERROR THEN
880         ROLLBACK TO create_cust_account_role;
881         x_return_status := FND_API.G_RET_STS_ERROR;
882 
883         FND_MSG_PUB.Count_And_Get(
884             p_encoded => FND_API.G_FALSE,
885             p_count => x_msg_count,
886             p_data  => x_msg_data );
887 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
888 		 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
889 	                       p_msg_data=>x_msg_data,
890 			       p_msg_type=>'ERROR',
891 			       p_msg_level=>fnd_log.level_error);
892         END IF;
893         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
894 	    hz_utility_v2pub.debug(p_message=>'create_cust_account_role (-)',
895 	                       p_prefix=>l_debug_prefix,
896 			       p_msg_level=>fnd_log.level_procedure);
897         END IF;
898 
899         -- Check if API is called in debug mode. If yes, disable debug.
900         --disable_debug;
901 
902     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
903         ROLLBACK TO create_cust_account_role;
904         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
905 
906         FND_MSG_PUB.Count_And_Get(
907             p_encoded => FND_API.G_FALSE,
908             p_count => x_msg_count,
909             p_data  => x_msg_data );
910 
911 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
912             hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
913 	                       p_msg_data=>x_msg_data,
914 			       p_msg_type=>'UNEXPECTED ERROR',
915 			       p_msg_level=>fnd_log.level_error);
916         END IF;
917         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
918 	   hz_utility_v2pub.debug(p_message=>'create_cust_account_role (-)',
919 	                       p_prefix=>l_debug_prefix,
920 			       p_msg_level=>fnd_log.level_procedure);
921         END IF;
922 
923 
924         -- Check if API is called in debug mode. If yes, disable debug.
925         --disable_debug;
926 
927     WHEN OTHERS THEN
928         ROLLBACK TO create_cust_account_role;
929         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
930 
931         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
932         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
933         FND_MSG_PUB.ADD;
934 
935         FND_MSG_PUB.Count_And_Get(
936             p_encoded => FND_API.G_FALSE,
937             p_count => x_msg_count,
938             p_data  => x_msg_data );
939 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
940              hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
941 	                       p_msg_data=>x_msg_data,
942 			       p_msg_type=>'SQL ERROR',
943 			       p_msg_level=>fnd_log.level_error);
944         END IF;
945         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
946 	    hz_utility_v2pub.debug(p_message=>'create_cust_account_role (-)',
947 	                       p_prefix=>l_debug_prefix,
948 			       p_msg_level=>fnd_log.level_procedure);
949         END IF;
950 
951         -- Check if API is called in debug mode. If yes, disable debug.
952         --disable_debug;
953 
954 END create_cust_account_role;
955 
956 /**
957  * PROCEDURE update_cust_account_role
958  *
959  * DESCRIPTION
960  *     Updates customer account role.
961  *
962  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
963  *     HZ_BUSINESS_EVENT_V2PVT.update_cust_account_role_event
964  *
965  * ARGUMENTS
966  *   IN:
967  *     p_init_msg_list                Initialize message stack if it is set to
968  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
969  *     p_cust_account_role_rec        Customer account role record.
970  *   IN/OUT:
971  *     p_object_version_number        Used for locking the being updated record.
972  *   OUT:
973  *     x_return_status                Return status after the call. The status can
974  *                                    be FND_API.G_RET_STS_SUCCESS (success),
975  *                                    FND_API.G_RET_STS_ERROR (error),
976  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
977  *     x_msg_count                    Number of messages in message stack.
978  *     x_msg_data                     Message text if x_msg_count is 1.
979  *
980  * NOTES
981  *
982  * MODIFICATION HISTORY
983  *
984  *   07-23-2001    Jianying Huang      o Created.
985  *
986  */
987 
988 PROCEDURE update_cust_account_role (
989     p_init_msg_list                         IN     VARCHAR2 := FND_API.G_FALSE,
990     p_cust_account_role_rec                 IN     CUST_ACCOUNT_ROLE_REC_TYPE,
991     p_object_version_number                 IN OUT NOCOPY NUMBER,
992     x_return_status                         OUT NOCOPY    VARCHAR2,
993     x_msg_count                             OUT NOCOPY    NUMBER,
994     x_msg_data                              OUT NOCOPY    VARCHAR2
995 ) IS
996 
997     l_cust_account_role_rec                 CUST_ACCOUNT_ROLE_REC_TYPE := p_cust_account_role_rec;
998     l_old_cust_account_role_rec             CUST_ACCOUNT_ROLE_REC_TYPE;
999     l_debug_prefix		            VARCHAR2(30) := '';
1000 
1001 BEGIN
1002 
1003     -- Standard start of API savepoint
1004     SAVEPOINT update_cust_account_role;
1005 
1006     -- Check if API is called in debug mode. If yes, enable debug.
1007     --enable_debug;
1008 
1009     -- Debug info.
1010     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1011 	hz_utility_v2pub.debug(p_message=>'update_cust_account_role (+)',
1012 	                       p_prefix=>l_debug_prefix,
1013 			       p_msg_level=>fnd_log.level_procedure);
1014     END IF;
1015 
1016     -- Initialize message list if p_init_msg_list is set to TRUE.
1017     IF FND_API.to_Boolean(p_init_msg_list) THEN
1018         FND_MSG_PUB.initialize;
1019     END IF;
1020 
1021     -- Initialize API return status to success.
1022     x_return_status := FND_API.G_RET_STS_SUCCESS;
1023 
1024     IF (p_cust_account_role_rec.orig_system is not null and p_cust_account_role_rec.orig_system <>fnd_api.g_miss_char)
1025      and (p_cust_account_role_rec.orig_system_reference is not null and p_cust_account_role_rec.orig_system_reference <>fnd_api.g_miss_char)
1026      and (p_cust_account_role_rec.cust_account_role_id = FND_API.G_MISS_NUM or p_cust_account_role_rec.cust_account_role_id is null) THEN
1027 
1028     hz_orig_system_ref_pub.get_owner_table_id
1029    (p_orig_system => p_cust_account_role_rec.orig_system,
1030    p_orig_system_reference => p_cust_account_role_rec.orig_system_reference,
1031    p_owner_table_name => 'HZ_CUST_ACCOUNT_ROLES',
1032    x_owner_table_id => l_cust_account_role_rec.cust_account_role_id,
1033    x_return_status => x_return_status);
1034      IF x_return_status <> fnd_api.g_ret_sts_success THEN
1035   RAISE FND_API.G_EXC_ERROR;
1036      END IF;
1037 
1038       END IF;
1039 
1040     get_cust_account_role_rec (
1041       p_cust_account_role_id     => l_cust_account_role_rec.cust_account_role_id,
1042       x_cust_account_role_rec    => l_old_cust_account_role_rec,
1043       x_return_status            => x_return_status,
1044       x_msg_count                => x_msg_count,
1045       x_msg_data                 => x_msg_data);
1046 
1047     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1048         RAISE FND_API.G_EXC_ERROR;
1049     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1050         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1051     END IF;
1052 
1053     -- Call to business logic.
1054     do_update_cust_account_role (
1055         l_cust_account_role_rec,
1056         p_object_version_number,
1057         x_return_status );
1058 
1059    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1060      -- Invoke business event system.
1061      l_old_cust_account_role_rec.orig_system := l_cust_account_role_rec.orig_system;
1062      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
1063        HZ_BUSINESS_EVENT_V2PVT.update_cust_account_role_event (
1064          l_cust_account_role_rec ,  l_old_cust_account_role_rec );
1065      END IF;
1066 
1067      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
1068        HZ_POPULATE_BOT_PKG.pop_hz_cust_account_roles(
1069          p_operation            => 'U',
1070          p_cust_account_role_id => l_cust_account_role_rec.cust_account_role_id);
1071      END IF;
1072    END IF;
1073 
1074     -- Standard call to get message count and if count is 1, get message info.
1075     FND_MSG_PUB.Count_And_Get(
1076         p_encoded => FND_API.G_FALSE,
1077         p_count => x_msg_count,
1078         p_data  => x_msg_data );
1079     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1080 	 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1081 	                       p_msg_data=>x_msg_data,
1082 			       p_msg_type=>'WARNING',
1083 			       p_msg_level=>fnd_log.level_exception);
1084     END IF;
1085     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1086 	hz_utility_v2pub.debug(p_message=>'update_cust_account_role (-)',
1087 	                       p_prefix=>l_debug_prefix,
1088 			       p_msg_level=>fnd_log.level_procedure);
1089     END IF;
1090 
1091     -- Check if API is called in debug mode. If yes, disable debug.
1092     --disable_debug;
1093 
1094 EXCEPTION
1095     WHEN FND_API.G_EXC_ERROR THEN
1096         ROLLBACK TO update_cust_account_role;
1097         x_return_status := FND_API.G_RET_STS_ERROR;
1098 
1099         FND_MSG_PUB.Count_And_Get(
1100             p_encoded => FND_API.G_FALSE,
1101             p_count => x_msg_count,
1102             p_data  => x_msg_data );
1103 
1104 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1105 		 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1106 	                       p_msg_data=>x_msg_data,
1107 			       p_msg_type=>'ERROR',
1108 			       p_msg_level=>fnd_log.level_error);
1109         END IF;
1110         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1111 	    hz_utility_v2pub.debug(p_message=>'update_cust_account_role (-)',
1112 	                       p_prefix=>l_debug_prefix,
1113 			       p_msg_level=>fnd_log.level_procedure);
1114         END IF;
1115 
1116         -- Check if API is called in debug mode. If yes, disable debug.
1117         --disable_debug;
1118 
1119     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1120         ROLLBACK TO update_cust_account_role;
1121         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1122 
1123         FND_MSG_PUB.Count_And_Get(
1124             p_encoded => FND_API.G_FALSE,
1125             p_count => x_msg_count,
1126             p_data  => x_msg_data );
1127 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1128             hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1129 	                       p_msg_data=>x_msg_data,
1130 			       p_msg_type=>'UNEXPECTED ERROR',
1131 			       p_msg_level=>fnd_log.level_error);
1132         END IF;
1133         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1134 	   hz_utility_v2pub.debug(p_message=>'update_cust_account_role (-)',
1135 	                       p_prefix=>l_debug_prefix,
1136 			       p_msg_level=>fnd_log.level_procedure);
1137         END IF;
1138 
1139         -- Check if API is called in debug mode. If yes, disable debug.
1140         --disable_debug;
1141 
1142     WHEN OTHERS THEN
1143         ROLLBACK TO update_cust_account_role;
1144         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1145 
1146         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
1147         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
1148         FND_MSG_PUB.ADD;
1149 
1150         FND_MSG_PUB.Count_And_Get(
1151             p_encoded => FND_API.G_FALSE,
1152             p_count => x_msg_count,
1153             p_data  => x_msg_data );
1154 
1155 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1156              hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1157 	                       p_msg_data=>x_msg_data,
1158 			       p_msg_type=>'SQL ERROR',
1159 			       p_msg_level=>fnd_log.level_error);
1160         END IF;
1161         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1162 	    hz_utility_v2pub.debug(p_message=>'update_cust_account_role (-)',
1163 	                       p_prefix=>l_debug_prefix,
1164 			       p_msg_level=>fnd_log.level_procedure);
1165         END IF;
1166 
1167         -- Check if API is called in debug mode. If yes, disable debug.
1168         --disable_debug;
1169 
1170 END update_cust_account_role;
1171 
1172 /**
1173  * PROCEDURE get_cust_account_role_rec
1174  *
1175  * DESCRIPTION
1176  *      Gets customer account role record
1177  *
1178  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1179  *     HZ_CUST_ACCOUNT_ROLES_PKG.Select_Row
1180  *
1181  * ARGUMENTS
1182  *   IN:
1183  *     p_init_msg_list                Initialize message stack if it is set to
1184  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
1185  *     p_cust_account_role_id         Customer account role id.
1186  *   IN/OUT:
1187  *   OUT:
1188  *     x_cust_account_role_rec        Returned customer account role record.
1189  *     x_return_status                Return status after the call. The status can
1190  *                                    be FND_API.G_RET_STS_SUCCESS (success),
1191  *                                    FND_API.G_RET_STS_ERROR (error),
1192  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1193  *     x_msg_count                    Number of messages in message stack.
1194  *     x_msg_data                     Message text if x_msg_count is 1.
1195  *
1196  * NOTES
1197  *
1198  * MODIFICATION HISTORY
1199  *
1200  *   07-23-2001    Jianying Huang      o Created.
1201  *
1202  */
1203 
1204 PROCEDURE get_cust_account_role_rec (
1205     p_init_msg_list                         IN     VARCHAR2 := FND_API.G_FALSE,
1206     p_cust_account_role_id                  IN     NUMBER,
1207     x_cust_account_role_rec                 OUT    NOCOPY CUST_ACCOUNT_ROLE_REC_TYPE,
1208     x_return_status                         OUT NOCOPY    VARCHAR2,
1209     x_msg_count                             OUT NOCOPY    NUMBER,
1210     x_msg_data                              OUT NOCOPY    VARCHAR2
1211 ) IS
1212  l_debug_prefix		            VARCHAR2(30) := '';
1213 BEGIN
1214 
1215     -- Check if API is called in debug mode. If yes, enable debug.
1216     --enable_debug;
1217 
1218     -- Debug info.
1219     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1220 	hz_utility_v2pub.debug(p_message=>'get_cust_account_role_rec (+)',
1221 	                       p_prefix=>l_debug_prefix,
1222 			       p_msg_level=>fnd_log.level_procedure);
1223     END IF;
1224 
1225 
1226     -- Initialize message list if p_init_msg_list is set to TRUE.
1227     IF FND_API.to_Boolean(p_init_msg_list) THEN
1228         FND_MSG_PUB.initialize;
1229     END IF;
1230 
1231     -- Initialize API return status to success.
1232     x_return_status := FND_API.G_RET_STS_SUCCESS;
1233 
1234     -- Check whether primary key has been passed in.
1235     IF p_cust_account_role_id IS NULL OR
1236        p_cust_account_role_id = FND_API.G_MISS_NUM THEN
1237         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_MISSING_COLUMN' );
1238         FND_MESSAGE.SET_TOKEN( 'COLUMN', 'cust_account_role_id' );
1239         FND_MSG_PUB.ADD;
1240         RAISE FND_API.G_EXC_ERROR;
1241     END IF;
1242 
1243     x_cust_account_role_rec.cust_account_role_id := p_cust_account_role_id;
1244 
1245     -- Debug info.
1246     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1247 	hz_utility_v2pub.debug(p_message=>'HZ_CUST_ACCOUNT_ROLES_PKG.Select_Row (+)',
1248 	                       p_prefix=>l_debug_prefix,
1249 			       p_msg_level=>fnd_log.level_procedure);
1250     END IF;
1251 
1252 
1253     -- Call table-handler.
1254     HZ_CUST_ACCOUNT_ROLES_PKG.Select_Row (
1255         X_CUST_ACCOUNT_ROLE_ID                  => x_cust_account_role_rec.cust_account_role_id,
1256         X_PARTY_ID                              => x_cust_account_role_rec.party_id,
1257         X_CUST_ACCOUNT_ID                       => x_cust_account_role_rec.cust_account_id,
1258         X_CUST_ACCT_SITE_ID                     => x_cust_account_role_rec.cust_acct_site_id,
1259         X_PRIMARY_FLAG                          => x_cust_account_role_rec.primary_flag,
1260         X_ROLE_TYPE                             => x_cust_account_role_rec.role_type,
1261         X_SOURCE_CODE                           => x_cust_account_role_rec.source_code,
1262         X_ATTRIBUTE_CATEGORY                    => x_cust_account_role_rec.attribute_category,
1263         X_ATTRIBUTE1                            => x_cust_account_role_rec.attribute1,
1264         X_ATTRIBUTE2                            => x_cust_account_role_rec.attribute2,
1265         X_ATTRIBUTE3                            => x_cust_account_role_rec.attribute3,
1266         X_ATTRIBUTE4                            => x_cust_account_role_rec.attribute4,
1267         X_ATTRIBUTE5                            => x_cust_account_role_rec.attribute5,
1268         X_ATTRIBUTE6                            => x_cust_account_role_rec.attribute6,
1269         X_ATTRIBUTE7                            => x_cust_account_role_rec.attribute7,
1270         X_ATTRIBUTE8                            => x_cust_account_role_rec.attribute8,
1271         X_ATTRIBUTE9                            => x_cust_account_role_rec.attribute9,
1272         X_ATTRIBUTE10                           => x_cust_account_role_rec.attribute10,
1273         X_ATTRIBUTE11                           => x_cust_account_role_rec.attribute11,
1274         X_ATTRIBUTE12                           => x_cust_account_role_rec.attribute12,
1275         X_ATTRIBUTE13                           => x_cust_account_role_rec.attribute13,
1276         X_ATTRIBUTE14                           => x_cust_account_role_rec.attribute14,
1277         X_ATTRIBUTE15                           => x_cust_account_role_rec.attribute15,
1278         X_ATTRIBUTE16                           => x_cust_account_role_rec.attribute16,
1279         X_ATTRIBUTE17                           => x_cust_account_role_rec.attribute17,
1280         X_ATTRIBUTE18                           => x_cust_account_role_rec.attribute18,
1281         X_ATTRIBUTE19                           => x_cust_account_role_rec.attribute19,
1282         X_ATTRIBUTE20                           => x_cust_account_role_rec.attribute20,
1283         X_ATTRIBUTE21                           => x_cust_account_role_rec.attribute21,
1284         X_ATTRIBUTE22                           => x_cust_account_role_rec.attribute22,
1285         X_ATTRIBUTE23                           => x_cust_account_role_rec.attribute23,
1286         X_ATTRIBUTE24                           => x_cust_account_role_rec.attribute24,
1287         X_ORIG_SYSTEM_REFERENCE                 => x_cust_account_role_rec.orig_system_reference,
1288         X_ATTRIBUTE25                           => x_cust_account_role_rec.attribute25,
1289         X_STATUS                                => x_cust_account_role_rec.status,
1290         X_CREATED_BY_MODULE                     => x_cust_account_role_rec.created_by_module,
1291         X_APPLICATION_ID                        => x_cust_account_role_rec.application_id
1292     );
1293 
1294     -- Debug info.
1295     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1296 	hz_utility_v2pub.debug(p_message=>'HZ_CUST_ACCOUNT_ROLES_PKG.Select_Row (-)',
1297 	                       p_prefix=>l_debug_prefix,
1298 			       p_msg_level=>fnd_log.level_procedure);
1299     END IF;
1300 
1301 
1302     -- Standard call to get message count and if count is 1, get message info.
1303     FND_MSG_PUB.Count_And_Get(
1304         p_encoded => FND_API.G_FALSE,
1305         p_count => x_msg_count,
1306         p_data  => x_msg_data );
1307 
1308     -- Debug info.
1309     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1310 	 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1311 	                       p_msg_data=>x_msg_data,
1312 			       p_msg_type=>'WARNING',
1313 			       p_msg_level=>fnd_log.level_exception);
1314     END IF;
1315     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1316 	hz_utility_v2pub.debug(p_message=>'get_cust_account_role_rec (-)',
1317 	                       p_prefix=>l_debug_prefix,
1318 			       p_msg_level=>fnd_log.level_procedure);
1319     END IF;
1320 
1321     -- Check if API is called in debug mode. If yes, disable debug.
1322     --disable_debug;
1323 
1324 EXCEPTION
1325     WHEN FND_API.G_EXC_ERROR THEN
1326         x_return_status := FND_API.G_RET_STS_ERROR;
1327 
1328         FND_MSG_PUB.Count_And_Get(
1329             p_encoded => FND_API.G_FALSE,
1330             p_count => x_msg_count,
1331             p_data  => x_msg_data );
1332 
1333         -- Debug info.
1334 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1335 		 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1336 	                       p_msg_data=>x_msg_data,
1337 			       p_msg_type=>'ERROR',
1338 			       p_msg_level=>fnd_log.level_error);
1339         END IF;
1340         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1341 	    hz_utility_v2pub.debug(p_message=>'get_cust_account_role_rec (-)',
1342 	                       p_prefix=>l_debug_prefix,
1343 			       p_msg_level=>fnd_log.level_procedure);
1344         END IF;
1345 
1346         -- Check if API is called in debug mode. If yes, disable debug.
1347         --disable_debug;
1348 
1349     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1350         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1351 
1352         FND_MSG_PUB.Count_And_Get(
1353             p_encoded => FND_API.G_FALSE,
1354             p_count => x_msg_count,
1355             p_data  => x_msg_data );
1356 
1357         -- Debug info.
1358 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1359             hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1360 	                       p_msg_data=>x_msg_data,
1361 			       p_msg_type=>'UNEXPECTED ERROR',
1362 			       p_msg_level=>fnd_log.level_error);
1363         END IF;
1364         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1365 	   hz_utility_v2pub.debug(p_message=>'get_cust_account_role_rec (-)',
1366 	                       p_prefix=>l_debug_prefix,
1367 			       p_msg_level=>fnd_log.level_procedure);
1368         END IF;
1369 
1370         -- Check if API is called in debug mode. If yes, disable debug.
1371         --disable_debug;
1372 
1373     WHEN OTHERS THEN
1374         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1375 
1376         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
1377         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
1378         FND_MSG_PUB.ADD;
1379 
1380         FND_MSG_PUB.Count_And_Get(
1381             p_encoded => FND_API.G_FALSE,
1382             p_count => x_msg_count,
1383             p_data  => x_msg_data );
1384 
1385         -- Debug info.
1386 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1387              hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1388 	                       p_msg_data=>x_msg_data,
1389 			       p_msg_type=>'SQL ERROR',
1390 			       p_msg_level=>fnd_log.level_error);
1391         END IF;
1392         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1393 	    hz_utility_v2pub.debug(p_message=>'get_cust_account_role_rec (-)',
1394 	                       p_prefix=>l_debug_prefix,
1395 			       p_msg_level=>fnd_log.level_procedure);
1396         END IF;
1397 
1398         -- Check if API is called in debug mode. If yes, disable debug.
1399         --disable_debug;
1400 
1401 END get_cust_account_role_rec;
1402 
1403 /**
1404  * PROCEDURE create_role_responsibility
1405  *
1406  * DESCRIPTION
1407  *     Creates customer account role responsibility.
1408  *
1409  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1410  *     HZ_BUSINESS_EVENT_V2PVT.create_role_resp_event
1411  *
1412  * ARGUMENTS
1413  *   IN:
1414  *     p_init_msg_list                Initialize message stack if it is set to
1415  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
1416  *     p_role_responsibility_rec      Customer account role responsibility record.
1417  *   IN/OUT:
1418  *   OUT:
1419  *     x_responsibility_id            Role responsibility ID.
1420  *     x_return_status                Return status after the call. The status can
1421  *                                    be FND_API.G_RET_STS_SUCCESS (success),
1422  *                                    FND_API.G_RET_STS_ERROR (error),
1423  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1424  *     x_msg_count                    Number of messages in message stack.
1425  *     x_msg_data                     Message text if x_msg_count is 1.
1426  *
1427  * NOTES
1428  *
1429  * MODIFICATION HISTORY
1430  *
1431  *   07-23-2001    Jianying Huang      o Created.
1432  *
1433  */
1434 
1435 PROCEDURE create_role_responsibility (
1436     p_init_msg_list                         IN     VARCHAR2 := FND_API.G_FALSE,
1437     p_role_responsibility_rec               IN     ROLE_RESPONSIBILITY_REC_TYPE,
1438     x_responsibility_id                     OUT NOCOPY    NUMBER,
1439     x_return_status                         OUT NOCOPY    VARCHAR2,
1440     x_msg_count                             OUT NOCOPY    NUMBER,
1441     x_msg_data                              OUT NOCOPY    VARCHAR2
1442 ) IS
1443 
1444     l_role_responsibility_rec               ROLE_RESPONSIBILITY_REC_TYPE := p_role_responsibility_rec;
1445     l_debug_prefix		            VARCHAR2(30) := '';
1446 BEGIN
1447 
1448     -- Standard start of API savepoint
1449     SAVEPOINT create_role_responsibility;
1450 
1451     -- Check if API is called in debug mode. If yes, enable debug.
1452     --enable_debug;
1453 
1454     -- Debug info.
1455     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1456 	hz_utility_v2pub.debug(p_message=>'create_role_responsibility (+)',
1457 	                       p_prefix=>l_debug_prefix,
1458 			       p_msg_level=>fnd_log.level_procedure);
1459     END IF;
1460 
1461     -- Initialize message list if p_init_msg_list is set to TRUE.
1462     IF FND_API.to_Boolean(p_init_msg_list) THEN
1463         FND_MSG_PUB.initialize;
1464     END IF;
1465 
1466     -- Initialize API return status to success.
1467     x_return_status := FND_API.G_RET_STS_SUCCESS;
1468 
1469     -- Call to business logic.
1470     do_create_role_responsibility (
1471         l_role_responsibility_rec,
1472         x_responsibility_id,
1473         x_return_status );
1474 
1475    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1476      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
1477        -- Invoke business event system.
1478        HZ_BUSINESS_EVENT_V2PVT.create_role_resp_event (
1479          l_role_responsibility_rec );
1480      END IF;
1481 
1482      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
1483        HZ_POPULATE_BOT_PKG.pop_hz_role_responsibility(
1484          p_operation         => 'I',
1485          p_responsibility_id => x_responsibility_id);
1486      END IF;
1487    END IF;
1488 
1489     -- Standard call to get message count and if count is 1, get message info.
1490     FND_MSG_PUB.Count_And_Get(
1491         p_encoded => FND_API.G_FALSE,
1492         p_count => x_msg_count,
1493         p_data  => x_msg_data );
1494 
1495     -- Debug info.
1496     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1497 	 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1498 	                       p_msg_data=>x_msg_data,
1499 			       p_msg_type=>'WARNING',
1500 			       p_msg_level=>fnd_log.level_exception);
1501     END IF;
1502     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1503 	hz_utility_v2pub.debug(p_message=>'create_role_responsibility (-)',
1504 	                       p_prefix=>l_debug_prefix,
1505 			       p_msg_level=>fnd_log.level_procedure);
1506     END IF;
1507 
1508     -- Check if API is called in debug mode. If yes, disable debug.
1509     --disable_debug;
1510 
1511 EXCEPTION
1512     WHEN FND_API.G_EXC_ERROR THEN
1513         ROLLBACK TO create_role_responsibility;
1514         x_return_status := FND_API.G_RET_STS_ERROR;
1515 
1516         FND_MSG_PUB.Count_And_Get(
1517             p_encoded => FND_API.G_FALSE,
1518             p_count => x_msg_count,
1519             p_data  => x_msg_data );
1520 
1521         -- Debug info.
1522 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1523 		 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1524 	                       p_msg_data=>x_msg_data,
1525 			       p_msg_type=>'ERROR',
1526 			       p_msg_level=>fnd_log.level_error);
1527         END IF;
1528         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1529 	    hz_utility_v2pub.debug(p_message=>'create_role_responsibility (-)',
1530 	                       p_prefix=>l_debug_prefix,
1531 			       p_msg_level=>fnd_log.level_procedure);
1532         END IF;
1533 
1534         -- Check if API is called in debug mode. If yes, disable debug.
1535         --disable_debug;
1536 
1537     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1538         ROLLBACK TO create_role_responsibility;
1539         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1540 
1541         FND_MSG_PUB.Count_And_Get(
1542             p_encoded => FND_API.G_FALSE,
1543             p_count => x_msg_count,
1544             p_data  => x_msg_data );
1545 
1546         -- Debug info.
1547 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1548             hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1549 	                       p_msg_data=>x_msg_data,
1550 			       p_msg_type=>'UNEXPECTED ERROR',
1551 			       p_msg_level=>fnd_log.level_error);
1552         END IF;
1553         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1554 	   hz_utility_v2pub.debug(p_message=>'create_role_responsibility (-)',
1555 	                       p_prefix=>l_debug_prefix,
1556 			       p_msg_level=>fnd_log.level_procedure);
1557         END IF;
1558 
1559         -- Check if API is called in debug mode. If yes, disable debug.
1560         --disable_debug;
1561 
1562     WHEN OTHERS THEN
1563         ROLLBACK TO create_role_responsibility;
1564         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1565 
1566         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
1567         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
1568         FND_MSG_PUB.ADD;
1569 
1570         FND_MSG_PUB.Count_And_Get(
1571             p_encoded => FND_API.G_FALSE,
1572             p_count => x_msg_count,
1573             p_data  => x_msg_data );
1574 
1575         -- Debug info.
1576 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1577              hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1578 	                       p_msg_data=>x_msg_data,
1579 			       p_msg_type=>'SQL ERROR',
1580 			       p_msg_level=>fnd_log.level_error);
1581         END IF;
1582         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1583 	    hz_utility_v2pub.debug(p_message=>'create_role_responsibility (-)',
1584 	                       p_prefix=>l_debug_prefix,
1585 			       p_msg_level=>fnd_log.level_procedure);
1586         END IF;
1587 
1588         -- Check if API is called in debug mode. If yes, disable debug.
1589         --disable_debug;
1590 
1591 END create_role_responsibility;
1592 
1593 /**
1594  * PROCEDURE update_role_responsibility
1595  *
1596  * DESCRIPTION
1597  *     Updates customer account role responsibility.
1598  *
1599  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1600  *     HZ_BUSINESS_EVENT_V2PVT.update_role_resp_event
1601  *
1602  * ARGUMENTS
1603  *   IN:
1604  *     p_init_msg_list                Initialize message stack if it is set to
1605  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
1606  *     p_role_responsibility_rec      Customer account role responsibility record.
1607  *   IN/OUT:
1608  *     p_object_version_number        Used for locking the being updated record.
1609  *   OUT:
1610  *     x_return_status                Return status after the call. The status can
1611  *                                    be FND_API.G_RET_STS_SUCCESS (success),
1612  *                                    FND_API.G_RET_STS_ERROR (error),
1613  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1614  *     x_msg_count                    Number of messages in message stack.
1615  *     x_msg_data                     Message text if x_msg_count is 1.
1616  *
1617  * NOTES
1618  *
1619  * MODIFICATION HISTORY
1620  *
1621  *   07-23-2001    Jianying Huang      o Created.
1622  *
1623  */
1624 
1625 PROCEDURE update_role_responsibility (
1626     p_init_msg_list                         IN     VARCHAR2 := FND_API.G_FALSE,
1627     p_role_responsibility_rec               IN     ROLE_RESPONSIBILITY_REC_TYPE,
1628     p_object_version_number                 IN OUT NOCOPY NUMBER,
1629     x_return_status                         OUT NOCOPY    VARCHAR2,
1630     x_msg_count                             OUT NOCOPY    NUMBER,
1631     x_msg_data                              OUT NOCOPY    VARCHAR2
1632 ) IS
1633 
1634     l_role_responsibility_rec               ROLE_RESPONSIBILITY_REC_TYPE := p_role_responsibility_rec;
1635     l_old_role_responsibility_rec           ROLE_RESPONSIBILITY_REC_TYPE;
1636     l_debug_prefix		            VARCHAR2(30) := '';
1637 
1638 BEGIN
1639 
1640     -- Standard start of API savepoint
1641     SAVEPOINT update_role_responsibility;
1642 
1643     -- Check if API is called in debug mode. If yes, enable debug.
1644     --enable_debug;
1645 
1646     -- Debug info.
1647     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1648 	hz_utility_v2pub.debug(p_message=>'update_role_responsibility (+)',
1649 	                       p_prefix=>l_debug_prefix,
1650 			       p_msg_level=>fnd_log.level_procedure);
1651     END IF;
1652 
1653     -- Initialize message list if p_init_msg_list is set to TRUE.
1654     IF FND_API.to_Boolean(p_init_msg_list) THEN
1655         FND_MSG_PUB.initialize;
1656     END IF;
1657 
1658     -- Initialize API return status to success.
1659     x_return_status := FND_API.G_RET_STS_SUCCESS;
1660 
1661     --2290537
1662     get_role_responsibility_rec (
1663       p_responsibility_id          => p_role_responsibility_rec.responsibility_id,
1664       x_role_responsibility_rec    => l_old_role_responsibility_rec,
1665       x_return_status              => x_return_status,
1666       x_msg_count                  => x_msg_count,
1667       x_msg_data                   => x_msg_data);
1668 
1669     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1670         RAISE FND_API.G_EXC_ERROR;
1671     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1672         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1673     END IF;
1674 
1675     -- Call to business logic.
1676     do_update_role_responsibility (
1677         l_role_responsibility_rec,
1678         p_object_version_number,
1679         x_return_status );
1680 
1681    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1682      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('Y', 'EVENTS_ENABLED')) THEN
1683        -- Invoke business event system.
1684        HZ_BUSINESS_EVENT_V2PVT.update_role_resp_event (
1685          l_role_responsibility_rec , l_old_role_responsibility_rec);
1686      END IF;
1687 
1688      IF(HZ_UTILITY_V2PUB.G_EXECUTE_API_CALLOUTS in ('EVENTS_ENABLED', 'BO_EVENTS_ENABLED')) THEN
1689        HZ_POPULATE_BOT_PKG.pop_hz_role_responsibility(
1690          p_operation         => 'U',
1691          p_responsibility_id => l_role_responsibility_rec.responsibility_id);
1692      END IF;
1693    END IF;
1694 
1695     -- Standard call to get message count and if count is 1, get message info.
1696     FND_MSG_PUB.Count_And_Get(
1697         p_encoded => FND_API.G_FALSE,
1698         p_count => x_msg_count,
1699         p_data  => x_msg_data );
1700 
1701     -- Debug info.
1702     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1703 	 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1704 	                       p_msg_data=>x_msg_data,
1705 			       p_msg_type=>'WARNING',
1706 			       p_msg_level=>fnd_log.level_exception);
1707     END IF;
1708     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1709 	hz_utility_v2pub.debug(p_message=>'update_role_responsibility (-)',
1710 	                       p_prefix=>l_debug_prefix,
1711 			       p_msg_level=>fnd_log.level_procedure);
1712     END IF;
1713 
1714     -- Check if API is called in debug mode. If yes, disable debug.
1715     --disable_debug;
1716 
1717 EXCEPTION
1718     WHEN FND_API.G_EXC_ERROR THEN
1719         ROLLBACK TO update_role_responsibility;
1720         x_return_status := FND_API.G_RET_STS_ERROR;
1721 
1722         FND_MSG_PUB.Count_And_Get(
1723             p_encoded => FND_API.G_FALSE,
1724             p_count => x_msg_count,
1725             p_data  => x_msg_data );
1726 
1727         -- Debug info.
1728 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1729 		 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1730 	                       p_msg_data=>x_msg_data,
1731 			       p_msg_type=>'ERROR',
1732 			       p_msg_level=>fnd_log.level_error);
1733         END IF;
1734         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1735 	    hz_utility_v2pub.debug(p_message=>'update_role_responsibility (-)',
1736 	                       p_prefix=>l_debug_prefix,
1737 			       p_msg_level=>fnd_log.level_procedure);
1738         END IF;
1739 
1740         -- Check if API is called in debug mode. If yes, disable debug.
1741         --disable_debug;
1742 
1743     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1744         ROLLBACK TO update_role_responsibility;
1745         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1746 
1747         FND_MSG_PUB.Count_And_Get(
1748             p_encoded => FND_API.G_FALSE,
1749             p_count => x_msg_count,
1750             p_data  => x_msg_data );
1751 
1752         -- Debug info.
1753 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1754             hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1755 	                       p_msg_data=>x_msg_data,
1756 			       p_msg_type=>'UNEXPECTED ERROR',
1757 			       p_msg_level=>fnd_log.level_error);
1758         END IF;
1759         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1760 	   hz_utility_v2pub.debug(p_message=>'update_role_responsibility (-)',
1761 	                       p_prefix=>l_debug_prefix,
1762 			       p_msg_level=>fnd_log.level_procedure);
1763         END IF;
1764 
1765         -- Check if API is called in debug mode. If yes, disable debug.
1766         --disable_debug;
1767 
1768     WHEN OTHERS THEN
1769         ROLLBACK TO update_role_responsibility;
1770         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1771 
1772         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
1773         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
1774         FND_MSG_PUB.ADD;
1775 
1776         FND_MSG_PUB.Count_And_Get(
1777             p_encoded => FND_API.G_FALSE,
1778             p_count => x_msg_count,
1779             p_data  => x_msg_data );
1780 
1781         -- Debug info.
1782 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1783              hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1784 	                       p_msg_data=>x_msg_data,
1785 			       p_msg_type=>'SQL ERROR',
1786 			       p_msg_level=>fnd_log.level_error);
1787         END IF;
1788         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1789 	    hz_utility_v2pub.debug(p_message=>'update_role_responsibility (-)',
1790 	                       p_prefix=>l_debug_prefix,
1791 			       p_msg_level=>fnd_log.level_procedure);
1792         END IF;
1793 
1794         -- Check if API is called in debug mode. If yes, disable debug.
1795         --disable_debug;
1796 
1797 END update_role_responsibility;
1798 
1799 /**
1800  * PROCEDURE get_role_responsibility_rec
1801  *
1802  * DESCRIPTION
1803  *      Gets customer account role responsibility record
1804  *
1805  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1806  *     HZ_ROLE_RESPONSIBILITY_PKG.Select_Row
1807  *
1808  * ARGUMENTS
1809  *   IN:
1810  *     p_init_msg_list                Initialize message stack if it is set to
1811  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
1812  *     p_responsibility_id            Role responsibility ID.
1813  *   IN/OUT:
1814  *   OUT:
1815  *     x_role_responsibility_rec      Returned customer account role responsibility record.
1816  *     x_return_status                Return status after the call. The status can
1817  *                                    be FND_API.G_RET_STS_SUCCESS (success),
1818  *                                    FND_API.G_RET_STS_ERROR (error),
1819  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1820  *     x_msg_count                    Number of messages in message stack.
1821  *     x_msg_data                     Message text if x_msg_count is 1.
1822  *
1823  * NOTES
1824  *
1825  * MODIFICATION HISTORY
1826  *
1827  *   07-23-2001    Jianying Huang      o Created.
1828  *
1829  */
1830 
1831 PROCEDURE get_role_responsibility_rec (
1832     p_init_msg_list                         IN     VARCHAR2 := FND_API.G_FALSE,
1833     p_responsibility_id                     IN     NUMBER,
1834     x_role_responsibility_rec               OUT    NOCOPY ROLE_RESPONSIBILITY_REC_TYPE,
1835     x_return_status                         OUT NOCOPY    VARCHAR2,
1836     x_msg_count                             OUT NOCOPY    NUMBER,
1837     x_msg_data                              OUT NOCOPY    VARCHAR2
1838 ) IS
1839  l_debug_prefix		            VARCHAR2(30) := '';
1840 BEGIN
1841 
1842     -- Check if API is called in debug mode. If yes, enable debug.
1843     --enable_debug;
1844 
1845     -- Debug info.
1846     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1847 	hz_utility_v2pub.debug(p_message=>'get_role_responsibility_rec (+)',
1848 	                       p_prefix=>l_debug_prefix,
1849 			       p_msg_level=>fnd_log.level_procedure);
1850     END IF;
1851 
1852     -- Initialize message list if p_init_msg_list is set to TRUE.
1853     IF FND_API.to_Boolean(p_init_msg_list) THEN
1854         FND_MSG_PUB.initialize;
1855     END IF;
1856 
1857     -- Initialize API return status to success.
1858     x_return_status := FND_API.G_RET_STS_SUCCESS;
1859 
1860     -- Check whether primary key has been passed in.
1861     IF p_responsibility_id IS NULL OR
1862        p_responsibility_id = FND_API.G_MISS_NUM THEN
1863         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_MISSING_COLUMN' );
1864         FND_MESSAGE.SET_TOKEN( 'COLUMN', 'responsibility_id' );
1865         FND_MSG_PUB.ADD;
1866         RAISE FND_API.G_EXC_ERROR;
1867     END IF;
1868 
1869     x_role_responsibility_rec.responsibility_id := p_responsibility_id;
1870 
1871     -- Debug info.
1872     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1873 	hz_utility_v2pub.debug(p_message=>'HZ_ROLE_RESPONSIBILITY_PKG.Select_Row (+)',
1874 	                       p_prefix=>l_debug_prefix,
1875 			       p_msg_level=>fnd_log.level_procedure);
1876     END IF;
1877 
1878     -- Call table-handler.
1879     HZ_ROLE_RESPONSIBILITY_PKG.Select_Row (
1880         X_RESPONSIBILITY_ID                     => x_role_responsibility_rec.responsibility_id,
1881         X_CUST_ACCOUNT_ROLE_ID                  => x_role_responsibility_rec.cust_account_role_id,
1882         X_RESPONSIBILITY_TYPE                   => x_role_responsibility_rec.responsibility_type,
1883         X_PRIMARY_FLAG                          => x_role_responsibility_rec.primary_flag,
1884         X_ATTRIBUTE_CATEGORY                    => x_role_responsibility_rec.attribute_category,
1885         X_ATTRIBUTE1                            => x_role_responsibility_rec.attribute1,
1886         X_ATTRIBUTE2                            => x_role_responsibility_rec.attribute2,
1887         X_ATTRIBUTE3                            => x_role_responsibility_rec.attribute3,
1888         X_ATTRIBUTE4                            => x_role_responsibility_rec.attribute4,
1889         X_ATTRIBUTE5                            => x_role_responsibility_rec.attribute5,
1890         X_ATTRIBUTE6                            => x_role_responsibility_rec.attribute6,
1891         X_ATTRIBUTE7                            => x_role_responsibility_rec.attribute7,
1892         X_ATTRIBUTE8                            => x_role_responsibility_rec.attribute8,
1893         X_ATTRIBUTE9                            => x_role_responsibility_rec.attribute9,
1894         X_ATTRIBUTE10                           => x_role_responsibility_rec.attribute10,
1895         X_ATTRIBUTE11                           => x_role_responsibility_rec.attribute11,
1896         X_ATTRIBUTE12                           => x_role_responsibility_rec.attribute12,
1897         X_ATTRIBUTE13                           => x_role_responsibility_rec.attribute13,
1898         X_ATTRIBUTE14                           => x_role_responsibility_rec.attribute14,
1899         X_ATTRIBUTE15                           => x_role_responsibility_rec.attribute15,
1900         X_ORIG_SYSTEM_REFERENCE                 => x_role_responsibility_rec.orig_system_reference,
1901         X_CREATED_BY_MODULE                     => x_role_responsibility_rec.created_by_module,
1902         X_APPLICATION_ID                        => x_role_responsibility_rec.application_id
1903     );
1904 
1905     -- Debug info.
1906     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1907 	hz_utility_v2pub.debug(p_message=>'HZ_ROLE_RESPONSIBILITY_PKG.Select_Row (-)',
1908 	                       p_prefix=>l_debug_prefix,
1909 			       p_msg_level=>fnd_log.level_procedure);
1910     END IF;
1911 
1912     -- Standard call to get message count and if count is 1, get message info.
1913     FND_MSG_PUB.Count_And_Get(
1914         p_encoded => FND_API.G_FALSE,
1915         p_count => x_msg_count,
1916         p_data  => x_msg_data );
1917 
1918     -- Debug info.
1919     IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1920 	 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1921 	                       p_msg_data=>x_msg_data,
1922 			       p_msg_type=>'WARNING',
1923 			       p_msg_level=>fnd_log.level_exception);
1924     END IF;
1925     IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1926 	hz_utility_v2pub.debug(p_message=>'get_role_responsibility_rec (-)',
1927 	                       p_prefix=>l_debug_prefix,
1928 			       p_msg_level=>fnd_log.level_procedure);
1929     END IF;
1930 
1931     -- Check if API is called in debug mode. If yes, disable debug.
1932     --disable_debug;
1933 
1934 EXCEPTION
1935     WHEN FND_API.G_EXC_ERROR THEN
1936         x_return_status := FND_API.G_RET_STS_ERROR;
1937 
1938         FND_MSG_PUB.Count_And_Get(
1939             p_encoded => FND_API.G_FALSE,
1940             p_count => x_msg_count,
1941             p_data  => x_msg_data );
1942 
1943         -- Debug info.
1944 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1945 		 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1946 	                       p_msg_data=>x_msg_data,
1947 			       p_msg_type=>'ERROR',
1948 			       p_msg_level=>fnd_log.level_error);
1949         END IF;
1950         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1951 	    hz_utility_v2pub.debug(p_message=>'get_role_responsibility_rec (-)',
1952 	                       p_prefix=>l_debug_prefix,
1953 			       p_msg_level=>fnd_log.level_procedure);
1954         END IF;
1955 
1956         -- Check if API is called in debug mode. If yes, disable debug.
1957         --disable_debug;
1958 
1959     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1960         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1961 
1962         FND_MSG_PUB.Count_And_Get(
1963             p_encoded => FND_API.G_FALSE,
1964             p_count => x_msg_count,
1965             p_data  => x_msg_data );
1966 
1967         -- Debug info.
1968 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1969             hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1970 	                       p_msg_data=>x_msg_data,
1971 			       p_msg_type=>'UNEXPECTED ERROR',
1972 			       p_msg_level=>fnd_log.level_error);
1973         END IF;
1974         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1975 	   hz_utility_v2pub.debug(p_message=>'get_role_responsibility_rec (-)',
1976 	                       p_prefix=>l_debug_prefix,
1977 			       p_msg_level=>fnd_log.level_procedure);
1978         END IF;
1979 
1980         -- Check if API is called in debug mode. If yes, disable debug.
1981         --disable_debug;
1982 
1983     WHEN OTHERS THEN
1984         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1985 
1986         FND_MESSAGE.SET_NAME( 'AR', 'HZ_API_OTHERS_EXCEP' );
1987         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
1988         FND_MSG_PUB.ADD;
1989 
1990         FND_MSG_PUB.Count_And_Get(
1991             p_encoded => FND_API.G_FALSE,
1992             p_count => x_msg_count,
1993             p_data  => x_msg_data );
1994 
1995         -- Debug info.
1996 	IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1997              hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1998 	                       p_msg_data=>x_msg_data,
1999 			       p_msg_type=>'SQL ERROR',
2000 			       p_msg_level=>fnd_log.level_error);
2001         END IF;
2002         IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2003 	    hz_utility_v2pub.debug(p_message=>'get_role_responsibility_rec (-)',
2004 	                       p_prefix=>l_debug_prefix,
2005 			       p_msg_level=>fnd_log.level_procedure);
2006         END IF;
2007 
2008         -- Check if API is called in debug mode. If yes, disable debug.
2009         --disable_debug;
2010 
2011 END get_role_responsibility_rec;
2012 
2013 END HZ_CUST_ACCOUNT_ROLE_V2PUB;